Новый инструмент loadlibrary позволяет портировать динамически подключаемые библиотеки Windows на Linux

loadlibrary

Тэвис Орманди (Tavis Ormandy), известный эксперт Google по безопасности, выложил на GitHub инструмент loadlibrary, который позволяет нативным Linux-программам загружать и вызывать функции из динамически подключаемых библиотек Windows (DLL). В качестве демонстрации Тэвис портировал антивирус Windows Defender на Linux.

Для каких целей подходит loadlibrary?

Тэвис уточнил, что библиотека loadlibrary создана скорее для исследователей проблем безопасности, чем для всего сообщества пользователей Linux:

Этот инструмент не заменяет Wine или Winelib. Winelib используется для портирования проектов Windows C++ на Linux, а Wine — для запуска полноценных Windows-приложений. Мой инструмент позволяет загружать простые Windows DLL.

Тем не менее, loadlibrary привлекательна для разработчиков: можно загружать DLL-данные в Linux-приложения без необходимости портировать Windows-приложение целиком.

Как с помощью loadlibrary можно исследовать системы безопасности?

Библиотека позволяет использовать DLL совместно с инструментами для фаззинга. При фаззинге приложению на вход передается произвольный набор данных, а затем вывод анализируется на предмет нарушений и неисправностей. Такой метод в том числе применяется в рамках тестирования на проникновение (пентестинга).

Google за последние годы сделала два популярных фаззера: OSS-Fuzz (недавно компания провела исследование эффективности его работы) и syzkaller. Последний помог обнаружить 3 крупных бага в ядре Linux (раз, два, три), первые 2 из которых жили там на протяжении нескольких лет. Это показывает способность фаззинга выявлять уязвимости, которые легко пропустить при классическом ручном тестировании.

Используя свою библиотеку, Тэвис недавно обнаружил «crazy bad» — уязвимость в ядре Microsoft Malware Protection Engine (MsMpEng), сервиса по обеспечению безопасности, предустановленного в Windows 8, 8.1, 10 и Windows Server 2016. Вчера исследователь портировал компонент пакета MsMpEng, отвечающий за сканирование и анализ зловредов — то есть, антивирус Windows Defender.

Инструмент и вся подробная информация о нем находится в репозитории на GitHub.

Источник: BleepingComputer