Оценка угроз паролей
Перед реализацией кода, который защищает пароли, рекомендуется проанализировать определенную среду так, как злоумышленник может попытаться проникнуть в защиту программного обеспечения.
Начните с анализа сетевой или системной архитектуры. Ниже приведены некоторые примеры.
- Количество паролей, которые должны быть защищены. Требуется ли пароль для входа на локальный компьютер? Используется ли тот же пароль для входа в сеть? Распространяется ли пароль на несколько серверов в сети? Сколько паролей должно быть размещено?
- Тип сети (если таковой) будет использоваться. Реализуется ли сеть с помощью корпоративной системы каталогов (например, LDAP) и используется ли ее архитектура паролей? Хранятся ли какие-либо объекты, сохраняющие незашифрованные пароли?
- Открытие и закрытая сеть. Является ли сеть автономной или открыта ли она вне сети? Если да, он защищен брандмауэром?
- Удаленный доступ. Потребуется ли пользователям доступ к сети из удаленного расположения?
После анализа системы или сетевой архитектуры можно начать анализ того, как злоумышленник может попытаться атаковать его. Ниже приведены некоторые возможности.
- Чтение незашифрованного пароля из реестра компьютера.
- Прочитайте незашифрованный пароль, который жестко закодирован в программном обеспечении.
- Чтение незашифрованного пароля с переключения на переключённую кодовую страницу компьютера.
- Чтение пароля из журнала событий программы.
- Чтение пароля из расширенной схемы службы каталогов Microsoft Active Directory с объектами, содержащими пароль обычного текста.
- Запустите отладчик в программе, требующей пароля.
- Угадывание пароля. Можно использовать любой из нескольких методов. Например, злоумышленник может узнать некоторую личную информацию о пользователе и попытаться угадать пароль из этой информации (например, имя супруга или партнера или ребенка). Или метод подбора может быть попробован, где все сочетания букв, чисел и препинания пробуются (только возможно, если используются короткие пароли).
Сравнение возможных методологий атак с системной или сетевой архитектурой, скорее всего, приведет к выявлению рисков безопасности. На этом этапе для каждого риска можно установить фактор риска, а факторы риска можно использовать для устранения ошибок.