Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Аналіз методик та програмних засобів оцінки стану безпеки Web-сторінки

КурсоваДопомога в написанніДізнатися вартістьмоєї роботи

Як показує багаторічний досвід компанії Positive Technologies із проведення робіт із тестування на проникнення й аудитів інформаційної безпеки — вразливості в Web-додатках, як і раніше залишаються одним із найбільш поширених недоліків забезпечення захисту інформації. Інші часто зустрічаються проблеми — це низька поінформованість співробітників у питаннях ІБ, слабка парольна політика чи повсюдне… Читати ще >

Аналіз методик та програмних засобів оцінки стану безпеки Web-сторінки (реферат, курсова, диплом, контрольна)

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ДВНЗ «Ужгородський національний університет»

Фізичний факультет Кафедра твердотільної електроніки з/с інформаційної безпеки

Курсова робота

з дисципліни «Комплексні системи захисту інформації: проектування, впровадження, супровід»

на тему «Аналіз методик та програмних засобів оцінки стану безпеки Web-сторінки»

Студента 4 курсу 7 групи Бабича Василя Івановича Керівник:

старший викладач Гребенніков В.В.

Ужгород — 2015

ЗМІСТ

  • ПЕРЕЛІК ПОЗНАЧЕНЬ І СКОРОЧЕНЬ
  • ВСТУП
  • I. ВИЗНАЧЕННЯ, ТЕРМІНОЛОГІЯ ТА ПРИНЦИПИ ОЦІНКИ СТАНУ БЕЗПЕКИ WEB-СТОРІНКИ
    • 1.1 Визначення
    • 1.2 Склад та вимоги до профілів захищеності інформації
  • II. АНАЛІЗ НАЙБІЛЬШ ПОШИРЕНИХ ЗАГРОЗ WEB-СТОРІНКАМ
  • III. АНАЛІЗ НАЙБІЛЬШ ПОШИРЕНИХ ВРАЗЛИВОСТЕЙ WEB-СТОРІНОК
    • 3.1 Вразливості програмного забезпечення та конфігурації
    • 3.2 Вразливості конфігурації
    • 3.3 Вразливості власного програмного забезпечення
    • 3.4 Класифікація вразливостей і атак
    • 3.5 Статистика вразливостей Web-сайтів та Web-додатків
  • IV. ОГЛЯД МЕТОДОЛОГІЙ ТЕСТУВАННЯ БЕЗПЕКИ WEB-СТОРІНОК
    • 4.1 Статистика вразливостей
    • 4.2 Автоматичне сканування
    • 4.3 Детальний аналіз
    • 4.4 Узагальнені дані
  • V. ОГЛЯД ЗАСОБІВ ТЕСТУВАННЯ БЕЗПЕКИ WEB-СТОРІНОК
    • 5.1 Сканер вразливостей Nikto-online
    • 5.2 Робота сканера Nikto-Online
    • 5.3 Зовнішній вигляд сканера
  • ВИСНОВОК
  • СПИСОК ЛІТЕРАТУРИ
  • ПЕРЕЛІК ПОЗНАЧЕНЬ І СКОРОЧЕНЬ
  • ДВ-1 — ручне відновлення після збоїв;
  • ДР-1 — квоти;
  • КА-2 — базова адміністративна конфіденційність;
  • КВ-1 — мінімальна конфіденційність при обміні;
  • НВ-1 — автентифікація вузла;
  • НИ-2 — одиночна ідентифікація і автентифікація;
  • НК-1 — однонаправлений достовірний канал;
  • НО-1 — розподіл обов’язків;
  • НР-2 — захищений журнал;
  • НТ-1 — самотестування за запитом;
  • НЦ-1 — КЗЗ з контролем цілісності;
  • ЦА-1 — мінімальна адміністративна цілісність;
  • ЦВ-1 — мінімальна цілісність при обміні;
  • ЦО-1 — обмежений відкат.
  • У цій курсовій роботі використовуються такі скорочення:
  • АС — автоматизована система;
  • ЕОМ — електронно-обчислювальна машина;
  • ІзОД — інформація з обмеженим доступом;
  • КЗЗ — комплекс засобів захисту;
  • КСЗІ - комплексна система захисту інформації;
  • НД ТЗІ - нормативний документ системи технічного захисту інформації;
  • НСД — несанкціонований доступ;
  • ОС — обчислювальна система;
  • ПЕОМ — персональна електронно-обчислювальна машина;
  • ПЗ — програмне забезпечення;
  • СЗІ - служба захисту інформації;
  • ТЗІ - технічний захист інформації.
  • ВСТУП
  • В даний час, в Україні, в зв’язку з входженням у світовий інформаційний простір, швидкими темпами впроваджуються новітні досягнення комп’ютерних і телекомунікаційних технологій. Системи телекомунікацій активно впроваджуються у фінансові, промислові, торгові і соціальні сфери. У зв’язку з цим, різко зріс інтерес широкого кола користувачів до проблем захисту інформації. Тривалий час методи захисту інформації розроблялися тільки державними органами, а їхнє впровадження розглядалося як виключне право тієї або іншої держави. Проте, в останні роки, з розвитком комерційної і підприємницької діяльності збільшилося число спроб несанкціонованого доступу до конфіденційної інформації, а проблеми захисту інформації виявилися в центрі уваги багатьох вчених і спеціалістів із різноманітних країн.
  • Оскільки основний інформаційний обмін сьогодення оснований на інформаційній технології, то важливою умовою безпеки стає безпека в комп’ютерних мережах. Тому захист інформації - важливе і першочергове завдання при проектуванні веб-сайтів.

