Проблема небезопасной загрузки динамических библиотек |

Проблема небезопасной загрузки динамических библиотек

Закрытие уязвимостей

Проблема небезопасной загрузки динамических библиотек вообще характерна для продуктов Microsoft. Она стала причиной уязвимостей MS10-087, MS10-093, MS10-094, MS10-095, MS10-096, MS10-097, MS11-001, MS11-003, MS11-015, MS11-016, MS11-017, MS11-023, MS11-025, KB2533623, MS11-055, MS11-059, MS11-071, MS11-073, MS11-075, MS11-076, MS11-085, MS11-094, MS11-099, MS12-012, MS12-014, MS12-022, MS12-039, MS12-046, MS12-074, MS14-023.

Ответственность за обеспечение безопасности подключения библиотек в первую очередь на разработчиках. Например, при указании при вызове функции LoadLibraryEx() ключа LOAD_LIBRARY_SEARCH_SYSTEM32 поиск библиотеки начинается с system32 (странно, почему Microsoft не мог просто использовать это в скайпе?).

Но что-то в силах сделать и администраторы.

Во-первых, это ключ SafeDllSearchMode (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SafeDllSearchMode), который немного меняет порядок поиска библиотек:

1. Директория, из которой запущно приложение
2. Системная директория
3. Директория Winodws
4. Текущая директория
5. Директории из переменной окружения PATH

Если отключить SafeDllSearchMode, порядок будет такой:

1. Директория, из которой запущно приложение
2. Текущая директория
3. Системная директория
4. Директория Winodws
5. Директории из переменной окружения PATH

Особо интересны два момента:

– Если библиотека с таким именем уже загружена в память, то будет использоваться этот образ
– Если библиотека присутствует в KnownDlls, то она будет загружаться из стандартного пути

На последнем моменте надо остановиться подробнее. Известные библиотеки перечислены в узле реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs и по умолчанию загружаются ТОЛЬКО из системных директорий. Путь их поиска можно задать ключами HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs:DllDirectory и HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs:DllDirectory32.

Поэтому, в общем то, вчерашнюю проблему со скайпом можно решить путем добавления библиотеки в KnownDlls.

Источник: https://t.me/informhardening

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий