Автор: Александр Поляков, ведущий аудитор информационной безопасности компании Digital Security
В статье описаны пошаговые инструкции по настройке парольной политики популярной СУБД Oracle в соответствии с требованиями стандарта PCIDSS.
Довольно часто при проведении аудита на соответствие стандарту PCI DSS, да и аудита безопасности в целом, приходится сталкиваться с отсутствием правильно настроенных парольных политик. Собственно из-за этого в итоге мы и получаем на выходе пароли типа "12345" и прочие уже приевшиеся аудиторскому глазу наборы символов, которые потом мелькают в очередном обзоре самых популярных паролей. И если на контроллере домена худо-бедно политика настроена, да и то, в основном, потому что настраивается по умолчанию, то в СУБД мы видим довольно грустную картину.
А ведь чем по сотне раз на дню объяснять пользователям кошмары про подбор паролей, не проще ли один раз внедрить адекватную парольную политику и избавиться уж как минимум от 90% популярных паролей, тем более, что в этом нет ничего сложного и весь набор технических требований раздела 8.5 стандарта, как ни странно, можно реализовать даже не прибегая к дополнительным приложениям, потратив минимальное количество времени.
Итак, не будем больше терять драгоценного времени и приступим к настройке парольной политики в
СУБД Oracle. Определимся с техническими требованиями:
-
Изменение пароля пользователя не реже одного раза в 90 дней.
-
При смене пароля запрещается выбор в качестве нового какого-либо из последних четырех
-
использовавшихся данным пользователем паролей.
-
Блокирование учетной записи после шести неудачных попыток ввода пароля.
-
Блокирование учетной записи пользователя не менее чем на 30 минут, либо пока
-
администратор не снимет блокировку.
-
Блокирование рабочей сессии пользователя не более чем через 15 минут простоя.
-
Использование в пароле не менее семи символов.
-
Использования в пароле как цифр, так и букв.
Теперь перейдём к реализации. Собственно, основная часть требований реализуется при помощи
настройки профилей:
• Создаём новый профиль для парольной политики с соответствующими значениями:
CREATE PROFILE BANK_USERS LIMIT
PASSWORD_LIFE_TIME 80 -- требование 1 и 2
PASSWORD_GRACE_TIME 10 -- требование 1 и 2
PASSWORD_REUSE_TIME 450 -- требование 3
PASSWORD_REUSE_MAX 4 -- требование 3
FAILED_LOGIN_ATTEMPTS 6 -- требование 4
PASSWORD_LOCK_TIME 1/48 -- требование 5
IDLE_TIME 15; -- требование 6
Проверить установленные значения можно следующим запросом:
select PROFILE, RESOURCE_NAME from dba_profiles;
• Для выполнения требования 7 необходимо указать так называемую функцию проверки, в которой можно настроить более тонкие параметры и даже, при желании, внедрить любые свои функции. Пример данной функции находится по умолчанию в директории $ORACLE_HOME/rdbms/admin/UTLPWDMG.SQL. Для соответствия требованиям необходимо внести в эту функцию одно изменение, а именно - найти в скрипте строку, отвечающую за длину пароля и изменить значение с 4 на 7 (от себя добавлю, что лучше поставить 9):
-- Check for the minimum length of the password
IF length(password) < 7 THEN
raise_application_error(-20002, 'Password length less than 7');
END IF;
Для того, чтобы ввести в эксплуатацию данную функцию, необходимо запустить модифицированный в предыдущем пункте скрипт UTLPWDMG.SQL от имени пользователя SYS.
После чего необходимо добавить её в наш профиль следующей командой:
Alter profile BANK_USERS limit PASSWORD_VERIFY_FUNCTION verify_function;
• Назначить каждому пользователю созданный профиль:
Alter user USERNAME set profile BANK_USERS;
Ссылки по теме