Алгоритм

0. ПОДГОТОВКА
Перед ручным анализом должны быть быстро исчерпаны тривиальные и автоматизированные методы поиска вредоносного кода (антивирусы, антируткиты, визуальный просмотр списка процессов и прочие). Ценность антивирусов невелика, но было бы глупо потратить час собственных интеллектуальных ресурсов на поиск известного трояна, который антивирус найдет за десять секунд.
1. АВТОЗАГРУЗКИ
Составляем перечень всех известных точек старта кода для целевой системы. Не забываем, что в процессе загрузки системы могут исполняться не только приложения пользователя, но и модули ядра, задания планировщика, скрипты, код предэагруэки системы (MBR, UEFI) и так далее.
Основные источники информации — первичная документация для разработчиков, «библии» для системных администраторов, исследовательские материалы. Важно на этом этапе:
чем полнее перечень автозагрузок, тем больше вероятность найти троян, даже самый продвинутый;
чем лучше приоритизирован перечень по статистической вероятности обнаружения трояна, тем меньше времени займет поиск.
2. АНАЛИЗ
Отключаем систему, монтируем жесткий диск к заведомо чистой системе (либо загружаемся с внешнего диска) и методично анализируем пункты составленного перечня на предмет подозрительных элементов.
Если элемент перечня не является файлом (например, ключ реестра в системах семейства Windows) — используем утилиту для статического пэрсинга соответствующего хранилища (в данном случае reglookup, regmount и множество им подобных).
Анализ автозагрузок в работающей системе также возможен, но может дать ложные результаты, так как мы умышленно пренебрегли выявлением руткит-перехватов для экономии времени.
Особый случай — вирусный механизм загрузки, когда код стартует не из известной точки автозагрузки, а из легитимного модуля. На сегодняшний день паразитный метод запуска кода достаточно редок, а его известные агенты ITDL, ZeroAccess должны быть уже найдены на этапе «О» с помощью антивирусных утилит. Для критичных систем (см. disclaimer, пункт 2) имеет смысл хранить заведомо чистый слепок системы, относительно которого можно обнаруживать модификации в исполнимых файлах.
3. ИТОГ
Сейчас у нас уже должен быть файл трояна. Если он не найден, а подозревать наличие в системе нетривиального целевого трояна нет оснований, то причина может быть только одна: недостаточно тщательная проверка. Что-то упущено на одном из предшествующих этапов. Если файл трояна найден, осталось его изучить. Системный анализ вредоносного кода — отдельная тема, рассмотрим ее как-нибудь в другой раз.