vadim_proskurin (vadim_proskurin) wrote,
vadim_proskurin
vadim_proskurin

Category:

Как находятся уязвимости в программах

Александр Венедюхин рассуждает о пользе и вреде открытого исходного текста в CMS. Не знаю, как в CMS, а в операционных системах программные уязвимости обычно обнаруживаются либо случайно, либо на основе анализа документированных спецификаций интерфейсов. Читаешь документацию и видишь - здесь вполне может быть дыра. Смотришь - ага, есть. Или нет.

В качестве примера приведу три истории, как я обнаружил три уязвимости в винде.

1. AdminTrap. При чтении документации про олицетворение сразу бросилось в глаза, что не предусмотрено никаких проверок того, что полномочия субъекта олицетворения реально понижаются, а не повышаются. Осталось лишь подобрать условия, когда повышение полномочий субъекта в результате олицетворения реально происходит.

2. NetDDE DSDM Exploit (я нашел его на две недели позже первооткрывателя и потому славы не снискал :-)). Сервер NetDDE DSDM в NT4 выполнялся от имени локального пользователя, в Windows 2000 - от имени псевдопользователя SYSTEM. Беглый взгляд на код сервера показал, что он почти не изменился, что странно - обычно в таких случаях требуется серьезная переделка обработчиков клиентских запросов дабы обеспечить секьюрити. Осталось лишь внимательно просмотреть обработчики клиентских команд и найти недокументированную команду, позволяющую запускать произвольный дочерний процесс.

3. При отладке обычной прикладной программы ошибка в GDI-вызове, которая должна была обрушить программу, обрушила на синий экран всю ОС. При нескольких повторных прогонах программы синий экран повторился, причем ERROR_ACCESS_VIOLATION каждый раз вылезало в одной и той же точке win32k.sys. Осталось лишь погонять систему под kernel debugger и через три часа причина синего экрана стала понятна. К счастью (или к сожалению, с какой стороны посмотреть), гетадмин-эксплойт для этой уязвимости невозможен в принципе.

Общий вывод. На основании своего личного опыта могу сказать, что отсутствие у Windows открытого исходного текста не сильно мешает искать уязвимости в этой ОС. Для специалиста листинг, выдаваемый IDA с участием HexRays, не намного менее информативен, чем оригинальный исходник.

Впрочем, я вполне допускаю, что выводы, сделанные на основе только личного опыта, могут оказаться излишне категоричными.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 3 comments