1. ВИЗНАЧЕННЯ, ТЕРМІНОЛОГІЯ ТА ПРИНЦИПИ ОЦІНКИ СТАНУ БЕЗПЕКИ WEB-СТОРІНКИ

1.1 Визначення

У цьому НД ТЗІ використовуються терміни та визначення, що відповідають встановленим ДСТУ 2226 та НД ТЗІ 1.1−003.

Інші терміни, ужиті в цьому НД ТЗІ, мають такі значення:

Інтернет (мережа Інтернет) — сукупність мереж та обчислювальних засобів, які використовують стек протоколів TCP/IP (Transport Control Protocol/Internet Protocol), спільний простір імен та адрес для забезпечення доступу до інформаційних ресурсів мережі будь-якій особі;

Оператор (провайдер, provider) — юридична або фізична особа, яка надає користувачам доступ до мережі Інтернет;

Броузер (browser) — програмне забезпечення, що надає інтерфейс для доступу до інформації WEB-сторінок та їх перегляду;

Робоча станція (клієнт мережі) — окрема (персональна) ЕОМ або віддалений термінал мережі, з яких користувачі отримують доступ до ресурсів мережі Інтернет;

Сервер (server) — об'єкт комп’ютерної системи (програмний або програмно-апаратний засіб), що надає послуги іншим об'єктам за їх запитами;

WEB-сервер — сервер, який обслуговує запити користувачів (клієнтів) згідно з протоколом HTTP (Hyper Text Transfer Protocol), забезпечує актуалізацію, збереження інформації WEB-сторінки, зв’язок з іншими серверами;

WEB-сторінка (WEB-сайт) — мережевий інформаційний ресурс, що надається користувачу у вигляді HTML-документу і має у мережі свою унікальну адресу;

HTML-документ — файл текстової або нетекстової природи (звук, відео, зображення), створений за допомогою мови гіпертекстової розмітки HTML (Hyper Text Mark-up Language);

Посилання (гіпертекстове посилання) — адреса іншого мережевого інформаційного ресурсу у форматі URL (Universal Resource Location), який тематично, логічно або будь-яким іншим способом пов’язаний з документом, у якому це посилання визначене.

1.2 Склад та вимоги до профілів захищеності інформації

Політика безпеки інформації в АС повинна поширюватися на об'єкти комп’ютерної системи, які безпосередньо чи опосередковано впливають на безпеку інформації.

До таких об'єктів належать:

— адміністратор безпеки та співробітники СЗІ;

— користувачі, яким надано повноваження забезпечувати управління АС;

— користувачі, яким надано право доступу до загальнодоступної інформації;

— інформаційні об'єкти, що містять загальнодоступну інформацію;

— системне та функціональне ПЗ, яке використовується в АС для оброблення інформації або для забезпечення функцій КЗЗ;

— технологічна інформація КСЗІ (дані про мережеві адреси, імена, персональні ідентифікатори та паролі користувачів, їхні повноваження та права доступу до об'єктів, встановлені робочі параметри окремих механізмів або засобів захисту, інша інформація баз даних захисту, інформація журналів реєстрації дій користувачів тощо);

— засоби адміністрування і управління обчислювальною системою АС та технологічна інформація, яка при цьому використовується;

— обчислювальні ресурси АС (наприклад, дисковий простір, тривалість сеансу роботи користувача із засобами АС, час використання центрального процесора і т. ін.), безконтрольне використання або захоплення яких окремим користувачем може призвести до блокування роботи інших користувачів, компонентів АС або АС в цілому.

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

— за умови, коли WEB-сервер і робочі станції розміщуються на території установи-власника WEB-сторінки або на території оператора (технологія Т1), мінімально необхідний функціональний профіль визначається:

КА-2, ЦА-1, ЦО-1, ДВ-1, ДР-1, НР-2, НИ-2, НК-1, НО-1, НЦ-1, НТ-1;

— за умови, коли WEB-сервер розміщується у оператора, а робочі станції - на території власника WEB-сторінки, взаємодія яких з WEB-сервером здійснюється з використанням мереж передачі даних (технологія Т2), мінімально необхідний функціональний профіль визначається:

КА-2, КВ-1, ЦА-1, ЦО-1, ЦВ-1, ДВ-1, ДР-1, НР-2, НИ-2, НК-1, НО-1,НЦ-1, НТ-1, НВ-1.

Технологія Т1 різниться від технології Т2 способом передачі інформації від робочої станції до WEB-сервера, а саме: наявністю у другому випадку незахищеного середовища, яке не контролюється, і додатковими вимогами щодо ідентифікації та автентифікації між КЗЗ робочої станції й КЗЗ WEB-сервера під час спроби розпочати обмін інформацією та забезпечення цілісності інформації при обміні.

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

У випадках, коли в АС вимоги до політики реалізації якоїсь з послуг безпеки забезпечуються організаційними або іншими заходами захисту, які в повному обсязі відповідають встановленим НД ТЗІ 2.5−004 специфікаціям для певного рівня послуги безпеки, то рівень такої послуги, що входить до визначених згідно з профілів захищеності, може бути знижений на відповідну величину.

2. АНАЛІЗ НАЙБІЛЬШ ПОШИРЕНИХ ЗАГРОЗ WEB-СТОРІНКАМ

Щоб зламати веб-портал зловмисник збирає інформацію, необхідну і достатню для його зламу:

* перевірка використання на веб-сайтом сценаріїв, написаних власниками сайту або розроблених комерційними організаціями;

* детальний розгляд сценаріїв, які потребують введення даних користувачем;

* розгляд того, як сценарії обробляють введені дані;

* розгляд того, як фільтруються введені дані, щоб обійти ці фільтри;

* використання універсального web-фільтру, який продивляється HTTP заголовки повідомлень.

SQL-ін'єкція — вбудовування вільних SQL-команд, у результаті якого змінюється логіка запиту до бази даних. Це становить загрозу, бо таким чином можна поцупити з бази даних конфіденціальну інформацію. Приклад — через помилки web-інтерфейсу у різних провайдерів не раз крали бази з логінами та паролями користувачів. Успішність атаки SQL-ін'єкція не залежить від використання для написання web мови програмування — чи то PHP, Perl, або ASP. Якщо сценарій працює з базами даних, а перевірка вхідних параметрів відсутня, то завжди є можливість приєднання SQL-коду.

Приклад вразливого сценарію:

$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». Php-ін'єкція — один зі методів злому веб-сайтів, що працюють на PHP, який полягає у виконанні стороннього коду на серверній стороні. Потенційно небезпечними є стандартні функції PHP :

eval ();

fopen ();

exec ();

require_once ();

include_once ();

include ();

require ();

create_function ();

Php-ін'єкція стає можливою, якщо вхідні параметри приймаються і використовуються без перевірки. Загроза XSS. В багатьох XSS вже давно немає ніякого скриптингу. Всяка можливість впливу на віддаленого користувача, яка реалізовується через незахищений сайт віддаленим хакером, і буде XSS. XSS-атаки відрізняються моделлю передачі даних між клієнтом, сервером та хакером. В цілому на сьогоднішній день відомо три основні моделі [1]:

1) XSS DOM. У цій моделі вразливість сайту полягає у тому, що не серверний сценарій, а саме клієнтський JavaScript вставляє в код HTML сторінки дані, отримані в URL, через об'єкти Document Object Model (DOM). Тому користувачу достатньо лише перейти за посиланням, яке містить XSS-вектор хакера, і вміст вебсторінки буде змінено і в неї безпосередньо на машині клієнта буде вставлений код з тіла вектора. Приклад вразливої сторінки:

var pos=document.URL.indexOf («name=»)+5;

document.write (document.URL.substring

(pos, document.URL.length));

Приклад вектора: http://www.vulnerable.site/welcome.html? name=

2) Класичний XSS. Найбільш поширена модель атак. Використовувана вразливість полягає в тому, що при недостатній фільтрації вхідних параметрів

1серверним сценарієм, тіло XSS-вектора потрапляє до результуючого HTML, CSS, або JavaScript-коду безпосередньо у браузер клієнта.

3) Збережений XSS. Фактично, ця модель атак пов’язана з перманентним розміщенням параметрів для скрипта, які передаються від хакера серверу, безпосередньо в базі даних сервера й подальшій їх видачі відвідувачам сайту (найчастіше це форуми, блоги і т.п.). Ця модель, з точки зору зловмисника, має дві великі переваги: вона не потребує розсилки даних хакером користувачу (цю роботу виконує сервер і користувач нічого не запідозрить), і надає можливість створювати, так званих, XSS-хробаків — на комп’ютері кожного відвідувача вразливого сайту виконається хакерський код, і цей код може сам себе розміщувати на інших сторінках сайту.

