Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #72, НОЯБРЬ 2006 г.

убийство часового

КРИС КАСПЕРСКИ, АКА МЫЩЪХ

Спецвыпуск: Хакер, номер #072, стр. 072-072-8


Весь вопрос в том, насколько надежен и «законен» такой хак? Ведь модификация образа ядра — далеко не атомарная операция! Сначала мы должны рассчитать CRC32 «исправленного» файла, затем модифицировать некое количество байт образа, после чего внедрить четыре «корректирующих» байта. А что если в промежутке между модификацией и «коррекцией» неожиданно проснется Patch-Guard и закричит: «Измена!!! Нас поимели!!!». Чтобы заставить его заткнуться, достаточно вспоминать, что «стражники» представляют собой обыкновенные отложенные процедуры — (Deferred Procedure Call) или, сокращенно, DPC, исполняющиеся на IRQL-уровне, равном двум. Если мы повысим IRQL (не забывая, что в многопроцессорных системах каждый процессор имеет свой IRQL), то никакие DPC исполняться не смогут, пока уровень вновь не будет понижен. Правда, вместе с DPC не будет работать и подкачка с диска, так что можно очень легко нарваться на голубой экран смерти, но! Если сначала обратиться к той странице образа, которую мы собирались модифицировать, а затем — к странице, куда собрались внедрять корректирующие байты, обе страницы гарантированно окажутся в памяти, и мы можем смело повышать IRQL на время модификации.

[заключение.]

Так все-таки, насколько надежен Patch-Guard и от чего он нас реально защищает? По правде говоря (положа руку на хвост), как и все сделанное Microsoft, Patch-Guard катастрофически ненадежен. Во-первых, он может быть элементарным образом отключен (что и было продемонстрировано авторами статьи «Bypassing PatchGuard on Windows x64»), во-вторых, после установки гипервизора основная операционная система неожиданно для себя переходит в гостевой режим, полностью подконтрольный монитору виртуальных машин. В-третьих, подсчет контрольной суммы защищаемых объектов выполнен в «пионерском» стиле, и не обнаруживает преднамеренные искажения. В принципе! И это все методы, не требующие перезагрузки!!! А если добавить сюда возможность создания собственного загрузчика, имитирующего наличие системного отладчика, то получится вообще косяк!

Черви, хакеры и rootkit'ы ничуть не пострадают, а вот легальным разработчикам придется попыхтеть. «По уму» в Висте должна быть опция «задействовать Patch-Guard или нет», позволяющая пользователю выбирать несекьюрную машину, несовместимую с кучей программ, или несекьютрную машину, на которой все программы работают исправно. Но... Microsoft как всегда идет своим путем, повторяя дело, начатое Иваном Сусаниным.

Назад на стр. 072-072-7  Содержание