Выживание в системах с жестоким квотированием


Как размножаются ежики или как образуются зомби


Квоты, привязанные к PID'у, легко обойти. Достаточно периодически (например, один раз в минуту, или даже секунду!) порождать новый процесс, термируя предыдущий. Новорожденный процесс получает полную

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

Свой запуск антивирус начинает с проверки памяти. Он получает список активных процессов, тщательно проверяя каждый из них на вшивость. Легальными средствами список процессов можно получить с помощью функций TOOLHELP32, экспортируемых библиотекой KERNEL32.DLL, которую перехватывают многие вирусы, не желающие быть замеченными. Сама по себе техника перехвата предельно тривиальна и к тому же описана в куче хакерских статей, так что не будем на ней останавливаться, тем более, что существует другой источник информации— недокументированная функция NtQueryInformationProcess, экспортируемая NTDLL.DLL, но фактически реализованная в NTOSKRNL.EXE и перехватить ее "прямой" вызов уже труднее. Без знания ассемблера и умения писать драйвера тут уже не обойтись, но, к счастью, существуют и другие пути, работающие на всех операционных системах и не требующие напряжения мозговых извилин.



Содержание раздела