Приклад XSS-хробака мовою JavaScript:

function HTTPRequest (url)

{

// гілка для XMLHttpRequest object

if (window.XMLHttpRequest) {

req = new XMLHttpRequest ();

req.onreadystatechange =processReqChange;

req.open («GET», url, true);

req.send (null); // гілка для IE/Windows ActiveX version

} else if (window.ActiveXObject) {

req = new ActiveXObject («Microsoft.XMLHTTP»);

if (req) {

req.onreadystatechange =processReqChange;

req.open («GET», url, true);

req.send ();

}

HTTPRequest («http://vulnerable-blog.com/vulerable;

script.php?vulnerable-arg=");

Типова XSS-атака складається з наступних стандартних етапів:

* пошук вразливості;

* вибір методу передачі інформації або впливу на користувача через XSS-вектор;

* створення додаткових інструментів для підтримки XSS Proxy, віддалено розміщених файлів та інше;

* пошук способу розповсюдження XSS-вектора;

* створення ефективного XSS-вектора;

* вмілого експлуатування отриманих даних.

Класифікація основних загроз і їх характеристик представлена у таблиці 2.1

Таблиця 2.1

Класифікація загроз веб-сайтам

Назва

Загроза

Розповсюдження

Складність захисту

Об'єкт атаки

Code

injection

найвища

низька

низька

скрипт (з привілеями веб-сервера)

SQL Injection

висока

середня

середня

база даних

XSS

середня

висока

висока

кінцевий користувач

Рис. 2.1. Відсотковий розподіл загроз веб-сайтам

3. АНАЛІЗ НАЙБІЛЬШ ПОШИРЕНИХ ВРАЗЛИВОСТЕЙ WEB-СТОРІНОК

Web-сервери та Web-сайти є об'єкти на які діють джерела вразливостей. Особливу увагу треба звернути на Web-сервери, бо Web-сервери — постійно піддаються безлічі самих різних небезпек. Причому найсерйознішу загрозу становлять для них хакери й віруси. Перші можуть отримати доступ до конфіденційної інформації, розміщеної на сервері, зламати сайти й змінити їх вміст, а також вивести з ладу сервер за допомогою розподіленої атаки (DDoS-атака). Віруси ж, вражаючи веб-сервери, перетворюють їх самих у розсадник інфекції. Крім того, вони істотно сповільнюють його роботу, а також займають інтернет-канал. На перший погляд здається, що ці загрози за принципом роботи дуже сильно відрізняються один від одного. Але насправді це не так. Виявляється, багато вірусів, особливо інтернет-черв'яки, використовують для розповсюдження вразливості в програмному забезпеченні. Так і хакери теж воліють застосовувати атаки, спрямовані на відомі «дірки» в програмному забезпеченні. І в цьому немає нічого дивного. Використовуючи вразливості, і ті й інші одержують досить легкий доступ до віддаленого комп’ютера навіть у тому випадку, якщо останній добре захищений.

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

3.1 Вразливості програмного забезпечення та конфігурації

Коли мова заходить про вразливість веб-серверів, то переважна більшість людей відразу ж згадують «дірки» в їх програмному забезпеченні. Це відноситься до самих програмам-серверів, таким як Apache, Microsoft Internet Information Server та інші. І в цьому немає абсолютно нічого дивного. Все-таки це програмне забезпечення досить об'ємне й складне, так що «дірки» в ньому обов’язково є. Крім того, не можна забувати, що сучасний веб-сервер неможливо уявити собі без багатьох додаткових функцій, наприклад, без підтримки мов програмування типу Perl, PHP та інші, а також без систем управління базами даних. Усе це стає можливим завдяки установці на веб-сервер додаткового програмного забезпечення. І все воно теж може мати свої вразливості.

Сьогодні на сайтах, присвячених інформаційній безпеці, постійно з’являються повідомлення про виявлення нових вразливостей у програмному забезпеченні веб-серверів. У цьому процесі беруть участь як фахівці із захисту даних, так і хакери. Причому останні при виявленні нової «діри» можуть умовчати про неї й спробувати використовувати її у своїх цілях. Але часто буває навпаки. Хакер намагається розповісти про нові вразливості всім, у тому числі і розробникам ПЗ. Робиться це, швидше за все, із честолюбства. Хакер просто хоче показати світу свої знання та вміння. Але в нашому випадку це бажання приносить тільки користь.

Головною особливістю виробничих вразливостей є їх прихильність до певних версій програмного забезпечення. Справа в тому, що «дірки» часто зустрічаються не у всій лінійці веб-серверів, а тільки в деяких їх релізах. А ще варто відзначити, що чим популярніше те чи інше програмне забезпечення, тим частіше для нього знаходять нові вразливості.

І це залежить не від якості написання ПЗ. Просто його вивчають більше фахівців, так що й вірогідність виявлення «дір» відносно велика.

Захиститися від розглянутого типу вразливостей програмного забезпечення можна тільки одним способом — своєчасною установкою всіх розроблених виробниками патчів (оновлених версій). Справа в тому, що розробники програмного забезпечення (ПЗ) регулярно викладають на офіційних сайтах оновлення для своїх продуктів. При виявленні критичною для безпеки «дірки» патч випускається швидко (якщо, звичайно, компанія дійсно піклується про своїх клієнтів). Якщо ж знову знайдені вразливості несуть швидше теоретичну, ніж реальну загрозу, то в міру їх накопичення випускаються кумулятивні патчі.

3.2 Вразливості конфігурації

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

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

3.3 Вразливості власного програмного забезпечення

Скрипти веб-сайтів теж можуть містити вразливості. Сучасний веб-сервер і супутнє програмне забезпечення дуже часто служать своєрідною базою для виконання програм, що написані власноруч користувачем. Мова йде, звичайно, про скрипти, які працюють на більшості сучасних сайтів. Справа в тому, що більшість мов веб-програмування є серверними. Це означає, що скрипти, написані на них, виконуються прямо на сервері, а на комп’ютер користувача (в даному випадку — відвідувача сайту) відправляються тільки результати їх роботи. І в цьому криється досить серйозна небезпека. Справа в тому, що скрипти для сайтів далеко не завжди розробляються дійсно гарними спеціалістами. На багатьох веб-проектах використовуються безкоштовно поширювані програми або ж ПЗ власного написання. Природно, у ньому теж можуть міститися вразливості. Причому деякі з них можуть бути дуже серйозними, що дозволяють зловмисникам дістати несанкціонований доступ до самого серверу. Причому потрібно враховувати, що деякі скрипти виконуються з підвищеними привілеями. Так що вразливості в них можуть виявитися гарною підмогою для хакерів.

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

3.4 Класифікація вразливостей і атак

Ця класифікація представляє собою спільну спробу зібрати воєдино інформацію й показати загрози безпеки 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-додатках у досить повній і стандартній формі.

3.5 Статистика вразливостей Web-сайтів та Web-додатків

Як показує багаторічний досвід компанії Positive Technologies із проведення робіт із тестування на проникнення й аудитів інформаційної безпеки — вразливості в Web-додатках, як і раніше залишаються одним із найбільш поширених недоліків забезпечення захисту інформації. Інші часто зустрічаються проблеми — це низька поінформованість співробітників у питаннях ІБ, слабка парольна політика чи повсюдне її недотримання, недоліки в процесах управління оновленнями ПЗ, використання небезпечних конфігурацій, і як це може здатися парадоксальним, не ефективне між мережеве розмежування доступу. Незважаючи на те, що вразливості Web-додатків неодноразово описані в «науково-популярної» та спеціалізованої літературі, досить рідко зустрічаються превентивні захисні механізми, які знижують ризики експлуатації різних вразливостей у них.

Проблема захищеності Web-додатків ускладнюється ще й тим, що при розробці Web-додатків, що часто не враховуються питання, пов’язані із захищеністю цих систем від внутрішніх і зовнішніх загроз, або не достатньо уваги приділяється даному процесу. Це у свою чергу породжує ситуацію, у якій проблеми ІБ потрапляють у поле зору власника системи вже після завершення проекту. А усунути вразливість в уже створеному Web-додатку є більш витратною статтею бюджету, ніж при його розробці та впровадженні. Недооцінка серйозності ризику реалізації загроз ІБ із використанням Web-додатків, доступних із боку мережі Інтернет, можливо, є основним чинником поточного низького стану захищеності більшості з них.

4. ОГЛЯД МЕТОДОЛОГІЙ ТЕСТУВАННЯ БЕЗПЕКИ WEB-СТОРІНОК

Даний розділ містить оглядову статистику вразливостей Web-додатків, отриману із двох джерел:

· У ході робіт із тестування на проникнення, аудитів безпеки та інших робіт, виконаних експертами компанії Positive Technologies в 2008 році.

· За підсумками підвищення безпеки сайтів клієнтів Хостинг-Центру РБК у рамках послуги «Перевірка Безпеки Сайту», здійснювана на основі системи MaxPatrol (модуль Pentest) компанії Positive Technologies.

Усього в статистиці брали участь дані про 10 459 Web-додатках. Дані грунтуються на проведенні 16 121 автоматичних сканувань, детальному аналізі 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):

1. Аутентифікація (Authentication)

2. Авторизація (Authorization)

3. Атаки на клієнтів (Client-side Attacks)

4. Виконання коду (Command Execution)

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

6. Логічні недоліки (Logical Flaws)

7. Не безпечні конфігурації (Misconfiguration)

8. Недоліки протоколу (Protocol Abuse)

9. Інші (Miscellaneous)

4.1 Статистика вразливостей

Усього в представлену статистику увійшли дані по 10 459 Web-додатків, 7861 з яких містили одну й більше вразливостей. Сумарно у всіх додатках було виявлено 33 931 помилок різного ступеня ризику. У Табл. 4.1 представлені дані щодо розподілу вразливостей, виявлені в ході аудитів і шляхом автоматизованого сканування.

Таблиця 4.1. Розподіл вразливостей за методом пошуку

Метод пошуку

Хостів

Вразливих

хостів

Вразливостей

сайтів

Ручний метод пошуку і аналіз

вихідного коду

Автоматизований метод пошуку

Таким чином, вірогідність виявлення вразливостей в одному Web-додатку (тобто ефективність оцінки захищеності) при його детальному аналізі вище цього показника при автоматичному скануванні на 26% Таке співвідношення обумовлено, перш за все тим, що аналіз вихідного коду та виконання ручних перевірок дозволяє добитися кращих результатів, ніж при автоматизованому скануванні. Крім того, у роботах по дослідженню Web-додатків ручним способом застосовувалися методи перевірки додатків на основі системних журналів, вихідних кодів, що збільшує охоплення API системи й, як наслідок, дозволяє одержати більш об'єктивну оцінку захищеності досліджуваних систем. При автоматизованому скануванні настройка профілів сканування під конкретний Web-додоток не виконувалася, і сканування вироблялися методом «чорного ящика».

Рис. 4.1. Імовірність виявлення вразливості різними методами їх пошуку

4.2 Автоматичне сканування

Розподіл виявлених вразливостей до різних типів за допомогою автоматизованих засобів представлено на рисунку

Рис. 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.), показує, що найбільш імовірні шляхи поширення інфікованого коду в цих додатках — це використання наступних вразливостей:

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

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

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

Рис. 4.3. Статистика критичних вразливостей на сайтах, що містять інфікований код

Процес експлуатації подібних вразливостей може бути досить легко автоматизований, а поширення подібних помилок в Web-додатках дозволяє додавати інфікований код на сторінки вразливих Web-вузлів. Якщо подивитися на статистику розподілу критичних вразливостей по інфікованими сайтам (див. Рис. 4.4.), то можна зробити висновок, що основним зараження Web-додатки є експлуатація вразливості «Впровадження операторів SQL».

Рис. 4.4. Розподіл критичних вразливостей за інфіковании сайтами

Рис. 4.5. Розподіл критичних вразливостей на сайтах

Порівнюючи аналогічні показники по сайтах, на яких не було виявлено інфікованих сторінок, можна зробити висновок, що приблизно 15−20% Web-додатків можуть бути заражене автоматизованим способом, за умови налаштувань середовища Web-сервера, що дозволяють провести подібну атаку.

4.3 Детальний аналіз

Розподіл виявлених вразливостей до різних типів, виявлених за допомогою детального аналізу 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).

