Как стать автором
Обновить
10
0
Игорь @igorzakhar

Пользователь

Отправить сообщение

Фаззинг сокетов: Apache HTTP Server. Часть 1: мутации

Время на прочтение12 мин
Количество просмотров5.4K

Прим. Wunder Fund: наш СТО Эмиль по совместительству является известным white-hat хакером и специалистом по информационной безопасности, и эту статью он предложил как хорошее знакомство с фаззером afl и вообще с фаззингом как таковым.

Этот материал открывает серию из трёх статей (она продолжает материалы о фаззинге FTP-серверов и FreeRDP), посвящённых фаззинг-тестированию реализации протокола HTTP, представленной в Apache HTTP Server. Это — один из самых популярных веб-серверов и в представлении он не нуждается. Так, Apache HTTP — это один из первых HTTP-серверов, разработка которого началась в 1995 году. По состоянию на январь 2021 года под его управлением работали более чем 300000000 серверов, а значит — он использовался на 26% таких систем и занимал второе место по распространённости, немного уступая лишь Nginx (31%).

В этой статье я вкратце расскажу о том, как работает Apache, и освещу кое-какие идеи, которые помогут всем желающим лучше понять суть кастомных мутаторов, и то, как можно эффективно их применять для исследования реализаций протокола HTTP.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии1

Ответы на комментарии к статье «Что делать, когда преследует бывший… работодатель?»

Время на прочтение8 мин
Количество просмотров19K

Syn ack, Хабр!

Статья Что делать, когда преследует бывший… работодатель? очень хорошо была воспринята айти сообществом. Та самая статья набрала более чем в 2 раза больше просмотров,и это благодаря вашей поддержке! 

Большое спасибо всем, кто прочитал, комментировал и повышал карму! 

Честно говоря, я не предполагал, что мой 2022г. начнется именно с такой статьи, но Леха поменял все мои планы на публикации.

В этой статье я постараюсь ответить на самые частые и важные вопросы, которые вы задавали в комментариях к публикации.

Читать далее
Всего голосов 73: ↑49 и ↓24+37
Комментарии136

Флаг EPOLLEXCLUSIVE и проблема неравномерного распределения соединений в Nginx на Linux

Время на прочтение5 мин
Количество просмотров5.8K

Совсем недавно, 25 января 2022 года вышел новый релиз Nginx - 1.21.6, в котором исправлена проблема неравномерного распределения входящих соединений между несколькими worker процессами в дефолтной конфигурации на Linux системах. Если конкретнее - use epoll, accept_mutex off, reuseport выключен.

В данной конфигурации при определенном характере нагрузки большинство входящих в Nginx соединений обрабатывается лишь одним worker процессом. 

Насколько я понимаю, эта проблема существует уже более пяти лет и берет начало в версии 1.11.3 (Jul 2016), когда в Nginx по умолчанию отключили accept_mutex, а вместо него стали полагаться на флаг EPOLLEXCLUSIVE, появившийся в ядре Linux 4.5.

Стоит заметить, что проблема балансировки входящих соединений при использовании механизма epoll и флага EPOLLEXCLUSIVE более глобальна и касается не только Nginx, а любых сетевых приложений, работающих по аналогичной схеме.

В этой статье мы посмотрим на историю и причины появления данной проблемы, а также рассмотрим код ее решения в новом релизе Nginx.

Читать далее
Всего голосов 25: ↑23 и ↓2+27
Комментарии24

Классика фантастики и фэнтези, которая лишь недавно добралась до русскоязычного читателя

Время на прочтение6 мин
Количество просмотров58K

В фэнтези и фантастике есть целый пласт произведений, которые уже давно считаются классическими и хорошо известны читателям. Большая часть таких книг давно переведена на русский язык, ведь в 90-х годах в наших палестинах очень активно издавались книги популярных фантастов. Однако некоторые романы, по праву имеющие на Западе статус классических, на русском языке впервые увидели совсем недавно. Иногда из-за того, что пик их популярности пришелся на время до распада Советского Союза, когда с переводами западной фантастики все было гораздо сложнее, иногда из-за неформатности или предполагаемой сложности для читателя, иногда по финансовым причинам. Рассказываем о нескольких таких произведениях, с которыми русскоязычные читатели смогли познакомиться только в последнее время.

