Консоль, автоматизация и Linux: что реально нужно знать, чтобы расследовать атаки

Консоль, автоматизация и Linux: что реально нужно знать, чтобы расследовать атаки

На днях задал в закрытом профильном чате три вопроса специалистам по расследованию инцидентов (в англоязычном мире это называют DFIR – Digital Forensics and Incident Response):

  1. Какая доля инцидентов с Linux-машинами по вашему опыту?
  2. Нужно ли DFIR-специалисту уметь работать с консольными инструментами вроде file, strings, strace или достаточно автоматизированных средств?
  3. Нужно ли глубоко понимать устройство Linux?

Ответы меня удивили и обрадовали одновременно. Структурировал, собрал все воедино и теперь делюсь с вами.

Linux уже не «экзотика»

По оценкам практикующих специалистов, доля инцидентов с участием Linux-систем составляет уже 30–40% от общего числа. И тенденция растёт.

Это логично: всё больше компаний переводит инфраструктуру на Linux: серверы, контейнеры, рабочие станции. А вместе с инфраструктурой растёт и количество атак.

Если вы DFIR-специалист (или хотите им стать) – игнорировать Linux больше нельзя.

Один из участников диалога – специалист Ростелекома – поделился своим опытом:

– Раньше Linux был только в виртуальной машине, которая запускалась исключительно для криминалистического анализа. Хост – Windows.

– Сейчас Linux – основная система на десктопе, ноутбуке, домашнем сервере и вообще везде.

– Причины: импортозамещение и субъективный комфорт. Под Linux стало удобнее работать, чем под Windows.

– Начинал с Fedora, сейчас на Alt Linux – как одном из самых древних российских дистрибутивов.

Специалист по информационной безопасности в компании Ростелеком

«Инцидент в блокноте разберу»

На вопрос об автоматизации один из участников диалога ответил так:

«Как говорил мой хороший знакомый: "если нужно, я вам инцидент в нотпаде разберу". Утрированно, но это так.»

Участник диалога

Автоматизированные средства – это отлично. EDR, SIEM, корпоративные платформы – они экономят часы. Но они не всегда под рукой.

А когда под рукой только сервер, доступ по SSH и пара минут – вы остаётесь один на один с консолью.

И здесь важны базовые инструменты:

  • file – чтобы понять, что за файл перед вами, даже если он маскируется под картинку;
  • strings – чтобы вытащить скрытые IP, домены и команды;
  • strace / ltrace – чтобы увидеть, что программа делает на самом деле.

Автоматизация – это скорость. Но без понимания основ она бесполезна. Вы не сможете проверить её вывод или доработать там, где она не сработала.

Насколько глубоко нужно понимать Linux?

Ответ оказался здравым:

«На уровне администратора. Навыки из разряда дебага ядра в большинстве случаев будут излишними. Жизнь заставит – тогда и будешь вникать.»

Участник диалога

То есть: вы должны уверенно ориентироваться в системе, читать логи, понимать процессы, работать с файловой системой и памятью.

Но начинать с полного нуля в расследовании инцидентов – тяжело. Нужен фундамент.

При чём здесь история про Алексея?

Несколько недель назад я опубликовал на VC историю о том, как сисадмин Алексей нашёл на своём сервере подозрительный процесс и разоблачил его с помощью базовых консольных инструментов.

И в комментариях один из читателей задал справедливый вопрос:

«Алексей выдохнул. Система была чиста. Но опыт он получил колоссальный. Т.е. как оно туда попало и кто запустил – совершенно не интересно?»

Комментарий

Я тогда ответил, что это будет в следующих курсах – пока Алексею не хватает знаний для полноценной форензики.

Другой читатель добавил важное замечание:

«Форензика – это понять вектор атаки: какой сервис был проэксплойчен, когда, через какую CVE. На практике в 70% случаев заходят через забытый SSH с паролем или устаревший PHP.

Первое действие после инцидента не "удалить файл", а last -a + grep -r "Accepted" /var/log/auth.log – посмотреть, кто и когда зашёл.

Если не закрыть входную дверь – завтра будет новая "зубная щётка".»

Комментарий

И это абсолютно правильное замечание. Анализ файла – это важно, но далеко не в первую очередь.

Именно поэтому первый курс – это только начало. В нём Алексей учится анализировать сам файл, чтобы стать более уверенным пользователем Linux. А дальше будет разбираться с логами, памятью, файловой системой и трафиком.

Где взять этот фундамент?

На основе этой истории сделал небольшой бесплатный курс, где можно пройти весь путь Алексея с нуля:

  • определить тип файла через file;
  • найти скрытые строки через strings;
  • обнаружить вшитые программы через xxd и grep -P;
  • извлечь их через dd;
  • прочитать ELF-структуру через readelf;
  • проследить за работой программы через strace и ltrace.

Он не сделает из вас эксперта по расследованию инцидентов. Но он даст ту самую базу, на которую потом накладываются автоматизация и продвинутые техники.