Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал:
https://er.chdtu.edu.ua/handle/ChSTU/7774| Назва: | Віртуальний полігон для дослідження тестування на проникнення |
| Автори: | Байрак, Анатолій Володимирович Довгань, Іван Михайлович |
| Ключові слова: | тестування на проникнення;віртуальний полігон кібербезпеки;технології віртуалізації;вразливості інформаційних систем;методології penetration testing;інструменти кібербезпеки |
| Дата публікації: | 2022 |
| Короткий огляд (реферат): | Проєктування та практична реалізація віртуального полігону для дослідження тестування на проникнення з використанням спеціалізованих інструментів кібербезпеки |
| URI (Уніфікований ідентифікатор ресурсу): | https://er.chdtu.edu.ua/handle/ChSTU/7774 |
| Розташовується у зібраннях: | 125 Кібербезпека та захист інформації (Безпека інформаційних і комунікаційних систем) |
Файли цього матеріалу:
| Файл | Опис | Розмір | Формат | |
|---|---|---|---|---|
| М_125_Довгань_Байрак.pdf Restricted Access | 2.41 MB | Adobe PDF | Переглянути/Відкрити Запит копії |
Усі матеріали в архіві електронних ресурсів захищено авторським правом, усі права збережено.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ЕЛЕКТРОННИХ ТЕХНОЛОГІЙ І РОБОТОТЕХНІКИ
КАФЕДРА РОБОТОТЕХНІЧНИХ І ТЕЛЕКОМУНІКАЦІЙНИХ СИСТЕМ ТА
КІБЕРБЕЗПЕКИ
До захисту допущено
завідувач кафедри РТСК
д.т.н., професор
_______________ В.В. Палагін
"_____" _____________ 2022 року
Пояснювальна записка
до дипломного проекту (роботи)
магістра
(освітньо-кваліфікаційний рівень)
на тему «Віртуальний полігон для дослідження тестування на проникнення»
Виконав: студент 2 курсу, групи БІ-011
Спеціальності 125 – «Кібербезпека» ,
(шифр і назва спеціальності)
освітньої програми «Безпека інформаційних і
комунікаційних систем»
(назва освітньої програми)
Довгань І.М.
(прізвище та ініціали)
Керівник Байрак А.В.
(прізвище та ініціали)
Рецензент
(прізвище та ініціали)
Черкаси – 2022 року
Форма № Н-9.01
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет електронних технологій, автотранспорту та машинобудування
Кафедра робототехнічних і телекомунікаційних систем та кібербезпеки
Освітньо-кваліфікаційний рівень магістр
Спеціальність 125 – Кібербезпека
Освітня програма – Безпека інформаційних і комунікаційних систем
ЗАТВЕРДЖУЮ
Завідувач кафедри В.В. Палагін
“_____” ___________________ 2022 року
ЗАВДАННЯ
НА ВИПУСКНУ РОБОТУ СТУДЕНТУ
Довганя Івана Михайловича ____________________
(прізвище, ім’я, по батькові)
1. Тема проекту (роботи) Віртуальний полігон для дослідження тестування на
проникнення
керівник проекту (роботи) Байрак Анатолій Володимирович
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом вищого навчального закладу від «___» __________2022 року № ____
2. Термін здачі студентом закінченої роботи “ 10 ” грудня 2022 року _________
3. Вихідні дані до роботи: Наукові публікації, навчальні та методичні матеріали з питань
тестування на проникнення та кібербезпеки інформаційних систем; міжнародні
стандарти та методології тестування на проникнення (OSSTMM, NIST SP 800-115,
PTES, ISSAF); технології віртуалізації та програмні платформи створення віртуальних
машин; інструментальні засоби для дослідження вразливостей та проведення
тестування на проникнення у комп’ютерних мережах; модельна мережева
інфраструктура інформаційної системи для побудови віртуального полігону.
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити)
Аналіз принципів побудови віртуальних полігонів для дослідження тестування на
проникнення та основних підходів до проведення penetration testing; дослідження
технологій віртуалізації, типів віртуальних машин та їх можливостей для створення
тестового середовища; огляд і порівняльний аналіз сучасних методологій тестування
на проникнення; проєктування та практична реалізація віртуального полігону для
дослідження тестування на проникнення з використанням спеціалізованих
інструментів кібербезпеки.
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів)
1. Структурна схема віртуального полігону для тестування на проникнення; 2. Схема
архітектури віртуального середовища та взаємодії віртуальних машин; 3.
Функціональна схема процесу проведення тестування на проникнення у створеному
віртуальному полігоні.
.6. Консультанти з проекту (роботи) із зазначенням розділів проекту, що їх стосуються
Підпис, дата
Прізвище, ініціали та посада
Розділ завдання завдання
консультанта
видав прийняв
7. Дата видачі завдання
КАЛЕНДАРНИЙ ПЛАН
Термін
№ Назва етапів дипломного проекту
виконання етапів Примітка
з/п (роботи)
проекту (роботи)
1. Аналіз технічного завдання та пошук
18.09.22 – 09.10.22
літератури
2. Аналіз принципів побудови віртуальних
полігонів для дослідження тестування на
10.10.22 – 24.10.22
проникнення та основних підходів до
проведення penetration testing
3. Дослідження технологій віртуалізації, типів
віртуальних машин та їх можливостей для 25.10.22 – 10.11.22
створення тестового середовища
4. Огляд і порівняльний аналіз сучасних
11.11.22 – 25.11.22
методологій тестування на проникнення
5. Проєктування та практична реалізація
віртуального полігону для дослідження
11.11.22 – 25.11.22
тестування на проникнення з використанням
спеціалізованих інструментів кібербезпеки
8. Оформлення пояснювальної записки 27.11.22 – 01.12.22
9. Оформлення презентації 02.12.22 – 09.12.22
Студент Довгань І.М.
( підпис ) (прізвище та ініціали)
Керівник проекту (роботи) Байрак А.В.
( підпис ) (прізвище та ініціали)
Зміст
ВСТУП .............................................................................................................................................................. 3
РОЗДІЛ 1. АНАЛІЗ ВІРТУАЛЬНОГО ДЛЯ ТЕСТУВАННЯ НА ПРОНИКТЕННЯ ........................ 4
1.1 Загальні відомості про віртуальний полігон для тестування на проникнення ........................... 4
1.2. Основне завдання та відомості про тестування систем на проникнення ......................................... 6
1.3 Типи підходів до тестування на проникнення ..................................................................................... 8
1.4 Віртуальна машина .............................................................................................................................. 12
1.4.1 Повна емуляція (симуляція). ................................................................................................... 14
1.4.2 Часткова емуляція (нативна віртуалізація). ........................................................................... 14
1.4.3 Віртуальні машини з квазіемуляціею гостьової ОС.............................................................. 16
1.4.4 Віртуалізація ресурсів та об’єднання, агрегація та концентрація компонентів ................. 16
1.4.5 Кластеризація комп'ютерів та розподілені обчислення, поділ ресурсів, інкапсуляція ...... 17
1.5 Висновки ............................................................................................................................................... 21
РОЗДІЛ 2. ОГЛЯД ІСНУЮЧИХ МЕТОДОЛОГІЙ ТЕСТУВАННЯ НА ПРОНИКНЕННЯ ......... 22
2.1 Методології тестування на проникнення ........................................................................................... 22
2.1.1 Аналіз методології OSSTMM .................................................................................................. 22
2.1.2 Аналіз методології NIST SP 800115 ....................................................................................... 23
2.1.3 Аналіз методології PTES ......................................................................................................... 24
2.1.4 Аналіз методології ISSAF ................................................................................................................. 26
2.4 Переваги та недоліки використання віртуальних машин ................................................................. 26
2.5 Сфери застосування віртуальних машин ........................................................................................... 30
2.6 Інструмент виявлення мережевих атак та дзеркальні сервери ........................................................ 32
2.7 Висновки ............................................................................................................................................... 35
РОЗДІЛ 3. ПРАКТИЧНА РЕАЛІЗАЦІЯ ВІРТУАЛЬНОГО ПОЛІГОНУ ДЛЯ ТЕСТУВАННЯ
НА ПРОНИКНЕННЯ СИСТЕМИ ............................................................................................................ 36
3.1 Аналіз використаних технічних засобів для практичної реалізації полігону ................................. 36
3.2 Практична реалізація комплексу ........................................................................................................ 39
ВИСНОВКИ .................................................................................................................................................. 60
ВСТУП
Одним з важливих етапів усієї навчальної підготовки та її завершенням
для студента є виконання і захист дипломного проекту. Це творча, самостійна
робота, під час якої студенту необхідно показати уміння користуватися науково-
технічною літературою, математичними методами, навик володіння
комп'ютерними, інформаційними системами і технологіями, тобто
фундаментальними уміннями і знаннями, достатніми для виконання завдань і
обов'язків визначеного рівня професійної діяльності. Елементами дипломного
проекту, що визначаються поставленою задачею, є: вивчення і формалізація
предметної області; аналіз і вибір програмних засобів; розробка програмної
системи. Одночасно переслідується і навчальна мета, яка полягає у
систематизації, закріпленні та розширенні теоретичних і практичних знань
студента під час вивчення дисципліни. Використання результатів досліджень,
проведених студентами на молодших курсах, сприяє підвищенню якості робіт,
значно поглиблює обробку спеціальних розділів, підвищує технічну і практичну
цінність робіт.
Основною метою дослідження даного дипломного проекту є системи
віртуальних машин для тестування систем на проникнення.
Також важливою метою даної роботи є розгляд етапів формування та
реалізації загроз для ІКС.
Об’єктом дослідження являється низка віртуальних машин з різними
налаштуваннями та мережами для тестування рівня вразливості даних систем.
РОЗДІЛ 1. АНАЛІЗ ВІРТУАЛЬНОГО ДЛЯ ТЕСТУВАННЯ НА
ПРОНИКТЕННЯ
1.1 Загальні відомості про віртуальний полігон для тестування на
проникнення
Віртуальний полігон – це набір віртуальних машин для створення
середовища для створення реально можливих ситуацій, аналізу можливих
наслідків та протидія загрозам, які можуть виникнути в реальних умовах. Ця
технологія забезпечує лабораторні умови та створення такого засобу можлива на
більшості сучасних комп’ютерних систем. Метою використання такого полігону
є захист в середині локальних мереж від загроз з середини та проникнення в
мережі з зовні, через можливі канали зв’язку. Тест на проникнення — метод
оцінювання захищеності комп'ютерної системи чи мережі шляхом часткового
моделювання дій зовнішніх зловмисників з проникнення у неї (які не мають
авторизованих засобів доступу до системи) і внутрішніх зловмисників (які мають
певний рівень санкціонованого доступу). Даний процес включає в себе наступні
пункти:
1. Активний аналіз системи з виявлення будь-якої потенційної
вразливості, що може виникати в наслідок неправильної конфігурації
системи, та наявних чи невідомих дефектів в апаратному та програмному
компоненті, чи оперативне відставання в процедурних чи технічних
контрзаходах.
2. Проведення аналіз з позиції потенційного нападника з
активним використанням вразливостей системи направлених на отримання
конфіденційних даних системи на яку проводиться атака.
Проблеми безпеки, що були виявлені в ході тесту на проникнення,
представляються власнику системи. Ефективний тест на проникнення поєднає
цю інформацію з точною оцінкою потенційного впливу на організацію і
окреслить межі технічних і процедурних контрзаходів для зменшення ризиків.
Зараз в широкому спектрі застосування набуває застосувань такий вид
діяльності як: « Комерційний тест на проникнення » або пентест - це вид
тестувань комп’ютерної безпеки систем спрямованих на виявлення та
знешкодження потенційних загроз у безпеці інформаційних систем та машин.
Проводиться тестування тільки за згодою власника системи з документальним
підтвердженнями двома сторонами. За основу взято принцип кібератак з
завданням обійти існуючу систему безпеки застосовуючи техніку Білого
«Етнічного» хакінгу. Основні типи пентесту це:
1. Соціальна інженерія – тип тесту з використанням людського
ресурсу, здатність виявляти та отримувати конфіденційні дані та інший
інформаційний ресурс використовуючи Інтернет мережу чи особисті
комунікаційні пристрої (до цього ресурсу відносяться співробітники
компанії та інші люди, які мають доступ/ користуються можливостями
корпоративної мережі).
2. Веб-додаток – тип тесту що використовується для виявлення
вразливості в безпеці та інших проблемах в декількох варіантах веб-
додатків і сервісів, які розміщені на боці клієнта чи сервера.
3. Мережева служба – тим тесту що використовується для
тестування проникнення в мережу для виявлення можливості доступу
зловмисників та інших неавторизованих користувачів.
4. Клієнтська частина додатків – використовується для
тестування додатків з клієнт-серверною архітектурою встановлених на
машині користувача.
5. Віддалене підключення – тип тестування vpn чи аналогічного
об’єкту, що може забезпечити доступ до системи.
6. Бездротовий тип мереж – тест для перевірки додатків і сервісів
та обладнання, які використовують бездротові мережі.
Постійний розвиток технологій, дедалі більша кількість мережевих
пристроїв (таких як Інтернет речей) і глобалізація означають, що векторів атак
більше, ніж будь-коли. Зловмисники можуть перебувати за 1000 миль у чужій
країні, ховатися в мережах довірених третіх сторін або сидіти в сусідньому офісі
з певним рівнем доступу. Регулярне проведення тестів на проникнення, як
внутрішніх, так і зовнішніх, є ефективною стратегією захисту систем і даних.
Кожен тест на проникнення починається з офіційної письмової угоди з
клієнтом із детальним описом його обсягу та цілей. Ця угода є юридичним
дозволом для тестера на проникнення/етичного хакера вчиняти дії, які інакше
можуть вважатися кримінальними злочинами. Загалом, метою тесту на
проникнення є виявлення можливих помилок безпеки в корпоративній мережі
або системах клієнта, які можуть призвести до несанкціонованого доступу,
пошкодження та крадіжки даних. Успішні атаки, як правило, можуть бути
результатом людських помилок, таких як неправильна конфігурація,
невиправлені служби, застаріле мікропрограмне забезпечення або операційні
системи, а також властиві недоліки програмного забезпечення, що
використовується. Іншими словами, перо-тест спрямований на виявлення
слабких місць безпеки в мережі/системах організації до того, як хакер зможе
ними скористатися.
1.2. Основне завдання та відомості про тестування систем на проникнення
Головним завданням тесту на проникнення є виявлення та відстежування
максимальної кількості можливих відомих та нових вразливостей інформаційно-
комунікаційної системи за визначений період та встановлених умов системи.
Основні задачі, які мають бути виконані:
1. Оцінка актуального захисту систем
2. Виявлення всіх критичних вразливостей даної системи
3. Використання виявлених вразливостей в системі для отримання
неавторизованого доступу та впливу на наявні засоби в системі для демонстрації
вразливостей високого рівня загрози безпеки інформаційної системи.
4. Створення рекомендаційної документації що до можливого
усунення загроз та підвищення ефективності захисту.
Тестування на проникнення є потрібним у випадку коли:
1. Виявлення загроз в системі високої складності, що є результатом
об’єднання кількох загроз меншої складності.
2. Оцінка збитків в разі успішності атак для системи.
3. Перевірка наявної системи безпеки в протидії атакам
4. Визначення найбільш ефективних атак
5. Розрахунок потрібної кількості фінансування технологій безпеки та
кваліфікованих кадрів.
Детальна перевірка системи та мережі зі сторони нападника полягає в
неодноразових спробах обійти систему захисту. В ході перевірки роль хакера
відіграє спеціаліст, що повинен визначити рівень стійкості захисту ІКС та рівень
вразливості до певних типів атак, які з більшою вірогідністю можуть бути
успішними. Дана система наборів атак дозволяє отримати об’єктивну оцінку
наскільки легко зловмисник може проникнути до корпоративної мережі та
отримати доступ до конфіденційної інформації (документообіг, фінансові
операції, логіни та паролі, тощо).
Проникнення в систему імітує повністю всі дії зловмисника, незалежно від
того це атака на машину, веб-сервер базу даних чи мережеве обладнання.
Проведення тесту можливе як у складі аудиту по перевірці системи так і в якості
окремого проекту. Крок за кроком спеціаліст проводить атаки в різних варіація
для знаходження дірок в програмному забезпеченні що дозволяє модифікувати в
подальшому його функції так, що в усіх можливих сценаріях програми
виконували свої функції.
Компанії наймають тестувальників на проникнення, щоб виявити
вразливості та отримати рекомендації щодо захисту своїх ІС., активів і захисту
своїх бізнес-активів. Приклади активів, які так відчайдушно захищають
корпорації. Наприклад:
- Конфіденційні дані, такі як дані клієнтів, медичні записи, юридичні
документи, фінансові дані та інформація про кредитні картки;
- Грошові активи, такі як кошти на рахунку компанії;
- Інтелектуальна власність, така як креслення або рецептури для нових
продуктів;
- Така інформація, як газетні статті, які збираються надрукувати.
Цей список містить активи, які є достатньо цінними, щоб захистити їх
будь-якою ціною. Деякі з них застосовуються до всіх компаній, як-от фінансові
дані та грошові активи, а деякі – лише до кількох конкретних компаній,
наприклад виробничих компаній (схеми). Одним із способів захисту цих активів
є усунення вразливостей в інфраструктурі, системах, службах і людях, щоб
запобігти доступу зловмисників до цих активів.
Тест на проникнення зазвичай є частиною повного аудиту безпеки та
допомагає визначити, чи є система вразливою. Воно може здійснюватися
локально зсередини мережі або віддалено ззовні (наприклад, через Інтернет).
Фахівець з тестування на проникнення використовуватиме спеціалізовані
інструменти та атаки соціальної інженерії (тобто маніпулювання людським
компонентом) не лише для виявлення вразливостей у програмному забезпеченні
та службах, але й для виявлення неправильно налаштованого програмного
забезпечення чи мікропрограми, через які зловмисники можуть отримати
несанкціонований доступ до даних і взяти під контроль системи.
1.3 Типи підходів до тестування на проникнення
Інший важливий аспект, який має бути включений в угоду, — правила
проведення тесту на проникнення. Тоді, як технічне завдання визначає, «що»
буде перевірятися, правила взаємодії визначають, «як» це буде перевірятися, і
встановлюють обмеження щодо глибини тестування. Наприклад, при виконанні
завдання спеціаліст, що виконує тест на проникнення може спробувати отримати
доступ до певної конфіденційної інформації (наприклад, банківських карток),
але правила виконання завдань можуть забороняти тестеру на проникнення
переглядати чи завантажувати такі документи. Правила також можуть
визначати, коли можна проводити тест. Наприклад, деякі компанії вимагають
проведення тестів у неробочий час, щоб звести до мінімуму вплив на бізнес-
процеси. Встановлення часових рамок у неробочий час може бути важливим
запобіжним заходом для мінімізації впливу, якщо раптово виникне ситуація
відмови в обслуговуванні (DoS), яка призведе до пошкодження даних
або мережі.
Основним результатом будь-якого тесту на проникнення є звіт. Звіт тестера
має містити всі подробиці про будь-які виявлені вразливості та рекомендації
щодо їх усунення. Він повинен містити достатньо інформації для ІТ-персоналу
клієнта, щоб відтворити проблеми безпеки та виправити їх. Тестування на
проникнення чорного, сірого та білого ящиків. Можна виділити три типи
підходів до тестування на проникнення:
- Тест чорного ящика
- Тест сірої коробки
- Тест білого ящика
Відмінності полягають у: (а) вихідній точці тесту; і (b) скільки попередніх
знань про цільові системи має тестувальник проникнення.
Давайте розглянемо кожен із цих підходів більш детально. Почнемо з
тестування чорного ящика.
Коли виконується тест на проникнення чорної скриньки, тестувальнику
надається мало або взагалі не надається жодної попередньої інформації, за
винятком імені клієнта та, можливо, публічної IP-адреси. Через те, що тестеру
проникнення надається мало інформації, цей тип підходу дублює вид зовнішньої
атаки, яку зазвичай здійснюють зловмисники. Тестування чорної скриньки, як
правило, є дорожчим варіантом, оскільки воно вимагає багато розвідувальної
роботи, яка може бути надзвичайно трудомісткою.
Загалом зловмисники можуть дозволити собі витратити стільки часу,
скільки потрібно для успішної атаки на ціль, але тестувальники систем на
вразливість мають часові та фінансові обмеження, тому їм потрібно максимально
швидко та ефективно виконувати всі дії, які заплановані та вказані в контракті.
Одним із варіантів може бути поєднання різних стилів тестування для
досягнення максимальної ефективності. Тестування чорного ящика можна
поєднувати з тестуванням сірого та білого ящиків, щоб охопити більшу
поверхню атаки, наприклад, через надання клієнтом облікових даних веб-
додатку для короткого замикання необхідної розвідки. Наступний крок
тестування сірого ящика.
З точки зору ефективності можна також вибрати тест на проникнення типу
сірий ящик, який поєднує в собі елементи тестування як чорного, так і білого
ящиків. Під час тесту на проникнення типу сірий ящик тестувальнику надається
обмежена інформація про цільові системи. Немає єдиного визначення того, як
організовується тест на проникнення в сірому ящику, або вказівок щодо того, яка
інформація надається тестеру на проникнення. Надана інформація може
включати внутрішні IP-адреси, облікові дані для веб-додатків, діаграми чи,
справді, будь-що інше залежно від цілей і завдань тестування.
Уявіть, що клієнт бажає провести тест на проникнення в спеціальному веб-
додатку, який підтримує кілька ролей. Веб-додаток має дуже ефективний
механізм автентифікації, який технічно практично неможливо обійти. Якщо
клієнт заздалегідь надає облікові дані користувача тестеру проникнення,
поверхня атаки для тесту значно збільшується, що дозволяє тестеру проникнення
перевірити наявність вразливостей у автентифікованій області програми, яка
інакше може бути недоступна. Цей рівень доступу зробить тест на проникнення
ефективнішим за менших витрат. Переваги:
1. Дозволяє швидко знаходити баги у розробленій функціональності ПЗ;
2. Спеціаліст не обов'язково повинен мати вузькопрофільну
спеціальність;
3. Перевірка відбувається з позиції кінцевого споживача;
4. Розробляти тест-кейси можна відразу після завершення роботи зі
специфікацією.
За допомогою цього методу тестування можна виконувати такі перевірки:
1. Функціональна перевірка;
2. Регресійні перевірки;
3. Юзабіліті-тестування ;
4. Димове тестування;
5. Перевірка графічного інтерфейсу користувача.
У тесті білого ящика білий хакер має повне знання внутрішньої структури,
інфраструктури та програм цільової системи. Надана інформація може включати
будь-яку інформацію, включаючи облікові дані доступу, вихідний код та будь-
яку іншу інформацію про компанію та об’єкти. Підхід «білого ящика» дозволяє
спеціалісту виконувати більш суворе та повне тестування, оскільки
тестувальнику не потрібно витрачати час і ресурси на отримання таких знань.
Термін «WhiteBox» використовувався через концепцію прозорої коробки.
Прозоре поле або назва WhiteBox символізує здатність бачити крізь зовнішню
оболонку (або «коробку») програмного забезпечення його внутрішню роботу.
Подібним чином «чорний ящик» у «тестуванні чорного ящика» символізує
відсутність можливості побачити внутрішню роботу програмного забезпечення,
тому можна перевірити лише роботу кінцевого користувача. Тестування білого
ящика передбачає перевірку програмного коду для наступного:
• Внутрішні отвори безпеки
• Порушені або погано структуровані шляхи в процесах кодування
• Потік конкретних вхідних даних через код
• Очікуваний результат
• Функціональність умовних циклів
• Тестування кожного оператора, об'єкта та функції на індивідуальній
основі
Тестування може проводитися на рівні системи, інтеграції та модуля
розробки програмного забезпечення. Однією з основних цілей тестування white
box є перевірка робочого процесу програми. Він передбачає перевірку серії
попередньо визначених вхідних даних на очікувані або бажані результати, щоб,
коли певний вхідний сигнал не призвів до очікуваного результату, ви зіткнулися
з помилкою.
1.4 Віртуальна машина
Часом виникає необхідність у використанні декількох операційних систем
на одному комп'ютері. Труднощі тут, як правило, передбачувані. По-перше, це
обов'язкове перезавантаження ПК для запуску нової ОС, а по-друге, якщо ми
маємо справу з різними сімействами, наприклад Windows і Unix, то кожна з ОС
зажадає під себе як мінімум один розділ на жорсткому диску. Крім того, через
різницю формату файлових систем ускладнюється доступ з однієї ОС до файлів
іншої. Ці та інші проблеми можна вирішити за допомогою «віртуальної
машини». Віртуалізація сьогодні отримала повсюдне поширення, і це цілком
зрозуміло. Переваги технології невичерпні: економічна ефективність, надійність,
відновлюваність, і так далі, і тому тощо. В статтях з комп’ютерної тематики
нерідко згадується поняття «віртуальна машина». Розглянемо загальні аспекти
даного поняття.
Віртуальна машина – це програма, яку ви запускаєте зі своєї операційної
системи (ОС). Програма емулює фізичний комп'ютер, тому у віртуальної
машини є:
– BIOS.
– Жорсткий диск (відведене місце на вашому жорсткому диску).
– CD-ROM (ваш CD-ROM або підключений ISO-образ).
– Мережеві адаптери для з'єднання з вашою реальною машиною,
мережевими ресурсами або іншими віртуальними машинам і т.д.
У широкому сенсі, віртуалізація являє собою процес відділення реалізації
якого об'єкта чи процесу від його подання для користувача. Кажучі інакше:
віртуалізація має місце бути тоді, коли ми бачимо щось і працюємо з тим, що
насправді має іншу від нашого бачення природу і будову. Потрібно це тільки для
того, щоб нам було зручно працювати зі створеним для нас середовищем, яке
насправді влаштовано зовсім інакше, ніж ми його собі уявляємо.
Віртуалізація буває різна: ОС, додатків, систем зберігання даних, окремих
апаратних і програмних компонентів обчислювальних систем. Поняття
віртуалізації умовно можна розділити на дві фундаментально розрізняються
категорії:
– Віртуалізація платформ.
– Продуктом цього виду віртуалізації є віртуальні машини.
– Деякі програмні абстракції, що запускаються на платформі реальних
апаратно-програмних систем.
– Віртуалізація ресурсів
– Даний вид віртуалізації переслідує своєю метою комбінування або
спрощення подання апаратних ресурсів для користувача і здобуття якихось
користувальницьких абстракцій обладнання, просторів імен, мереж і т.п.
Віртуалізація ОС теж буває різна, проте нас цікавить таке її подання для
користувача: в ОС фізичного комп'ютера (її прийнято називати хостовою ОС):
як звичайна програма, встановлюється платформа віртуалізації, за допомогою
якої створюються віртуальні машини, в яких, в свою чергу, встановлюються різні
ОС (їх прийнято називати гостьовими ОС). Під віртуалізацією платформ
розуміють створення програмних систем на основі існуючих апаратно-
програмних комплексів, що залежать або незалежних від них. Система, що надає
апаратні ресурси і програмне забезпечення, називається хостової (host), а
сімуліруемие їй системи - гостьовими (guest). Щоб гостьові системи могли
стабільно функціонувати на платформі хостової системи, необхідно, щоб
програмне і апаратне забезпечення хоста було досить надійним і надавало
необхідний набір інтерфейсів для доступу до його ресурсів. Є кілька видів
віртуалізації платформ, в кожному з яких здійснюється свій підхід до поняття
«віртуалізація». Види віртуалізації платформ залежать від того, наскільки повно
здійснюється симуляція апаратного забезпечення.
1.4.1 Повна емуляція (симуляція).
При такому вигляді віртуалізації віртуальна машина повністю віртуалізує
все апаратне забезпечення при збереженні гостьової операційної системи в
незмінному вигляді. Такий підхід дозволяє емулювати різні апаратні
архітектури. Довгий час такий вид віртуалізації використовувався, щоб
розробляти програмне забезпечення для нових процесорів ще до того, як вони
були фізично доступними. Такі емулятори також застосовують для
низькорівневої налагодження операційних систем. Основний мінус даного
підходу полягає в тому, що емульованого апаратне забезпечення вельми і вельми
істотно уповільнює швидкодію гостьової системи, що робить роботу з нею дуже
незручною, тому, крім як для розробки системного програмного забезпечення, а
також освітніх цілей, такий підхід мало де використовується.
1.4.2 Часткова емуляція (нативна віртуалізація).
У цьому випадку віртуальна машина виртуализує лише необхідну кількість
апаратного забезпечення, щоб вона могла бути запущена ізольовано. Такий
підхід дозволяє запускати гостьові операційні системи, розроблені тільки для тієї
ж архітектури, що і у хоста. Таким чином, кілька примірників гостьових систем
можуть бути запущені одночасно. Цей вид віртуалізації дозволяє істотно
збільшити швидкодію гостьових систем в порівнянні з повною емуляцією і
широко використовується в даний час. Також, з метою підвищення швидкодії, в
платформах віртуалізації, що використовують даний підхід, застосовується
спеціальний «прошарок» між гостьовою операційною системою і устаткуванням
(гіпервізор), що дозволяє гостьовий системі безпосередньо звертатися до
ресурсів апаратного забезпечення. Гіпервизор, так званий також «Монітор
віртуальних машин» (Virtual Machine Monitor) - одне з ключових понять у світі
віртуалізації. Застосування гіпервізора, що є сполучною ланкою між гостьовими
системами та апаратурою, істотно збільшує швидкодію платформи, наближаючи
його до швидкодії фізичної платформи. До мінусів даного виду віртуалізації
можна віднести залежність віртуальних машин від архітектури апаратної
платформи. Приклади продуктів для нативної віртуалізації: VMware Workstation,
VMware Server, VMware ESX Server, Virtual Iron, Virtual PC, VirtualBox, Parallels
Desktop та інші. Зазвичай програми працюють в ізольованому адресному
просторі і взаємодіють з обладнанням за допомогою інтерфейсу API (Application
Programming Interface - інтерфейс прикладного програмування), що надається
операційною системою. Якщо дві операційні системи сумісні за своїми
інтерфейсами API (наприклад, Windows 98 і Windows ME), то програми,
розроблені для однієї з них, працюватимуть і на іншій. Якщо дві операційні
системи несумісні за своїми інтерфейсами API (наприклад, Windows 2000 і
Linux), то необхідно забезпечити перехоплення звернень додатків до API
гостьової ОС і зімітувати її поведінку засобами хостової ОС. При такому підході
можна встановити одну операційну систему і працювати одночасно як з її
додатками, так і з додатками іншої операційної системи.
1.4.3 Віртуальні машини з квазіемуляціею гостьової ОС
Технологія квазіемуляціі гостьової ОС заснована на тому, що далеко не всі
інструкції гостьової ОС потребують емуляції засобами хостової операційної
системи. Багато з інструкцій, необхідних для коректної роботи «гостьових»
додатків, можуть бути безпосередньо адресовані хостової ОС. Виняток
становлять інструкції для керування такими пристроями, як відеокарта, IDE-
контролер, таймер, і деякими іншими. Таким чином, в процесі роботи RM з
квазіемуляціей відбувається вибіркова емуляція інструкцій гостьової ОС.
Очевидно, що продуктивність такої ВМ повинна бути вище, ніж у ВМ з повною
емуляцією. Тим не менш, як було сказано, при досягнутих рівнях продуктивності
персональних комп'ютерів різниця виявляється не настільки відчутною.
1.4.4 Віртуалізація ресурсів та об’єднання, агрегація та концентрація
компонентів
При описі віртуалізації платформ ми розглядали поняття віртуалізації у
вузькому сенсі, переважно застосовуючи його до процесу створення віртуальних
машин. Однак якщо розглядати віртуалізацію в широкому сенсі, можна прийти
до поняття віртуалізації ресурсів, узагальнюючим в собі підходи до створення
віртуальних систем. Віртуалізація ресурсів дозволяє концентрувати,
абстрагувати і спрощувати управління групами ресурсів, таких як мережі,
сховища даних і простору імен. Під таким видом віртуалізації ресурсів
розуміється організація декількох фізичних або логічних об'єктів в пули ресурсів
(групи), що представляють зручні інтерфейси користувачеві. Приклади такого
виду віртуалізації:
– Багатопроцесорні системи, що представляються нам, як одна потужна
система.
– RAID-масиви та засоби керування томами, що комбінують декілька
фізичних дисків в один логічний.
– Віртуалізація систем зберігання, використовувана при побудові мереж
зберігання даних SAN (Storage Area Network).
– Віртуальні приватні мережі (VPN) і трансляція мережевих адрес (NAT),
що дозволяють створювати віртуальні простори мережевих адрес та імен.
1.4.5 Кластеризація комп'ютерів та розподілені обчислення, поділ
ресурсів, інкапсуляція
Цей вид віртуалізації включає в себе технології, якізастосовуються при
об'єднанні безлічі окремих комп'ютерів у глобальні системи (метакомпьютери)
для спільного вирішення загальної задачі.
При поділі ресурсів у процесі віртуалізації відбувається поділ одного
великого ресурсу на кілька однотипних об'єктів, зручних для використання. У
мережах зберігання даних це називається зонуванням ресурсів («zoning»).
Багатьом це слово відомо як приховування об'єктом всередині себе своєї
реалізації. Стосовно до віртуалізації, можна сказати, що це процес створення
системи, що надає користувачеві зручний інтерфейс для роботи з нею і приховує
подробиці складності своєї реалізації. Наприклад, використання центральним
процесором кеша для прискорення обчислень не відбивається на його зовнішніх
інтерфейсах.
Віртуалізація ресурсів, на відміну від віртуалізації платформ, має більш
широкий і розпливчастий сенс і являє собою масу різних підходів, спрямованих
на підвищення зручності звернення користувачів з системами в цілому. Тому,
далі ми будемо спиратися в основному на поняття віртуалізації платформ,
оскільки технології, пов'язані саме з цим поняттям.
– Робота у ВМ зі старими програмами, які не підтримують хостову ОС
вашого ПК.
– Створення захищених користувальницьких середовищ для роботи з
мережею (всілякі віруси й шкідливе програмне забезпечення зможе лише
пошкодити ГОС ВМ, не торкнувшись реальної системи).
– Безмежний простір для експериментів (встановлюйте будь-які програми,
які можуть зашкодити ОС, експериментуйте з налаштуваннями реєстру і т.д.).
– Відмінний полігон для розробки та тестування ПЗ в різних ОС і їх
конфігураціях.
– Широкі можливості навчання роботі з новими ОС і програмами
(наприклад, якщо вам знайома тільки Windows, ви можете собі зробити кілька
віртуальних машин з різними операційними nix-системами Linux, Free BSD та
QNX, запускати їх, коли потрібно, і вчитися роботі з ними). Це, звичайно ж,
далеко не всі можливості застосування ВМ на комп'ютерах користувачів. Кожен
сам може собі придумати, для яких цілей йому потрібна ВМ, і відчути, наскільки
це зручно, надійно і просто. Перед можливістю установки декількох ХОС на
один комп'ютер з їх роздільним завантаженням, ВМ мають такі безумнівні
переваги:
– Можливість працювати одночасно в декількох системах, здійснювати
мережеву взаємодію між ними.
– Можливість зробити «знімок» поточного стану системи і вмісту дисків
одним кліком миші, а потім протягом дуже короткого проміжку часу
повернутися в початковий стан.
– Простота створення резервної копії ОС (не треба створювати ніяких
образів диску, всього лише потрібно скопіювати папку з файлами ВМ).
– Можливість мати на одному комп'ютері необмежене число віртуальних
машин з абсолютно різними операційними системами і їх станами.
– Відсутність необхідності перезавантаження для перемикання в іншу ОС.
Тим не менш, незважаючи на всі переваги, ВМ також мають і недоліки:
– Потреба в наявності достатніх апаратних ресурсів для функціонування
декількох ОС одночасно.
– ОС працює трохи повільніше у ВМ, ніж на «голому залізі». Однак,
останнім часом показники продуктивності гостьових систем значно наблизилися
до показників фізичних ОС (в межах одних і тих же ресурсів), і незабаром, за
рахунок поліпшення технологій реалізації віртуальних машин, продуктивність
гостьових систем практично буде рівна реальним.
– Існують методи визначення того, що програма запущена у ВМ (в
більшості випадків, виробники систем віртуалізації самі надають таку
можливість). Вірусорозробники і розповсюджувачі шкідливого ПЗ, звичайно ж,
в курсі цих методів і останнім часом включають в свої програми функції
виявлення факту запуску у ВМ, при цьому ніякої шкоди заражене ПЗ гостьовій
системі не заподіює.
– Різні платформи віртуалізації поки не підтримують повну віртуалізацію
всього апаратного забезпечення та інтерфейсів. Останнім часом кількість
підтримуваного апаратного забезпечення стрімко зростає у всіх виробників
платформ віртуалізації. Крім основних пристроїв комп'ютера, вже
підтримуються мережеві адаптери, аудіоконтроллер, інтерфейс USB 2.0,
Контролер портів COM і LPT і приводи CD-ROM. Але найгірше йдуть справи з
віртуалізацією відеоадаптерів і підтримкою функцій апаратного прискорення
тривимірної графіки - у віртуальних машинах все ще повноцінно не можна грати
в 3D гри! У цьому плані, попереду всіх знаходиться компанія VMware з
експериментальної підтримкою функцій Direct 3D (проте, деякі важливі функції,
такі як Vertex-шейдери все ще не підтримуються). Але в найближчому
майбутньому ця проблема, безумовно, буде вирішена. Всі перераховані недоліки
ВМ в принципі можуть бути розв'язані і, в порівнянні з великим переліком їх
переваг, є не настільки істотними. Саме тому, технології віртуалізації і ВМ
розвиваються вибуховими темпами, а користувачі знаходять їм все нові і нові
застосування.
1.5 Висновки
З вище перерахованого аналізу технологій та засобів реалізації можна
зробити висновок, що тестування на проникнення має на даний момент деяку
нішу застосування і використовується та модернізується компаніями для захисту
своїх активів доволі часто.
Зважаючи на великий коефіцієнт корисності даної технології в повній мірі
широкого розповсюдження дана технологія тільки набуває.
Технології з тестування на проникнення систем мають велику
різноманітність та ступінь оцінки захисту систем. Проте кожний пункт та
граничні лінії доступу завжди прописуються в угоді. З якої виходить, що
спеціаліст може виконувати тільки деякий перелік задач та може обмежуватись
в доступі до конфіденційної інформації.
Кожна з існуючих систем може піддаватись тестуванню одним із типів
ящиків (чорний, білий, сірий). Найефективнішим є чорна скринька, оскільки
спеціаліст не моє майже жодних знань про систему, на яку він буде проводити
атаку. Це дозволяє максимально ефективно провести збір помилок та дати більш
об’єктивну оцінку.
РОЗДІЛ 2. ОГЛЯД ІСНУЮЧИХ МЕТОДОЛОГІЙ ТЕСТУВАННЯ
НА ПРОНИКНЕННЯ
В даному роздiлi проводиться аналiз iснуючих методологiй тестування
на проникнення, у тому числi наявних методик для оцiнки безпеки систем,
висвiтлюються їх проблемнi сторони. Визначається проблематика тестування
на проникнення пристроїв та систем і обґрунтовується необхiднiсть
удосконалення методик в наявних джерелах для підвищення оцінки захисту
систем.
2.1 Методології тестування на проникнення
Для проведення тесту на проникнення сьогодні існує певна кількість
методологій, які вважаються стандартами для тестувальників. Цими
методологіями є:
OSSTMM – The Open Source Security Testing Methodology Manual [28]
NIST Special Publications 800115
Technical Guide to Information Security Testing and Assessment [29]
PTES — Penetration Testing Execution Standard [30]
ISSAF — Information System Security Assessment Framework [31]
2.1.1 Аналіз методології OSSTMM
Методологія є структурованим і формалізованим документом, що
детально описує аспекти тестування на проникнення. В основному методика
спрямована на тестування мереж. В розділах міститься інформація про:
• Суть тестування, рамки, процеси тестування;
• Метрики безпеки;
• Аналіз соціальних процесів та взаємодій з персоналом при тестуванні;
• Тестування безпеки фізичної інфраструктури, безпровідних
технологій, даних;
• Рекомендації щодо відповідності тесту державним стандартам;
• Підготовку звіту.
В документі немає інформації про класифікацію вразливостей та
додаткового опису до вимог у практичному контексті, однак добре описані
процедури підготовки до тестування і методи/підходи до самого процесу
тестування. Також методологія має так звану «карту безпеки», в якій
відображаються основні складові, що повинні бути оцінені в процесі тестування
(інформаційна безпека, безпека фізичної інфраструктури, безпека безпровідних
технологій, безпека Інтернет технологій та інших). Зазначена інформація, яку
атакуючий може отримати в результаті атаки на ті чи інші оцінювані складові .
2.1.2 Аналіз методології NIST SP 800115
Стандарт тестування розроблений та підтримується NIST, описує
загальну процедуру тестування на проникнення та технічні аспекти оцінки рівня
інформаційної безпеки компанії. Він також надає рекомендації щодо аналізу
результатів випробувань та розробки заходів щодо зменшення ризиків безпеки.
Виділяє 4 етапи тестування:
1) Планування визначаються правила тестування, цілі, задачі;
2) Збір інформації розвідка та аналіз вразливостей;
3) Атака проводиться у разі знайдення вразливостей на попередньому
етапі;
4) Формування звіту. Описані кроки пост експлуатації, аналізу отриманих
даних, виявлення причин, що привели до появи вразливостей, розробка
рекомендацій по їх знешкодженню та розробки звіту.
За даним документом, тестування на проникнення, окрім стандартних
моделей застосувань, можна використовувати для визначення:
1) Наскільки добре система переносить реально існуючі моделі атак;
2) Приблизного рівня складності, який необхідно подолати атакуючому;
3) Додаткових заходів протидії, які могли б послабити загрози, що
відносяться до тестованої системи;
4) Здатності методів захисту системи до виявлення атак і забезпечення
відповідної реакції на них.
Методологія представляється як така, що може використовувати та
посилатись на інші методології і методики у процесі тестування і інших
пов’язаних процесів, тобто є розширюваною. Серед іншого, методологія
пояснює, як проводити попередній збір інформації (документації, логи, набори
правил, конфігурації, збір інформації про мережі), як організовувати процес
тесту (координація, взаємодія, оцінка вразливостей, більше з
бізнессторони), включає в себе методи оцінки вразливостей, що часто
зустрічаються (злам паролів, соціальна інженерія та інші).
2.1.3 Аналіз методології PTES
Стандарт, розроблений для об’єднання як бізнес вимог, так і можливостей
провайдерів безпеки, з можливістю масштабування тестів на проникнення. PTES
складається з 7 розділів та додаткового посібника, що складається з
технічних вказівок. Дані 7 розділів включають в себе відомості про:
1) Попередню взаємодію з клієнтом — розглядає канали комунікацій,
правила взаємодії і контролю, конкретні способи реагування і контролю
інцидентів;
2) Збір інформації — освітлює цілі і задачи підходу, процес мислення
тестувальника, дозволяє створити певний план проведення тесту;
3) Моделювання загроз — допомагає визначити підхід до процесу
тестування на проникнення;
4) Аналіз вразливостей — фокусується на виявленні недоліків безпеки і
методів експлуатації;
5) Експлуатацію вразливостей — розділ присвячений обхіду обмежень
безпеки та різноманітних захистів;
6) Постексплуатацію — оцінку скомпрометованої системи та пошук
варіантів закріплення для подальших атак;
7) Підготовку звіту — визначає базові критерії для написання звітів за
результатами тестування на проникнення.
В документі немає інформації про класифікацію вразливостей та
додаткового опису до вимог у практичному контексті, однак добре описані
процедури підготовки до тестування і методи/підходи до самого процесу
тестування. Також методологія має так звану «карту безпеки», в якій
відображаються основні складові, що повинні бути оцінені в процесі тестування
(інформаційна безпека, безпека фізичної інфраструктури, безпека безпровідних
технологій, безпека Інтернет технологій та інших). Зазначена інформація, яку
атакуючий може отримати в результаті атаки на ті чи інші оцінювані складові.
Посібник гайд освітлює особливості тестування переважно ІТ інфраструктури в
підприємстві, аналіз безпеки соціальної складової (персонал, соціальні мережі,
контакти та інше), аналіз периметру безпеки. Також додатковий посібник до
стандарту покриває вибір інструментарія тестування (операційні системи,
програмне забезпечення, апаратні та радіотехнічні засоби), методі збору
інформації (OSINT, програмне забезпечення під різні ОС та інші), а також має
вказівки, що дозволяють сформувати рекомендації до покращення стану
захищеності системи.
2.1.4 Аналіз методології ISSAF
Методологія ISSAF розроблена групою безпеки відкритих
інформаційних систем (OSSIG – Open Information Systems Security Group). Згідно
методології ISSAF, тестування на проникнення склається з наступних 3 фаз:
1) планування та підготовка до тестування (підписання угоди між
замовником та виконавцем тестування на проникнення, узгодження методики
тестування та набору програм для проведення тестування на проникнення);
2) проведення тестування на проникнення (збір інформації, складання
схеми мережі, що тестується, ідентифікація вразливостей, заходи з проникнення
у систему, отримання доступу до ресурсів, компрометування віддалених
користувачів / сайтів, приховування слідів);
3) формування звіту про проведене тестування на проникнення (перелік
програм та методик, що були використані під час тестування, дата та час
проведення тестування, список знайдених вразливостей, рекомендації для
підвищення безпеки). Методологія ISSAF дозволяє проводити:
1. Оцінку захищеності паролів;
2. Оцінку захищеності мережевих пристроїв;
3. Оцінку захищеності між мережевих екранів;
4. Оцінку захищеності систем виявлення вторгнень;
5. Оцінку захищеності веб – додатків;
6. Оцінку захищеності операційних систем;
7. Аудит програмного коду;
8. Аналіз захищеності баз даних .
2.4 Переваги та недоліки використання віртуальних машин
До основних переваг віртуальних машин відносять:
1. Економія на апаратному забезпеченні при консолідації серверів.
Істотна економія на придбанні апаратного забезпечення відбувається при
розміщенні декількох віртуальних серверів на одному фізичному. Залежно, від
компанії-постачальника платформи віртуалізації, доступні можливості по
балансуванню робочого навантаження, контролю виділених ресурсів, міграції
між фізичними хостами і бекапа. Все це тягне за собою реальну економію коштів
на обслуговуванні, управлінні та адмініструванні інфраструктури серверів.
1. Не потрібно міняти кулери на процесорах, ремонтувати вийшов з ладу
блок живлення і т.д. і т.п. З іншого боку підвищується вимогливість до апаратних
ресурсів (мінус). У разі розміщення на одному фізичному і безлічі віртуальних
серверів різних ОС і додатків користувач отримує наступне:
2. Обладнання для системи займає менше місця в стойці. Замість стійки в
3-4 малопотужних сервера можна встановити один сервер, який буде виконувати
ті ж самі функції. Особливо це критично, якщо обладнання розміщується на
орендованій майданчику провайдера або не вистачає місця в стійці. Для
віртуальних машин, розміщених на одному сервері, потрібно менше портів на
KVM-switch (Keyboard-Video-Mouse).
3. Додаються додаткові можливості адміністрування. Наприклад,
з'являється можливість при відмові в роботі програми не тільки перезапустити
потрібний процес, а перезавантажити віртуальний сервер цілком, не впливаючи
на роботу додатків, розміщених на інших віртуальних серверах.
4. Поліпшується система безпеки. Навіть при успішному
несанкціонованому проникненні до мережі на один віртуальний сервер інші
віртуальні сервери залишаються недоторканими.
5. Значно спрощується процес делегування повноважень. Можна передати
права на адміністрування віртуальним сервером довіреній особі, яка не
переживаючи про перетин повноважень при управлінні процесами,
розміщеними на інших серверах.
6. На одному комп'ютері можливе використання серверів під управлінням
різних операційних систем, наприклад, Windows і FreeBSD.
7. Можливість підтримки старих операційних систем з метою
забезпечення сумісності. При виході нової версії операційної системи, стару
версію можна підтримувати на віртуальній машині, поки не буде повністю
готова нова ОС. І навпаки, можливість передати налаштування на нову ОС на
віртуальну машині і випробувати її без шкоди для основної системи.
8. Можливість ізолювати потенційно небезпечні оточення. Якщо якийсь
додаток або компонент викликає сумніви в його надійності і захищеності, можна
використовувати його на віртуальній машині без небезпеки пошкодити життєво
важливі компоненти системи. Таке ізольоване середовище називають також
«пісочницею» (sandbox). Крім цього, можна створювати віртуальні машини,
обмежені політиками безпеки (наприклад, машина перестане запускатися через
два тижні).
9. Можливість створення необхідних апаратних конфігурацій. Іноді
потрібно використовувати задану апаратну конфігурацію (процесорний час,
кількість виділеної оперативної і дискової пам'яті) при перевірці працездатності
додатків в певних умовах. Досить складно без віртуальної машини «загнати»
фізичну машину в такі умови. У віртуальних машинах - це кілька команд миші.
10. Віртуальні машини можуть створювати конфігурації пристроїв, яких у
вас немає. Наприклад, багато систем віртуалізації дозволяють створювати
віртуальні SCSI диски, віртуальні багатоядерні процесори і т.п. Це може стати в
нагоді для створення різного роду симуляцій.
11. На одному хостові може бути запущено одночасно кілька віртуальних
машин, об'єднаних у віртуальну мережу. Така особливість надає безмежні
можливості по створенню моделей віртуальної мережі між декількома
системами на одному фізичному комп'ютері. Особливо це необхідно, коли
потрібно змоделювати якусь розподілену систему, що складається з декількох
машин. Також можна створити декілька ізольованих користувальницьких
оточень (для роботи, розваг, роботи в Інтернет), запустити їх і перемикатися між
ними в міру необхідності виконання тих або інших завдань.
12. Віртуальні машини підвищують мобільність. Папка з віртуальною
машиною може бути переміщена на інший комп'ютер, і там віртуальна машина
може бути відразу запущена. Не потрібно створювати ніяких образів для
міграції, і, до того ж, віртуальна машина відв'язана від конкретної апаратури.
13. Віртуальні машини більш керовані. При використанні віртуальних
машин істотно підвищується керованість щодо створення резервних копій,
створення знімків станів віртуальних машин («снепшот») і відновлень після
збоїв у зв'язку з тим, що сервери служб отримують незалежність від заліза, на
якому працюють.
Основні недоліки віртуальних машин:
1. Неможливість емуляції всіх пристроїв. В даний момент всі основні
пристрої апаратних платформ підтримуються вендорами систем віртуалізації,
однак якщо ви використовуєте, наприклад, будь-які контролери або пристрої, які
не підтримуються ними, доведеться відмовитися від віртуалізації такого
оточення.
2. Віртуалізація вимагає додаткових апаратних ресурсів. В даний час
використання різних технік віртуалізації дозволило наблизити показники
швидкодії віртуальних машин до реальних, однак, щоб фізичний хост зміг
запускати хоча б кілька віртуальних машин, потрібна достатня для них кількість
апаратних ресурсів.
3. Деякі платформи віртуалізації вимогливі до конкретного апаратного
забезпечення. Зокрема, платформа компанії VMware, ESX Server, була б і зовсім
лідером серед постачальників послуг даної сфери, якби не висувала жорстких
вимог до апаратного забезпечення.
4. Якісні платформи віртуалізації коштують значних грошових витрат.
Часом, вартість розгортання одного віртуального сервера дорівнює вартості ще
одного фізичного, в певних умов це може виявитися недоцільним. Звісно є безліч
безкоштовних рішень, але вони, в основному, орієнтовані на домашнього
користувача і малий бізнес.
2.5 Сфери застосування віртуальних машин
Одними з основних сфер застосування можливостей віртуалізацій
вважають:
1. Віртуальні сервери. Віртуальну машину можна використовувати в
корпоративній або локальній мережі використовуючи її як віртуальний сервер.
Припустимо, компанії потрібен публічний WEB та приватний SQL сервер. З
міркувань безпеки, публічний сервер повинен бути розташований в так званій
демілітаризованій (DMZ) зоні, а приватний SQL - всередині локальної мережі,
для якої буде створено бар’єр у вигляді мережевого екрана. Що вимагає для
реалізації дві машин.
Для реалізації, можна використати VMware або VirtualBox, розмістивши
публічний WEB-сервер на віртуальній машині, а приватний SQL - на основній.
Та це могло б спрацювати. Але для досягнення прийнятного рівня
продуктивності навіть за підтримки апаратної віртуалізації нам знадобиться
досить потужне залізо, здатне працювати з емулятором на розумній швидкості.
2. Полігон для вірусів. Досить часто ВМ використовуються для
експериментів з потенційно небезпечним програмним забезпеченням,
отриманим з ненадійних джерел. Антивірусна перевірка - не надто ефективний
засіб для пошуку невідомих або модифікованих черв'яків, вірусів і руткітів.
Зловмисникам добре відомо, як «засліпити» активні технології та аналізатори.
Утиліти, орієнтовані на пошук руткітів, добре працюють лише в перші дні своєї
появи, а потім хакери знаходять обхідний шлях.
Пряме порівняння дискових образів дозволяє виявити всі руткіти, черв'яки
і віруси без винятку (звичайно, за умови, що вони вносять зміни в файлову
систему, а не обмежуються зараженням однієї лише оперативної пам'яті, які
працюють до першого перезавантаження системи). Алгоритм пошуку
шкідливого програмного забезпечення виглядає так: необхідно тримати бекап
образ стерильної системи, зберігаючи його в надійному місці, встановлюємо
нове програмне забезпечення, робимо резервну копію ще один образ. Монтуємо
обидва образи на свідомо не заражену систему і порівнюємо їх. Тривіальне, по
файлове порівняння виявляє до 90% шкідливого програмного забезпечення.
Інші 10% виявляє побайтове порівняння, знаходячи віруси, які ховаються в
NTFS-потоках або інших місцях (працюючи з диском на низькому рівні,
спеціаліст повинний знати всі базові структури файлової системи)
Зрозуміло, що проводити подібні експерименти найкраще під емулятором.
Так набагато простіше оперувати образами віртуальних жорстких дисків, та
виділяти окрему (фізичну) машину не буде потрібно. Зручність, простота і
економія - очевидна. Якщо ВМ з'єднана з основною системою віртуальної
мережею, то шкідливе програмне забезпечення може атакувати базову ОС,
використовуючи вразливості в мережевих службах. Адміністратору слід або
своєчасно виконувати всі захисні процедури, або відключити вірусний полігон
від мережі взагалі - не забуваючи про ресурси зі спільним доступом. Віртуальна
машина VMware підтримує їх в обхід Ethernet-адаптера. Шкідливе програмне
забезпечення продовжує працювати навіть після видалення віртуальної
мережевої карти, і схильні відразу двом типам атак - через вразливості в сервісі
«спільних папок» і шляхом відправлення черв'яків, модифікуючи шаблон папки,
що автоматично «підхоплює» Провідником. Те ж саме відноситься і до всіх
інших типів носіїв. Це істотно ускладнює обмін даними між віртуальною і
основний машинами. Саме надійне - копіювати дані через CD-ROM (не
обов'язково фізичний - підійде і віртуальний, просто беремо будь-яку програму
для створення iso-образів і монтуємо її на основну систему і на VMware).
Важливо, що за замовчуванням VMware автоматично розпізнає всі
підключені USB-пристрої і дає ВМ до них повний доступ. Припустимо, ми
підключаємо FLASH, зовнішній жорсткий диск з USB-інтерфейсом або інший
девайс подібного роду, на якому тут же оселяється вірус, що вирвався з катівень
віртуальної машини. Щоб запобігти вторгненню, достатньо відключити USB-
контролер у властивостях віртуальної машини.
Однак проблеми на цьому не закінчуються. Руткіти вже давно навчилися
розпізнавати ВМ, відмовляючись від зараження в їх присутності, що зводить
нанівець весь концепт. Встановлюючи програмне забезпечення з руткітам на
віртуальну машину, порівнюємо образи, нічого не знаходимо і, задоволені
собою, запускаємо руткіта в основну систему. Виходить, гарантовано виявити
сучасних руткітів за допомогою віртуальних машин неможливо! А якщо ще
врахувати велику кількість дірок в емуляторах, то руткіт має всі шанси заразити
основну систему з гостьової машини. Рішення цієї проблеми використовувати
виділену живу машину, або надійну віртуальну машину з повною емуляцією
(наприклад, Bochs). Це запобігне вірусному вторгненню, але, на жаль, не врятує
від детекції ВМ руткітам. Bochs містить безліч дрібних дефектів емуляції (веде
себе не як справжній процесор), які не перешкоджають роботі нормальних
програм, але можуть бути використані для Детектив емулятора. До того ж,
емулятор несе на своєму борту досить специфічний набір віртуального заліза, за
яким його легко впізнати. І хоча за наявності вихідних текстів можна
перешкодити цьому - купити живий комп'ютер набагато дешевше, ніж жолобити
віртуальне залізо.
2.6 Інструмент виявлення мережевих атак та дзеркальні сервери
Офісні мережі зазвичай не відчувають необхідності в сенсорах і датчиках,
детекторів вторгнення, а якщо і відчувають, то справа зазвичай обмежується
придбанням комерційної IDS/IPS-системи, вбудованої в брандмауер і спокійно
працює на шлюзі в інтернеті або на одному з вузлів локальної мережі.
З ростом мережі з'являється бажання встановити спеціалізовану систему
виявлення вторгнень, наприклад, Snort (безкоштовний) або AMP (комерційний).
І розмістити її на виділеному вузлі, оскільки для установки того ж AMP
адміністратор повинен надати його постачальникам віддалений shell на свою
машину. Причому, AMP буде не тільки автоматом завантажувати свіжі
сигнатури з мережі, але і відправляти весь підозрілий трафік для аналізу на
сервери компанії Endeavor, яка і є його розробником.
Віддавати на аналіз трафік власної компанії ідея не найкраща оскільки
останній може містити в собі конфіденційну інформацію і хай можливо доступ
до неї розробник отримає згодом вона може залишатись актуальною. Краще
розмісити систему на окремому вузлі, відключеному від основної локальної
мережі, але живити від того ж самого провайдера послуг інтернету. Для цієї цілі
можна використовувати віртуальну машину Головне, надійно ізолювати її від
корпоративної мережі.
Найбільшу проблему становлять віртуальні мережеві карти, через які
гостьова операційна система легко може отримати доступ до основної. Всі
віртуальні картки в обов'язковому порядку повинні бути відключені!
Серед багатьох варіантів використання віртуальних машин є кілька
варіантів наприклад, VMware дуже відома і має занадто багато вразливостей, але
доволі зручна. Bochs неймовірно повільно працює. Virtual PC - непоганий вибір,
але враховуючи велику кількість вразливостей в процесорах, його використання
вкрай небезпечно. Реально залишається тільки VirtualBox, XEN або QEMU.
Шкода програмного забезпечення наприклад, черв'яків або вірусів цілком
з'ясовна. Вони якраз для цього і створювались. На жаль, приватне програмне
забезпечення часто завдає набагато більшої шкоди. Взяти хоча б оновлення
безпеки або нові версії. Всім адміністраторам добре відомо, що установка деколи
приводить до важко вирішуваних конфліктів, втрат даних, або повного виходу з
ладу операційної системи.
Аналогічним чином справи йдуть зі зміною налаштувань, сенсу яких
адміністратор до кінця не розуміє і діє методом тику. Один невірний рух руки - і
система відмовляється завантажуватися, а щоб підняти її, потрібні знання та
кваліфікація, що виробляються тільки в боротьбі з ось такими злетами і
падіннями. Користуючись лиш довідковою літературою проблема залишиться не
вирішеною. І тут віртуальні машини стають незамінні.
Встановлюємо систему з усіма додатками та сервісними службами на
VMware / Virtual PC / VirtualBox / etc, і тепер всі нові зміни безпеки, поновлення,
настроювання, в першу чергу, тестуємо на гостьовій операційній системі,
спостерігаючи за її реакцією. Якщо тести відбуваються нормально можемо
переносити зміни на основну машину. Якщо ж ні шукаємо як виправити і
продовжуємо тести.
Віртуальні машини відкривають практично необмежені можливості для
експериментів. Головне - правильно ними скористатися, передбачивши
максимум можливих побічних ефектів і розробивши план щодо їх усунення.
Існуючі віртуальні машини призначені для запуску легальних додатків і
часто конструктивно не пристосовані для ізоляції шкідливого програмного
забезпечення. А тому використовувати їх у ролі «пісочниці» (своєрідного
загороди для вірусів) категорично не рекомендується, а якщо і використовувати,
то тільки з купою запобіжних мір, описаних вище.
Навіть занадто потужний руткіт не вистоїть проти порівняння дискових
образів (за вирахуванням руткітів, що мешкають виключно в оперативній пам'яті
і не вносять у файлову систему ніяких змін). Проблема в тому, що руткіти вже
навчилися відслідковувати популярні віртуальні машини, відмовляючись від
вторгнення в їх присутності. А тому, чим менше відома віртуальна машина, тим
краще для адміністратора і гірше для руткіта.
2.7 Висновки
У даному розділі виконано порівняльний аналіз існуючих методологій
(OSSTMM, PTES, ISSAF, NIST SP 800115, GSMA IoT Security Assessment,
OWASP), в результаті якого показано, що вони:
Ефективність тестування на проникнення систем, особливо в умовах
фіксованого часу на тестування, залежить від алгоритму дій, якого потрібно
дотримуватись. Отже, тестувальнику потрібно додатково витратити час і на
пошук та виділення потрібних етапів з існуючих методологій та методичних
вказівок, що може негативно впливати на процес тестування і отримані
результати. З огляду на ці проблеми виникає потреба в розробці такого методу,
що враховував би кращі сторони проаналізованих стандартів.
Використання віртуальних машин грає велику роль в тестуванні та
налаштуванні систем на стерсостійкість та проникнення. Правильне
використання потенціалу віртуальної машини дозволяє убезпечити, як основну
машину так і мережу від шкідливого впливу.
З вище сказаного можемо зробити висновок: віртуальні машини не є дуже
надійним ресурсом для вірусів, але якщо бути обережним та дотримуватись норм
безпеки, то (з урахуванням низької якості переважної більшості вірусів і руткітів)
краще використовувати віртуальну машину, ніж цілком покладатися на
антивіруси.
РОЗДІЛ 3. ПРАКТИЧНА РЕАЛІЗАЦІЯ ВІРТУАЛЬНОГО
ПОЛІГОНУ ДЛЯ ТЕСТУВАННЯ НА ПРОНИКНЕННЯ СИСТЕМИ
Проаналізувавши можливість реалізації, було узгоджено створення набору
віртуальних машин на базі програмної системи VMware Workstation 16. Оскільки
на даний час цей програмний комплекс симуляції здобув значного поширення.
Це дозволить зробити просту та доволі доступну платформу для виконання
лабораторних робіт і подальшого вдосконалення навичок майбутніх спеціалістів.
3.1 Аналіз використаних технічних засобів для практичної реалізації
полігону
Для розробки практичної частини кваліфікаційної роботи
використовувались безкоштовне і широкодоступне програмне забезпечення.
Тому для створення поточної ознайомчої і практичної системи була використана
платформа симуляції роботи операційних систем - VMware Workstation 16 та
дистрибутиви Kali Linux, Ubuntu, DVL та Windows Server 16, Windows Server R2.
Kali Linux (раніше відомий як BackTrack Linux ) — це дистрибутив Linux
із відкритим вихідним кодом на основі Debian , призначений для розширеного
тестування на проникнення та аудиту безпеки. Це робиться за допомогою
загальних інструментів, конфігурацій і засобів автоматизації, які дозволяють
користувачеві зосередитися на завданні, яке потрібно виконати, а не на
оточуючих діях.
Kali Linux містить галузеві модифікації, а також кілька сотень
інструментів, призначених для виконання різноманітних завдань інформаційної
безпеки, таких як тестування на проникнення, дослідження безпеки,
комп’ютерна експертиза, зворотне проектування, керування вразливістю та
тестування Red Team.
Kali Linux — це багатоплатформне рішення, доступне та вільно поширене
для професіоналів із інформаційної безпеки та любителів. До основних функцій
Kali Linux включено понад 600 інструментів тестування на проникнення: після
перегляду кожного інструменту, включеного в BackTrack, ми вилучили велику
кількість інструментів, які або просто не працювали, або дублювали інші
інструменти, які надавали таку ж або подібну функціональність. Подробиці про
те, що включено, можна знайти на сайті Kali Tools .
Дерево Git з відкритим вихідним кодом знаходиться у відкритому доступі
Весь вихідний код, який міститься в Kali Linux, доступний для будь-кого, хто
хоче налаштувати або перебудувати пакети відповідно до своїх конкретних
потреб.
Kali дотримується стандарту ієрархії файлової системи, що дозволяє
користувачам Linux легко знаходити двійкові файли, файли підтримки,
бібліотеки тощо.
Широка підтримка бездротових інтрефейсів, що зазвичай є значною
проблемою в дистибутивах Linux. Kali Linux була створена з можливістю
підтримки якомога більшої кількості бездротових пристроїв, дозволяючи їй
належним чином працювати на різноманітному апаратному забезпеченні та
роблячи її сумісною з численними USB та іншими бездротовими пристроями.
Нестандартне ядро, виправлене для ін’єкцій які проводять тестувальники
систем на проникнення, команда розробників часто потребує проведення оцінки
бездротового зв’язку, тому наше ядро містить найновіші ін’єкційні покращення
безпеки.
Команда Kali Linux складається з невеликої групи осіб, яким довірено
фіксувати пакети та взаємодіяти зі сховищами, і все це здійснюється за
допомогою кількох безпечних протоколів.
Пакунки та репозиторії, підписані GPG: кожен пакет у Kali Linux
підписується кожним окремим розробником, який його створив і зафіксував, а
репозиторії згодом також підписують пакунки.
Багатомовна підтримка в системі присутня незважаючи на те, що
інструменти проникнення, як правило, написані англійською мовою, Kali
містить справжню багатомовну підтримку, що дозволяє більшій кількості
користувачів працювати рідною мовою та знаходити інструменти, необхідні для
роботи.
Дистрибутив є повністю модульним розробники чудово розуміли, що не
всі погодяться з дизайнерськими рішеннями, тому вони максимально спростили
для наших більш сміливих користувачів налаштування Kali Linux на свій смак,
аж до ядра.
Підтримка ARMEL і ARMHF також є важливою оскільки одноплатні
системи на основі ARM, такі як Raspberry Pi і BeagleBone Black , серед інших,
стають все більш і більш поширеними та недорогими, тому підтримка ARM від
Kali повинна бути максимально надійною, з повністю робочими установками, як
для систем ARMEL, так і для ARMHF. Kali Linux доступний на багатьох
пристроях ARM і має репозиторії ARM, інтегровані в основний дистрибутив,
тому інструменти для ARM оновлюються разом з рештою дистрибутива.
Kali Linux розроблено спеціально для потреб професіоналів із тестування
на проникнення, тому вся документація на сайті розробників передбачає
попередні знання та знайомство з операційною системою Linux загалом.
Ubuntu - операційна система , що розробляється незалежною (або вільною)
спільнотою і заснована на ядрі Linux . Нові версії системи з'являються кожні
шість місяців, при цьому відбувається постійна підтримка оновлень в області
безпеки. Система розповсюджується безкоштовно. Будь-хто може замовити
Ubuntu Linux поштою. Основна особливість системи - зручність та
максимальний комфорт при роботі. Ubuntu використовує систему робочого
столу GNOME . Крім тих програм, які включені в GNOME , Ubuntu виходить з
додатковим програмним забезпеченням , включаючи OpenOffice.org, web-
браузер Mozilla Firefox та растровий графічний редактор GIMP.
Damn Vulnerable Linux (DVL) – живий дистрибутив Linux на основі Slax,
який базується на Slackware.
Відповідно до веб-сайту проекту: «Проклятий вразливий Linux (DVL) —
це все, чим не є хороший дистрибутив Linux. Його розробники витратили
години, наповнюючи його зламаним, погано налаштованим, застарілим і
придатним для експлуатації програмним забезпеченням, яке робить його
вразливим до атак».
Ідея цього дистрибутива полягає в тому, щоб навчити адміністраторів
Linux.
3.2 Практична реалізація комплексу
Початкові налаштування проводились в налаштуванні самого комплексу,
а саме налаштування віртуальних адаптерів мережі дивись рисунок 3.1.
Рисунок 3.1. Налаштування віртуальних адаптерів мережі
Наведена схема нижче подальшого налаштування полігону дивись
рисунок 3.2.
Рисунок 3.2 Схема побудови віртуального полігону
Почнемо з налаштування першої машини Linux Ubuntu на підробку МАС-
адреси маршрутизатора, який діє як шлюз по замовчуванні. Для початку
авторизуємось в самій операційній системі. Введемо логін та пароль при вході
дивись рисунок 3.3
Рисунок 3.3 Авторизація в системі.
Відкриваємо термінал та вводимо команду: sudo nano /proc/sys/net/ipv4/ip
_forward дивись рисунок 3.4. Дана команда редагує файл IP-переадресації.
Рисунок 3.4 IP-переадресація
Після відкриття файлу необхідно змінити параметр з 0 на 1, що після
закриття та збереження активує ІР-переадресацію дивись рисунок 3.5
Рисунок 3.5 Зміна параметрів переадресації
Після заміни параметрів переадресації ввели наведену нижче команду,
щоб ошукати пристрій шлюзу, повідомивши йому, що IP-адреса Ubuntu –
192.168.1.100. Якщо буде запропоновано ввести пароль, введіть безпечний
пароль дивитись рисунок 3.6.
Рисунок 3.6. Команда заміни IP-адреси Ubuntu
Тепер необхідно відправити пакети системі Win16, що Ubuntu є шлюзом
192.168.1.1. Відкрив інший термінал, та клацнувши правою кнопкою миші на
піктограмі терміналу та вибравши новий термінал, і ввів команду нижче. Тепер
у мене відкрито два термінали з ARP-спуфінгом дивись рисунки 3.7-3.8
Рисунок 3.7 Команда заміни ІР-адреси для Win16
Рисунок 3.8 Відкриті термінали з ARP-запитами
Для подальшого аналізу використаємо програму Wireshark (раніше
Ethereal) — програма для аналізу мережевих пакетів Ethernet і інших мереж
(сніфер) з вільним вихідним кодом. Для цього введемо наступну команду: sudo
wireshark дивитись малюнок 3.8.
Рисунок 3.8 Запуск програми аналізу пакетів WireShark
Після завантаження Wireshark клацніть eth0 на панелі списку інтерфейсів,
щоб почати запис у цьому інтерфейсі дивитись рисунок 3.9.
Рисунок 3.9 Вибір інтерфейсу в програмі Wireshark
Після перехоплення деяких пакетів і минуло щонайменше 30 секунд
зупиніть запис у реальному часі, натиснувши кнопку Зупинити поточний запис
у реальному часі дивись рисунок 3.10.
Рисунок 3.10 Зупинка поточний запис у реальному часі
Відфільтруйте пакети у вихідних даних Wireshark, щоб відображати лише
пакети, пов’язані з ARP, ввівши arp у текстовому полі фільтра та натиснувши
кнопку «Застосувати» дивитись рисунок 3.11.
Рисунок 3.11 Фільтрація пакетів
Проаналізуйте першу пару пакетів і зверніть увагу, що MAC-адреса
00:50:56:9c:59:78 має дві призначені IP-адреси дивитись рисунок 3.12
Рисунок 3.12. Аналіз MAC-адрес
Почнімо ще один запис у прямому ефірі, натиснувши піктограму «Почати
новий запис у реальному часі» дивись рисунок 3.13.
Рисунок 3.13 Новий аналіз пакетів
Перейдемо до машини Win16 ввівши логін та пароль від облікового запису
дивитись рисунок 3.14
Рисунок 3.14 Авторизація в обліковому записі Win16
Після авторизації необхідно перейти до меню пошуку та ввести назву
програми терміналу Windows: cmd. Після чого вибрати необхідну програму
Command Prompt дивитись рисунок 3.15.
Рисунок 3.15 Вибір програми з пошуку
Введемо команду відправки icmp пакетів для перевірки доступності ІР-
адреси з ключом -t дивитись рисунок 3.16
Рисунок 3.16 Результат запуску команди ping
Повернемось до початкової операційної системи Ubuntu та перейдемо до
програми WireShark застосуємо фільтр до сортування пакетів по параметру
ICMP та натиснемо кнопку Apply. Після цього всі поточні пакети буде
відсортовано, дивитись рисунок 3.17.1-3.17.2.
Рисунок 3.17.1 Результат сортування ICMP пакетів від Windows Server 16.
Рисунок 3.17.2 Результат сортування ICMP пакетів від Windows Server 16.
Після сортування відкриваємо запит який прийшов на шлюз та бачимо
MAC-адресу Win16. Для наглядної точності перевіримо адресу адаптера за
допомогою команди ifconfig -a дивись рисунок 3.18.
Рисунок 3.18. Результат команди ifconfig -a
Для виконання наступного завдання нам знадобиться дистрибутив Kali
Linux, перейдемо до терміналу та відкриємо список всіх поточно створених груп
за допомогою команди: cat /etc/group та отримаємо результат, дивитись рисунок
3.19.
Рисунок 3.19. Результат виконання команди cat
Після перевірки груп створимо дві нові: juniors та seniors дивитись рисунок
3.20.
Рисунок 3.20 Створення нових груп
Перевіряємо створення поточних гру командою cat, дивитись рисунок 3.21,
групи seniors.
Рисунок 3.21 Створення групи seniors
Перевіряємо створення поточних гру командою cat, дивитись рисунок 3.22,
групи juniors.
Рисунок 3.22 Створення групи juniors
Після створення груп та перевірку, за допомогою команди cat переглянемо
поточні паролі, які записані та присвоєні кожному користувачу, в файлі shadow,
що розташований в локалі /etc/shadow, дивись рисунок 3.23
Рисунок 3.23 Результат показу власників паролів
Командами useradd з параметром -g cтворюємо користувачів та
призначаємо кожному групу дивись рисунок 3.24 та рисунок 3.25
Рисунок 3.24 Створення користувачів групи seniors
Рисунок 3.25 Створення користувачів групи juniors
Перевіримо список створених користувачів які мають знаходитись в
файлі /etc/shadow в кінці списку за допомогою команди cat /etc/shadow дивись
рисунок 3.26
Рисунок 3.26 Результат виконання команди cat /etc/shadow
Після того, як додатково було задано паролі користувачам за допомогою
команди tail -n -4 /etc/shadow можемо пересвідчитись що паролі присвоєні та
перекодовано в хеш значення дивись рисунок 3.27.
Рисунок 3.27 Результат команди tail -n -4 /etc/shadow
Наступний крок це використання програми «John The Ripper», це вільна
програма призначення якої, перехоплення паролі за їх хешами. Основне
призначення – це аудит паролів з низьким рівнем захисту в Unix системах,
шляхом перебору можливих комбінацій приклад роботи з використанням
словника дивись рисунок 3.28.
Рисунок 3.28. Результат перехоплення роботи програми «John The Ripper»
Як тільки операція буде закінчена, переходимо до папки /tmp/hashes дивись
рисунок 3.29.
Рисунок 3.29 Зміна директорії
Змінивши директорію виконаємо команду cat winhashes файл отриманий
від системи Windows дивись рисунок 3.30.
Рисунок 3.30 Результат команди cat winhashes
Для більшої наглядності за допомогою команди awk відфільтруємо хеш
значення дивись рисунок 3.31.
Рисунок 3.31. Фільтрування записів
Наступний кроком стало використання команди Hashcat – це найшвидший
у світі відновник (зломщик) паролів.
В даний час, Hashcat об'єднала в собі дві раніше існували окремі гілки
програми. Одна так і називалася Hashcat, а друга називалася oclHashcat (а ще
раніше oclHashcat була поділена на власне oclHashcat та cudaHashcat). В даний
час абсолютно всі версії злиті в одну, яка при відновленні паролів використовує
центральний процесор та відеокарту результат виконання дивись рисунок 3.32
Рисунок 3.32
Виконаємо команду hashcat з використанням словника для відновлення
паролів зі списку дивись рисунок 3.33
Рисунок 3.33 Результат відновлення паролів з використанням словника
Перейшовши на іншу віртуальну машину DVL введемо команду proftpd
для запуску ftp-серверу дивись рисунок 3.34.
Рисунок 3.34 Команда запуску ftp-сервера
Повертаємось знову до Kali та з’єднуємось з ftp-сервером вводимо логін та
пароль від віддаленого облікового запису дивись рисунок 3.35.
Рисунок 3.35 З’єднання з ftp-сервером DVL
Переглянемо повний шлях до поточного каталогу виконавши команду pwd
дивись рисунок 3.36.
Рисунок 3.36 Результат виведення команди pwd.
Скориставшись командою get shadow опісля переходу до директорії /etc/
скопіюємо файл shadow до атакуючої машини дивись рисунок 3.37
Рисунок 3.37 Результат виконання команди get shadow
Повертаємось до атакуючої машини та перевіряємо чи файл був переданий
з піддослідної машини і бачимо, що файл shadow присутній дивись рисунок 3.38.
Рисунок 3.38 Отримання файлу shadow з піддослідної машини
Переглядаємо вміст файлу shadow та бачимо про додані записи з
помітками ftp дивись рисунок 3.39.
Рисунок 3.39 Результат перегляду файлу shadow
Оскільки всі необхідні компоненти присутні а саме файл з паролями у
вигляді хешу та словник у нас присутні перейдемо до запуску «Johnny», що являє
собою інтерфейс для програми «John the Ripper». John the Ripper — це
інструмент, розроблений для того, щоб допомогти системним адміністраторам
знаходити слабкі (легко вгадати або зламати за допомогою грубої сили) паролі
та навіть автоматично надсилати користувачам попередження про це, якщо це
потрібно, дивись рисунок 3.40. та натиснемо Open passwd file.
Рисунок 3.40. Верхня панель графічного інтерфейсу
У діалоговому вікні, що відкрилось вибираємо файл shadow та натискаємо
«open» дивись рисунок 3.41.
Рисунок 3.41 Діалогове вікно програми.
Відкритий файл shadow з захешованими паролями дивись рисунок 3.42.
Рисунок 3.42 Список паролів
Вибираємо пункт Wordlist mode та додаємо wordlist file дивись рисунок
3.43
Рисунок 3.43 Налаштування декодування паролів
Після проведення всіх налаштувань натискаємо кнопку start attack дивись
рисунок 3.44.
Рисунок 3.44 Початок декодування паролю.
Після проведення перебору паролів отримуємо результат, який нас
задовольняє. А саме декодування паролю з хеш значення в звичайний формат.
Результат атаки був виконаний ми отримали данні користувача іншої систем з
іншої локальної мережі дивись рисунок 3.45.
Рисунок 3.45 Результат декодування паролю.
ВИСНОВКИ
В результаті виконання кваліфікаційної роботи було розроблено систему
віртуального полігону для проведення навчальних занять з тестування на
проникнення, що володіє інструментами для підвищення практичних навичок в
захисті систем. Дана система забезпечує відпрацювання студентом набутих
навичок, як під час навчання так і самостійно набутих з різних інтернет джерел,
з подальшою можливістю модернізації, та дозволяє підготувати студента до
можливих реальних атак, з який може зіштовхнутись майбутній спеціаліст в
галузі кібербезпеки.
Крім цього, вдалося реалізувати зручний до сприйняття інтерфейс
користувача, в розробці цього інтерфейсу використовувалась мова розмітки
сторінки та формальна мова оформлення каркасу сайту. При ході виконанні
дипломної роботи проведено аналіз цифрового підпису, аналіз алгоритму
шифрування, області застосування даного алгоритму, також в ознайомчій формі
наведено матеріал по виконанні атаки на даний алгоритм. Побудовано
програмну систему, що відповідає поставленим завданням перед дипломним
проектом та проведено роботу з реалізації інтерфейсу зрозумілого і швидкого в
освоєнні.
Поставлені завдання перед написанням дипломного проекту вважаються
досягнутими. Систему реалізовано за допомогою гнучкого емулятора систем, що
дозволив налаштувати кожен із об’єктів полігону під потрібні задачі. В
подальшому конфігурація може змінюватися в залежності від поставлених задач
перед системою. Полігон дозволяє імітувати як зовнішні атаки за принципом
чорної скриньки так і проводити тестування за принципом білої скриньки.
За час виконання дипломної роботи були закріплені знання здобуті в
області моделювання та автоматизації процесів роботи полігону, оформленні
пояснювальної записки та аналізу отриманих практичних та інформаційних
ресурсів.
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
1. Як зламати хеші паролів NTHASH [Електронний ресурс] – Режим
доступу до ресурсу: https://www.pwndefend.com/2022/05/13/how-to-crack-nthash-
commonly-referred-to-as-ntlm-password-hashes/.
2. Робота з HashCat [Електронний ресурс] – Режим доступу до
ресурсу: https://kali.tools/?p=578.
3. Створення ftp з'єднання за допомогою proftpd [Електронний ресурс]
– Режим доступу до ресурсу: http://www.proftpd.org/docs/.
4. Програмне розширення Kali Linux - John [Електронний ресурс] –
Режим доступу до ресурсу: https://www.kali.org/tools/john/.
5. Графічний режим програми John the Ripper [Електронний ресурс] –
Режим доступу до ресурсу: https://www.kali.org/tools/johnny/.
6. Робота з Kali Linux [Електронний ресурс] – Режим доступу до
ресурсу: https://www.kali.org/docs/introduction/.
7. Поширені вразливості віртуалізації та як зменшити ризики
[Електронний ресурс] – Режим доступу до ресурсу:
https://pentestlab.blog/2013/02/25/common-virtualization-vulnerabilities-and-how-
to-mitigate-risks/.
8. PENETRATION TESTING COURSE, 2019. – 382 с.
9. Документація по роботі з дистрибутивом Ubuntu [Електронний
ресурс] – Режим доступу до ресурсу: https://help.ubuntu.com/stable/ubuntu-
help/index.html.
10. Як здійснити взлом своєї мережі та підвищити рівень її безпеки
[Електронний ресурс] – Режим доступу до ресурсу: https://codeby.net/kak-
vzlomat-svoju-set-i-povysit-ejo-bezopasnost-s-pomoshhju-kali-linux/.
11. Налаштування та робота з VMware [Електронний ресурс] – Режим доступу до
ресурсу: https://www.vmware.com/support/pubs/.