Дослідження вразливостей web-ресурсів

Автор работы: Пользователь скрыл имя, 12 Мая 2015 в 03:05, курсовая работа

Описание работы

На перший погляд здається, що ці загрози за принципом роботи дуже сильно відрізняються один від одного. Але насправді це не зовсім так. Виявляється, багато вірусів, особливо інтернет-черв'яки, використовують для розповсюдження уразливості в програмному забезпеченні. Так і хакери теж воліють застосовувати атаки, спрямовані на відомі «дірки» в ПЗ. І в цьому немає абсолютно нічого дивного. Використовуючи уразливості, і ті, і інші одержують досить легкий доступ до віддаленого комп'ютера навіть у тому випадку, якщо останній добре захищений.

Содержание работы

ВСТУП 4
1 АНАЛІЗ ВРАЗЛИВОСТІ ВЕБ-СЕРВЕРІВ 5
1.1 Вразливості програмного забезпечення серверів 5
1.2 Вразливості конфігурації 6
1.3 Вразливості програмного забезпечення користувачів 6
2 КЛАСИФІКАЦІЯ АТАК НА WEB-САЙТИ 8
2.1 Атаки на автентифікацію (Authentication) 8
2.2 Атаки на авторизацію (Authorization) 11
2.3 Атаки на клієнтів (Client-side Attacks) 13
2.4 Атаки на виконання коду (Command Execution) 15
2.5 Розголошення інформації (Information Disclosure) 18
2.6 Логічні атаки (LogicalAttacks) 22
3 СТАТИСТИКА ВРАЗЛИВОСТЕЙ WEB-ДОДАТКІВ 25
3.1 Класи врзаливостей 25
3.2 Галузі тестування 26
3.3 Статистика вразливостей 27
ВИСНОВКИ 38
ПЕРЕЛІК ВИКОРИСТАНИХ ДЖЕРЕЛ 39

Файлы: 1 файл

курсачНазар (1).docx

— 469.05 Кб (Скачать файл)

2.3.3 Розщеплення HTTP-запиту (HTTP Response Splitting)

При використанні даної уразливості зловмисник посилає серверу спеціальним чином сформований запит, відповідь на який інтерпретується ціллю атаки як дві різні відповіді [7]. Друга відповідь повністю контролюється зловмисником, що дає йому можливість підробити відповідь сервера.

Можливість здійснення атаки виникає, коли сервер повертає дані, надані користувачем в заголовках HTTP відповіді. Зазвичай це відбувається при перенаправлення користувача на іншу сторінку або коли дані, отримані від користувача, зберігаються в cookie.

У першій ситуації URL, на який відбувається перенаправлення, є частиною заголовка Location HTTP відповіді, а в другому випадку значення cookie передається в заголовку Set-Cookie. Основою розщеплення HTTP-запиту є впровадження символів переведення рядка (CR і LF) таким чином, щоб сформувати дві HTTP транзакції, в той час як реально буде відбуватися тільки одна. Переклад рядка використовується для того, що б закрити першу (стандартну) транзакцію, і сформувати другу пару питання / відповідь, повністю контрольовану зловмисником і абсолютно непередбачувану логікою програми.  У результаті успішної реалізації цієї атаки зловмисник може виконати наступні дії:

  • міжсайтове виконання сценаріїв;
  • модифікація даних кеша сервера-посередника;
  • міжкористувацька атака (один користувач, одна сторінка, тимчасова підміна сторінки). При реалізації цієї атаки зловмисник не посилає додатковий запит. Замість цього використовується той факт, що деякі сервери-посередники поділяють одне TCP-з'єднання до сервера між декількома користувачами. У результаті другий користувач отримує у відповідь сторінку, сформовану зловмисником. Крім підміни сторінки зловмисник може також виконати різні операції з cookie користувача;
    • перехоплення сторінок, що містять дані користувача. У цьому випадку зловмисник отримує відповідь сервера замість самого користувача. Таким чином, він може отримати доступ до важливої або конфіденційної інформації.

2.4 Атаки на виконання коду (Command Execution)

Ці атаки спрямовані на виконання коду на Web-сервері. Всі сервери використовують дані, віддані користувачем при обробці запитів. Часто ці дані використовуються при складанні команд, що застосовуються для генерації динамічного вмісту. Якщо при розробці не враховуються вимоги безпеки, зловмисник отримує можливість модифікувати виконавчі команди.

2.4.1 Переповнення буфера (Buffer Overflow)

Експлуатація переповнення буфера дозволяє зловмисникові змінити шлях

виконання програми шляхом перезапису даних у пам'яті системи. Переповнення буфера є найбільш поширеною причиною помилок у програмах. Воно виникає, коли обсяг даних перевищує розмір виділеної під них буфера. Коли буфер переповнюється, дані переписують інші області пам'яті, що призводить до виникнення помилки. Якщо зловмисник має можливість управляти процесом переповнення, це може викликати ряд серйозних проблем.

Переповнення буфера може викликати відмови в обслуговуванні, приводячи до пошкодження пам'яті і викликаючи помилки в програмах. Більш серйозні ситуації дозволяють змінити шлях виконання програми і виконати в її контексті різні дії. Це може відбуватися в кількох випадках.

Використовуючи переповнення буферу, можна перезаписувати службові області пам'яті, наприклад, адресу повернення з функцій у стеці. Також, при переповненні можуть бути переписані значення змінних у програмі. Переповнення буфера є найбільш поширеною проблемою в безпеці і нерідко зачіпає Web-сервери.

2.4.2 Атака на функції форматування рядків (Format String Attack)

При використанні цих атак шлях виконання програми модифікується методом перезапису областей пам'яті за допомогою функцій форматування символьних змінних. Вразливість виникає, коли дані користувача застосовуються в якості аргументів функцій форматування рядків, таких як fprintf, printf, sprintf, setproctitle, syslog і т.д. Якщо атакуючий передає додатком рядок, що містить символи форматування ("% f", "% p", "%n" і т.д.), то в нього з'являється можливості: виконати довільний код на сервері; зчитувати значення з стека; викликати помилки в програмі / відмова в обслуговуванні.

2.4.3 Впровадження операторів LDAP (LDAP Injection)

Атаки цього типу спрямовані на Web-сервери, що створюють запити до служби LDAP на основі даних, які вводяться користувачем. Спрощений протокол доступу до служби каталогу (Lightweight Directory Access Protocol, LDAP) - відкритий протокол для створення запитів і управління службами каталогу сумісними зі стандартом X.500. Протокол LDAP працює поверх транспортних протоколів Internet (TCP / UDP). Web-додаток може використовувати дані, надані користувачем для створення запитів по протоколу LDAP при генерації динамічних Web-сторінок. Якщо інформація, отримана від клієнта, належним чином не верифікуються, атакуючий отримує можливість модифікувати LDAP-запит. Запит буде виконуватися з тим же рівнем привілеїв, з яким працює компонент програми, що виконує запит (сервер СУБД, Web-сервер і т.д). Якщо цей компонент має права на читання або модифікацію даних у структурі каталогу, зловмисник отримує ті ж можливості. Техніка експлуатації даної уразливості мало відрізняється від впровадження операторів SQL, описаної далі.

2.4.4 Виконання команд ОС (OS Commanding)

Атаки цього класу спрямовані на виконання команд ОС на Web-сервері шляхом маніпуляції вхідними даними. Якщо інформація, отримана від клієнта, належним чином не верифікуються, атакуючий отримує можливість виконати команди ОС. Вони будуть виконуватися з тим же рівнем привілеїв, з яким працює компонент програми, що виконує запит (сервер СУБД, Web-сервер і т.д).

2.4.5 Впровадження операторів SQL (SQL Injection)

Ці атаки спрямовані на Web-сервери, що створюють SQL запити до серверів СУБД на основі даних, які вводяться користувачем. Мова запитів Structured Query Language (SQL) являє собою спеціалізований мова програмування, що дозволяє створювати запити до серверів СУБД. Багато Web-додатків використовують дані, передані користувачем, для створення динамічних Web-сторінок. Якщо інформація, отримана від клієнта, належним чином не верифікуються, атакуючий отримує можливість модифікувати запит до SQL-серверу, що відправляється додатком. Запит буде виконуватися з тим же рівнем привілеїв, з яким працює компонент програми, що виконує запит (сервер СУБД, Web-сервер і т.д). У результаті зловмисник може отримати повний контроль на сервером.

2.4.6 Впровадження серверних розширень (SSI Injection)

Атаки даного класу дозволяють зловмисникові передати виконуваний код, який надалі буде виконаний на Web-сервері. Уразливості, що приводять до можливості здійснення даних атак, зазвичай полягають у відсутності перевірки даних, наданих користувачем, перед збереженням. Перед генерацією HTML сторінки сервер може виконувати сценарії, наприклад Server-site Includes (SSI). У деяких ситуаціях вихідний код сторінок генерується на основі даних, наданих користувачем. Якщо атакуючий передає серверу оператори SSI, він може отримати можливість виконання команд операційної системи або включити до неї заборонений вміст при наступному відображенні.

2.5 Розголошення інформації (Information Disclosure)

Атаки даного класу направлені на отримання додаткової інформації про Web-додатку. Використовуючи ці уразливості, зловмисник може визначити використовувані дистрибутиви ПЗ, номери версій клієнта і сервера і встановлені оновлення. В інших випадках, в витікаючій інформації може міститися розташування тимчасових файлів або резервних копій. У багатьох випадках ці дані не потрібні для роботи користувача. Більшість серверів надають доступ до надмірного обсягом даних, однак необхідно мінімізувати обсяг службової інформації. Чим більшими знаннями про програму буде знати зловмисник, тим легше йому буде скомпрометувати систему.

2.5.1 Індексування директорій (Directory Indexing)

Надання списку файлів в директорії являє собою нормальну поведінку Web-сервера, якщо сторінка, яка відображається за замовчуванням (index.html / home.html /default.htm) відсутня. Коли користувач запитує основну сторінку сайту, він зазвичай вказуєте доменне ім'я сервера без імені конкретного файлу (http://www.example). Сервер переглядає основну папку, знаходить у ній файл, який використовується за умовчанням, і на його основі генерує відповідь. Якщо такий файл відсутній, як відповідь може повернутися список файлів в директорії сервера. Ця ситуація аналогічна виконанню команди "ls" (Unix) або "dir" (Windows) на сервері і форматування результатів у вигляді HTML. Тобто, зловмисник може отримати доступ до даних, не призначених для вільного доступу.

Часто адміністратори покладаються на "безпеку через приховування", припускаючи, що раз гіперпосилання на документ відсутній, то він недоступний. Сучасні сканери вразливостей, такі як Nikto, можуть динамічно додавати файли і папки до списку сканованих залежно від результатів запитів. Використовуючи інформацію із / robots.txt або отриманого списку директорій сканер може знайти прихований вміст або інші файли. Таким чином, зовні безпечне індексування директорій може призвести до витоку важливої інформації, яка в подальшому буде використана для проведення атак на систему.

2.5.2 Ідентифікація додатків (Web Server/Application Fingerprinting)

Визначення версій додатків використовується зловмисником для отримання інформації про використовувану сервером і клієнтом операційних системах, Web-серверах і браузерах. Також ця атака може бути спрямована на інші компоненти Web-додатків, наприклад, службу каталогу чи сервер баз даних.

Зазвичай подібні атаки здійснюються шляхом аналізу різної інформації, що надається Web-сервером, наприклад:

    • особливості реалізації протоколу HTTP;
    • заголовки HTTP-відповідей;
    • використовувані сервером розширення файлів (Asp або Jsp);
    • значення Cookie (ASPSESSION і т.д.);
    • повідомлення про помилки;
    • структура каталогів і використовуване угоду про імена (Windows / Unix);
    • інтерфейси підтримки розробки Web-додатків (Frontpage / WebPublisher);
    • інтерфейси адміністрування сервера (iPlanet / Comanche);
    • визначення версій операційної системи.

Для визначення версій клієнтських додатків зазвичай використовується аналіз HTTP-запитів (порядок слідування заголовків, значення User-agent і т.д.). Проте, для цих цілей можуть застосовуватись і інші техніки. Наприклад, аналіз заголовків листів, створених за допомогою клієнта Microsoft Outlook, дозволяє визначити версію встановленого на комп'ютері браузера Internet Explorer.

Наявність детальної та точної інформації про використовувані додатки дуже важливі для зловмисника, оскільки реалізація багатьох атак (наприклад, переповнювання буфера) специфічна для кожного варіанту операційної системи або програми. Крім того, детальна інформація про інфраструктуру дозволяє зменшити кількість помилок, і як наслідок - загальний «шум", що виробляється атакуючим. Даний факт відзначено в HTTP RFC 2068, які рекомендують щоб значення заголовка Server HTTP відповіді був налаштованим параметром. 

2.5.3 Витоки інформації (Information Leakage)

Ці уразливості виникають у ситуаціях, коли сервер публікує важливу інформацію, наприклад коментарі розробників або повідомлення про помилки, яка може бути використана для компрометації системи. Цінні з точки зору зловмисника дані можуть міститися в коментарях HTML, повідомленнях про помилки або просто бути присутнім у відкритому вигляді. Існує величезна кількість ситуацій, в яких може статися витік інформації. Не обов'язково вона приводить до виникнення уразливості, але часто дає атакуючому чудовий посібник для розвитку атаки. З витоком важливої інформації можуть виникати ризики різного ступеня, тому необхідно мінімізувати кількість службової інформації, доступної на клієнтській стороні. Аналіз доступної інформації дозволяє зловмисникові зробити розвідку і отримати уявлення про структуру директорій сервера, що використовуються у SQL запитах, назвах ключових процесів і програм сервера. Часто розробники залишають коментарі у HTML сторінках і коді сценаріїв для полегшення пошуку помилок і підтримки програми. Ця інформація може варіюватися від простих описів деталей функціонування програми до, в гірших випадках, імен користувачів і паролів, які використовуються при налагодженні. Витік інформації може відноситися і до конфіденційних даних, оброблюваних сервером. Це можуть бути ідентифікатори користувача (ІПН, номери водійських посвідчень, паспортів і т.д.), а також поточна інформація (баланс особового рахунку або історія платежів). Багато атаки цієї категорії виходять за рамки захисту Web-додатків і переходять в область фізичної безпеки. Витік інформації в цьому випадку часто виникає, коли в браузері відображається інформація, яка не повинна виводитися у відкритому вигляді навіть користувачеві. Як приклад можна навести паролі користувача, номери кредитних карток і т.д.

2.5.4 Зворотний шлях в директоріях (Path Traversal)

Дана техніка атак спрямована на отримання доступу до файлів, теки та командам, які знаходяться поза основною директорії Web-сервера. Зловмисник може маніпулювати параметрами URL з метою отримати доступ до файлів або виконати команди, розташовувані у файловій системі Web-сервера. Для подібних атак потенційно вразливий будь-який пристрій, що має Web-інтерфейс. Багато Web-серверів обмежують доступ користувача певною частиною файлової системи, звичайно званої "web document root" або "CGI root". Ці директорії містять файли, призначені для користувача і програми, необхідні для отримання доступу до функцій Web-додатки. Більшість базових атак, що експлуатують зворотний шлях, засновані на впровадженні в URL символів "../", для того, щоб змінити розташування ресурсу, який буде оброблятися сервером. Оскільки більшість Web-серверів фільтрують цю послідовність, зловмисник може скористатися альтернативними кодуваннями для представлення символів переходу по директоріях. Популярні прийоми включають використання альтернативних кодувань, наприклад Unicode ("..% u2216 "або" ..% c0% af"), використання зворотного слеша (" .. \ ") в Windows-серверах, символів URLEncode ("% 2e% 2e % 2f ") чи подвійна кодування URLEncode ("..% 255c"). Навіть якщо Web-сервер обмежує доступ до файлів певним каталогом, ця вразливість може виникати в сценаріях або CGI-програмах. Можливість використання зворотного шляху в каталогах досить часто виникає в додатках, що використовують механізми шаблонів або завантажують їх текст сторінок з файлів на сервері. У цьому варіанті атаки зловмисник модифікує ім'я файлу, що передається як параметр CGI- програми або серверного сценарію. У результаті зловмисник може отримати вихідний код сценаріїв. Досить часто до імені запитуваного файлу додаються спеціальні символи, такі як "% 00", з метою обходу фільтрів.

2.5.5. Передбачуване розміщення  ресурсів (Predictable Resource Location)

Передбачуване розміщення ресурсів дозволяє зловмисникові отримати доступ до прихованих даних або функціональним можливостям. Шляхом підбору зловмисник може отримати доступ до вмісту, не призначеному для публічного перегляду. Тимчасові файли, файли резервних копій, файли конфігурації або стандартні приклади часто є метою подібних атак. У більшості випадків перебір може бути оптимізовано шляхом використання стандартної угоди про імена файлів і директорій сервера. Отримувані зловмисником файли можуть містити інформацію про дизайн програми, інформацію з баз даних, імена машин або паролі, шляхи до директорій. Також «приховані» файли можуть містити уразливості, відсутні в основному додатку. На цю атаку часто посилаються як на перерахування файлів і директорій (Forced Browsing, File Enumeration, Directory Enumeration).

Информация о работе Дослідження вразливостей web-ресурсів