Известный ИБ-специалист и член команды Google Project Zero Тевис Орманди (Tavis Ormandy) сообщил, что ему удалось портировать Windows Defender DLL под Linux. Орманди дал своему проекту название loadlibrary и уже опубликовал его на GitHub.
Surprise, I ported Windows Defender to Linux. ?https://t.co/7eP48O87Vi
— Tavis Ormandy (@taviso) May 23, 2017
Цель loadlibrary – позволить пентестерам и исследователям загружать Windows DLL-и под Linux, где к ним можно будет применить любимую Орманди технику тестирования — фаззинг.
«Смысл в том, чтобы получить масштабируемый и эффективный файззинг независимых Windows-библиотек в Linux. Хорошими кандидатами могут стать видеокодеки, вирусные сканеры, декодеры изображений и так далее», — пишет эксперт.
Орманди поясняет, что реализовать распределенный, эффективный и масштабируемый фаззинг в Windows сложно, особенно для защитных endpoint-решений, которые и используют целый комплекс взаимосвязанных компонентов, охватывающих как ядро так и user space. Более того, эксперт отмечает, что, по его мнению, Linux в целом удобнее для такой работы, а инструменты для него – лучше. Напомню, что ранее сами специалисты Google уже написали два популярных инструмента для фаззинга: OSS-Fuzz и syzkaller.
Стоит отметить, что несколько недель назад Орманди обнаружил «безумно скверную» RCE-уязвимость в составе Microsoft Malware Protection Engine (MsMpEng) и именно благодаря использованию фаззинга.
Дефолтная версия loadlibrary, опубликованная на GitHub, включает в себя демо портированного Windows Defender, а точнее Орманди портировал MsMpEng. Именно этот компонент использует Windows Defender (и он лежит в сердце других защитных решений Microsoft), который установлен по умолчанию в Windows 8, 8.1, 10 и Windows Server 2016.
При этом исследователь подчеркивает, что loadlibrary не предназначен для запуска Windows-приложений под Linux: «этот проект – не замена Wine или Winelib. Winelib использует порт Windows C++ проекта под Linux, и Wine предназначен для полноценного запуска Windows-приложений. А цель данного проекта – позволить загружать простые Windows DDL-и, используя родной код Linux».