stringtranslate.com

Тест на проникновение

Тест на проникновение , в просторечии известный как пентест , представляет собой санкционированную имитацию кибератаки на компьютерную систему, проводимую для оценки безопасности системы; [1] ее не следует путать с оценкой уязвимости . [2] Тест проводится для выявления слабых сторон (или уязвимостей ), включая возможность несанкционированного доступа к функциям и данным системы, [3] [4], а также сильных сторон, [5] что позволяет провести полную оценку риска .

Процесс обычно определяет целевые системы и конкретную цель, затем просматривает имеющуюся информацию и предпринимает различные меры для достижения этой цели. Целью теста на проникновение может быть белый ящик (о котором предыстория и системная информация предоставляются тестировщику заранее) или черный ящик (о котором предоставляется только основная информация, кроме названия компании). Тест на проникновение серого ящика представляет собой комбинацию этих двух (где ограниченные знания о цели сообщаются аудитору). [6] Тест на проникновение может помочь выявить уязвимости системы для атаки и оценить, насколько она уязвима. [7] [5]

О проблемах безопасности, которые выявляются в ходе теста на проникновение, следует сообщать владельцу системы. [8] Отчеты о тестах на проникновение могут также оценивать потенциальное воздействие на организацию и предлагать контрмеры для снижения риска. [8]

Национальный центр кибербезопасности Великобритании описывает тестирование на проникновение как: «Метод получения уверенности в безопасности ИТ-системы путем попытки взлома части или всей безопасности этой системы с использованием тех же инструментов и методов, которые может использовать противник». [9]

Цели теста на проникновение различаются в зависимости от типа одобренной деятельности для любого конкретного взаимодействия, при этом основная цель сосредоточена на поиске уязвимостей, которые могут быть использованы злоумышленником, и информировании клиента об этих уязвимостях вместе с рекомендуемыми стратегиями смягчения последствий. [10]

Тесты на проникновение являются компонентом полного аудита безопасности . Например, Стандарт безопасности данных индустрии платежных карт требует проведения тестирования на проникновение по регулярному графику и после изменений в системе. [11] Тесты на проникновение также могут поддерживать оценку рисков, как указано в NIST Risk Management Framework SP 800-53. [12]

Существует несколько стандартных фреймворков и методологий для проведения тестов на проникновение. К ним относятся 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, который предоставляет отрасли руководство для коммерчески обоснованной деятельности по обеспечению безопасности при проведении тестов на проникновение. [13]

Методология гипотезы дефекта — это метод системного анализа и прогнозирования проникновения, при котором список предполагаемых дефектов в программной системе составляется путем анализа спецификаций и документации для системы. Затем список предполагаемых дефектов ранжируется по приоритетам на основе предполагаемой вероятности того, что дефект действительно существует, и по простоте его эксплуатации в степени контроля или компрометации. Приоритезированный список используется для руководства фактическим тестированием системы.

Существуют различные типы тестирования на проникновение в зависимости от целей организации, в том числе: сетевое (внешнее и внутреннее), беспроводное, веб-приложений, социальная инженерия и проверка на предмет устранения уязвимостей.

История

К середине 1960-х годов растущая популярность систем разделения времени , которые делали ресурсы доступными по линиям связи, создала новые проблемы безопасности. Как объясняют ученые Дебора Рассел и Г. Т. Гангеми-старший, «1960-е годы ознаменовали истинное начало эпохи компьютерной безопасности». [14] : 27 

Например, в июне 1965 года несколько ведущих экспертов США по компьютерной безопасности провели одну из первых крупных конференций по безопасности систем, организованную государственным подрядчиком System Development Corporation (SDC). Во время конференции кто-то заметил, что один сотрудник SDC смог легко подорвать различные системные защитные меры, добавленные к компьютерной системе разделения времени AN/FSQ-32 SDC . В надежде, что дальнейшее изучение безопасности системы будет полезным, участники запросили «...исследования, которые будут проведены в таких областях, как взлом защиты безопасности в системе разделения времени». Другими словами, участники конференции инициировали один из первых официальных запросов на использование проникновения в компьютер в качестве инструмента для изучения безопасности системы. [15] : 7–8 

