>[оверквотинг удален]
>>> ты элементарно реализуешь детект. Если я сходу скажу решение -- тебе
>>> это в лучшем случае ничего не даст.
>> Из того что ты понаписал выше, я вижу, что если взять дебуггер
>> с дизассемблером, можно задетектить.
> Это путь, по которому пошли вышеупомянутые Gmer/RkU. Они (автоматически) сканируют память
> в поисках модификаций машинного кода. Содержат дизассемблер, находят в теле (начале)
> функции команду jmp и сигнализируют о признаках руткита. То есть ищутся
> признаки известных вариантов хуков. Проблема подхода (как и всякого решения для
> частных случаев) в том, что следующий руткит вместо jmp ставит условные
> push addr + ret, и детектор ничего подозрительного не находит.Эмм:
"GMER runs on Windows XP/VISTA/7/8/10"
Домашнюю страничку RkU мне не удалось найти в гугле, но то что я видел наводит на мысль, что это тоже вендософт.
То есть обе программы совершенно бесполезны против этого древоруба.
> Вероятно, на этот путь тебя сбил листинг iterate_dir. Он приведён с другой
> целью -- показать, что хук функции приводит к краху системы (в
> редких случаях, потому исполнитель об ошибочности решения не знает, либо на
> качество ему плевать).
Нет, на этот путь меня сбили рассуждения о том, какие машинные инструкции и где находятся.
> Скрипт для обнаружения Дроворуба ты можешь написать сам. В отличие от авторов
> упомянутых детекторов, ты владеешь необходимой теоретической базой (поскольку не раз говорил
> о валидации кода транслятором Rust; но в данном случае так глубоко
> копать не надо).
Может быть и могу, но это не _элементарный_ способ. Этот способ недоступен большинству админов систем на *nix.
И тут мы, наконец, можем вернутся к следующему:
> Якобы некая разведка (не важно, чья) выпустила "продукт", который в момент выполнения второй команды пролога меняет последовательность инструкций на jmp near. Система падает. Атака обнаруживается. Пусть и 1 раз из 1000000, этого достаточно для признания "решения" непригодным. (2) То, что такое "скрытие" элементарно детектируется -- можно даже не рассматривать.
Как мы выяснили, детектируется неэлементарно. Но интереснее почему ты решил, что "этого достаточно для признания "решения" непригодным". Ты читал ГОСТы на разработку вредоносного ПО, и там прописаны эти условия? Или ты сам решил, что такие решения непригодны? Непригодны для чего?
Если глянуть с ещё одного ракурса, ты тут имплицитно утверждаешь, что во всех этих ЦРУ работают идиоты, имплицитно предполагая, что в наших спецслужбах работают исключительно высококвалифицированные и высокомотивированные ребята, которые могут не слакать и не будут слакать. Но мне кажется, что оба этих имплицитных утверждения неверны в корне: там где работает 100+ человек, обязательно найдутся неквалифицированные и не особо-то мотивированные. С этим древорубом я вполне могу представить сценарий, где сверху спустили команду разработать червь, и разработчик что-то там выкатил, что хорошо смотрится на презентации для высоких чинов (которые вообще ничего в червях не понимают). Это даже если в каких-то внутренних документах прописано, что детект в 1 случае из миллиона -- недопустимо. В чём я сильно-сильно сомневаюсь.
Можно внимательно почитать этот отчёт о древорубе и посмотреть там признаки неквалифицированной постановки. Мне лень, если честно, но я не пытаюсь доказать, что это не постановка. Я пытаюсь показать тебе, что твои рассуждения все не стоят выеденного яйца. Даже несмотря на то, что ты прочитал аж целый учебник по ассемблеру.