1. Тестирование на проникновение
1.1. Описание метода
1.1.1. Тестирование на проникновение является основным методом оценки защищенности, охватывающим все аспекты функционирования подсистемы ИБ АБС, включая действия персонала по реагированию на инциденты ИБ и противодействие компьютерным атакам.
1.1.2. Достоинствами тестирования на проникновение как метода оценки защищенности являются:
- высокая достоверность сведений о выявленных уязвимостях за счет фактического подтверждения возможности их использования злоумышленником;
- достаточность результатов исследования для оценки критичности выявленных уязвимостей;
- наглядность получаемых результатов.
Недостатками тестирования на проникновение являются:
- способность исследователя воспроизводить только действия нарушителя, равного или уступающего по квалификации, как следствие - высокие требования к квалификации исследователя и низкая достоверность сведений об отсутствии уязвимостей;
- низкая степень автоматизации действий исследователя, как следствие - высокие трудозатраты по сравнению с другими способами оценки защищенности.
1.1.3. При тестировании на проникновение исследователь выполняет поиск уязвимостей АБС, воспроизводя действия злоумышленника. Перед началом работ для исследователя создаются условия, эквивалентные тем, в которых действует потенциальный злоумышленник. Условия проведения тестирования на проникновение различаются по следующим показателям:
- наличие прав доступа у исследователя в АБС;
- расположение исследователя относительно сетевого периметра защиты АБС;
- стратегия предоставления исследователю информации об АБС.
1.1.4. Тестирование на проникновения подразделяется на исследования с предоставлением доступа к АБС и без предоставления такого доступа. При исследовании с предоставлением доступа исследователю предоставляются учетные записи для доступа к АБС. При исследовании без предоставления доступа к АБС задача самостоятельного получения учетных записей пользователей АБС является составной частью тестирования на проникновение.
1.1.5. По расположению исследователя относительно сетевого периметра АБС тестирование на проникновение разделяется на внешнее и внутреннее. При внутреннем тестировании на проникновение исследователю предоставляется возможность подключения к телекоммуникационному оборудованию в точке, находящейся внутри сетевого периметра защиты организации БС РФ и обеспечивающей возможность сетевого взаимодействия с составными частями АБС. При внешнем тестировании на проникновение начальные действия исследователя ограничены только сетевыми протоколами взаимодействия с АБС, доступными извне сетевого периметра защиты организации БС РФ. При отсутствии в АБС интерфейсов для взаимодействия извне сетевого периметра задача самостоятельного преодоления сетевого периметра защиты организации БС РФ является составной частью тестирования на проникновение.
1.1.6. При тестировании на проникновение могут использоваться две стратегии предоставления исследователю информации об АБС. При стратегии черного ящика исследователь оперирует только теми сведениями об АБС, которые получены им самостоятельно в ходе тестирования на проникновение. При стратегии белого ящика исследователю заблаговременно предоставляется вся доступная информация об АБС, включая при наличии проектную и эксплуатационную документацию, исходные коды программных компонентов АБС и возможность просмотра параметров настройки компонентов АБС.
1.1.7. Рекомендуется проведение тестирования на проникновение только с уведомлением эксплуатирующего персонала организации БС РФ с исключением возможности активного противодействия исследователю.
1.1.8. Перед проведением тестирования на проникновение рекомендуется определить начальные условия его проведения. Рекомендуется учитывать, что максимальная полнота оценки достигается при внутреннем тестировании на проникновение с использованием предоставленного доступа к АБС и стратегией белого ящика. Тестирование на проникновение при таких начальных условиях рекомендуется проводить на стадии приемки и ввода в эксплуатацию, а также после каждой модернизации АБС.
1.1.9. Любые действия, выполнение которых способно причинить ущерб организации БС РФ, выполняются только после их подтверждения руководством организации БС РФ.
1.1.10. В ходе тестирования на проникновение возможно получение исследователем доступа к сведениям, охраняемым в соответствии с законодательством РФ и нормативными документами организации БС РФ. Трудовые договоры с работниками организации БС РФ, договоры оказания услуг с организациями, проводящими тестирование на проникновение, должны включать в себя:
- требование о сохранении конфиденциальности сведений, доступ к которым потенциально может быть получен в ходе тестирования на проникновение, в соответствии с законодательством РФ, в том числе нормативными актами Банка России и документами организации БС РФ;
- распределение и установление ответственности для случаев, когда выполнение действий в рамках тестирования на проникновение приведет к негативным последствиям и ущербу для организации БС РФ.
1.1.11. Отчет о тестировании на проникновение должен содержать:
- описание начальных условий исследования и постановку задачи;
- описание последовательности действий, которые приводили к выявлению уязвимостей или изменению возможностей исследователя, а также решения об отказе от выполнения запрашиваемых действий;
- описание выявленных уязвимостей, оценку степени их критичности для обеспечения ИБ организации БС РФ;
- рекомендации по устранению выявленных уязвимостей.
1.2. Содержание работ по тестированию на проникновение
1.2.1. Тестирование на проникновение включает в себя следующие направления исследований:
- оценка защищенности сетевого периметра, сетевых устройств и протоколов;
- оценка защищенности беспроводных сетей;
- оценка защищенности веб-приложений;
- оценка защищенности операционных систем;
- оценка защищенности систем управления базами данных (СУБД);
- оценка защищенности средств виртуализации;
- оценка защищенности специализированных банковских приложений;
- оценка защищенности мобильных устройств.
1.2.2. При проведении оценки защищенности сетевого периметра, сетевых устройств и протоколов рекомендуются следующие мероприятия:
- идентификация доступных исследователю сетевых устройств и протоколов взаимодействия;
- идентификация типов устройств, а также семейств и версий программного обеспечения, реализующего сетевые протоколы, на основе предоставляемой ими информации и особенностей их реакции на взаимодействие;
- поиск интерфейсов удаленного доступа и прочих интерфейсов взаимодействия, доступность которых из данной точки не предусмотрена требованиями ИБ организации БС РФ или практикой создания защищенных автоматизированных систем;
- проверка возможностей перенаправления сетевого трафика с использованием особенностей протоколов канального и сетевого уровня, протоколов автоматического взаимного согласования параметров телекоммуникационного оборудования, создания ложных сетевых служб автоматической адресации, разрешения имен, создания ложных сетевых служб;
- подбор данных аутентификации (имен пользователей, паролей, ключей) для доступа к сетевым службам на основе словарей стандартных и часто встречающихся значений;
- перехват и повторная отправка данных аутентификации;
- проверка возможности обхода средств защиты сетевого периметра путем изменения значимых полей сетевых пакетов, туннелирования и шифрования данных, перегрузки журналов событий СЗИ незначащей информацией;
- идентификация доступных веб-интерфейсов и нестандартных протоколов взаимодействия для последующего анализа.
1.2.3. При проведении оценки защищенности беспроводных сетей рекомендуются следующие мероприятия:
- прослушивание трафика, в том числе обнаружение доступных беспроводных сетевых устройств и их идентификаторов, определение текущей зоны радиовидимости, сбор информации о клиентских устройствах (например, MAC-адреса), сбор доступных идентификаторов сетей, определение применяемых алгоритмов шифрования;
- рассылка пробных запросов (например, для перебора идентификационных данных устройств) и анализ ответов на пробные запросы;
- выявление недостатков в настройке встроенных средств криптографической защиты беспроводных устройств;
- навязывание клиентским устройствам ложных точек доступа или дубликатов точек доступа.
1.2.4. При проведении оценки защищенности веб-приложений рекомендуются следующие мероприятия:
- выявление уязвимостей, связанных с раскрытием чувствительной информации о приложении, в том числе путем отправки некорректных сообщений, анализа стандартных системных сообщений об ошибках, поиска чувствительной информации в коде и комментариях веб-страниц;
- получение сведений о структуре файловой системы перебором путей и имен файлов (полный перебор, перебор по словарю, проверка наличия стандартных файлов используемых платформ и средств разработки, поиск резервных копий файлов);
- проверка корректности обработки специальных символов в параметрах запроса (символы форматирования вывода, перевода строки и возврата каретки, перехода в вышестоящий каталог, двойное URL-кодирование);
- проверка корректности обработки параметров различной длины;
- проверка корректности обработки числовых параметров, в том числе не предусмотренных технологией обработки больших величин, отрицательных и нулевых значений;
- проверка корректности приведения и преобразования типов параметров;
- проверка корректности обработки различного представления пользовательских данных, в том числе дублирование заголовков запроса, дублирование параметров сценария;
- проверка корректности обработки параметров универсального идентификатора ресурса (URI - uniform resource identifier), в том числе возможности подключения произвольного внешнего источника данных, или перенаправления на внешний или внутренний веб-сайт, возможности обращения к сетевым протоколам, возможности замены полного пути к ресурсу на относительный;
- проверка наличия ошибок, связанных с обработкой загружаемых файлов, в том числе с обработкой имен файлов без расширения, несоответствием расширения типу файла, альтернативными расширениями для файлов одного типа, специальными символами (включая нулевой символ) в имени файла;
- проверка корректности исполнения сценариев при манипулировании входными параметрами, в том числе атрибутами безопасности, используемыми при управлении доступом;
- проверка возможности подбора аутентификационных данных (паролей, включая словарные, идентификаторов сессий, атрибутов, используемых для восстановления паролей);
- проверка корректности обработки идентификаторов сессий пользователей, в том числе обработки событий завершения сессии, интервалов неактивности, сопоставление идентификатора сессии с дополнительными атрибутами, прямо или косвенно идентифицирующими пользователя или его рабочее место, предотвращение повторного и множественного использования идентификаторов сессий;
- проверка корректности реализации механизмов авторизации;
- проверка корректности противодействия атакам на клиентские приложения, в том числе с использованием межсайтового выполнения сценариев и подделки межсайтовых запросов;
- проверка корректности обработки входных параметров сценариев при внедрении в них команд операционных систем, синтаксических конструкций языков программирования и разметки;
- проверка невозможности обхода средств межсетевого экранирования прикладного уровня путем фрагментации данных, смешивания параметров, замены алгоритма кодирования и формата представления данных, замены специальных символов их альтернативными представлениями.
1.2.5. При проведении оценки защищенности операционных систем рекомендуются следующие мероприятия:
- идентификация сетевых служб операционной системы по типовым атрибутам (стандартные параметры сетевых протоколов, характерный отклик на установление соединения, характерные особенности реализации сетевых протоколов), наличия характерных служебных сообщений в сетевом трафике;
- проверка корректности ограничения доступа к сетевым службам операционной системы, в том числе с использованием анонимного/гостевого доступа, подбора паролей, перехвата и повторного/множественного использования авторизационных маркеров;
- проверка корректности противодействия подбору паролей, в том числе оценка возможности злоумышленника блокировать учетные записи пользователей множественными неуспешными попытками аутентификации;
- проверка возможности получения злоумышленником чувствительной информации с помощью служебных сетевых протоколов (SNMP, RPC, CIFS);
- проверка возможности реализации компьютерных атак с использованием уязвимостей сетевых служб, а для автоматизированных рабочих мест - и прикладного программного обеспечения.
При наличии у исследователя доступа к интерфейсам управления операционной системой оценка защищенности дополнительно включает в себя:
- возможность загрузки операционной системы в специальном режиме или с отчуждаемого носителя (при физическом доступе к средству вычислительной техники), а также загрузку операционной системы в специальном режиме (например, в режиме восстановления);
- получение имен пользователей;
- просмотр данных журналов регистрации событий и остаточной информации (удаленных файлов, образов оперативной памяти, сохраняемых при сбоях);
- поиск аутентификационных данных пользователей в остаточной информации, конфигурационных параметрах программного обеспечения, исходном коде приложений и скриптов;
- проверку возможности передачи управления операционной системой удаленному компьютеру с установлением реверсивного соединения и туннелированием сетевых протоколов;
- проверку возможности повышения привилегий с использованием локально эксплуатируемых уязвимостей и ошибок в настройке программного обеспечения;
- перенаправление и прослушивание сетевого трафика в доменах коллизий анализируемого средства вычислительной техники путем подделки таблиц протокола ARP, подложных серверов динамической конфигурации оборудования и разрешения имен.
1.2.6. При проведении оценки защищенности СУБД рекомендуются следующие мероприятия:
- проверка корректности функционирования механизмов идентификации, аутентификации и управления доступом при взаимодействии с интерфейсами управления СУБД, в том числе блокирования анонимного и гостевого доступа, отсутствие стандартных учетных записей и учетных записей со словарными паролями;
- проверка корректности обработки модифицированных входящих запросов, включая замену параметров протокола, вставку специальных символов и команд операционной системы в параметры входящих запросов языка SQL;
- эксплуатация уязвимостей в сетевых службах СУБД.
При наличии доступа к интерфейсам управления операционной системы и СУБД дополнительно проводятся:
- проверка корректности прав доступа к файлам СУБД;
- проверка контроля целостности исполняемых файлов СУБД, включая защиту от подмены файлов;
- поиск чувствительной информации (в том числе паролей пользователей) в служебных файлах (файлы баз данных, журналов, резервных копий, конфигурации, истории команд), а также переменных системных процессов СУБД;
- эксплуатация уязвимостей в хранимых процедурах, направленная на повышение привилегий, выполнение произвольных команд или прямой доступ к содержимому таблиц, изменение системных настроек;
- проверка возможности использования хранимых процедур для доступа к защищаемым объектам СУБД и операционной системы;
- проверка корректности обработки нестандартных значений параметров хранимых процедур (передача произвольных значений параметров, внедрение операторов SQL и команд PL/SQL, T-SQL, использование курсоров; передача значений параметров различной длины);
- проверка возможности чтения чувствительной информации приложений, включая восстановление паролей пользователей СУБД и приложений из хеш-значений.
1.2.7. При проведении оценки защищенности средств виртуализации рекомендуются мероприятия по проверке возможности доступа к интерфейсам управления средой виртуализации и защищаемым объектам, в том числе:
- проверка возможности подбора паролей к интерфейсам управления;
- проверка корректности прав доступа пользователей к объектам виртуализации, включая проверку возможности несанкционированного чтения и изменения виртуальных дисков, образов оперативной памяти, конфигурационных файлов и снимков виртуальных машин;
- использование уязвимостей гипервизора и средств управления средой виртуализации.
1.2.8. При проведении оценки защищенности специализированных банковских приложений рекомендуются следующие мероприятия:
- прослушивание сетевого трафика и поиск в нем чувствительной информации, включая пароли и хеш-значения паролей пользователей, идентификаторы сессий, авторизационные маркеры, криптографические ключи;
- запуск программ с различными параметрами, в том числе нестандартными, в том числе с использованием значений различной длины, дублирование отдельных параметров с присвоением им разных значений, включение в значения параметров специальных символов, команд операционной системы, операторов интерпретируемых языков программирования;
- мониторинг характера взаимодействия приложения с операционной системой в процессе функционирования, включая идентификацию файлов данных, содержащих чувствительную информацию, трассировку системных вызовов;
- проверка прав доступа к файлам данных, содержащим чувствительную информацию, а также контроль целостности исполняемых файлов приложения.
1.2.9. При проведении оценки защищенности мобильных устройств рекомендуются следующие мероприятия:
- проверка наличия чувствительной информации в файлах данных, журналах регистрации событий, в оперативной памяти устройства, а также передачи чувствительной информации в незашифрованном виде;
- проверка возможности чтения ключей шифрования и электронной подписи, а также записи и замены сертификатов ключей;
- идентификация протоколов взаимодействия и проверка возможности принудительного навязывания устройству использования незащищенных версий протоколов (HTTP вместо HTTPS, TELNET вместо SSH, SSH1 вместо SSH2);
- проверка корректности обработки мобильным приложением входящих параметров, в том числе с использованием значений различной длины, дублирование отдельных параметров с присвоением им разных значений, включение в значения параметров специальных символов, команд операционной системы, операторов интерпретируемых языков программирования.