компрометація пароля

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

Для виявлення скомпрометованих паролів, було написано регулярний вираз на визначення пароля в поле ім'я облікового запису. Цей вираз написано відштовхуючись від вимог до формування пароля, яке також описано в положенні (цифри, спец символи, великі і маленькі букви) - мінімум 3 з 4 по рівню складності.
Регулярний вираз.
"((? =. * \ D) (? =. * [Az]) (? =. * [AZ]) (? =. * [^ A-Za-z0-9]).) | ((? =. * \ d) (? =. * [az]) (? =. * [AZ]).) | ((? =. * \ d) (? =. * [az]) (? =. * [^ A-Za-z0-9]).) | ((? =. * \ d) (? =. * [AZ]) (? =. * [^ A-Za-z0-9]).) | ((? =. * [az]) (? =. * [AZ]) (? =. * [^ A-Za-z0-9]).) "
Коротко про висловлення:
((? =. * \ D) (? =. * [Az]) (? =. * [AZ]) (? =. * [^ A-Za-z0-9]).) - Обов'язкова присутність 4 вимог .
((? =. * \ D) (? =. * [A-z]) (? =. * [A-Z]).) - Все крім спец символів.
((? =. * \ D) (? =. * [A-z]) (? =. * [^ A-Za-z0-9]).) - Все крім великих літер.
((? =. * \ D) (? =. * [A-Z]) (? =. * [^ A-Za-z0-9]).) - Все крім маленьких букв.
((? =. * [A-z]) (? =. * [A-Z]) (? =. * [^ A-Za-z0-9]).) - Все крім цифр.

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

Для самостійної перевірки (підтвердження) пароля, не треба виходити з системи, можна скористатися стандартною функцією ОС, права кнопка миші на ярлику програми, вибираємо запустити програму від імені ... (я запускаю FAR), в поле ім'я УЗ ввожу логін користувача, в поле пароль ввожу зафіксований системою моніторингу пароль. Якщо програма запускається і не видає помилок, значить це пароль даного користувача.

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

Якщо у вас немає системи моніторингу, можу порекомендувати скористатися програмою LogParser. Для роботи з нею досить базових знань SQL і Google.

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