На весенней конференции Joint Computer Conference 1967 года многие ведущие специалисты по компьютерам снова встретились, чтобы обсудить проблемы безопасности систем. Во время этой конференции эксперты по компьютерной безопасности Уиллис Уэр , Гарольд Петерсен и Рейн Терн, все из RAND Corporation , и Бернард Петерс из Агентства национальной безопасности (АНБ) использовали фразу «проникновение» для описания атаки на компьютерную систему. В своей статье Уэр сослался на военные системы с удаленным доступом и разделением времени, предупредив, что «необходимо предвидеть преднамеренные попытки проникновения в такие компьютерные системы». Его коллеги Петерсен и Терн разделяли те же опасения, отмечая, что системы онлайн-коммуникаций «...уязвимы для угроз конфиденциальности», включая «преднамеренное проникновение». Бернард Петерс из АНБ высказал ту же точку зрения, настаивая на том, что компьютерный ввод и вывод «... могут предоставить большие объемы информации для проникающей программы». Во время конференции компьютерное проникновение было официально определено как серьезная угроза для онлайн-компьютерных систем. [15] : 8 

Угроза, которую представляло компьютерное проникновение, была затем изложена в крупном отчете, организованном Министерством обороны США (DoD) в конце 1967 года. По сути, должностные лица DoD обратились к Уиллису Уэйру с просьбой возглавить целевую группу экспертов из АНБ, ЦРУ , DoD, академических кругов и промышленности для официальной оценки безопасности компьютерных систем с разделением времени. Опираясь на множество документов, представленных на Совместной компьютерной конференции весной 1967 года, целевая группа в значительной степени подтвердила угрозу безопасности системы, которую представляло компьютерное проникновение. Первоначально отчет Уэйра был засекречен, но многие ведущие компьютерные эксперты страны быстро определили исследование как окончательный документ по компьютерной безопасности. [15] Джеффри Р. Йост из Института Чарльза Бэббиджа совсем недавно описал отчет Уэйра как «... безусловно, самое важное и тщательное исследование технических и эксплуатационных вопросов, касающихся защищенных вычислительных систем того времени». [16] По сути, отчет Уэйра подтвердил серьезную угрозу, которую представляло компьютерное проникновение для новых онлайновых компьютерных систем с разделением времени.

Чтобы лучше понять слабые места системы, федеральное правительство и его подрядчики вскоре начали организовывать команды взломщиков, известные как команды тигров , для использования компьютерного проникновения для проверки безопасности системы. Дебора Рассел и Г. Т. Гангеми-старший заявили, что в 1970-х годах «... команды тигров впервые появились на компьютерной сцене. Команды тигров были спонсируемыми правительством и промышленностью командами взломщиков, которые пытались сломать защиту компьютерных систем в попытке обнаружить и в конечном итоге залатать дыры в безопасности». [14] : 29 

Ведущий ученый по истории компьютерной безопасности Дональд Маккензи также отмечает, что «RAND провела несколько исследований проникновения (экспериментов по обходу средств контроля компьютерной безопасности) ранних систем с разделением времени по поручению правительства». [17] [18] Джеффри Р. Йост из Института Чарльза Бэббиджа в своей собственной работе по истории компьютерной безопасности также признает, что и RAND Corporation, и SDC «участвовали в некоторых из первых так называемых «исследований проникновения», чтобы попытаться проникнуть в системы с разделением времени, чтобы проверить их уязвимость». [16] Практически во всех этих ранних исследованиях команды тигров успешно проникали во все целевые компьютерные системы, поскольку системы с разделением времени страны имели слабую защиту.

Из ранних действий команды тигров усилия в RAND Corporation продемонстрировали полезность проникновения как инструмента оценки безопасности системы. В то время один аналитик RAND отметил, что тесты «...продемонстрировали практичность проникновения в систему как инструмента оценки эффективности и адекватности реализованных мер безопасности данных». Кроме того, ряд аналитиков RAND настаивали на том, что все упражнения по тестированию на проникновение предлагают несколько преимуществ, которые оправдывают его дальнейшее использование. Как они отметили в одной из статей, «Кажется, что у проникающего развивается дьявольское настроение в его поиске слабостей и неполноты операционной системы, которое трудно имитировать». По этим и другим причинам многие аналитики RAND рекомендовали продолжить изучение методов проникновения на предмет их полезности для оценки безопасности системы. [15] : 9 

Вероятно, ведущим экспертом по компьютерному проникновению в эти годы становления был Джеймс П. Андерсон, который работал с АНБ, RAND и другими правительственными агентствами по изучению безопасности систем. В начале 1971 года ВВС США заключили контракт с частной компанией Андерсона на изучение безопасности своей системы разделения времени в Пентагоне. В своем исследовании Андерсон выделил ряд основных факторов, связанных с компьютерным проникновением. Андерсон описал общую последовательность атаки по шагам:

  1. Найдите уязвимость, которую можно использовать.
  2. Разработайте атаку вокруг этого.
  3. Протестируйте атаку.
  4. Захватите используемую линию.
  5. Вступайте в атаку.
  6. Используйте запись для восстановления информации.