web сторінка безпека загроза

4.4 Узагальнені дані

Узагальнені результати за розподілом виявлених вразливостей до різних типів і класів WSTCv2, виявлених за допомогою детального аналізу Web-додатків і при автоматичному скануванні представлено в Таблиці 5.3.

Таблиця 4.3. Статистика вразливостей Web-додатків (узагальнені дані)

Тип

вразливості

Автоматичне

сканування

Детальний аналіз

%

Вразливостей

додатків

%

Вразливих

сайтів

%

Вразливостей

додатків

%

Вразливих

сайтів

Cross-Site

Scripting

30,08

50,1

41,75

61,0

SQL

Injection

7,95

15,50

17,69

67,79

Information

29,82

97,19

12,50

16,94

Leakage

Якщо аналізувати поширеність вразливостей високого ступеня ризику, то тут найбільш часто зустрічаються помилки типу «Впровадження операторів SQL» (SQL Injection). Можливість несанкціонованого доступу до бази даних була виявлена в 67% випадків при детальному аналізі Web-додатки та 16% при автоматичному скануванні. Також широко поширені помилки «Читання довільних файлів» (Path Traversal), «Підбір пароля» (Brute Force) і помилки в реалізації і налаштування системи авторизації та аутентифікації. Тобто в 83% сайтів були виявлені критичні вразливості, і в 78% випадків зі ста в програмному забезпеченні Web-додатки містяться вразливості середнього ступеня ризику.

