Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Перед реализацией кода, который защищает пароли, рекомендуется проанализировать определенную среду так, как злоумышленник может попытаться проникнуть в защиту программного обеспечения.
Начните с анализа сетевой или системной архитектуры. Ниже приведены некоторые примеры.
- Количество паролей, которые должны быть защищены. Требуется ли пароль для входа на локальный компьютер? Используется ли тот же пароль для входа в сеть? Распространяется ли пароль на несколько серверов в сети? Сколько паролей должно быть размещено?
- Тип сети (если таковой) будет использоваться. Реализуется ли сеть с помощью корпоративной системы каталогов (например, LDAP) и используется ли ее архитектура паролей? Хранятся ли какие-либо объекты, сохраняющие незашифрованные пароли?
- Открытие и закрытая сеть. Является ли сеть автономной или открыта ли она вне сети? Если да, он защищен брандмауэром?
- Удаленный доступ. Потребуется ли пользователям доступ к сети из удаленного расположения?
После анализа системы или сетевой архитектуры можно начать анализ того, как злоумышленник может попытаться атаковать его. Ниже приведены некоторые возможности.
- Чтение незашифрованного пароля из реестра компьютера.
- Прочитайте незашифрованный пароль, который жестко закодирован в программном обеспечении.
- Чтение незашифрованного пароля с переключения на переключённую кодовую страницу компьютера.
- Чтение пароля из журнала событий программы.
- Чтение пароля из расширенной схемы службы каталогов Microsoft Active Directory с объектами, содержащими пароль обычного текста.
- Запустите отладчик в программе, требующей пароля.
- Угадывание пароля. Можно использовать любой из нескольких методов. Например, злоумышленник может узнать некоторую личную информацию о пользователе и попытаться угадать пароль из этой информации (например, имя супруга или партнера или ребенка). Или метод подбора может быть попробован, где все сочетания букв, чисел и препинания пробуются (только возможно, если используются короткие пароли).
Современные векторы атак
Помимо классических угроз выше, современные злоумышленники используют все более сложные методы:
- Элементы учетных данных. Злоумышленники используют утечку учетных данных из нарушений данных в других службах, используя повторное использование пароля. Предположим, что пароли пользователей уже могут находиться в общедоступных базах данных нарушений.
- Pass-the-hash (PtH). Злоумышленник, получающий хэш паролей, может пройти проверку подлинности в службах, которые принимают NTLM без взлома самого пароля. Чтобы устранить проблему, отключите NTLM, где это возможно, и включите Credential Guard.
- Кража маркеров и воспроизведение. Злоумышленники украсть маркеры проверки подлинности (токены OAuth, билеты Kerberos, файлы cookie сеанса) из памяти или диска, а затем воспроизвести их, чтобы олицетворить пользователя без необходимости пароля.
- Фишинг и злоумышленник в середине (AitM). Фишинговые комплекты могут перехватывать коды многофакторной проверки подлинности в режиме реального времени. Фишинго-устойчивая проверка подлинности (FIDO2, на основе сертификатов) — это самая строгая контрмера.
- Атаки цепочки поставок на хранилища учетных данных. Злоумышленники нацелены на диспетчеры пакетов, средства разработки или конвейеры CI/CD для внедрения кода, который создает секреты во время сборки или во время выполнения.
- Очистка памяти. Вредоносные программы, работающие в том же сеансе, могут считывать память процесса для извлечения учетных данных обычного текста. Очистить секреты с помощью SecureZeroMemory и свести к минимуму учетные данные времени, удерживаемые в памяти.
Important
При оценке модели угроз паролей предположим, что злоумышленники имеют автоматизированные средства и могут уже иметь учетные данные из других нарушений. Глубинная защита (объединение строгой проверки подлинности, изоляции учетных данных и обнаружения) является важной.
Сравнение возможных методологий атак с системной или сетевой архитектурой, скорее всего, приведет к выявлению рисков безопасности. На этом этапе для каждого риска можно установить фактор риска, а факторы риска можно использовать для устранения ошибок.