Читать далее
Всего голосов 108: ↑101 и ↓7+110
Комментарии22

Создание своего серверного ядра на Go для Minecraft Java. Часть #1 — Основное о идее и малое начало

Время на прочтение7 мин
Количество просмотров11K

Тема, которая будет писаться в многих частях будет в основном предствалять этапы написания своего серверного ядра для мультиплеера популярной игры Minecraft.

Конкретно в этой части статьи будет рассматриваться основные понятия об Minecraft, мультиплеере и почему решил сделать такое. Так же сделаем основу сервера, который пока будет поддерживать Ping-Pong List

Читать далее
Всего голосов 12: ↑9 и ↓3+6
Комментарии8

ULE — самописное MC Java ядро. Часть #1.1 — HelloWorld и изменения…

Время на прочтение16 мин
Количество просмотров6.3K

Дальше создаю серверное ядро на языке Rust, в данной часте был сделан переход с Go и добавлено несколько интересный изменений.

Переход с Go на Rust дал огромный прирост производительности и теперь ядро сверх быстрое. Ядро использует всего 128KB ОЗУ и запускается за менее 1мс)

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии4

Как я хакнул все районные школы, чтобы показать рикролл, и что из этого вышло

Время на прочтение10 мин
Количество просмотров22K

30 апреля 2021 года автор проделал рикролл по своему школьному округу. Это не только моя школа, но и весь школьный городской округ 214 (далее — D214), один из крупнейших школьных округов в Иллинойсе, состоящий из 6 школ, в которых учатся более 11 000 человек.

Подробности рассказываем в этом пятничном посте к старту курса по этичному хакерству.

Читать далее
Всего голосов 21: ↑18 и ↓3+21
Комментарии22

Как узнать общий объем физической памяти (RAM) в Linux

Время на прочтение6 мин
Количество просмотров116K
image

1. Краткое содержание


Иногда возникает необходимость проверить общий объём памяти сервера, на котором запущена ОС Linux, или же данные о памяти требуются для сценариев командной оболочки. К счастью, есть множество инструментов, которые нам в этом помогут. В этом руководстве приводятся различные команды и утилиты для определения общего объёма физической памяти.
Читать дальше →
Всего голосов 21: ↑17 и ↓4+22
Комментарии18

На Reddit обсудили, что больше всего раздражает в Kubernetes

Время на прочтение3 мин
Количество просмотров19K

Натан Йелин (Natan Yellin) из robusta.dev опросил участников Kubernetes-сообщества на Reddit, что больше всего их раздражает в Kubernetes. Тред собрал более 90 ответов и комментариев. Как выяснилось, CrashLoopBackOff — далеко не самый раздражающий фактор. Куда больше пользователям не нравится, например, сложность Kubernetes и необходимость его изучать.

В статье — самые возмутительные особенности K8s по мнению пользователей Reddit и разработчиков «Фланта».

Читать далее
Всего голосов 36: ↑35 и ↓1+43
Комментарии28

Геттеры/сеттеры и проблема с инкапсуляцией в Symfony проектах

Время на прочтение6 мин
Количество просмотров18K
Сравнительно недавно работаю с Symfony (чуть более года) и во всех проектах, что довелось поработать — сущности всегда создавались таким образом, что они содержали только приватные поля и голые сеттеры/геттеры к ним.

В статьи будут рассуждения и примеры, почему такой подход опасный, а именно: нарушает нашу старую добрую инкапсуляцию, провоцирует писать код с багами и повышать сложность системы.
В статье будет опущена тема сеттеров в разного рода билдерах и тема инъекции зависимостей через сеттеры (скажу только, что не одобряем). Не будет ничего про сложные темы вроде DDD, Rich Model, про coupling/cohesion и другие умные слова — просто поговорим про инкапсуляцию. Добро пожаловать под кат.
Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии238

Зачем (не)нужны геттеры?

Время на прочтение3 мин
Количество просмотров23K
Прошлая статья про сеттеры/геттеры как способ работы с сущностью (на примере Symfony в PHP) получила бурное обсуждение. В данной статье попробую выразить свои мысли отдельно по поводу геттеров: зачем и когда что-то получать, какую ответственность они решают и когда их уместно использовать, когда не уместно. Постарался собрать мысли в одном месте и формализовать их вместе с вами.