Со временем описание Андерсоном общих шагов проникновения в компьютер помогло многим другим экспертам по безопасности, которые полагались на эту технику для оценки безопасности компьютерных систем с разделением времени. [15] : 9 

В последующие годы компьютерное проникновение как инструмент оценки безопасности стало более утонченным и сложным. В начале 1980-х годов журналист Уильям Брод кратко подвел итог продолжающимся усилиям команд-тигров по оценке безопасности систем. Как сообщал Брод, спонсируемый Министерством обороны отчет Уиллиса Уэра «...показал, как шпионы могут активно проникать в компьютеры, красть или копировать электронные файлы и подрывать устройства, которые обычно охраняют совершенно секретную информацию. Исследование положило начало более чем десятилетней тихой деятельности элитных групп компьютерных ученых, работающих на правительство, которые пытались взломать конфиденциальные компьютеры. Они преуспели в каждой попытке». [19]

Хотя эти различные исследования могли предполагать, что компьютерная безопасность в США остается серьезной проблемой, ученый Эдвард Хант недавно высказал более широкую точку зрения о широком изучении проникновения в компьютер как инструмента безопасности. Хант предполагает в недавней статье об истории тестирования на проникновение, что оборонное учреждение в конечном итоге «...создало многие инструменты, используемые в современной кибервойне», поскольку оно тщательно определило и исследовало множество способов, которыми компьютерные нарушители могли взломать целевые системы. [15] : 5 

Инструменты

Для помощи в тестировании на проникновение доступен широкий спектр инструментов оценки безопасности , включая бесплатное, свободно распространяемое и коммерческое программное обеспечение .

Специализированные дистрибутивы ОС

Несколько дистрибутивов операционных систем ориентированы на тестирование на проникновение. [20] Такие дистрибутивы обычно содержат предварительно упакованный и предварительно настроенный набор инструментов. Тестировщику на проникновение не нужно выслеживать каждый отдельный инструмент, что может увеличить риск осложнений, таких как ошибки компиляции, проблемы с зависимостями и ошибки конфигурации. Кроме того, приобретение дополнительных инструментов может быть непрактичным в контексте тестировщика.

Известные примеры ОС для тестирования на проникновение включают в себя:

Проведение тестирования на проникновение облегчают и многие другие специализированные операционные системы, каждая из которых в большей или меньшей степени посвящена определенной области тестирования на проникновение.

Ряд дистрибутивов Linux включают известные уязвимости ОС и приложений и могут быть развернуты в качестве целей для практики. Такие системы помогают новым специалистам по безопасности опробовать новейшие инструменты безопасности в лабораторной среде. Примерами являются Damn Vulnerable Linux (DVL), OWASP Web Testing Environment (WTW) и Metasploitable.

Фреймворки программного обеспечения

Фазы тестирования на проникновение

Процесс тестирования на проникновение можно упростить до следующих пяти этапов:

  1. Разведка: Акт сбора важной информации о целевой системе. Эта информация может быть использована для более эффективной атаки на цель. Например, поисковые системы с открытым исходным кодом могут быть использованы для поиска данных, которые могут быть использованы в атаке социальной инженерии .
  2. Сканирование: Использует технические инструменты для расширения знаний злоумышленника о системе. Например, Nmap может использоваться для сканирования открытых портов.
  3. Получение доступа: Используя данные, собранные на этапах разведки и сканирования, злоумышленник может использовать полезную нагрузку для эксплуатации целевой системы. Например, Metasploit может использоваться для автоматизации атак на известные уязвимости.
  4. Поддержание доступа: Поддержание доступа требует принятия мер, позволяющих постоянно находиться в целевой среде, чтобы собрать как можно больше данных.
  5. Заметание следов: злоумышленник должен удалить все следы взлома системы жертвы, любые собранные данные, журналы событий, чтобы сохранить анонимность. [21]

После того, как злоумышленник использовал одну уязвимость, он может получить доступ к другим машинам, поэтому процесс повторяется, т. е. он ищет новые уязвимости и пытается их использовать. Этот процесс называется поворотом.

Уязвимости

Легальные операции, которые позволяют тестировщику выполнить нелегальную операцию, включают неэкранированные команды SQL, неизмененные хешированные пароли в проектах, видимых из источника, человеческие отношения и старые хеширующие или криптографические функции. Одного недостатка может быть недостаточно для включения критически серьезного эксплойта. Почти всегда требуется использовать несколько известных недостатков и формировать полезную нагрузку таким образом, чтобы она выглядела как допустимая операция. Metasploit предоставляет библиотеку Ruby для общих задач и поддерживает базу данных известных эксплойтов.

