Microsoft выпустила Советы по безопасности (2269637) Небезопасная загрузка библиотеки делает возможным удаленное выполнение кода .
Примечание относится к инструменту, который поможет выявить эту проблему, и к руководству по программированию Безопасность библиотеки Dynamic-Link .
Как эти рекомендации переводятся в разработку .NET? Я предполагаю, что это влияет только на вызов платформы.
Остаётся ли рекомендуемый способ импорта системных библиотек?
DllImport("user32.dll")]
Системные библиотеки DLL, такие как user32.dll, безопасны, потому что они находятся в Список известных DLL в реестре. Если вы попытаетесь загрузить DLL с именем "user32"
, Windows жестко запрограммирована на получение официальной копии из каталога system32.
С этой страницы:
Microsoft выпустила руководство для разработчиков в статье MSDN Dynamic-Link Library Security о том, как правильно использовать доступные интерфейсы прикладного программирования для предотвращения этого класса уязвимости.
и
Эта проблема затрагивает только приложения, которые не загружают внешние библиотеки безопасным образом. Microsoft ранее опубликовала руководство для разработчиков в статье MSDN Dynamic-Link Library Security, в которой рекомендуются альтернативные методы загрузки библиотек, безопасные для таких атак.
Вы ссылаетесь на ту же страницу в своем вопросе, поэтому, если вы следуете рекомендациям, изложенным на этой странице, ваше приложение должно быть безопасным. Примечания о безопасном режиме поиска процессов и порядке поиска в каталогах кажутся особенно актуальными.
Установите приложение и запустите H.D. Инструмент Мура . H.D. Мур обнаружил этот образец атаки.
Если ваше приложение не отвечает за автоматическое выполнение расширения файла, то вы не уязвимы . Готов поспорить, что если вы запустите этот инструмент, ваше приложение не появится в списке уязвимых приложений.