complete penetration testing guide with sample test cases
Це процес виявлення вразливих місць у програмі шляхом оцінки системи або мережі за допомогою різних шкідливих методів. Слабкі місця системи використовуються в цьому процесі за допомогою санкціонованої імітованої атаки.
Мета цього тесту - захистити важливі дані від сторонніх осіб, таких як хакери, які можуть мати несанкціонований доступ до системи. Після виявлення вразливості вона використовується для використання системи для отримання доступу до конфіденційної інформації.
Тест на проникнення також відомий як тест на ручку, а тестер на проникнення також називають етичним хакером.
Що ви дізнаєтесь:
- Що таке тестування на проникнення?
- Причини вразливостей
- Інструменти та компанії для тестування на проникнення
- Рекомендовані засоби тестування на проникнення
- Рекомендована компанія з випробування на проникнення
- Чому тестування на проникнення?
- Що слід перевірити?
- Типи тестування на проникнення
- Техніка тестування пера
- Тестування на проникнення зразків тестових випадків (сценарії випробувань)
- Висновок
Що таке тестування на проникнення?
Ми можемо з’ясувати вразливі місця комп’ютерної системи, веб-програми чи мережі за допомогою тестування на проникнення.
Тест на проникнення показує, чи є існуючі захисні заходи, застосовувані в системі, достатньо сильними, щоб запобігти порушенням безпеки. Звіти про тестування на проникнення також пропонують контрзаходи, які можна вжити для зменшення ризику злому системи.
Причини вразливостей
- Помилки проектування та розробки : У дизайні апаратного та програмного забезпечення можуть бути недоліки. Ці помилки можуть поставити ваші критично важливі для бізнесу дані під загрозу.
- Погана конфігурація системи : Це ще одна причина вразливості. Якщо система погано налаштована, вона може ввести лазівки, через які зловмисники можуть увійти в систему та викрасти інформацію.
- Людські помилки : Людські фактори, такі як неналежне розпорядження документами, залишення документів без нагляду, помилки кодування, інсайдерські загрози, обмін паролями над фішинговими сайтами тощо можуть призвести до порушень безпеки.
- Підключення : Якщо система підключена до незахищеної мережі (відкриті підключення), вона потрапляє в зону досяжності хакерів.
- Складність : Уразливість системи безпеки зростає пропорційно складності системи. Чим більше можливостей має система, тим більше шансів на атаку системи.
- Паролі : Паролі використовуються для запобігання несанкціонованому доступу. Вони повинні бути достатньо сильними, щоб ніхто не вгадав ваш пароль. Паролі не повинні ділитися з ким-небудь за будь-яку ціну, а паролі слід періодично міняти. Незважаючи на ці вказівки, часом люди розкривають свої паролі іншим, десь записують їх і зберігають прості паролі, про які можна здогадатися.
- Введення користувачем : Ви, мабуть, чули про введення SQL, переповнення буфера тощо. Дані, отримані в електронному вигляді за допомогою цих методів, можуть бути використані для атаки на приймаючу систему.
- Управління : Безпекою важко керувати. Іноді організації відстають у правильному управлінні ризиками, а отже вразливість в системі індукується.
- Відсутність підготовки персоналу : Це призводить до людських помилок та інших вразливих місць.
- Спілкування : Такі канали, як мобільні мережі, Інтернет, телефон, відкривають сферу крадіжки безпеки.
Інструменти та компанії для тестування на проникнення
Автоматизовані інструменти можна використовувати для виявлення деяких стандартних уразливостей, наявних у програмі. Інструменти Pentest сканують код, щоб перевірити, чи є зловмисний код, який може призвести до потенційного порушення безпеки. Інструменти Pentest можуть перевірити наявні в системі лазівки, вивчивши методи шифрування даних та з’ясувавши жорстко закодовані значення, такі як ім’я користувача та пароль.
Критерії вибору найкращого інструменту проникнення:
- Він повинен бути простим для розгортання, налаштування та використання.
- Він повинен легко сканувати вашу систему.
- Він повинен класифікувати вразливості на основі серйозності, яка потребує негайного виправлення.
- Він повинен мати можливість автоматизувати перевірку вразливостей.
- Він повинен повторно перевірити виявлені раніше подвиги.
- Він повинен створювати докладні звіти про вразливість та журнали.
Дізнавшись, які тести вам потрібно виконати, ви можете або навчити свої внутрішні тестові ресурси, або найняти експертних консультантів, які виконуватимуть завдання проникнення за вас.
Рекомендовані засоби тестування на проникнення
# 1) Acunetix
Acunetix WVS пропонує професіоналам безпеки та інженерам програмного забезпечення набір надзвичайних функцій у простому, прямому та дуже надійному пакеті.
=> Спробуйте найкращий інструмент для тестування пера тут
# 2) Порушник
Зловмисник це потужний сканер вразливості, який виявляє слабкі місця у вашій цифровій системі, пояснює ризики та допомагає усунути їх до того, як може статися порушення. Це ідеальний інструмент, який допоможе автоматизувати ваші зусилля щодо тестування на проникнення.
Основні характеристики :
- Понад 9000 автоматизованих перевірок у всій вашій ІТ-інфраструктурі.
- Перевірки інфраструктури та веб-рівня, такі як введення SQL та міжсайтовий сценарій.
- Автоматично сканує ваші системи при виявленні нових загроз.
- Кілька інтеграцій: AWS, Azure, Google Cloud, API, Jira, Teams та багато іншого.
- Intruder пропонує 30-денну безкоштовну пробну версію свого плану Pro.
Рекомендована компанія з випробування на проникнення
# 1) ImmuniWeb®
ImmuniWeb® - компанія з випробування на проникнення, яка базується в Женеві, Швейцарія. Його платформа для тестування на проникнення додатків із підтримкою DevSecOps поєднує людей зі штучним інтелектом та має нульовий хибнопозитивний рівень SLA, виявлення найвищої вразливості та дієві звіти.
ImmuniWeb пропонує комплексне тестування на проникнення додатків внутрішніх та зовнішніх веб- та мобільних додатків, API та веб-служб, поштових серверів, пристроїв IoT тощо.
Основні характеристики:
- Постійне виявлення нового коду.
- Швидке та економічне випробування вручну.
- Віртуальні можливості виправлення в один клік.
- Цілодобовий доступ до аналітиків з питань безпеки.
- DevSecOps та інтеграція CI / CD.
- Миттєве замовлення та швидка доставка.
- Багатоцільова приладова панель.
Інші безкоштовні інструменти:
Комерційні послуги:
Ви також можете звернутися до наведеного нижче списку, доступного на STH, який розповідає про 37 потужних засобів тестування на проникнення => Потужні засоби тестування на проникнення для кожного тестера на проникнення
безкоштовно завантажити програмне забезпечення годинника співробітників - -
Чому тестування на проникнення?
Ви, напевно, чули про атаку-викупник WannaCry, яка стартувала у травні 2017 року. Вона заблокувала понад 2 мільйони комп'ютерів у всьому світі і вимагала викупних платежів у криптовалюті Bitcoin. Ця атака торкнулася багатьох великих організацій по всьому світу.
З такими масовими та небезпечними кібератаками, що відбуваються в наші дні, стало неминучим регулярно проводити тестування на проникнення, щоб захистити інформаційні системи від порушень безпеки.
Отже, тестування на проникнення в основному потрібно для:
- Фінансові або критичні дані повинні бути захищені при передачі їх між різними системами або через мережу.
- Багато клієнтів просять тестування пера як частину циклу випуску програмного забезпечення.
- Для захисту даних користувачів.
- Щоб знайти вразливі місця в програмі.
- Виявити лазівки в системі.
- Оцінити вплив успішних атак на бізнес.
- Для забезпечення дотримання вимог інформаційної безпеки в організації.
- Впровадити ефективну стратегію безпеки в організації.
Будь-яка організація повинна виявити проблеми безпеки, присутні у внутрішній мережі та комп’ютерах. Використовуючи цю інформаційну організацію, можна спланувати захист від будь-якої спроби злому. Конфіденційність користувачів та безпека даних - це найбільша проблема сьогодні.
Уявіть, якщо будь-якому хакеру вдається отримати дані користувача про соціальні мережі, такі як Facebook. Організація може зіткнутися з юридичними проблемами через невелику лазівку, що залишилася в програмній системі. Отже, великі організації шукають сертифікатів відповідності стандарту PCI (індустрія платіжних карток) перед тим, як займатися бізнесом із сторонніми клієнтами.
Що слід перевірити?
- Програмне забезпечення (операційна система, послуги, додатки)
- Апаратне забезпечення
- Мережа
- Процеси
- Поведінка кінцевого користувача
Типи тестування на проникнення
# 1) Тест соціальної інженерії: У цьому тесті намагаються змусити людину розкрити конфіденційну інформацію, таку як пароль, важливі для бізнесу дані тощо. Ці тести в основному проводяться за допомогою телефону або Інтернету і спрямовані на певні служби довідки, працівників та процеси.
Помилки людини є основними причинами уразливості системи безпеки. Стандарти та політики безпеки повинні дотримуватися всі співробітники, щоб уникнути спроб проникнення в соціальну інженерію. Приклад цих стандартів включає не згадування будь-якої конфіденційної інформації в електронній пошті або телефонному спілкуванні. Аудит безпеки може проводитись для виявлення та виправлення недоліків процесу.
# 2) Тест веб-додатків: За допомогою програмних методів можна перевірити, чи застосовано додаток до вразливих місць безпеки. Він перевіряє вразливість системи безпеки веб-програм та програм, розташованих у цільовому середовищі.
# 3) Тест на фізичне проникнення: Для захисту конфіденційних даних застосовуються сильні методи фізичної безпеки. Зазвичай це використовується у військових та державних закладах. Усі фізичні мережеві пристрої та точки доступу перевірені на можливі порушення безпеки. Цей тест мало стосується сфери тестування програмного забезпечення.
# 4) Тест мережевих служб : Це один із найчастіше виконуваних тестів на проникнення, де ідентифікуються отвори в мережі, за яким робиться запис у системах в мережі, щоб перевірити, які вразливості існують. Це можна зробити локально або віддалено.
# 5) Тест на стороні клієнта : Він спрямований на пошук та використання вразливостей у програмах програм на стороні клієнта.
# 6) Віддалений комутований військовий циферблат : Він шукає модеми в оточенні та намагається увійти до систем, підключених через ці модеми, за допомогою відгадування пароля або примусового використання.
# 7) Тест безпеки бездротової мережі : Він виявляє відкриті, несанкціоновані та менш захищені точки доступу або мережі Wi-Fi і підключається через них.
Вищезазначені 7 категорій, які ми бачили, є одним із способів класифікації типів тестів пера. Ми також можемо організувати типи тестування на проникнення на три частини, як показано нижче:
Давайте обговоримо цей підхід до тестування по одному:
- Тестування на проникнення чорної скриньки : При такому підході тестувальник оцінює цільову систему, мережу або процес без відома її деталей. Вони просто мають дуже високий рівень даних, таких як URL або назва компанії, за допомогою яких вони проникають у цільове середовище. Цей метод не перевіряє жодного коду.
- Тестування на проникнення білої скриньки : При такому підході тестер оснащений повною деталлю цільового середовища - системами, мережею, ОС, IP-адресою, вихідним кодом, схемою тощо. Він вивчає код та виявляє помилки проектування та розробки. Це симуляція атаки внутрішньої безпеки.
- Випробування на проникнення сірої коробки : При такому підході тестувальник має обмежені деталі щодо цільового середовища. Це моделювання зовнішніх атак безпеки.
Техніка тестування пера
- Тест на проникнення вручну
- Використання автоматизованих засобів тестування на проникнення
- Поєднання як ручного, так і автоматизованого процесу
Третій процес є більш загальним для виявлення всіх видів уразливостей.
Тест на проникнення вручну
Важко знайти всі уразливості за допомогою автоматизованих інструментів. Є деякі уразливості, які можна виявити лише за допомогою ручного сканування. Тестери проникнення можуть виконувати кращі атаки на програми, виходячи зі своїх навичок та знань проникаючої системи.
Такі методи, як соціальна інженерія, можуть виконувати лише люди. Ручна перевірка включає дизайн, ділову логіку, а також перевірку коду.
Процес випробування на проникнення:
Давайте обговоримо фактичний процес, яким керуються випробувальні агенції або тестувальники проникнення. Виявлення вразливостей, присутніх у системі, є першим важливим кроком у цьому процесі. Виконуються коригувальні дії щодо цієї вразливості, і ті самі тести на проникнення повторюються, доки система не буде негативною щодо всіх цих тестів.
Ми можемо класифікувати цей процес за такими методами:
# 1) Збір даних: Для отримання цільових системних даних використовуються різні методи, включаючи пошук Google. Можна також використовувати техніку аналізу вихідного коду веб-сторінки, щоб отримати більше інформації про версію системи, програмного забезпечення та плагінів.
На ринку доступно багато безкоштовних інструментів та послуг, які можуть надати вам таку інформацію, як імена баз даних або таблиць, версії БД, версії програмного забезпечення, апаратне забезпечення та різні сторонні плагіни, що використовуються в цільовій системі.
# 2) Оцінка вразливості: На основі даних, зібраних на першому кроці, можна виявити слабкі місця в безпеці цільової системи. Це допомагає тестувальникам проникнення запускати атаки, використовуючи визначені точки входу в систему.
# 3) Фактичний експлойт: Це вирішальний крок. Для здійснення атаки на цільову систему потрібні спеціальні навички та техніки. Досвідчені тестувальники проникнення можуть використовувати свої навички для атаки на систему.
# 4) Результат аналізу та підготовки звіту: Після завершення тестів на проникнення готуються докладні звіти для вжиття коригувальних дій. Усі виявлені вразливості та рекомендовані методи виправлення перелічені у цих звітах. Ви можете налаштувати формат звіту про вразливість (HTML, XML, MS Word або PDF) відповідно до потреб вашої організації.
Тестування на проникнення зразків тестових випадків (сценарії випробувань)
Пам’ятайте, що це не функціональне тестування. У Pentest ваша мета - знайти дірки в системі. Нижче наведено деякі загальні тестові приклади, які не обов’язково застосовуються до всіх програм.
- Перевірте, чи веб-програма здатна ідентифікувати спам-атаки на контактні форми, що використовуються на веб-сайті.
- Проксі-сервер - перевірте, чи не відстежується мережевий трафік проксі-пристроями. Проксі-сервер ускладнює отримання хакерами внутрішніх деталей мережі, захищаючи систему від зовнішніх атак.
- Фільтри спам-електронної пошти - Переконайтеся, що вхідний та вихідний електронний трафік відфільтровано, а небажані електронні листи заблоковано.
- Багато поштових клієнтів постачаються із вбудованими фільтрами спаму, які потрібно налаштувати відповідно до ваших потреб. Ці правила конфігурації можна застосувати до заголовків електронної пошти, теми чи тексту.
- Брандмауер - Переконайтесь, що вся мережа або комп’ютери захищені брандмауерами. Брандмауер може бути програмним або апаратним забезпеченням для блокування несанкціонованого доступу до системи. Брандмауер може заборонити надсилання даних поза мережею без вашого дозволу.
- Спробуйте використати всі сервери, настільні системи, принтери та мережеві пристрої.
- Переконайтеся, що всі імена користувачів та паролі зашифровані та передані через захищені з’єднання, такі як https.
- Перевірте інформацію, що зберігається в файли cookie веб-сайту . Він не повинен бути у читабельному форматі.
- Перевірте знайдені раніше уразливості, щоб перевірити, чи працює виправлення.
- Перевірте, чи немає в мережі відкритого порту.
- Перевірте всі телефонні пристрої.
- Перевірте безпеку мережі WIFI.
- Перевірте всі методи HTTP. Методи PUT та Delete не повинні вмикатись на веб-сервері.
- Переконайтеся, що пароль відповідає необхідним стандартам. Пароль повинен містити принаймні 8 символів, що містять принаймні одне число та один спеціальний символ.
- Ім'я користувача не повинно бути таким, як 'адміністратор' або 'адміністратор'.
- Сторінку входу в програму слід заблокувати після кількох невдалих спроб входу.
- Повідомлення про помилки повинні бути загальними і не повинні містити конкретних деталей помилок, таких як 'Недійсне ім'я користувача' або 'Недійсний пароль'.
- Переконайтеся, що спеціальні символи, теги HTML та сценарії обробляються належним чином як вхідне значення.
- Внутрішні деталі системи не повинні розкриватися в жодному повідомленні про помилку чи попередження.
- Спеціальні повідомлення про помилки повинні відображатися кінцевим користувачам у разі аварії веб-сторінки.
- Перевірте використання записів реєстру. Конфіденційну інформацію не слід зберігати в реєстрі.
- Всі файли повинні бути відскановані перед завантаженням їх на сервер.
- Конфіденційні дані не повинні передаватися в URL-адресах під час спілкування з різними внутрішніми модулями веб-програми.
- У системі не повинно бути жодного закодованого імені користувача чи пароля.
- Перевірте всі поля введення з довгим рядком введення з пробілами та без них.
- Переконайтеся, що функція скидання пароля захищена.
- Перевірте заявку на Ін'єкція SQL .
- Перевірте заявку на Міжсайтові сценарії .
- Важливі перевірки вводу слід робити на стороні сервера, а не перевіряти JavaScript на стороні клієнта.
- Критично важливі ресурси в системі повинні бути доступними лише уповноваженим особам та службам.
- Усі журнали доступу повинні підтримуватися з належними дозволами доступу.
- Переконайтеся, що сеанс користувача закінчується після виходу з системи.
- Переконайтеся, що перегляд каталогів на сервері вимкнено.
- Переконайтеся, що всі програми та версії баз даних оновлені.
- Перевірте маніпуляцію з URL-адресами, щоб перевірити, чи веб-програма не відображає небажаної інформації.
- Перевірте витік пам'яті та переповнення буфера.
- Перевірте, чи сканується вхідний мережевий трафік, щоб знайти атаки троянських програм.
- Переконайтеся, що система захищена від Brute Force Attacks - методом спроб і помилок для пошуку конфіденційної інформації, наприклад паролів.
- Переконайтеся, що система або мережа захищені від атак DoS (відмова в обслуговуванні). Хакер може націлити мережу або окремий комп'ютер із постійними запитами, через що ресурси цільової системи перевантажуються, що призводить до відмови в обслуговуванні законних запитів.
- Перевірте заявку на атаки введення сценарію HTML.
- Перевірте наявність атак COM та ActiveX.
- Переконайтесь, що ви не підробляєте атаки Підробка може бути різних типів - підробка IP-адреси, підробка ідентифікатора електронної пошти,
- Підробка ARP, підробка рефералів, підробка ідентифікатора абонента, отруєння мереж обміну файлами, спуфінг GPS.
- Перевірте неконтрольовану атаку рядкового формату - атаку безпеки, яка може спричинити збій програми або виконати шкідливий сценарій на ній.
- Перевірка атаки ін’єкції XML - використовується для зміни передбачуваної логіки програми.
- Перевірте наявність атак канонізації.
- Переконайтеся, що сторінки помилок відображають будь-яку інформацію, яка може бути корисною для входу хакера в систему.
- Переконайтеся, що важливі дані, такі як пароль, зберігаються в секретних файлах системи.
- Перевірте, чи додаток повертає більше даних, ніж потрібно.
Це лише основні тестові сценарії для початку роботи з Pentest. Існують сотні вдосконалених методів проникнення, які можна зробити як вручну, так і за допомогою засобів автоматизації.
Подальше читання:
Стандарти випробувань пера
- PCI DSS (Стандарт безпеки даних платіжних карток)
- OWASP (Відкрити проект безпеки веб-додатків)
- ISO / IEC 27002 , OSSTMM (Посібник із методології тестування безпеки з відкритим кодом)
Сертифікати
- GPEN
- Асоційований тестер безпеки ( AST )
- Старший тестер безпеки (SST)
- Сертифікований тестер проникнення ( CPT )
Висновок
Нарешті, як тестер проникнення, ви повинні збирати та реєструвати всі вразливості в системі. Не ігноруйте жоден сценарій, враховуючи, що він не буде виконаний кінцевими користувачами.
що таке односторінкова програма в angularjs
Якщо ви є тестувальником проникнення, будь ласка, допоможіть нашим читачам своїм досвідом, порадами та зразками тестових кейсів щодо ефективного проведення тестування на проникнення.
Рекомендована література
- 19 Потужні засоби тестування на проникнення, використані професіоналами у 2021 році
- Посібник для початківців для тестування на проникнення веб-додатків
- Альфа-тестування та бета-тестування (повний посібник)
- Тестування мережевої безпеки та найкращі інструменти мережевої безпеки
- Посібник із тестування безпеки веб-додатків
- Повне керівництво з тестування перевірки складання (тестування BVT)
- Функціональне тестування проти нефункціонального тестування
- Найкращі засоби тестування програмного забезпечення 2021 р. (Інструменти автоматизації тестування якості)