5. ОГЛЯД ЗАСОБІВ ТЕСТУВАННЯ БЕЗПЕКИ WEB-СТОРІНОК

5.1 Сканер вразливостей Nikto-online

Ефективність роботи будь-якого Internet-сайту визначається швидкістю реакції на середовище веб-технологій, яке динамічно розвивається. Сучасні технології створення веб-контенту в режимі реального часу дали професійному веб-майстру найпотужніші інструменти для управління потоками інформації в мережі Internet. Цілком природно, що такий ринок не залишився без уваги хакерів, які прагнуть завдати шкоди або заволодіти конфіденційною інформацією. У таких умовах актуальним завданням є мінімізація вразливостей web-серверів і сайтів задля уникнення витоку інформації.

Під час створення або внесення змін в структуру і скрипти сторінок сайту важко оцінити можливість такої вразливості і найбільш вразливу частину цілісної структури системи. Виявити «дірки» в скриптах можна за допомогою будь-якого сканера вразливостей. Для більш зручного використання була створена система Nikto-online, яка дозволяє скоротити час, необхідний на сканування, та автоматизувати процес пошуку слабкихмісць у безпеці веб-серверів і веб-сайтів.

Система Nikto-online була розроблена з метою підвищення безпеки web-сайтів і серверів, доступності для кожного і швидкого відстеження вразливостей web-сайтів. Nikto-online являє собою зручний і приємний у використанні web-інтерфейс до сканера вразливостей Nikto 2.03.