При работе в условиях ограниченного бюджета и времени фаззинг является распространенной техникой, которая обнаруживает уязвимости. Он направлен на получение необработанной ошибки с помощью случайного ввода. Тестировщик использует случайный ввод для доступа к менее часто используемым путям кода. Хорошо известные пути кода обычно не содержат ошибок. Ошибки полезны, поскольку они либо раскрывают больше информации, например сбои HTTP-сервера с полной информацией трассировки, либо могут быть использованы напрямую, например переполнение буфера .

Представьте себе веб-сайт с 100 текстовыми полями ввода. Некоторые из них уязвимы для SQL-инъекций в определенных строках. Отправка случайных строк в эти поля в течение некоторого времени, как можно надеяться, попадет на ошибочный путь кода. Ошибка проявляется как сломанная HTML-страница, наполовину отрисованная из-за ошибки SQL. В этом случае только текстовые поля рассматриваются как входные потоки. Однако программные системы имеют множество возможных входных потоков, таких как данные cookie и сеанса, поток загруженных файлов, каналы RPC или память. Ошибки могут возникать в любом из этих входных потоков. Цель теста — сначала получить необработанную ошибку, а затем понять недостаток на основе неудачного тестового случая. Тестировщики пишут автоматизированный инструмент для проверки своего понимания недостатка, пока он не будет исправлен. После этого может стать очевидным, как упаковать полезную нагрузку, чтобы целевая система инициировала ее выполнение. Если это невыполнимо, можно надеяться, что другая ошибка, произведенная фаззером, принесет больше плодов. Использование фаззера экономит время, не проверяя адекватные пути кода, где эксплойты маловероятны.

Полезная нагрузка

Незаконная операция, или полезная нагрузка в терминологии Metasploit, может включать функции для регистрации нажатий клавиш, снятия скриншотов, установки рекламного ПО , кражи учетных данных, создания бэкдоров с использованием шелл-кода или изменения данных. Некоторые компании поддерживают большие базы данных известных эксплойтов и предоставляют продукты, которые автоматически проверяют целевые системы на уязвимости:

Стандартизированные государственные услуги по тестированию на проникновение

Администрация общих служб (GSA) стандартизировала услугу «теста на проникновение» как предварительно проверенную службу поддержки, чтобы быстро устранять потенциальные уязвимости и останавливать злоумышленников до того, как они повлияют на федеральные, государственные и местные органы власти США. Эти услуги обычно называют высокоадаптивными службами кибербезопасности (HACS), и они перечислены на веб-сайте US GSA Advantage. [22]

Эти усилия определили ключевых поставщиков услуг, которые были технически проверены и проверены для предоставления этих передовых услуг проникновения. Эта услуга GSA предназначена для улучшения быстрого заказа и развертывания этих услуг, сокращения дублирования контрактов правительства США, а также для защиты и поддержки инфраструктуры США более своевременным и эффективным образом.

132-45A Penetration Testing [23] — это тестирование безопасности, в котором оценщики услуг имитируют реальные атаки для выявления методов обхода функций безопасности приложения, системы или сети. Услуги HACS Penetration Testing Services обычно стратегически проверяют эффективность профилактических и детективных мер безопасности организации, используемых для защиты активов и данных. В рамках этой услуги сертифицированные этичные хакеры обычно проводят имитацию атаки на систему, системы, приложения или другую цель в среде, ища слабые места безопасности. После тестирования они обычно документируют уязвимости и описывают, какие защиты эффективны, а какие можно преодолеть или использовать.

В Великобритании услуги по тестированию на проникновение стандартизируются профессиональными организациями, работающими в сотрудничестве с Национальным центром кибербезопасности.

Результаты тестов на проникновение различаются в зависимости от используемых стандартов и методологий. Существует пять стандартов тестирования на проникновение: Open Source Security Testing Methodology Manual [24] (OSSTMM), Open Web Application Security Project (OWASP), National Institute of Standards and Technology (NIST00), Information System Security Assessment Framework (ISSAF) и Penetration Testing Methodologies and Standards (PTES).

Смотрите также

Общие ссылки

