Сучасні інформаційні технології/4. Інформаційна
безпека
Єлізаров А.Б.
Щетінін О.С.
Національний Авіаційний Університет, Україна
Типи атак на WEB-ресурси
Кожного дня з’являться
все більше WEB-сайтів, і з ростом їх кількості все частіше
постає питання захисту конфіденційної інформації. Від чого захищати та які
бувають атаки ми розглянемо далі.
1.
DoS-атака (атака типу
«відмова в обслуговуванні», від англ. Denial of Service) - атака на
обчислювальну систему з метою довести її до відмови, тобто створення таких умов,
при яких легітимні (правомірні) користувачі системи не можуть отримати доступ
до надаваним системою ресурсам (серверів), або цей доступ ускладнений.
Якщо атака виконується одночасно з великої кількості
комп'ютерів, говорять про DDoS-атаку (від англ. Distributed Denial of Service,
розподілена атака типу «відмова в обслуговуванні»). У деяких випадках до
фактичної DDoS-атаки призводять ненавмисні дії, наприклад, розміщення на
популярному інтернет-ресурсі посилання на сайт, розміщений на не дуже продуктивному
сервері. Великий наплив користувачів призводить до перевищення допустимого
навантаження на сервер і, отже, відмови в обслуговуванні частини з них.
Існують різні причини, через які може виникнути
DoS-умова:
·
Помилка в
програмному коді, що приводить до звернення до невикористовуваного фрагменту
адресного простору, виконанню неприпустимої інструкції або іншої необроблюваної
виняткової ситуації, коли відбувається аварійне завершення програми-сервера -
серверної програми. Класичним прикладом є звернення за нульовою (англ. null)
адресою.
·
Недостатня перевірка даних користувача, що приводить до нескінченного або
тривалого циклу або підвищеного тривалого споживання процесорних ресурсів (аж
до вичерпання процесорних ресурсів) або виділенню великого обсягу оперативної
пам'яті (аж до вичерпання доступної пам'яті).
·
Флуд (англ.
flood - «повінь», «переповнення») - атака, пов'язана з великою кількістю
зазвичай безглуздих або сформованих в неправильному форматі запитів до
комп'ютерної системи або мережевого устаткування, що має своєю метою або
призвела до відмови в роботі системи через вичерпання системних ресурсів -
процесора, пам'яті або каналів зв'язку.
·
Атака другого роду - атака, яка прагне викликати помилкове
спрацьовування системи захисту і таким чином привести до недоступності ресурсу.
2. SQL-ін’єкція –
вбудовування вільних SQL-команд, у результаті якого змінюється логіка запиту до
бази даних. Це становить загрозу, бо таким чином можна поцупити з бази даних
конфіденціальну інформацію. Приклад – через помилки web-інтерфейсу у різних
провайдерів не раз крали бази з логінами та паролями користувачів. Успішність
атаки SQL-ін’єкція не залежить від 15
використання для написання web мови програмування – чи то PHP, Perl, або ASP.
Якщо сценарій працює з
базами даних, а перевірка вхідних параметрів відсутня, то завжди є можливість
приєднання SQL-коду.
Приклад вразливого
сценарію:
<?php
…
$data=mysqli_query($link,”SELECT
* FROM profiles WHERE
id=”.$_GET[“id”]);
…
?> [1]
У данному прикладі
значення поля id буде порівнюватися зі значенням параметра id переданому через
URL.
Якщо в якості значення
параметра вказати, наприклад, 10, то чесний користувач побачить свій профіль.
Але, якщо вказати в якості параметра id рядок 10 OR UserName= “Administrator”,
то запит до бази даних набуде вигляду SELECT * FROM profiles WHERE id=10 OR
UserName= “Administrator”. Після виконання такого запиту відобразиться не лише
запис з id=10, але й запис у якому поле UserName=“Administrator”. Тобто після
такого запиту хакер побачить всю інформацію про обліковий запис
“Administrator”.
3. Php-ін'єкція -
один зі методів злому веб-сайтів, що працюють на PHP, який полягає у виконанні
стороннього коду на серверній стороні. Потенційно небезпечними є стандартні
функції PHP [7] :
eval();
fopen();
exec();
require_once();
include_once();
include();
require();
create_function();
Php-ін'єкція стає
можливою, якщо вхідні параметри приймаються і використовуються без перевірки.
4. Загроза XSS. В
багатьох XSS вже давно немає ніякого скриптингу. Всяка можливість впливу на
віддаленого користувача, яка реалізовується через незахищений сайт віддаленим
хакером, і буде XSS. XSS-атаки відрізняються моделлю передачі даних між
клієнтом, сервером та хакером. В цілому на сьогоднішній день відомо три основні
моделі [1]:
1) XSS DOM. У цій моделі
вразливість сайту полягає у тому, що не серверний сценарій, а саме клієнтський
JavaScript вставляє в код HTML сторінки дані, отримані в URL, через об’єкти
Document Object Model (DOM). Тому користувачу достатньо лише перейти за посиланням,
яке містить XSS-вектор хакера, і вміст веб-сторінки буде змінено і в неї
безпосередньо на машині клієнта буде вставлений код з тіла вектора.
2) Класичний XSS.
Найбільш поширена модель атак. Використовувана вразливість полягає в тому, що
при недостатній фільтрації вхідних параметрів 17 серверним сценарієм, тіло
XSS-вектора потрапляє до результуючого HTML, CSS, або JavaScript-коду
безпосередньо у браузер клієнта.
3) Збережений XSS.
Фактично, ця модель атак пов’язана з перманентним розміщенням параметрів для
скрипта, які передаються від хакера серверу, безпосередньо в базі даних сервера
й подальшій їх видачі відвідувачам сайту (найчастіше це форуми, блоги і т.п.).
Ця модель, з точки зору зловмисника, має дві великі переваги: вона не потребує
розсилки даних хакером користувачу (цю роботу виконує сервер і користувач
нічого не запідозрить), і надає можливість створювати, так званих, XSS-хробаків
– на комп’ютері кожного відвідувача вразливого сайту виконається хакерський
код, і цей код може сам себе розміщувати на інших сторінках сайту.
Типова
XSS-атака складається з наступних стандартних етапів:
• пошук
вразливості;
• вибір методу
передачі інформації або впливу на користувача через XSS-вектор;
• створення
додаткових інструментів для підтримки XSS Proxy, віддалено розміщених файлів та
інше;
• пошук способу
розповсюдження XSS-вектора;
• створення
ефективного XSS-вектора;
• вмілого
експлуатування отриманих даних.
В даній роботі ми
визначили та розібрали на прикладах основні типи атак на WEB
- ресурси.