Введение
Авторизованная кибератака для целей тестирования, тестирование компьютерных систем.
testing of computer systems
Тест на проникновение, в разговорной речи известный как pentest, – это санкционированная имитация кибератаки на компьютерную систему, выполняемая для оценки её безопасности; его не следует путать с оценкой уязвимостей. Тест проводится для выявления слабых мест (или уязвимостей), включая возможность несанкционированного доступа к функциям и данным системы, а также для определения сильных сторон, что позволяет провести полную оценку рисков. Процесс обычно включает определение целевых систем и конкретной цели, анализ доступной информации и применение различных методов для достижения этой цели. Объектом теста на проникновение может быть «белый ящик» (когда тестировщику заранее предоставляется информация о системе и её окружении) или «черный ящик» (когда предоставляется только базовая информация, кроме названия компании). Тест на проникновение в «сером ящике» представляет собой комбинацию этих двух подходов (когда аудитор обладает ограниченными знаниями о цели). Тест на проникновение помогает выявить уязвимости системы к атакам и оценить степень её подверженности риску. Отчеты о тестах на проникновение могут также оценивать потенциальное воздействие на организацию и предлагать меры по снижению рисков. Цели теста на проникновение варьируются в зависимости от типа утвержденной деятельности в рамках конкретного задания, при этом основная цель заключается в выявлении уязвимостей, которые могут быть использованы злоумышленником, и информировании клиента об этих уязвимостях вместе с рекомендуемыми стратегиями по их устранению. Тесты на проникновение являются частью комплексного аудита безопасности. Например, Стандарт безопасности данных индустрии платежных карт (PCI DSS) требует регулярного проведения тестов на проникновение, а также после внесения изменений в систему. Тестирование на проникновение также может поддерживать оценку рисков в соответствии с Рамкой управления рисками NIST SP 800-53. Существует несколько стандартных фреймворков и методологий для проведения тестов на проникновение, включая Open Source Security Testing Methodology Manual (OSSTMM), Penetration Testing Execution Standard (PTES), NIST Special Publication 800-115, Information System Security Assessment Framework (ISSAF) и OWASP Testing Guide. CREST, некоммерческая профессиональная организация в области технической кибербезопасности, предоставляет свой стандарт CREST Defensible Penetration Test, который предоставляет отрасли рекомендации по обеспечению разумной коммерческой уверенности при проведении тестов на проникновение. Методология гипотез об ошибках – это метод системного анализа и прогнозирования проникновения, при котором составляется список предполагаемых дефектов в программной системе на основе анализа спецификаций и документации. Затем список предполагаемых дефектов приоритизируется на основе оценки вероятности существования дефекта и простоты его эксплуатации для получения контроля или компрометации системы. Приоритетный список используется для направления фактического тестирования системы. Существуют различные типы тестирования на проникновение, в зависимости от целей организации, включая: сетевое (внешнее и внутреннее), беспроводное, веб-приложения, социальная инженерия и проверка эффективности мер по устранению уязвимостей.
Уязвимости
Операции, позволяющие тестировщику выполнить недопустимое действие, включают необработанные SQL-команды, неизмененные хешированные пароли в проектах с открытым исходным кодом, человеческий фактор и устаревшие функции хеширования или шифрования. Одной уязвимости может быть недостаточно для реализации критически серьезной атаки. Как правило, требуется использование нескольких известных уязвимостей и формирование полезной нагрузки таким образом, чтобы она выглядела как допустимая операция. Metasploit предоставляет библиотеку Ruby для выполнения общих задач и поддерживает базу данных известных эксплойтов. При ограниченном бюджете и времени фаззинг является распространенным методом обнаружения уязвимостей. Он направлен на получение необработанной ошибки посредством случайного ввода. Тестировщик использует случайные данные для доступа к редко используемым участкам кода. Хорошо протестированные участки кода обычно не содержат ошибок. Ошибки полезны, поскольку они либо раскрывают дополнительную информацию, например, сбои HTTP-сервера с подробным трассировкой стека, либо могут быть использованы напрямую, например, переполнение буфера. Представьте себе веб-сайт со 100 текстовыми полями ввода. Некоторые из них уязвимы к SQL-инъекциям при определенных строках. Отправка случайных строк в эти поля в течение некоторого времени может привести к срабатыванию уязвимого участка кода. Ошибка проявляется в виде неполностью отрисованной HTML-страницы из-за ошибки SQL. В этом случае в качестве потоков ввода рассматриваются только текстовые поля. Однако программные системы имеют множество возможных потоков ввода, таких как cookie и данные сессии, поток загружаемых файлов, каналы RPC или память. Ошибки могут возникать в любом из этих потоков ввода. Цель тестирования – сначала получить необработанную ошибку, а затем понять суть уязвимости на основе неудачного тестового случая. Тестировщики разрабатывают автоматизированный инструмент для проверки своего понимания уязвимости до тех пор, пока оно не станет верным. После этого может стать очевидным, как сформировать полезную нагрузку, чтобы целевая система выполнила ее. Если это невозможно, можно надеяться, что другая ошибка, обнаруженная фаззером, принесет больше результатов. Использование фаззера экономит время, позволяя не проверять хорошо протестированные участки кода, где вероятность эксплуатации уязвимостей невелика.
Стандартные услуги государственных проникновений
Управление общего обслуживания (GSA) стандартизировало услугу "тестирования на проникновение" как предварительно проверенную службу поддержки для оперативного устранения потенциальных уязвимостей и предотвращения атак на федеральные, штатные и местные органы власти США. Эти услуги обычно называют высокоадаптивными службами кибербезопасности (Highly Adaptive Cybersecurity Services, HACS) и они перечислены на веб-сайте GSA Advantage. В рамках этой инициативы были определены ключевые поставщики услуг, прошедшие техническую оценку и проверку для предоставления этих передовых услуг по тестированию на проникновение. Данная услуга GSA призвана упростить и ускорить процесс заказа и развертывания этих услуг, сократить дублирование государственных контрактов и обеспечить более своевременную и эффективную защиту и поддержку инфраструктуры США. 45A Тестирование на проникновение – это вид тестирования безопасности, при котором специалисты по оценке безопасности имитируют реальные атаки для выявления способов обхода средств защиты приложения, системы или сети. Услуги тестирования на проникновение HACS обычно стратегически оценивают эффективность превентивных и детективных мер безопасности, используемых организацией для защиты активов и данных. В рамках этой услуги сертифицированные этичные хакеры, как правило, проводят имитацию атаки на систему, системы, приложения или другие объекты в среде, выявляя слабые места в системе безопасности. После тестирования они обычно документируют обнаруженные уязвимости и описывают, какие средства защиты эффективны, а какие могут быть обойдены или использованы злоумышленниками. В Великобритании услуги тестирования на проникновение стандартизированы профессиональными организациями, работающими в сотрудничестве с Национальным центром кибербезопасности. Результаты тестирования на проникновение варьируются в зависимости от используемых стандартов и методологий. Существует пять стандартов тестирования на проникновение: Open Source Security Testing Methodology Manual (OSSTMM), Open Web Application Security Project (OWASP), Национальный институт стандартов и технологий (NIST), Рамочная система оценки безопасности информационных систем (ISSAF) и Методологии и стандарты тестирования на проникновение (PTES).