image
Изображение из блога Фаулера: TellDontAsk

Читать дальше →
Всего голосов 30: ↑19 и ↓11+16
Комментарии367

Когда 'a' не равно 'а'. По следам одного взлома

Время на прочтение6 мин
Количество просмотров112K
Пренеприятнейшая история случилась с одним моим знакомым. Но насколько она оказалась неприятной для Михаила, настолько же занимательной для меня.

Надо сказать, что приятель мой вполне себе UNIX-пользователь: может сам поставить систему, установить mysql, php и сделать простейшие настройки nginx.
И есть у него десяток-полтора сайтов посвященных строительным инструментам.

Один из таких сайтов, посвященный бензопилам, плотненько сидит в ТОПe поисковиков. Сайт этот — некоммерческий обзорник, но кому-то поперек горла и повадились его атаковать. То DDoS, то брутфорс, то комменты напишут непотребные и шлют абузы на хостинг и в РКН.
Неожиданно всё стихло и это затишье оказалось не к добру, а сайт начал постепенно покидать верхние строчки выдачи.

image

То была присказка, дальше сама админская байка.

Время близилось ко сну когда раздался звонок телефона: «Сань, ты не глянешь мой сервер? Мне кажется меня хакнули, доказать не могу, но ощущение не покидает уже третью неделю. Может мне просто пора лечиться от паранойи?»
Читать дальше →
Всего голосов 399: ↑393 и ↓6+387
Комментарии73

Мотивирующая памятка пенсионерам

Время на прочтение7 мин
Количество просмотров29K
Недавно я поздравлял свою маму с Днем Рождения. Делал я это подборкой мотивирующих научных статей по возрастной физиологии мозга плюс бонусом давал некоторые наставления в своем химическом телеграм-канале (мама, кстати, старейший подписчик :). Мои рекомендации «пенсионеру — от гика» так понравились читателям и собрали столько репостов, что я решил материал озвучить с хабра-трибуны. Ищем все под катом.


Прочитать и не забыть переслать родителям...
Всего голосов 69: ↑65 и ↓4+77
Комментарии50

Чат-бот под несколько месенджеров

Время на прочтение12 мин
Количество просмотров10K

Привет, я Паша, руковожу эксплуатацией инфраструктуры крупного хайлоад-проекта. Хочу поделиться опытом разработки бота на Golang для различных мессенджеров.

Всё началось с того, что у нас был бот на python-telegram-bot, делал он простые вещи, умел послать случайную весёлую гифку из Интернета, кошечку, собачку, затем мы крикрутили к нему наш таск-трекер и бот стал создавать тикеты прямо из чата.

Спустя время, руководство приняло решение о разработке собственного мессенджера для общения сотрудников компании и встал вопрос о поддержке нашего бота в новом мессенджере. У нас уже была разработана отдельная модельная часть, которую оставалось лишь прикрутить к новому источнику сообщений, но в этот момент мы уже одной ногой торчали в Golang и мы решили, что у нас есть отличный шанс максимально развить свои навыки разработки, мы видели в Golang большие перспективы для развития нашей инфраструктуры.

Итак, поехали
Всего голосов 7: ↑5 и ↓2+4
Комментарии2

Правила хорошего вкуса от Линуса Торвальдса. Делаем код быстрее, проще и понятнее

Время на прочтение5 мин
Количество просмотров48K
«Вкус — это способность судить о прекрасном»
И. Кант

Дирк Хондел, один из тех, кто стоял у истоков Linux, однажды сказал о создателе Linux Линусе Торвальдсе: «Линус не только блестящий программист: у него хороший вкус. Торвальдс находит простые и разумные пути решения проблем, умеет всё «разложить по полочкам». Сложные вещи он делает простыми. По-моему, это и есть главное отличие превосходного программиста от просто хорошего».

image

В недавнем интервью, примерно на 14-й минуте, Линус Торвальдс коснулся темы «хорошего вкуса в программировании». Хороший вкус? Ведущий попросил его остановиться на этом подробнее, и Линус, пришедший не с пустыми руками, показал пару слайдов.
Читать дальше →
Всего голосов 70: ↑57 и ↓13+44
Комментарии145

systemd десять лет спустя. Историческая и техническая ретроспектива