Для описів і методів розв’язання вразливостей за основу була взята відкрита база вразливостей OSVDB (http://osvdb.org/). Ця база містить всі вразливості, які визначає сканер Nikto англійською мовою. Тому ще однією з цілей для розробки системи nikto-online є максимально повний переклад бази OSVDB.

Так як система є загальнодоступною, то тут відсутні авторизація та поділ користувачів на адміністраторів і користувачів. У всіх права рівні і процес додавання та видалення сайтів для всіх є однаковим. Була розроблена більш зручна навігація по сайтам і вразливостям за допомогою більш нових web-технологій.

5.2 Робота сканера Nikto-Online

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

Сканер Nikto-Online — це багато-поточний сканер. Він сканує кожен сайт в окремому потоці, що дозволяє на порядок скоротити час при масовому скануванні або примусовому повторному скануванні сайтів. Система аналізує результат і розділяє вразливості на небезпечні, які ми настійно рекомендуємо усунути, і інші, які не несуть великої загрози для сайту або сервера, але які також бажано усунути.

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

При відображенні результату сканування також першими відображаються вразливості, що мають позначку «небезпечно».

До небезпечних вразливостей ми відносимо такі як: SQL Inject, Cross Site Scripting (XSS).

SQL Inject — один з розповсюджених способів злому сайтів і програм, що працюють з базами даних, заснований на впровадженні в запит довільного SQL-коду.

Cross Site Scripting (XSS) — це вразливість на сервері, що дозволяє впровадити в генерацію HTML-сторінки скрипти на сервері (не в скрипт, на відміну від Рerl-небудь PHP-інклудінга) довільний код шляхом передачі його в якості значення нефільтрованої змінної.

База даних системи являють собою об'єднану базу OSVDB і базу для зберігання сайтів та вразливостей до неї.

Основна частина бази даних — це база OSVDB.

Після сканування для кожного сайту генерується 2 файли з результатами сканування:

1. Текстовий файл (.Txt). Тут зберігається результат сканування Nikto.

2. Pdf-файл (. Pdf). Зберігає в собі вразливості з описом і методами вирішення.

Ці файли доступні для скачування для зручності передачі результату сканування адміністраторів або розробникам сайту, задля усунення та підвищення безпеки сайту і сервера.

Після сканування система також аналізує результат і розділяє вразливості на небезпечні, які ми настійно рекомендуємо усунути, і інші, які не несуть великої загрози для сайту або сервера, але які також бажано усунути.

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

При відображенні результату сканування також першими відображаються вразливості, що мають позначку «небезпечно».

До небезпечних вразливостей ми відносимо такі як:

SQL Inject та Cross Site Scripting (XSS).

SQL Inject — один з розповсюджених способів злому сайтів і програм, що працюють з базами даних, заснований на впровадженні в запит довільного SQL-коду.

5.3 Зовнішній вигляд сканера

Система являє собою web-сайт з приємним дизайном і використанням нових технологій, таких як jquery та інші. Система складається з однієї сторінки, яка має наступний вигляд:

Рис. 5.1. Головна сторінка сканера Nikto-Online

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

Якщо ви намагаєтеся додати сайт, який вже був доданий раніше, то система автоматично перейде на перелік вразливостей сайту, що додається. Інакше сайт буде додано і поставлено в чергу для сканування. Сканер вразливостей запускається щохвилини і сканує сайти поставлені в чергу. Як вже говорилося раніше, кожен сайт сканується в окремому потоці, що дозволяє скоротити час сканування.

Рис. 5.2. Додавання сайту

Після чого відкриється форма для додавання сайту:

Рис. 5.3. Форма додавання сайту

У чергу сканування встановлюються не тільки нові сайти, але і сайти, останнє сканування яких було пізніше 1 тижня. Тобто система автоматично сканує всі сайти один раз на тиждень. Також в чергу сканування можна примусово поставити будь-який сайт. Для цього необхідно натиснути на кнопку «пересканувати» у блоці з інформацією про сайт:

Рис. 5.4. Блок з інформацією про сайт

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

Рис. 5.5. Блок навигації по сайтам

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

Рис. 5.6. Пошук сайту

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

Під вразливими місцями знаходяться 3 кнопки:

1. Видалити. З назви стає ясно, що натиснувши на цю кнопку даний сайт буде видалений з бази сканування Nikto-Online.

2. Завантажити без опису. Ця кнопку дає можливість скачати результат, який повернув сканер Nikto 2.03 в оригінальному вигляді:

— Nikto v2.03/2.04

—————————————————————————————————————;

+ Target IP: 77.47.179.253

+ Target Hostname: nikto.kedya.org.ua

+ Target Port: 80

+ Start Time: 2010;03−02 10:54:02

+ Server: Apache/2.2.13 (FreeBSD) mod_ssl/2.2.13 OpenSSL/0.9.8e

DAV/2 SVN/1.6.6 mod_python/3.3.1 Python/2.5.4

+ No CGI Directories found (use '-C all' to force check all possible dirs)

— Allowed HTTP Methods: GET, HEAD, POST, OPTIONS

+ OSVDB-0: Non-standard header x-pad returned by server, with

contents: avoid browser bug

+ mod_ssl/2.2.13 appears to be outdated (current is at least 2.8.31) (may

depend on server version)

+ OpenSSL/0.9.8e appears to be outdated (current is at least 0.9.8g) (may

depend on server version)

+ mod_ssl/2.2.13 OpenSSL/0.9.8e DAV/2 SVN/1.6.6 mod_python/3.3.1

Python/2.5.4 — mod_ssl 2.8.7 and lower are vulnerable to a remote buffer

overflow which may allow a remote shell (difficult to exploit).

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2002;0082.

+ OSVDB-3092: GET //files/: This might be interesting…

+ 3577 items checked: 6 item (s) reported on remote host

+ End Time: 2010;03−02 10:54:17 (15 seconds)

—————————————————————————————————————;

+ 1 host (s) tested

Test Options: -h http://nikto.kedya.org.ua

Рис. 5.7. Результат сканування сайту

3. Завантажити з описом. Під цим посиланням ховається pdf-файл у якому розписана кожна вразливість з описом і методами рішення. Цей файл необхідно передати адміністратору сайту, щоб він мав можливість більш детально дізнатися про вразливість і спосіб її усунення.

ВИСНОВОК

  • У даній курсовій роботі я дав визначення, термінологію та принципи оцінки стану безпеки web-сторінки. Проаналізував найбільш поширені загрози та вразливості web-сторінки. Зробив огляд методологій тестування безпеки web-сторінок. А також зробив огляд засобів тестування безпеки web-сторінок на прикладі програми Nikto-Online.
  • В результаті проведеної роботи можна зробити висновок, що майже всі сайти недостатньо захищені і мають вразливості, як власного програмного забезпечення так і вразливості конфігурації, на що вказує статистика в розділі 3 даної курсової роботи.
  • СПИСОК ЛІТЕРАТУРИ

1. Спецвыпуск журнала «Хакер» № (2)75, февраль 2007 г. Издательский дом ООО «Гейм Лэнд».

2. Девід А. Вайз, Марк Малсід. Google. Прорив в дусі часу. Видавництво «Ексмо», Москва, 2007.

3. Закон України «Про електронні документи та електронний документообіг» від 22 травня 2003 p. № 851-IV;

4. Закон України «Про захист інформації в автоматизованих системах» ;

5. Закон України «Про цифровий підпис» від 22 травня 2003 p. № 852-IV;

6. http://captcha.opti-mail.net/ - Защита web-сервисов от спама. Ярослав Полещук.

7. http://ru.wikipedia.org/wiki/PHP-инъекция

8. Nikto v2.1.3 — The Manual — Режим доступа: http://cirt.net/nikto2-docs/

9. SQL Injection. — Режим доступа.

10. http://www.owasp.org/index.php/SQL_Injection.

Показати весь текст
Заповнити форму поточною роботою