ADS 468x60

2011-11-09

Компрометация пароля

Информация изложенная в данной статье, в большей мере для специалистов информационной безопасности.
В компании которой я работаю, существует документ “Положение об использовании паролей”, в нем описаны основные правила и требования по использованию паролей.

Рассмотрим только один пункт положения, это пункт о компрометация пароля (когда пароль стал или может быть известен еще кому-либо кроме владельца данного пароля).

“Если вы скомпрометировали пароль, необходимо незамедлительно его изменить.”
Прошу заметить, это не взлом, перехват или подбор пароля к учетной записи, в основном это анализ неправильных действия пользователя (ввод пароля в поле имя учетной записи - далее УЗ).
Из 100% скомпрометированных паролей, 70% это ввод пароля в поле имя УЗ (вместо имени или вместе с именем УЗ).
Как узнать о компрометации пароля?
Как проконтролировать, был ли изменен скомпрометированный пароль?


Во многих компаниях, есть так называемые системы мониторинга событий, основными лидерами разработки таких систем на мою точку зрения, являются компании Netforensics, Arcsight, Cisco и Imperva. Вышеуказанные программно-аппаратные комплексы, могут анализировать и реагировать на поступающие события с уровней (Приложений (APP ), Баз данных (DB), операционных систем (OS)) подключенных на мониторинг.
В больших и средних Компаниях в корпоративной среде, авторизация пользователей рабочих станций (возможно и информационных систем) происходит на уровне Active Directory - AD, если пользователь ввел в поле имя учетной записи свой пароль, AD отреагирует ошибкой отсутствия такого пользователя в каталоге (перечне пользователей). Не автоматизировано, оперативно выявлять такие события очень сложно по многим причинам (миллионы разных событий, перезапись журнала новыми записями). Наш журнал AD, при максимальном объеме, в рабочее время, полностью перезаписывается за 20 минут.

К нашей системе мониторинга, подключен AD, все события происходящие на сервере, передаются на соответствующий модуль для обработки.
Модуль, поступающие событие парсит и обрабатывает согласно заданных параметров (правил). На любой параметр в поступившем событии, можно настроить определенную реакцию, например выпадающие уведомление или отправка сообщения по почте.

Для выявления скомпрометированных паролей, было написано регулярное выражение на определение пароля в поле имя учетной записи. Данное выражение написано отталкиваясь от требований к формированию пароля, которое также описано в положении (цифры, спец символы, большие и маленькие буквы) - минимум 3 из 4 по уровню сложности.
Регулярное выражение.

“((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9]).{8})|((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8})|((?=.*\d)(?=.*[a-z])(?=.*[^A-Za-z0-9]).{8})|((?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]).{8})|((?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9]).{8})”

Кратко о выражении:
((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9]).{8}) - Обязательное присутствие 4 требований.
((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8}) - Все кроме спец символов.
((?=.*\d)(?=.*[a-z])(?=.*[^A-Za-z0-9]).{8}) - Все кроме больших букв.
((?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]).{8}) - Все кроме маленьких букв.
((?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9]).{8}) - Все кроме цифр.

В случае если в поле УЗ присутствует только пароль, а имени пользователя нет, для определения имени учетной записи, можно заходить на каждую рабочую станцию и смотреть последний удачный вход но это занимает много времени. Более удобное и быстрое решение это программа PsLoggedOn (не злоупотребляйте поиском УЗ на рабочих станциях).

Для самостоятельной проверки (подтверждения) пароля, не надо выходить из системы, можно воспользоваться стандартной функцией ОС, правая кнопка мыши на ярлыке программы, выбираем запустить программу от имени … (я запускаю FAR), в поле имя УЗ ввожу логин пользователя, в поле пароль ввожу зафиксированный системой мониторинга пароль. Если программа запускается и не выдает ошибок, значит это пароль данного пользователя.

Как только вы убедились, что пароль скомпрометирован, необходимо перезвонить пользователю и порекомендовать изменить пароль в случае отказа заблокировать УЗ.
Для того, чтоб убедиться в смене пароля, нет необходимости повторно производить запуск программы, воспользуйтесь программой LockoutStatus.

Если у вас нет системы мониторинга, могу порекомендовать воспользоваться программой LogParser. Для работы с ней достаточно базовых знаний SQL и Google.

В одной из следующих статей, я расскажу как можно определить компрометацию пароля, если он не был случайно введен в поле имя учетной записи.


0 comments:

Post a Comment

Популярне за тиждень