Время на прочтение18 мин
Количество просмотров50K
Десять лет назад был анонсирован systemd, который устроил революцию в управлении системой дистрибутивов Linux, тем самым разделив пользователей Linux на несколько лагерей. Качество и природа дебатов не сильно улучшилась со времён пламенных войн 2012-2014 годов, и systemd всё ещё остаётся не до конца понятым и изученным инструментом и с технической, и с общественной стороны, несмотря на пристальное внимание к нему сообщества.

Это пост не совсем о том, как пользоваться systemd. Тут, скорее, будет говориться об истории его возникновения, о его компонентах в целом, и о том, как понять систему, которая начиналось как просто PID 1 и стала тем, что я бы назвал middleware современного дистрибутива Linux.

А может, это просто набор крайне вольных переводов различных материалов с блогов, каналов и статей на Arch wiki. Вам решать.

Я, как пользователь и ранее сисадмин, питаю много нежных чувств к systemd, поэтому материал написан с весомой долей предвзятости, за что прошу прощения.

Но прежде чем начать речь о systemd, хочу рассказать об init.
Читать дальше →
Всего голосов 76: ↑74 и ↓2+93
Комментарии438

Почему, ну почему, эти #?@! придурки используют vi?

Время на прочтение12 мин
Количество просмотров120K

Предлагаю читателям "Хабрахабра" перевод статьи "Why, oh WHY, do those #?@! nutheads use vi?" за авторством John Beltran de Heredia.


Да, даже если вы не можете в это поверить, у редактора vi, увидевшего свет более тридцати лет назад (и его более молодого, всего-то пятнадцатилетнего лучшего клона & большого улучшения — vim) очень много фанатов.


Нет, они не динозавры, которые не хотят идти в ногу со временем — сообщество пользователей vi продолжает увеличиваться: я, который начал только два года назад (после десяти лет работы программистом). Мои друзья переходят на vi сейчас. Черт, большинство пользователей vi даже еще не были рождены, когда он был написан!


Да, есть конкретные причины, почему модель редактирования vi/vim превосходит любую другую. Вам не надо быть экспертом в Unix, чтобы использовать vi — он доступен бесплатно практически для любой существующей платформы; для большинства IDE существуют плагины, позволяющие использовать его возможности. Давайте же развеем некоторые заблуждения и рассмотрим пару примеров, демонстрирующих его превосходство.

Читать дальше →
Всего голосов 172: ↑143 и ↓29+114
Комментарии769

Параметризация из файла в py.test

Время на прочтение6 мин
Количество просмотров17K

В области автоматического тестирования можно встретить разные инструменты, так, для написания авто-тестов на языке Python одним из наиболее популярных решений на данный момент является py.test.


Прошерстив множество ресурсов связанных с pytest и изучив документацию с официального сайта проекта я не смог найти прямое описание решения одной из основных задач — запуск тестов с тестовыми данными, хранящимися в отдельном файле. Иначе, можно сказать, подгрузки параметров в тестовые функции из файла(-ов) или параметризация из файла напрямую. Такая процедура в тонкостях нигде не описана и единственные упоминание данной возможности есть лишь в одной строке документации pytest.


В этой статье я расскажу о своем решении этой задачи.

Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии8

GitHub Actions как CI/CD для сайта на статическом генераторе и GitHub Pages

Время на прочтение7 мин
Количество просмотров15K


Немного прошерстив Habr удивился тому, что очень мало опубликовано статей на тему (beta-)фичи GitHub'а — Actions.


Казалось бы, можно объяснить такую недосказанность тем, что функционал еще в тестировании, пусть и "beta". Но именно полезная особенность беты позволяет использовать этот инструмент в приватных репозиториях. Именно про работу с данной технологией я расскажу в этой статье.

Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии14

REvil: главное о тактиках и техниках

Время на прочтение8 мин
Количество просмотров5.3K

Арест участников группировки REvil, проведённый ФСБ 14 января 2022 года, стал, похоже, финальной отметкой в истории одного из самых успешных вымогательских сервисов. И хотя возрождение REvil вряд ли произойдёт, её инструментарий и тактики с большой вероятностью «всплывут» в вымогательских киберкампаниях в будущем. В конце 2021 года мы опубликовали исследование, посвящённое тактикам и техникам REvil. Обзор исследования читайте под катом. 

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность