Вразливості можуть виникати із-за некоректного налаштування програмного забезпечення веб-сервера. Фактично безпека будь-якої речі залежить від того, як її застосовувати. Те ж саме можна сказати й про веб-сервер. Дуже багато залежить від того, як налаштоване його програмне забезпечення. Взагалі, переважна більшість веб-серверів мають досить великий набір параметрів, що стосуються практично всіх аспектів його роботи. Таким чином, безпека багато в чому залежить від адміністраторів, що займаються їх обслуговуванням. Але не можна забувати, що адміністратори - це люди. А це означає, що вони через свою неуважність, недостатньої кваліфікації чи ще з якихось причин можуть помилятися. І ці помилки можуть відкрити дорогу до веб-сервера хакеру або вірусу.
Від некоректного налаштування не може допомогти установка
патчів. І дійсно, при оновленні
програмного забезпечення його конфігурація не змінюється. А це означає, що
вразливість у системі захисту після інсталяції патча швидше за все залишиться. Таким
чином, головною небезпекою розглянутого типу «дірок» є складність їх виявлення. Отже, єдиний спосіб дійсно надійного захисту від таких
вразливостей є використання спеціальних сканерів безпеки. Ці програми за допомогою спеціальних методів досліджують захист
веб-серверів і знаходять потенційно небезпечні місця.
Скрипти веб-сайтів теж можуть містити вразливості. Сучасний веб-сервер і супутнє програмне забезпечення дуже часто служать своєрідною базою для виконання програм, що написані власноруч користувачем. Мова йде, звичайно, про скрипти, які працюють на більшості сучасних сайтів. Справа в тому, що більшість мов веб-програмування є серверними. Це означає, що скрипти, написані на них, виконуються прямо на сервері, а на комп'ютер користувача (в даному випадку - відвідувача сайту) відправляються тільки результати їх роботи. І в цьому криється досить серйозна небезпека. Справа в тому, що скрипти для сайтів далеко не завжди розробляються дійсно гарними спеціалістами. На багатьох веб-проектах використовуються безкоштовно поширювані програми або ж ПЗ власного написання. Природно, у ньому теж можуть міститися вразливості. Причому деякі з них можуть бути дуже серйозними, що дозволяють зловмисникам дістати несанкціонований доступ до самого серверу. Причому потрібно враховувати, що деякі скрипти виконуються з підвищеними привілеями. Так що вразливості в них можуть виявитися гарною підмогою для хакерів.
Виявити «дірки» в скриптах можна за допомогою сканерів
безпеки. Так що кожен власник веб-сервера,
дійсно піклується про безпеку свого сайту, повинен періодично перевіряти його.
Справа в тому, що хакери постійно вигадують нові способи віддалених атак. Крім того, постійно виявляються
нові «дірки» в оригінальному ПЗ, які можуть у поєднанні зі скриптами, які
раніше вважалися безпечними, являти собою реальну загрозу.
Ця класифікація представляє собою спільну спробу зібрати воєдино інформацію й показати загрози безпеки Web серверів та Web-сайтів. Члени Web Application Security Consortium створили даний проект для розробки та популяризації стандартної термінології опису цих проблем. Це надасть можливість розробникам додатків, фахівцям в області безпеки, виробникам програмних продуктів і аудиторам використовувати єдину мову для взаємодії.
У багатьох організація Web-додатки використовуються як критично важливі системи, які повинні щодня обслуговувати багатомільйонні транзакції. Однак справжня цінність Web-сайтів та Web-додатків повинна оцінюватися на основі потреб кожної організації. Важливість досить важко уявити тільки у вигляді певної суми грошей. Це може бути й престиж організацій чи осіб, пошкодження важливої інформації та інше.
Вразливості в Web-додатках досить давно становили небезпеку для користувачів. Після ідентифікації вразливості для здійснення атаки використовується одна з кількох технік. Зазвичай на ці техніки посилаються як на класи атак (методи використання вразливостей). Багато хто із цих класів мають поширені назви, наприклад, «переповнення буферу» (Buffer Overflows), «впровадження коду SQL» (SQL Injection), і «міжсайтового виконання сценаріїв» (Cross-site Scripting). Ці класи атак будуть використані в якості основи для опису та класифікації загроз Web-додатків.
Даний документ містить компіляцію відомих класів атак, які представляли загрозу для Web-додатків у минулому й представляють зараз. Кожному класу атак присвоєно стандартну назву й описані його ключові особливості. Класи організовані в ієрархічну структуру.
Створення класифікації загроз безпеки Web-додатків є важливою подією для розробників додатків, фахівців у галузі безпеки, виробників програмних продуктів та інших сторін, які займаються безпекою Web. На основі класифікації надалі можуть бути створені методики обстеження додатків, рекомендації з розробки додатків з урахуванням безпеки, вимоги до продуктів і служб.
За останні кілька років індустрія безпеки web-додатків адаптувала кілька десятків плутаних і езотеричних термінів, що описують вразливості. Такі назви вразливостей, як «міжсайтового виконання сценаріїв» (Crosssite Scripting), «підробка параметрів» (Parameter Tampering), і «отруєння печива» (Cookie Poisoning) не точно визначають суть проблеми й можливі наслідки атак.
Приміром, наявність вразливості типу міжсайтового виконання сценаріїв (Cross-site Scripting) може призвести до викрадення значень cookie користувача. Знання значень cookie дає зловмисникові можливість перехопити сесію користувача й отримати контроль над його обліковим записом. Для експлуатації цієї вразливості використовується метод маніпуляції параметрами вводу та підробка параметрів URL. Наведений сценарій атаки може бути описаний із використанням різних жаргонізмів. Цей складний і мінливий словник часто викликає проблеми й розбіжності у відкритих форумах, навіть якщо сторони згодні з основною ідеєю.
Протягом довгих років не існувало ресурсу, який би описував
вразливості в Web-додатках у досить повній і стандартній формі.
Як показує багаторічний досвід компанії Positive Technologies із проведення робіт із тестування на проникнення й аудитів інформаційної безпеки - вразливості в Web-додатках, як і раніше залишаються одним із найбільш поширених недоліків забезпечення захисту інформації. Інші часто зустрічаються проблеми - це низька поінформованість співробітників у питаннях ІБ, слабка парольна політика чи повсюдне її недотримання, недоліки в процесах управління оновленнями ПЗ, використання небезпечних конфігурацій, і як це може здатися парадоксальним, не ефективне між мережеве розмежування доступу. Незважаючи на те, що вразливості Web-додатків неодноразово описані в «науково-популярної» та спеціалізованої літературі, досить рідко зустрічаються превентивні захисні механізми, які знижують ризики експлуатації різних вразливостей у них.
Проблема захищеності Web-додатків ускладнюється ще й тим, що при розробці Web-додатків, що часто не враховуються питання, пов'язані із захищеністю цих систем від внутрішніх і зовнішніх загроз, або не достатньо уваги приділяється даному процесу. Це у свою чергу породжує ситуацію, у якій проблеми ІБ потрапляють у поле зору власника системи вже після завершення проекту. А усунути вразливість в уже створеному Web-додатку є більш витратною статтею бюджету, ніж при його розробці та впровадженні. Недооцінка серйозності ризику реалізації загроз ІБ із використанням Web-додатків, доступних із боку мережі Інтернет, можливо, є основним чинником поточного низького стану захищеності більшості з них.
Даний розділ містить оглядову статистику вразливостей Web-додатків, отриману із двох джерел:
· У ході робіт із тестування на проникнення, аудитів безпеки та інших робіт, виконаних експертами компанії Positive Technologies в 2008 році.
рамках послуги "Перевірка Безпеки Сайту", здійснювана на основі системи MaxPatrol (модуль Pentest) компанії Positive Technologies.
Усього в статистиці брали участь дані про 10459 Web-додатках. Дані грунтуються на проведенні 16121 автоматичних сканувань, детальному аналізі 59 Web-додатків, у тому числі із проведенням аналізу вихідного коду більше 10-ти з них.
Залежно від типу виконуваних робіт були задіяні різні методики проведення обстеження Web-додатків, від автоматизованого інструментального обстеження методом «чорного ящика» (black-box, blind) з використанням сканерів безпеки XSpider і MaxPatrol, до проведення всіх перевірок вручну методом «білого скриньки» (white-box), включаючи частковий і повний аналіз вихідного коду. У статистику ввійшли дані лише за зовнішніми Web-додатків, доступним із глобальної мережі Інтернет.
Виявлені вразливості класифікувалися згідно Web Application Security Consortium Web Security Threat Classification (WASC WSTCv2). Дана класифікація представляє собою спробу зібрати воєдино загрози безпеки Web-додатків. Члени Web Application Security Consortium створили цей проект для розробки та популяризації стандартної термінології опису проблем безпеки Web-додатків. Наявність цього документа дає можливість розробникам додатків, фахівцям в області безпеки, виробникам програмних продуктів і аудиторам використовувати єдину мова для взаємодії.
Поширені вразливості Web-додатків організовані в структурований список, що складається з дев'яти класів (WSTCv2):
. Аутентифікація (Authentication)
. Авторизація (Authorization)
. Атаки на клієнтів (Client-side Attacks)
. Виконання коду (Command Execution)
. Розголошення інформації (Information Disclosure)
. Логічні недоліки (Logical Flaws)
. Не безпечні конфігурації (Misconfiguration)
. Недоліки протоколу (Protocol Abuse)
. Інші (Miscellaneous)
Усього в представлену статистику увійшли дані по 10459 Web-додатків, 7861 з яких містили одну й
більше вразливостей. Сумарно у всіх додатках було виявлено 33931 помилок різного
ступеня ризику. У Табл. 4.1 представлені дані щодо розподілу вразливостей, виявлені в ході аудитів і шляхом автоматизованого сканування.
Таблиця 4.1. Розподіл вразливостей за методом пошуку
|
Метод пошуку |
Хостів |
Вразливих хостів |
Вразливостей сайтів |
|
Ручний метод пошуку і аналіз вихідного коду |
59 |
59 |
428 |
|
Автоматизований метод пошуку |
10400 |
7802 |
33503 |
Таким чином, вірогідність виявлення вразливостей в одному
Web-додатку (тобто ефективність оцінки захищеності) при його детальному аналізі вище цього показника при
автоматичному скануванні на 26% Таке співвідношення обумовлено, перш за все тим, що аналіз вихідного коду та виконання ручних перевірок дозволяє
добитися кращих результатів, ніж при автоматизованому скануванні. Крім того, у роботах по дослідженню
Web-додатків ручним способом застосовувалися методи перевірки додатків на
основі системних журналів, вихідних кодів, що збільшує охоплення API системи й,
як наслідок, дозволяє одержати більш об'єктивну оцінку захищеності
досліджуваних систем. При автоматизованому скануванні настройка профілів сканування під конкретний Web-додоток не
виконувалася, і сканування вироблялися методом «чорного ящика».
Рис. 4.1. Імовірність виявлення вразливості різними методами
їх пошуку
Розподіл виявлених вразливостей до різних типів за допомогою автоматизованих засобів представлено
на рисунку
Рис. 4.2. Статистика вразливостей Web-додатків (автоматичне
сканування)
Якщо розглядати вразливості з точки зору поширеності, то будуть отримані результати, при яких найбільш поширеною вразливістю є «міжсайтового виконання сценаріїв» (Cross-Site Scripting, XSS), на частку якої припадає приблизно 30% всіх помилок. Дана вразливість зустрічалася в 50% всіх проаналізованих додатків. Тобто кожен другий сайт містить подібну вразливість.
Інша поширена вразливість, впритул наблизилася до «міжсайтового виконання сценаріїв», пов'язана з різними варіантами витоку інформації. Вразливість даного типу зібрала в собі такі поширені помилки, як доступ до вихідного коду серверних сценаріїв, розкриття шляху каталогу Web-сервера, отримання різної чутливої інформації та інше. Помилки, пов'язані із цією вразливістю, зустрічалися практично на кожному обстежуваної сайті.
Таким чином, лідируючу позицію за ймовірністю виявлення
вразливості в Web-додатку, за автоматичному скануванні, займає вразливість -
«Витік інформації» (Information Leakage). Варто відзначити, що ступінь можливого ризику даної
вразливості може варіюватися від низької до критичної. Цікаву позицію в статистиці займає вразливість
«Malware detect», на частку якої припадає приблизно 6% всіх виявлених вразливостей при автоматичному
скануванні (див. Рис.). Присутність даної вразливості свідчить про те, що
Web-додаток містить інфікований код (Trojan-Spy backdoor, Code.JS, Code.I і
т.д.), внаслідок чого на комп'ютери відвідувачів такого сайту може бути
встановлено зловмисне програмне забезпечення. Статистика вразливостей із
високим рівнем небезпеки, виявлених на сайтах, що містять інфікований код (див. Рис.4.3.), показує,
що найбільш імовірні шляхи
поширення інфікованого коду в цих додатках - це використання наступних
вразливостей:Впровадження операторів SQL (SQL Injection)Виконання команд ОС (OS
Commanding)Впровадження серверних розширень (SSI Injection)
Рис.4.3. Статистика критичних вразливостей на сайтах, що
містять інфікований код
Процес експлуатації подібних вразливостей може бути досить
легко автоматизований, а поширення
подібних помилок в Web-додатках дозволяє додавати інфікований код на сторінки вразливих Web-вузлів. Якщо подивитися на статистику розподілу
критичних вразливостей по
інфікованими сайтам (див. Рис. 4.4.), то можна зробити висновок, що основним зараження Web-додатки є
експлуатація вразливості «Впровадження операторів SQL».
Рис.4.4. Розподіл критичних вразливостей за інфіковании
сайтами
Рис.4.5. Розподіл критичних вразливостей на сайтах
Порівнюючи аналогічні показники по сайтах, на яких не було виявлено інфікованих сторінок, можна
зробити висновок, що приблизно 15-20% Web-додатків можуть бути заражене автоматизованим способом, за умови налаштувань середовища
Web-сервера, що дозволяють провести подібну атаку.
Розподіл виявлених вразливостей до різних типів, виявлених за допомогою детального аналізу
Web-додатків представлено в Табл. 5.2.
Табл.4.2. Статистика вразливостей Web-додатків (детальний аналіз)
|
Тип вразливості |
% Вразливостей |
% Вразливих сайтів |
|
Cross-Site Scripting |
41,75 |
61,01 |
|
SQL Injection |
17,69 |
67,79 |
|
Information Leakage |
12,50 |
16,94 |
Також як і при автоматичному скануванні Web-додатків, при проведенні детального аналізу, найбільш поширеною вразливістю як і раніше є «міжсайтового виконання сценаріїв» (Cross-Site Scripting, XSS), на частку якої припадає приблизно 43% всіх помилок. Дана вразливість зустрілася в 61% всіх проаналізованих додатків. На другому місці, при деталізованому аналізі захищеності Web-додатків, виявилася вразливість «Впровадження операторів SQL» (SQL Injection). Дана вразливість зустрілася в 18% випадків, приблизно на 68% всіх досліджуваних додатків. Таким чином, лідируючі позиції за ймовірністю виявлення вразливості в Web-додатку, за його детальному аналізі, займає вразливість на стороні Web-сервера (server-side) - «Впровадження операторів SQL» (SQL Injection) і вразливість, що експлуатується на стороні клієнта (clientside) - «міжсайтового виконання сценаріїв» (Cross-Site Scripting, XSS).