Тэвис Орманди (Tavis Ormandy), известный эксперт Google по безопасности, выложил на GitHub инструмент loadlibrary, который позволяет нативным Linux-программам загружать и вызывать функции из динамически подключаемых библиотек Windows (DLL). В качестве демонстрации Тэвис портировал антивирус Windows Defender на Linux.
Surprise, I ported Windows Defender to Linux. 😎https://t.co/7eP48O87Vi
— Tavis Ormandy (@taviso) May 23, 2017
Для каких целей подходит 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