Современные информационные технологии.

Информационная безопасность.

Гусєв. М.А

Національний Авіаційний Університет, Україна

Отримання доступу до внутрішніх ресурсів мережі через вразливості HTTP-сервера Apache

Вступ

У http-сервері Apache знайдена вразливість, яку виявляють під час роботи зворотнього проксі-серверу. Якщо задані певні rewrite-правила в найстройках сервера, ця діра дозволяє відправити запит із зовнішньої мережі до внутрішніх мережевих серверів в демілітаризованій зоні (DMZ) за кордоном міжмережевого екрану. Проблемі піддаються всі версії Apache 1.3.x і Apache 2.x. Розробники Apache вже випустили повідомлення про наявність вразливості й патч для усунення проблеми в Apache 2.*.

 

 

 

 


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

Для формування правил пробросу запитів для певного виду контенту часто використовується правила RewriteRule чи ProxyPassMatch з типовими правилами перетворення запиту. Наприклад:

  RewriteRule (.*)\.(jpg|gif|png)    http://images.myserver.com$1.$2 [P]

  ProxyPassMatch (.*)\.(jpg|gif|png) http://images.myserver.com$1.$2

Якщо задані подібні директиви атакуючий має можливість відіслати запит "GET@other.myserver.com / something.png HTTP/1.1", що може призвести не до підключення до серверу images.myserver.com, як по правилам обробки запитів, а до підключення до іншого внутрішнього серверу other.myserver.com. До того ж, перша частина "images.myserver.com @" буде трансльована і передана як частина адреси URL з параметрами аутентифікації (http://логін:пароль @ хост: порт / шлях? параметри). Догадуючись приблизно яка може бути внутрішня підмережа в мережі підприємства, просканувати наявність внутрішніх http-серверів в мережі можна через підбір внутрішніх IP-адрес, користуючись приблизно таками запитами "GET@10.0.0.1 HTTP/1.0" або разом з вказівкою номера порту "GET: @ 10.0.0.1:8080 HTTP/1.0".

В якості інших прикладів, можна навести такі правила перетворення:

RewriteRule ^(.*) http://internalserver$1 [P]

RewriteRule ^(.*) http://internalserver:80$1 [P]

Rewriterule ^/images(.*) http://InternalImageServer$1

RewriteRule ^(.*) http://internalserver$1


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

GET @server2/console HTTP/1.0

GET 80/console HTTP/1.0

GET /images@server2/console HTTP/1.0

GET :@localhost:8080 HTTP/1.0

і отримати в результаті перетворення перехід за такими URL:

         http://internalserver@server2/console

         http://internalserver:8080/console

         http://InternalImageServer@server2/console

         http://InternalImageServer:@localhost:8080/console   

Проблема може бути вирішена за допомогою патча, який забороняє передачу URI, що починається з символу "@" ("@other.myserver.com/ something.png"), оскільки такий запит не відповідає специфікації HTTP. Інший варіант рішення проблеми - використання символу "/" в правилах перетворення запитів, тобто вказівку "http://images.myserver.com/ $1 . $2" замість "http://images.myserver.com $1 . $2" або "http://internalserver/ $1" замість "http://internalserver $1", що не дозволить зробити атаку.

Найбільш оптимальне рішення

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

Основну увагу в роботі над новою версією було приділено вразливості в SSL, пов'язаної з можливістю перепогодження протоколу TLS без перевстановлення з'єднання. Цей пролом створює небезпеку проведення MITM-атаки, що дозволяє здійснити спуфінг захищених SSL сайтів за допомогою підставних даних авторизації SSL/TLS.

Крім закриття дірки в SSL/TLS, нова версія Apache дозволяє позбутися від вразливості, за допомогою якої хакери можуть віддалено викликати відмову в обслуговуванні сервера, пославши для обробки модулю mod_proxy_ajp складеного особливим чином шкідливий запит.

Для Windows-версій Apache 2.3 доступно ще одне оновлення, що закриває баг в модулі mod_isapi, помилка в якому призводить до відмови в обслуговуванні або виконання довільного коду.

Висновок

На сьогоднішній день, Apache є найпоширенішим веб-сервером в світі. Це пов'язано, перш за все, з широким розповсюдженням операційної системи Unix серед серверних комп'ютерів. А це означає, що невелика уразливість може піддати небезпеці мільйони комп'ютерів по всьому світу. Щоб не стати жертвою хакерів, необхідно постійно оновлювати ПО на своєму сервері якомога частіше, щоб уникнути катастрофічно наслідків.

Література

1.     Скотт Х. Администрирование Web-сервера Apache. – М.: Вильямс, 2011. – 336 с.

2.     Питер У. Apache для профессионалов. – СПб.: Wrox Press Ltd, 2011. – 474 с.