Ранее я уже заявлял об этом и даже делился видео-демонстрацией, но не раскрывая подробности. К сожалению, Разработчик забил болт так и не отреагировал на моё письмо о проблеме (моё обращение было зарегистрировано 2.10.2012 под номером sb-ru-02-121000048-t). Поэтому я решил показать все технические подробности. Приводимая далее видео демонстрация была впервые показана на ZeroNights 2012 в рамках zeroday show.
Предыстория
Подобные уязвимости часто находятся случайным образом. Мой случай — не исключение. Как-то раз в 12 часов ночи, в полнолуние поставил себе Outpost Security Suite и настроил проактивку на максимальный режим. При этом режиме даже вставленная новая флешка в систему не примонтируется, пока не разрешить несколько действий во всплывающих окнах антивируса. Однажды при вставке новой флешки как обычно появилось всплывающее окно от антивируса, но я не давал согласия на установку. А привычным образом заблокировал компьютер (клавиш Win+L), покинув его на несколько минут. Каково же было моё удивление, когда я выяснил, что флешка-таки примонтировалась в систему! Вот тут и началось самое интересное...
Суть проблемы
В режиме обучения проактивная защита Outpost при обнаружении подозрительной активности программы запрашивает действия у пользователя. Но если после вывода такого диалогового сообщения совершается LogOut из системы (то, что происходит при нажатии клавиш Win+L) — для антивируса это эквивалентно разрешению.
Автоматизация этого процесса может быть представлена таким вот bat-файлом, состоящим из 2-х строчек:
start 1.exe
ping 127.0.0.1 -n 10 -w 10000 > NULL & rundll32.exe user32.dll,LockWorkStation
Пинг здесь нужен для задержки (хотя есть более изящное решение), после которой выполнится команда логаута (rundll32.exe user32.dll,LockWorkStation
).
Т.е запускаем файл 1.exe, ждём несколько секунд (чтоб антивирус вывел окно) и выполняем логаут из системы.
Более того, при логауте можно увидеть, как значок антивируса меняется с синего на зелёный. Это означает, что он переходит из режима обучения в режим разрешения (всё что не запрещено — разрешено). Что ослабляет систему защиты. Например, программы, которым явно не запрещено выходить в интернет, будут теперь выходить.После входа в систему значок снова меняется на синий.
Демонстрация
Суть демонстрации:
- Проверяем, что в системе нет службы «test test test service» (пытаемся её остановить, на что система отвечает, что такой службы нет)
- Запускаем bat-файл (который запустит установщик службы)
- Через DebugViewer видим, что драйвер запустился именно ПОСЛЕ логаута, а не до
- Снова пытаемся остановить службу «test test test service». На сей раз успешно.
Проверены на уязвимость следующие версии Agnitum Outpost Security Suite:
- 7.5.3 (3942.608.1810)
- 7.6 (3984.693.1842)
Автор: shanker