Ссылки

  1. ^ "Что такое тестирование на проникновение?" . Получено 18.12.2018 .
  2. ^ "В чем разница между оценкой уязвимости и тестом на проникновение?" . Получено 21.05.2020 .
  3. ^ Руководство по подготовке к CISSP® и CAPCM: Платиновое издание . John Wiley & Sons. 2006-11-06. ISBN 978-0-470-00792-1. Тест на проникновение может определить, как система реагирует на атаку, можно ли взломать защиту системы и какую информацию можно получить из системы.
  4. ^ Кевин М. Генри (2012). Тестирование на проникновение: защита сетей и систем . IT Governance Ltd. ISBN 978-1-849-28371-7. Тестирование на проникновение — это моделирование атаки на систему, сеть, часть оборудования или другой объект с целью доказать, насколько уязвимой будет эта система или «цель» для реальной атаки.
  5. ^ ab Cris Thomas (Space Rogue), Dan Patterson (2017). Взлом пароля — это просто с помощью Space Rogue от IBM (видео). CBS Interactive . Событие происходит в 4:30-5:30 . Получено 1 декабря 2017 г.
  6. ^ "Объяснение типов тестирования проникновения". 2017-06-09 . Получено 2018-10-23 .
  7. ^ "Тестирование на проникновение: оценка общей безопасности до того, как это сделают злоумышленники" (pdf) . Институт SANS . Архивировано из оригинала 27 февраля 2014 г. . Получено 16 января 2014 г. .
  8. ^ ab "Написание отчета о тестировании на проникновение". Институт SANS . Получено 12 января 2015 г.
  9. ^ "Тестирование на проникновение". NCSC . Август 2017. Получено 30 октября 2018 .
  10. ^ Патрик Энгебретсон, Основы взлома и тестирования на проникновение Архивировано 04.01.2017 в Wayback Machine , Elsevier, 2013
  11. ^ Алан Колдер и Герайнт Уильямс (2014). PCI DSS: Карманный справочник, 3-е издание . IT Governance Limited. ISBN 978-1-84928-554-4. сканирование уязвимостей сети не реже одного раза в квартал и после любого существенного изменения в сети
  12. ^ "NIST Risk Management Framework". NIST . 2020. Архивировано из оригинала 6 мая 2021 г.
  13. ^ "CREST выпускает руководство по тестированию на проникновение". IntelligentCISO . 2022.
  14. ^ ab Рассел, Дебора; Гангеми, Г.Т. (1991). Основы компьютерной безопасности . O'Reilly Media Inc. ISBN 9780937175712.
  15. ^ abcdef Хант, Эдвард (2012). «Программы проникновения в компьютеры правительства США и их последствия для кибервойны». IEEE Annals of the History of Computing . 34 (3): 4–21. doi :10.1109/MAHC.2011.82. S2CID  16367311.
  16. ^ аб Йост, Джеффри Р. (2007). де Леу, Карл; Бергстра, Ян (ред.).История стандартов компьютерной безопасности , в книге «История информационной безопасности: всеобъемлющее руководство» . Elsevier. С. 601–602.
  17. ^ Маккензи, Дональд; Поттингер, Гаррель (1997). «Математика, технология и доверие: формальная проверка, компьютерная безопасность и армия США». IEEE Annals of the History of Computing . 19 (3): 41–59. doi :10.1109/85.601735.
  18. ^ Маккензи, Дональд А. (2004). Механизация доказательства: вычисления, риск и доверие. Массачусетский технологический институт . стр. 156. ISBN 978-0-262-13393-7.
  19. ^ Брод, Уильям Дж. (25 сентября 1983 г.). «Компьютерная безопасность беспокоит военных экспертов», The New York Times
  20. ^ Фэрклот, Джереми (2011). "Глава 1: Инструменты торговли" (PDF) . Набор инструментов с открытым исходным кодом для тестировщика на проникновение (третье изд.). Elsevier . ISBN 978-1597496278. Получено 4 января 2018 г.[ нужна цитата для проверки ]
  21. ^ "Summarizing The Five Phases of Penetration Testing - Cybrary". Cybrary . 2015-05-06. Архивировано из оригинала 8 апреля 2019 года . Получено 2018-06-25 .
  22. ^ "GSA HACS SIN 132-45 Services". 1 марта 2018 г. Архивировано из оригинала 23 марта 2019 г. Получено 1 марта 2018 г.
  23. ^ "Pen Testing Services". 1 марта 2018 г. Архивировано из оригинала 26 июня 2018 г. Получено 1 марта 2018 г.
  24. ^ «Руководство по методологии тестирования безопасности с открытым исходным кодом — обзор | Темы ScienceDirect». www.sciencedirect.com . Получено 13 октября 2021 г.
  25. ^ "Полное руководство по тестированию на проникновение | Core Sentinel". Core Sentinel . Получено 23.10.2018 .