У 1967 році експерти з комп’ютерної безпеки з корпорації Rand, Вілліс Варе, Рейн Терн, Гарольд Петерсен і Бенард Пітерс, працювали над доповіддю після спільної комп’ютерної конференції, в якій було заявлено, що середовища зв’язку між комп’ютерами легко пробити.
Було створено перше в історії проникнення для злому комп’ютерної безпеки. І завдяки цьому Джеймс П. Андерсон розробив покроковий підхід, який ліг в основу тестування на проникнення.
Структура була простою; групи безпеки проходитимуть кілька етапів: від виявлення вразливості до розробки способів протидії їй. Ось коротко історія тестування на проникнення.
Використовувати безпеку компанії непросто і вимагає навичок і часу. Але завдяки сучасним технологіям зловмисникам легко знайти вразливі місця вашої організації. Проникнення спрямовані на активи компанії, видимі в Інтернеті (наприклад, веб-додаток, веб-сайт, сервери доменних імен (DNS) і електронні листи), щоб отримати доступ і отримати цінні дані.
Використовуючи тести на проникнення, ваше підприємство може ідентифікувати та посилити можливу поверхню атак перед використанням. Дослідження підтверджують це: масовий 73% успішних порушень пройшли через проникнення в веб-програми через їх вразливі місця.
Але як ніколи раніше організаціям необхідно перевіряти безпеку своїх програм, систем і мереж. Запуск імітаційних тестів є ефективним способом ратифікації безпеки системи та заходів контролю. Це не разова діяльність, а регулярна. Частота перевірок залежить від організаційної структури вашої компанії та ризиків, виявлених під час оцінювання.
На щастя, тести на проникнення не є складними. Оснастивши ваші ІТ-команди необхідними навичками, ваша організація зможе постійно впроваджувати безпеку, особливо під час значних оновлень інфраструктури або впровадження нових цифрових послуг і активів.
І все починається з розуміння суті процесу.
Що таке тестування на проникнення?
Перш ніж занурюватися в те, як, найкраще відповісти, що і чому. Тести на проникнення (часто скорочені як pen tests) — це офіційно прийнята кібератака, націлена на фірми в безпечному та контрольованому середовищі.
Змішані з аудитами безпеки, тести пера прагнуть виявити вразливі місця в керованому масштабі середовища організації. Тактично тести мають подібний підхід до того, що виконує хакер. Деякі основні причини, чому вашому підприємству потрібні перо-тести, включають:
- Виявлення прихованих вразливостей перед зловмисниками.
- Посилення процесів і стратегій безпеки.
- Зниження витрат на відновлення та скорочення часу перебування.
- Дотримання нормативних вимог щодо безпеки та конфіденційності.
- Збереження репутації вашого бренду та збереження лояльності клієнтів.
Перевірки перевіряють стан вашого підприємства (стійкість до атак) і демонструють легкість, з якою хакери зламують ваші системи. Крім того, зібрана інформація може бути корисною для ієрархізації інвестицій у кібербезпеку, дотримання галузевих стандартів і вдосконалення захисних стратегій для захисту вашої компанії від ймовірних загроз. Але все це можливо завдяки автоматизованим інструментам тестування, які називаються інструментами проникнення.
Що таке Pen Test Tools?
Етичний хакер використовує інструменти для перевірки пера, щоб оцінити стійкість обчислювальної інфраструктури шляхом моделювання світових атак. Використовуючи ці інструменти, служби безпеки можуть усунути повторне тестування, швидше створювати звіти про тестування та зменшувати вартість кількох сканерів.
Як ви вже здогадалися, існує багато типів: з відкритим кодом, веб-програма, мережа, мобільна програма, хмара, ручне, автоматизоване та тестування на проникнення як послуга. Як би їх не було багато, найкраще було б шукати такі ключові функції, як звіти, які можна зробити, інтеграція CI/CD, підтримка виправлення та сертифікати тесту пера (лише деякі з них пропонуватимуть загальнодоступні сертифікати тесту пера).
Маючи цю основу, давайте розберемо процес тестування на проникнення.
Етапи тестування на проникнення
У типовому тесті на проникнення ви знайдете кілька етапів. Хоча різні ресурси забезпечать процес на різних етапах, загальна структура не зміниться. Процес передбачає розвідку, сканування, оцінку вразливостей, використання та звітування.
Знову ж таки, найкращі тестувальники знайомляться з багатьма інструментами, щоб використовувати правильний інструмент на кожному етапі тестування. Кожну віху процесу можна сприйняти наступним чином.
Збір інформації
Цей етап, який часто залишають поза увагою, допомагає вашій організації знайти спільну мову з тестером пера. На цьому етапі ви визначаєте обсяг роботи, правила залучення, часові рамки та точну логістику з чіткими цілями та завданнями.
Щоб отримати повний і корисний тест пера, цей етап допоможе вам зрозуміти області, які потребують тестування, і найкращі методи. Будучи кроком для початківців, ви завжди хотіли б не пропустити це.
Перед тестуванням системи організація повинна дати згоду тестувальнику. Інакше його дії можна вважати протиправними. Організації встановлюють чіткі правила (у договорі) для плавного робочого процесу під час залучення тестувальників. В угоді також мають бути описані критичні активи, цілі тестування та запобіжні заходи. Крім того, цей крок впливає на всі наступні дії. До кінця всі плани узгоджуються з очікуваними результатами тестування.
Розвідка/OSINT-збір
На цьому етапі тестувальники збирають всю доступну інформацію про систему. Отримані дані прив’язуються до наступних тестів і керуються результатами першого кроку. Таким чином, тестувальники отримують точні відомості про дані, які потрібно зібрати, і стратегії для реалізації. Якщо ви обираєте активну розвідку, випробувач безпосередньо залучає системи. Якщо брати пасив, то виходить загальнодоступна інформація. Для екстенсивного використовуйте обидва прийоми.
Активний збір даних передбачає роботу з мережами, операційними системами, обліковими записами користувачів, доменними іменами, поштовими серверами та програмами. Пасивний збір даних — це інформація з відкритим кодом; можна використовувати соціальні медіа, податкову інформацію, веб-сайти та інші публічні дані.
Ось деякі інструменти розвідки з відкритим кодом (OSINT), які мої колеги та я визнали корисними та простими у використанні під час збору та зв’язування інформації в Інтернеті. Використовуючи структуру OSINT, ви можете створити розширений контрольний список для точок входу та вразливостей. Хоча цей крок є ключовим для внутрішніх і зовнішніх тестів пера, він не виконується у веб-додатках, мобільних додатках і тестуванні API.
Сканування
На черзі – поглиблений технічний огляд системи. За допомогою інструментів сканування, таких як автоматичні сканери вразливостей і мережеві карти, ви можете зрозуміти, як цільова система реагує на різні вторгнення, відкриті порти, мережевий трафік тощо.
Основними компонентами цього етапу є сканування та аналіз активів. Ви можете використовувати такі інструменти, як Nmap щоб розкривати комп’ютерні служби та хости, надсилати пакети та аналізувати відповіді. Наприкінці цього етапу ви отримаєте інформацію про активи. Це включає операційні системи, запущені служби та відкриті порти.
Аналізуючи результати, ви маєте основу для розробки експлойту. Ви можете скласти карту цифрового ландшафту системи та знайти можливі точки атаки. Ви можете виконати статичний і динамічний аналіз, щоб отримати чітке розуміння реакції системи на різні умови.
Статичний аналіз перевіряє код ваших програм, поки вони ще не виконуються; ви можете використовувати інструменти для безпроблемного сканування баз коду. Для динаміки ви перевіряєте код під час роботи програми. Пам’ятайте, що зібрана тут інформація має бути точною та правильно отриманою, оскільки від цього залежить успіх наступних етапів.
Оцінка/Посилення доступу
На цьому етапі всі дані, зібрані на попередніх кроках, допомагають визначити вразливості та визначити, чи можна ними скористатися. Незважаючи на те, що цей етап корисний, він надзвичайно потужний, якщо каскадувати його з іншими процесами тестування на проникнення.
Щоб оцінити ризики, пов’язані з виявленими вразливими місцями, тестувальники звертаються до багатьох ресурсів; одна — Національна база даних про вразливості (NVD), яка аналізує вразливості програмного забезпечення, опубліковані в Common Vulnerabilities and Exposures (CVE).
Далі ви визначаєте цілі та намалюєте вектори атаки. Цільові області включають такі важливі активи, як дані про співробітників, інформацію про клієнтів, партнерів/ланцюжки поставок, постачальників, порти, програми та протоколи. Запускаються атаки на веб-додатки.
Найпоширенішими є SQL-ін’єкції, міжсайтові сценарії та бекдори. Система використовується шляхом підвищення привілеїв, перехоплення трафіку та крадіжки даних для виявлення наслідків шкоди. Дотримуючись обсягу, визначеного на етапах збору інформації, тестувальник прагне працювати із зазначеними обмеженнями.
Експлуатація
Також відомий як етап підтримки доступу, тестувальник перевіряє, чи можна використовувати вразливості. Цей етап передбачає фактичне порушення та спробу доступу до системи. Використовуючи такі інструменти, як Metasploit, тестер симулює атаку в реальному світі.
На цьому етапі тестувальник несе відповідальність за ресурси організації, гарантуючи, що системи не будуть скомпрометовані після моделювання.
Metasploit користується перевагою за безперебійну роботу з використанням вразливостей. На цьому етапі оцінюються наслідки порушення. Тестер може спробувати зашифрувати або викрасти дані та імітувати програми-вимагачі та атаки нульового дня. Ключ до успішного перо-тесту полягає в досягненні балансу між розширенням меж і збереженням цілісності системи.
Найкраще працювати з експертами; вони використовують уразливості, які прослизають через автоматизацію. До кінця цього етапу ви спробували отримати привілеї високого рівня в системі та мережевій інформації, визначивши доступні дані. Етичний хакер також повинен пояснити результати використання цінних цілей.
Аналіз ризиків і рекомендації, огляд, звітність
Пройшовши фазу експлуатації, тестувальник створює звіт, що документує результати. Звіт слід використовувати під час усунення виявлених уразливостей.
Хороший звіт про перевірку пера – це сховище добре задокументованих уразливостей у вмісті, що допомагає організації усунути ризики безпеці. Але в чудовому буде детально описано всі виявлені вразливості та їхні оцінки CVVS, коротко описано технічні ризики, можливий вплив на бізнес, детально описано труднощі експлуатації та тактичні поради.
Крім того, звіти мають документувати всі етапи, тестові моделі, використані методи та цільові активи. Якщо можливо, тестувальник матиме думку про те, чи відповідає тест застосовним потребам структури. На завершення звіт найкраще подати із загальним поясненням і технічною інструкцією.
Після звітування та представлення звітів очищення системи має вирішальне значення. Йдеться про повернення системи до того стану, в якому вона була до модифікації тестового відновлення до значень за замовчуванням. Діяльність з очищення передбачає вилучення всіх виконуваних файлів, тимчасових файлів і сценаріїв із скомпрометованих систем, видалення облікових записів користувачів, створених для підключення до скомпрометованої системи, і скасування руткітів у середовищі.
На останньому етапі відновлення переходить до рук організації. Керуючись звітами та висновками тестів на проникнення, організація виявляє вразливості, аналізуючи потенційні наслідки, надаючи інформацію для прийняття рішень для просування вперед і впливаючи на стратегії виправлення.
Оскільки цей етап завершується вдосконаленням минулих помилок, усунення всіх вразливостей, які можна використати, обмежено розумним часом. Часом цей етап може тривати на деякий час, щоб провести повторні тести оновлень або провести різні тести.
Практичне застосування тестів пера: покрокова інструкція
Для цього прикладу ми вирішили використовувати структуру Metasploit. Ви можете створити власний робочий процес; ось типовий для вас. Почніть з установки каркаса.
Якщо ви використовуєте Linux/macOS, скористайтеся командою:
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \ chmod 755 msfinstall && \ ./msfinstall
Якщо ви використовуєте Windows, використовуйте останній інсталятор Windows. Або скористайтеся командою Shell:
[CmdletBinding()] Param( $DownloadURL = "https://windows.metasploit.com/metasploitframework-latest.msi", $DownloadLocation = "$env:APPDATA/Metasploit", $InstallLocation = "C:\Tools", $LogLocation = "$DownloadLocation/install.log" ) If(! (Test-Path $DownloadLocation) ){ New-Item -Path $DownloadLocation -ItemType Directory } If(! (Test-Path $InstallLocation) ){ New-Item -Path $InstallLocation -ItemType Directory } $Installer = "$DownloadLocation/metasploit.msi" Invoke-WebRequest -UseBasicParsing -Uri $DownloadURL -OutFile $Installer & $Installer /q /log $LogLocation INSTALLLOCATION="$InstallLocation"
І потім…
Розпочніть проект – це буде ваше сховище даних і робочий простір. Оскільки у вас можуть бути різні вимоги до різних підмереж у вашій організації, організація вашої роботи підвищить вашу ефективність. Наприклад, якщо у вас є перо-тест для ІТ-команд і відділу кадрів, ви захочете створити окремі результати.
Джерело зображення – MetaSploit
Отримати цільові дані – тут ви додаєте дані до свого проекту за допомогою сканування виявлення або імпортуєте наявні дані. Скануйте цілі, щоб перерахувати відкриті порти для перегляду служб мережі. Використовуйте опцію сканування. Далі введіть IP-адреси, над якими ви хочете працювати, кожну в одному рядку. Ви також можете скористатися опцією імпорту, щоб імпортувати дані з локального файлу.
Джерело зображення – MetaSploit
Перегляд даних хосту та керування ними – ви можете переглядати дані на рівні хоста або проекту. Ви можете перемикатися між кожною IP-адресою, щоб мати перегляд одного хоста.
Джерело зображення – MetaSploit
Пошук вразливостей – запустіть сканування вразливостей за допомогою параметрів Nexpose. Цей крок використовує бази даних уразливостей, щоб знайти відповідність.
Використовуйте вразливості – Ви можете використовувати вразливості за допомогою безперебійного майстер перевірки. Крім того, Nexpose все одно працюватиме.
Post Exploit Activity – Збір даних про експлойт через вкладку сеансу; натисніть «зібрати».
Джерело зображення – MetaSploit
Очищення – після завершення збору даних скористайтеся опцією «очистити», щоб завершити сеанс і очистити систему.
Створення звітів – наприкінці перо-тесту Metasploit надає вам ряд звітів, які є відправною точкою для консолідації даних і компіляції результатів.
Докладний короткий посібник із тестування пера можна знайти на Короткий посібник Metasploit.
Загальні інструменти для перевірки пера
Деякі поширені інструменти включають Sn1per, Metasploit і Commix.
#1. Sn1per
Sn1per це інструмент дослідження вразливостей, який перевіряє вплив атак на стороні клієнта на випадки злому. Ви можете використовувати його для імітації віддалених і кінцевих атак користувачів у контрольованому середовищі. Сн1пер має 6 тисяч зірок GitHub. Він також діє як носій інформації на інструменті. За допомогою Sn1per ви можете заощадити час, автоматизувавши інструменти з відкритим кодом і комерційні інструменти для перерахування вразливостей.
#2. Metasploit
Metasploit це гігантська платформа для тестування пера, розроблена завдяки єдності спільних знань між спільнотами з відкритим кодом. Він має 31,2 тисячі зірок на GitHub, що вказує на великий інтерес до світу програмного забезпечення. Metasploit підтримується співпрацею ентузіастів безпеки, спрямованих на усунення вразливостей і підвищення обізнаності про безпеку.
#3. Комікс
Комікс є чудовим інструментом для впровадження команд ОС. Незважаючи на те, що Commix спеціалізується на вразливостях ін’єкції команд, він простий у використанні, безкоштовний і з відкритим вихідним кодом, сумісний з різними платформами, портативний і модульний. Дісталося Зірки 4k GitHub. Це безкоштовно та з відкритим кодом.
Заключні слова
Порушення етапів тестування на проникнення має важливе значення для підприємств, щоб підвищити стійкість своїх цифрових продуктів до посилених кібератак. Оскільки кіберзлочинці обходять традиційні рішення безпеки, симуляція реальних атак за допомогою тестування на проникнення є ефективним способом навігації серед кіберзагроз, що постійно змінюються.
Пристосувавши перо-тест до конкретних потреб вашої організації, ви можете забезпечити ефективність політик безпеки. Проходження всіх етапів тесту на проникнення гарантує найкращу рентабельність інвестицій у кібербезпеку.
Щоб пройти успішну пробу пера, будьте розумні. Почніть із отримання інформації про тест. Спирайтеся на цю інформацію на рівень розвідки. Гарною відправною точкою для вашої розвідки є визначення цілей прицілу в системі, що перевіряється.
Потім проскануйте систему, щоб отримати поглиблені знання та виявити вразливі місця. Перейдіть до запуску атаки, намагаючись не пошкодити систему. Потім створіть корисні звіти, які будуть керувати діями щодо усунення. Не забудьте очистити та відновити систему до початкового стану.
При правильному використанні тести на проникнення покращують рівень безпеки вашої організації шляхом виявлення та усунення вразливостей. Оскільки багато організацій переходять на хмару та використовують нові технології, тести на проникнення стають критичними для сфери інформаційної безпеки. Насправді, 75% підприємств використовують тести пера перевірити положення безпеки. Або з причин відповідності. Якщо ви можете приділяти достатньо уваги та розглядати кожен етап тесту окремо, ви завжди знайдете цінність для проведення тестів на проникнення.
Далі ознайомтеся з безкоштовними онлайн-інструментами тестування на проникнення (Pentest), щоб перевірити безпеку програми.