Бинарный анализ в Linux на русском: почему это дефицит и где его закрыть бесплатно
Есть темы, о которых на русском почти не пишут. Анализ бинарных файлов в Linux – одна из них.
Откройте любой поисковик. Введите «как понять, что делает подозрительный файл в Linux». Вы найдёте разрозненные статьи на английском, документацию, которая требует подготовки, и форумы, где отвечают «ну ты это, man почитай». Структурированного введения в тему почти нет.
Полтора месяца назад на Степике появился бесплатный курс «Белый хакер: анализ файлов в Linux». 90 человек записались. Двое прошли до конца. И вот почему это неплохой результат.
Чему учит курс и зачем это вам
Представьте: пятница, вечер. На сервере или вашем компьютере маячит подозрительный процесс с легитимным названием systemd-update. Он в /tmp. Он шлёт данные на чужой IP. Удалить не получается – файл занят.
Что дальше?
Большинство в такой ситуации действуют наугад. Гуглят симптомы. Пробуют убить процесс. В худшем случае – перезагружают сервер и надеются, что проблема уйдёт.
Курс учит системному подходу. Вы получаете цепочку инструментов и понимаете, в каком порядке их применять:
- Первичный осмотр. Выяснить, что за файл перед вами, не запуская его. Для этого – file, strings, xxd, dd. Курс учит не просто нажимать кнопки, а понимать, что именно вы видите в выводе.
- Статический анализ. Заглянуть внутрь ELF-файла: заголовки, секции, символы. Найти функцию main в дизассемблированном коде. Понять, какие библиотеки использует программа и что это говорит о её поведении. Инструменты: readelf, objdump, nm.
- Динамический анализ. Запустить программу в изолированной среде и посмотреть, что она делает на самом деле. Какие файлы открывает, куда подключается по сети, какие системные вызовы совершает. Инструменты: strace, ltrace, ldd.
После курса вы не станете реверс-инженером. Но вы перестанете гадать и начнёте системно подходить к анализу подозрительных файлов.
Кому это нужно
Системным администраторам, которые находят подозрительный процесс на сервере и хотят не гуглить симптомы, а быстро понять, что перед ними.
Студентам технических специальностей, которым нужен пет-проект для портфолио или способ выделиться среди других кандидатов.
Начинающим специалистам по информационной безопасности – освоить базу статического и динамического анализа в Linux, чтобы не плавать на первых собеседованиях.
И разработчикам, которым интересно, что происходит под капотом их собственных программ, как они загружаются в память и почему вообще работают.
Что говорят те, кто прошёл курс
«Отличный курс. Хорошая подача, подробный разбор технических деталей. Тема реверс-инжиниринга казалась сложной, но я с удовольствием погрузился.»
«Коротенькое, но очень интерактивное и лёгкое базовое введение в широкую тему.»
Почему прошли только двое из 90
Это специфика бесплатных курсов. Люди записываются «на будущее», откладывают, отвлекаются. Нормальная конверсия для открытой платформы – 1-5%.
Но важнее другое: те, кто дошёл до конца, – люди с совершенно разным уровнем подготовки. Опытный инженер и новичок. Оба нашли для себя пользу. Значит, курс попадает в аудиторию.
С чего начать
Если не готовы сразу идти на курс – почитайте статью на Хабре. Она называется «Как программа попадает в память: от execve до main». Это глубокий разбор за 13 минут одного из аспектов, который в курсе разбирается подробно: что происходит после того, как вы нажали Enter в консоли, и как ядро загружает программу в память.
Добро пожаловать в кузницу!