
У цій статті поговоримо про основи тестування на проникнення. Що таке пентест? Хто такий пентестер? Що входить в його обов’язки. Інструменти, методології, алгоритми. Скільки коштує пентест? Ми підготували велике керівництво по тестуванню на проникнення. Зібрали корисну інформацію, включаючи приклад звіту пентесту. Справжній клондайк для любителів кібербезпеки. Буде корисно й замовникам, котрі планують пентест у своїх компаніях й прагнуть дізнатися якомога більше.
Тестування на проникнення (Тест на проникнення, Пентест, Пентестінг, англ. Pentest, Penetration Testing) — це комплекс санкціонованих заходів з метою протестувати і проаналізувати існуючий кіберзахист інформаційної системи та дати оцінку її захищеності. Пентестер моделює атаки й імітує дії зловмисника, використовуючи техніки етичного хакінгу (Ethical Hacking). Цілі пентесту — перевірити систему на стійкість та вразливість.
Перші тестування на проникнення з’явилися в США у 70-80-ті роки XX століття з розвитком комп’ютерної інженерії. Тоді слово “hacker” означало – обтесувати, шліфувати, вправно зачищати код. “Хакерами” називали талановитих програмістів-операторів електронно-обчислювальних машин (ЕОМ), які тестували комп’ютери на справність, відшукували баги. Цей термін не містив в собі абсолютно нічого зловмисного.
Першими навчальними центрами, які випускали “хакерів” були Массачусетський та Стенфордський університети в США, які мали різні концепції й підходи до підготовки кадрів та конкурували між собою. Більшість винаходів і відкриттів у сфері комп’ютерних технологій були зроблені саме їх випускниками. Потужним центром була також Каліфорнія, зокрема IT-ком’юніті Homebrew Computer Club.
Однак, з часом термін “хакер” набув дещо іншого забарвлення. Хакерські техніки почали застосовуватися для несанкціонованого проникнення та зламу інформаційних систем. Почали розроблятися перші комп’ютерні віруси, такі як “Хробак Морріса” – мережева програма, яка масово розмножувалася і розповсюджувалася через Інтернет, паралізуючи роботу комп’ютерів. Її розробив аспірант Корнелльського університету Роберт Морріс. Комп’ютерний вірус був запущений 2 листопада 1988 року та вразив близько 6000 вузлів ARPANET. Збиток оцінений приблизно в $96,5 мільйонів доларів. Так хакери поступово стали асоціюватися зі злочинністю в інтернеті.
👉 Читайте розгорнутий матеріал: ХАКЕРИ. Погляд в історію.
За типом проведення, пентест ділиться на:
За характером, технікою і методикою проведення можна виділити наступні пентести:
ℹ️ Існують також Red Team та Blue Team команди тестування на проникнення. Перша відпрацьовує техніки нападу різного масштабу і калібру (Offensive Security), починаючи від кібер-атак і закінчуючи соціальною інженерією та навіть фізичним проникненням на об’єкти (приклад – вірус Stuxnet), атаками на цифрові пристрої (Hardware Penetration Testing). Фактично, це такі-собі кібер-диверсійні групи. Їх учасники не рідко в майбутньому формують професійні хакерські APT-об’єднання (Advanced Persistent Threat), які можуть спонсоруватися урядами держав. Blue Team команди – це спеціалісти з кібербезпеки, які з допомогою пентестів відпрацьовують техніки захисту. Останнім часом з’явилися Purple Team, які поєднують Red та Blue Team практики (захисна + наступальна стратегія).
В залежності від потреб та цілей тестування, а також типу досліджуваного об’єкта, можуть використовуватися різні методології, які визначають — план, техніки, методики, інструменти тестування на проникнення.
Ось список найбільш відомих методологій пентесту:
👉 Рекомендуємо ознайомитись з матеріалами:
⏩ ТОП-20 світових фреймворків з кібербезпеки
⏩ Методології у сфері ІТ: ITIL, COBIT, Prince2 та інші
ℹ️ Насамперед тим, що пентест відтворює справжню кібер-атаку, обходить кіберзахист, проникає в систему та здійснює злам – експлуатує баги, помилки, вразливості цільової системи. Пентест може поставити під загрозу цілісність і доступність системи, адже являє собою санкціонований злам з застосуванням класичних хакерських прийомів та сценаріїв: фаззінг/брутфорс/експлуатація/підвищення привілеїв і т.д.
Аудит кібербезпеки (Vulnerability Scanning & Assessment) — це процес збору, обробки та оцінки вразливостей. Аудит не передбачає хакінгу, а тому майже не впливає на систему і не вносить змін в її роботу чи будову. Аудит лише аналізує, упорядковує та структурує накопичені дані, формує експертні висновки і рекомендації. Методики Аудиту застосовуються пентестерами на різних етапах, однак сам Аудит подається як окрема послуга і є прерогативою більше Аудиторів, ніж Пентестерів. Хоча, на практиці обидві навички сильно пов’язані між собою і хороший пентестер, на нашу думку, повинен бути одночасно й хорошим аудитором.
Аудит може виконуватися як вручну, так і автоматично з допомогою SAST (статичних) і DAST (динамічних) сканерів. Пентест же виконується тільки ручним способом.
Звіт для аудиту і пентесту теж різняться. Pentest Report, зазвичай, включає інформацію лише про проведені атаки, їх оцінку та ступінь ризику, рекомендації по усуненню. Натомість Аудит включає багато теоретичної та фактичної інформації, включаючи статистичні, моніторингові, технічні, описові дані.
Якщо пояснювати одним словом, то пентест – це техніка зламу, атаки, а аудит – це техніка збору даних і оцінки захисту. В ідеалі, має бути комплексний підхід до кібербезпеки, який включає і Аудит кібербезпеки, і Тестування на проникнення. KR. Laboratories надає саме такі послуги.
Різні типи і види тестувань на проникнення мають різний перебіг подій та складаються з різних фаз і етапів. В інтернеті й підручниках з кібербезпеки, зазвичай, можна зустріти класичний сценарій проведення пентесту:
Ми дещо модифікували цей сценарій і поділили його на 3 етапи, які розбили на 3 фази:
ℹ️ Завдання пентестера на цьому етапі: якомога ретельніше дослідити структуру і архітектуру об’єкта, проаналізувати зібрану інформацію на точки входу (точки зламу і компрометації), продумати алгоритми й сценарії майбутніх атак (написання/підбір експлойтів, скриптів, троянів, шеллів, бекдорів, фішиншових листів / посилань; створення шаблонів команд і додаткових інструментів). На цьому етапі етичний хакер збирає усю можливу інформацію про об’єкт, використовуючи різні практики, засоби, техніки, методики.
ℹ️ Завдання пентестера на цьому етапі: успішно відпрацювати і проексплуатувати підготовлені сценарії атак і експлойти, закріпитися в системі.
Етап 1 і Етап 2 формують так-званий “убивчий ланцюг” або Cyber Kill Chain — послідовність дій хакера, яка приводить до зламу системи.
ℹ️ Завдання пентестера на цьому етапі: фінішний етап роботи пентестера, який демонструє замовнику результати пентесту.
Пентестер — це ІТ-фахівець, який проводить тестування кіберзахисту інформаційних та комп’ютеризованих систем, виявляючи баги, дефекти, вразливості, які можуть привести до зламу, витоку даних, компрометації. Пентестерів часто називають “Ethical Hackers” – тобто етичні “білі” хакери, котрі використовують свої навички на благо.
Професія пентестера творча, поєднує у собі чимало аспектів, навичок та досвіду з різних напрямів IT:
1️⃣ Найперше варто забути про Windows і “пересісти” на Linux – це альма-матер всіх хакерів, UNIX-подібна операційна система, заснована на засадах вільного програмного забезпечення з відкритим кодом за ліцензією GNU/Open Source, де командний рядок грає неабияку роль.
Список хакерських дистрибутивів Linux:
Освітні онлайн-платформи з навчальними курсами та віртуальними лабораторіями:
2️⃣ Наступний крок — перевірка і вдосконалення власних знань та навичок на практиці. Для цього підійдуть віртуальні CTF-майданчики (від англ. Capture the Flag – отримати прапорець, зламати систему):
3️⃣ Далі можна спробувати попрацювати з Bug Bounty – це термін, який позначає пошук багів за винагороду для конкретного ресурсу або компанії, яка ініціює BugBounty-програму. Ви не працюєте в найм і маєте змогу займатись пентестами у будь-який вільний та зручний для себе час (щось на зразок фрілансу), в залежності від строків проведення BugBounty-програми.
Перелік платформ, де можна знайти велику кількість різних та цікавих BugBounty-програм:
BugBounty від деяких українських компаній:
4️⃣ Поспілкуватися наживо з іншими хакерами, обмінятися досвідом, продемонструвати свій рівень та виступити з доповіддю можна на хакерських конференціях:
5️⃣ Не зайвим буде здобути фахову освіту і отримати диплом. Нижче знайдете перелік кращих ВУЗів України, які пропонують навчальні програми за спеціальністю “Кібербезпека (125)”:
👉 Додаткові матеріали:
⏩ GitHub – Awesome Cyber Skills
⏩ GitHub – Security Study Plan
⏩ GitHub – BurpSuite Certified Practitioner Exam Study
⏩ GitHub – Penetration Testing Beginners To Expert
⏩ GitHub – CyberSecurity Conferences
⏩ CEH. Exam questions.
Рівень кваліфікації та уміння пентестера, здебільшого, підтверджуються наявністю профільних атестацій і сертифікатів:
Окремою частиною самоосвіти є література. Ось, деякі з кращих книг:
👉 Більше літератури в матеріалі: ⏩ ТОП книг для читання про кібербезпеку.
Інструментів для пентестінгу чимало. Ось ті, якими користуємося ми:
👉 Більше хакерських інструментів за посиланнями:
⏩ GitHub – Pentest Tools
⏩ HackerOne: 100 Hacking Tools
⏩ 100 Best Free Red Team Tools
⏩ HackYourMom – Повний список інструментів для тестування на проникнення
⏩ Top 30 Best Penetration Testing Tools 2023
⏩ Offensive OSINT Tools
⏩ GitHub – OSINT Browser Extensions
⏩ GitHub – Penetration Testing Methodology
👉 Додаткові матеріали:
⏩ ТОП пошукових систем для пентестера
⏩ ТОП пошукових систем для OSINT
⏩ Google Dorks на службі у OSINT
⏩ Форензика зображень, IMINT: інструменти, техніки, методики
ℹ️ Пентест потрібен абсолютно усім, хто має справу з інформаційними технологіями! Це може бути веб-майстр, який розробляє і обслуговує веб-додатки; системний адміністратор, який керує ІТ-процесами; власник бізнесу, який має свій маркетплейс в інтернеті; організація, установа або компанія з ІТ-відділами та корпоративними ресурсами.
Переваги і бенефіти пентесту:
Пентест може допомогти виявити вразливості до того, як ними скористається зловмисник. Особливо важливо проводити його для великих сайтів і компаній, державних та інфраструктурних об’єктів, банківських структур, розгорнутих корпоративних систем і мереж, оскільки забезпечити надійну і цілісну безпеку у такому випадку значно важче. Саме на них припадає левова частка атак.
Рекомендується проводити тестування на проникнення регулярно, мінімум 1-2 рази на рік.
Вартість тестування на проникнення залежить від багатьох факторів, наприклад:
Кожна компанія з кібербезпеки може мати власні підходи до формування ціни на пентест. Додатковими факторами можуть бути престиж, упізнаваність і репутація компанії або спеціаліста, який проводить пентест, популярність компанії-замовника, рівень конкурентності в ніші замовника.
Щоби розуміти ціноутворення, варто також усвідомлювати наступне:
Пентест – це дуже розгорнута процедура, у ході якої ІТ-спеціалісту необхідно виконати чимало перевірок і проаналізувати великий пласт інформації.
Якщо хочете, щоби пентест був якісним, а не виконаним нашвидкоруч, то необхідно запастись терпінням. Пентестеру треба не менш як тиждень (7 днів клопіткої праці), а то й місяця часу. Все залежить від типу досліджуваного ресурсу/інфраструктури, обраної методології.
Проведення навіть найпростішої атаки забирає багато часу, сил і ресурсів. Наприклад, підібравши експлойт, треба його ще ретельно протестувати. Для цього необхідно мати під рукою кілька віртуальних тестових майданчиків, де можна реально змоделювати атаку. Буває так, що експлойт несправний або є різниця у версіях ПЗ, тому без планування робота пентестера може бути зведена на нівець.
Пентестер повинен мати “під рукою” мінімум кілька розгорнутих віртуальних машин з різними операційними системами й додатками. Заготовлені скрипти і шаблони, букмарки, довідники, бази даних і так далі.
Окрім того, значного часу потребує робота над звітом, аби він був якомога інформативнішим та читабельним, наповненим фактами, містив точні твердження та висновки.
Загалом, організованість робочого середовища, грамотність, уважність і спостережливість, помножені на досвід і потужний програмно-апаратний комплекс відіграють важливу роль в тестуваннях на проникнення.
Тестування на проникнення — це процедура, яка передбачає втручання в роботу електронно-обчислювальних систем, може впливати на тріаду безпеки – конфіденційність, цілісність, доступність, а тому потребує обов’язкового юридично завіреного дозволу і договору з власником. В іншому випадку — це може трактуватися як злочин у сфері використання ЕОМ (Ст. 361 ККУ).
Договір на проведення пентесту — це юридичний документ, який укладається у двосторонньому порядку між замовником і виконавцем. В ньому прописуються усі умови, домовленості та будь-які інші деталі співпраці. У договорі вказується перелік наданих послуг, строки та вартість, відповідальність сторін. Якщо пентест внутрішній, то також визначається порядок передачі необхідних доступів, складається карта об’єктів інфраструктури. Обов’язковим є також пункт про нерозголошення і конфіденційність інформації (NDA). Додатково можна підписати SLA (Service Level Agreement) – це договір про рівень надання послуг.
👉 Завантажити зразок договору>>
Звіт з тестування на проникнення – це головний документ, який засвідчує виконану пентестером роботу. Звіт можна використовувати для покращення кіберзахисту шляхом усунення будь-яких виявлених уразливостей, а також для підвищення обізнаності про безпеку. Він є індикатором якості, а тому має бути чітко та якісно пропрацьованим.
Структуру звіту умовно можна розділити на такі частини:
Для підготовки звіту можна також скористатися автоматизованими системами генерації документів, наприклад PwnDoc, VULNEPO, Pentest-tools.com. Для створення діаграм і гістограм підійде Google Sheets. Для роботи з інфографікою – Canva.
Чудове керівництво з підготовки звіту тестування на проникнення опубліковане на платформах HackTheBox і SANS.
Також пропонуємо зразок нашого звіту, створений KR. Laboratories. Він має демонстраційний характер та містить знеособлені, підмінені дані:
⏩ GitHub – Awesome Pentest
⏩ GitHub – Awesome Bug Bounty Tools
⏩ GitHub – Pentesting Bible
⏩ GitHub – Pentest Wiki
⏩ GitHub – Pentest Reports
⏩ Pentestreports.com
⏩ GitHub – Public Pentest Reports
⏩ GitHub – Pentest Consulting Creator
⏩ GitHub – Galaxy Bugbounty Checklist
⏩ GitHub – Pentest Cheat Sheets
⏩ GitHub – Linux Kernel Exploitation
⏩ GitHub – XSS Payload List
⏩ GitHub – Ethical Hacking Labs
⏩ GitHub – SecLists
⏩ GitHub – PayloadsAllTheThings
⏩ GitHub – Awesome Hacker Search Engines
⏩ GitHub – MITM Cheatsheet
⏩ GitHub – Email Username OSINT
⏩ GitHub – All CVE PoC
⏩ GitHub – PoC
⏩ GitHub – HackerOne Reports
⏩ Github – BurpSuite for Pentester
⏩ MetaOSINT Framework
⏩ PortSwigger XSS Cheatsheet
⏩ Red Team Notes
⏩ Offensive Security Cheatsheet
⏩ Hausec Pentesting Cheatsheet
⏩ OWASP Cheatsheet Series
⏩ OSINT Framework
⏩ CVSSjs Base Score Calculator
⏩ Metasploit Documentation
⏩ Penetration Testing Tools Cheat Sheet
⏩ The art of subdomain enumeration
⏩ AppSecco.com Blog – A Penetration Testers Guide to Subdomain Enumeration
⏩ Cloudflare Blog: DNS Cache Poisoning
⏩ Cloudflare Blog: DNS amplification DDOS attack
⏩ Medium – Penetration Testing of FTP Server
⏩ Philipp Wylie, Kim Crawley. THE PENTESTER BLUEPRINT.
⏩ Aman Hardikar. Cyber Security Mindmaps.
⏩ Styran.com – У чому різниця між тестами на проникнення і аудитами
⏩ NoNamePodcast
⏩ Abdelrhman Allam. Web Application Hacker’s Methodology.
⏩ Reverse Shell Generator
Підписуйтесь на новини та отримуйте нові публікації на свою електронну пошту!
Заповніть, будь ласка, форму й наш спеціаліст зв’яжеться з Вами та надасть безкоштовну консультацію!
Вкажіть, будь ласка, контактний номер телефону. Наш менеджер миттєво зв’яжеться з Вами!