UP:
10.18 Краткий справочник по командам UNIX |
Сетевая безопасность в RedHat |
Общие правила безопасности |
Серверы по проблемам безопасности LINUX |
Сигнатуры атак сервера Apache (журнальные файлы) |
Литература |
Сервер Apache доступен бесплатно (http://www.apache.org). Сначала надо загрузить сервер после чего следует вызвать сценарий configure (включен в дистрибутив), который автоматически определяет тип операционной системы, а также устанавливает соответствующие файлы сборки проекта. Потребуется указать каталог, где должен располагаться сервер Apache. Для этого предназначена опция -prefix:
%./configure -prefix=/usr/local/apache/
Некоторые компоненты сервера Apache могут включаться и отключаться с помощью опций -enable-module= и -disable-module = сценария configure. Установленный по умолчанию набор модулей вполне приемлем, но имеются и дополнительные модули (см. табл. ниже).
Таблица. Дополнительные модули Apache, которые по умолчанию не включены
Модуль | Назначение |
auth_dbm | Использует базу данных DBM для управления доступом со стороны пользователей/групп (рекомендуется этот или следующий модуль, но не оба сразу) |
auth_db | Использует базу данных DB для управления доступом со стороны пользователей/групп |
usertrack | Позволяет отслеживать щелчки мышью в броузерах, поддерживающих технологию “cookie” |
rewrite | Переписывает URL-адреса, используя регулярные выражения |
expires | Позволяет включить в документ дату его истечения |
proxy | Конфигурирует Apache в качестве прокси-сервера |
В таблице ниже перечислены модули, которые могут быть отключены. Отключая неиспользованные модули, следует исходить из соображений безопасности и повышения производительности.
Таблица. Модули Apache, которые могут быть отключены
Модуль | Функция |
asis | Позволяет посылать файлы указанных типов без использования HTTP-заголовков |
autoindex | Индексирует каталоги, в которых отсутствует начальная HTML-страница (например, index.html) |
env | Позволяет устанавливать специальные переменные среды для >CGI-сценариев |
include | Разрешает использовать серверные вставки (старый способ создания динамического содержимого) |
userdir | Разрешает пользователям иметь собственные HTML-каталоги |
Полный перечень стандартных модулей можно найти в файле src/Configuration, входящем в дистрибутив Apache, либо по адресу www.apache.org/docs/mod/index.html.
После выполнения сценария configure запустите сценарии make и make install для фактической компиляции и установки соответствующих файлов.
После установки сервера необходимо сконфигурировать его с учетом выполняемых функций. Все файлы конфигурации находятся в каталоге /conf (например, /usr/local/apache/conf). Необходимо проверить и настроить три различных файла конфигурации: httpd.conf, srm.conf и access.conf.
Файл httpd.conf определяет, каким образом демон Apache (httpd) взаимодействует с системой. В этом файле задается TCP-порт приема запросов. На одном компьютере можно запустить несколько HTTP-серверов, подключенных к разным портам.
Ресурсы, доступ к которым необходим серверу, настраиваются в файле smr.conf. В нем располагается самая важная директива - DocumentRoot, которая задает корневой каталог для обслуживания документов. В этом файле также содержится ряд дополнительных установок, связанных с обработкой специальных URL-адресов (например, http://www.xor.com/~steve).
Параметры безопасности устанавливаются в файле access.conf. Он включает директивы, которая позволяют управлять доступом на уровне каталога или файла. Вызовы сценариев осуществляется только из каталога cgi-bin. Для установки этого ограничения следует задать опцию ExecCGI в файле srm.conf.
Если требуется, чтобы демон httpd запускался автоматически на этапе начальной загрузки, нужно вставить следующий фрагмент в функцию localrc() стартовых сценариев, либо включить его в файл /etc/rc.local, если используется отдельный локальный сценарий.
if [ -x /usr/local/apache/httpd ]; then
/usr/local/apache/apachetl start
echo =n ‘www_server’
fi
Протокол HTTP 1.1 реализует функциональные возможности виртуальных интерфейсов, в том числе не имеющих IP-адресов. Каждый из виртуальных сетевых интерфейсов может иметь доменное имя, под которым он известен пользователям Интернет. Это позволяет одному UNIX-серверу обслуживать сотни WEB-узлов. Настройка виртуального интерфейса происходит в два этапа. Сначала требуется создать виртуальный интерфейс на уровне TCP/IP. На втором этапе необходимо сообщить серверу Apache об инсталлированных виртуальных интерфейсах.
Виртуальные интерфейсы в RedHat обозначаются в том же формате интерфейс:экземпляр, что и в Solaris и HP-UX. Например, если интерфейс Ethernet называется eth0, то связанные с ним виртуальные интерфейсы конфигурируются с помощью команды ifconfig. Так команда:
# ifconfig eth0:0 128.138.243.150 netmask 255.255.255.192 up
настраивает интерфейс eth0:0 и назначает ему адрес в сети 128.138.243.128/26. Чтобы назначенные виртуальные адреса стали постоянными, необходимо создать для них файлы в каталоге /etc/sysconf/network-scripts. Файл ifcfg-eth0:0, соответствующий приведенной выше команде ifconfig, может содержать следующие строки:
DEVICE=eth0:0
IPADDR=128.138.243.150
NETMASK=255.255.255.192
NETWORK=128.138.243.128
BROADCAST=128.138.243.191
ONBOOT=yes
После создания виртуального интерфейса с помощью команды ifconfig требуется сообщить серверу Apache о том, какие документы должны обрабатываться при попытке подключения клиента к каждому интерфейсу. Это можно сделать посредством конструкции VirtualHost из файла httpd.conf. Каждому сконфигурированному виртуальному интерфейсу должна соответствовать одна конструкция VirtualHost. Например:
<VirtualHost 192.225.33.37>
ServerAdmin webmaster@www.deneg.net
DocumentRoot/usr/local/apache/htdocs/company
ServerName www.deneg.net
ErrorLog Logs/www.deneg.net-error_log
TransferLog logs/www.deneg.net-access_log
</VirtualHost>
После подключения клиента к виртуальному узлу 192.225.33.37 будет обрабатываться документы из каталога /usr/local/apache/htdocs/company.
Модель аутентификации в RedHat основана на подключаемых модулях аутентификации РАМ. В связи с этим команда passwd подчиняется набору правил имеющегося модуля, описанных в файле /etc/pam.d/passwd. Получить более подробную информацию о модулях РАМ можно по адресу:
http://pare.power.net/morgen/Linux-PAM/index.html
Единственная отличительная черта пользователя root состоит в том, что его идентификатор равен нулю. Поскольку в файле /etc/passwd может быть несколько элементов, для которых установлен этот идентификатор, то существует много способов входа в систему в качестве суперпользователя. Одним из способов, который используют хакеры, получив доступ к интерпретатору команд суперпользователя, заключается в редактировании файла passwd путем ввода в него новых регистрационных имен с идентификатором пользователя, равным нулю. Спасение от такого трюка является применение мини-сценария, подобного тому, который используется для поиска учетных записей без паролей:
perl -F: -ane ‘print if not $F[2];’ /etc/passwd
Этот сценарий отображает любые элементы файла passwd, в которых идентификатор пользователя не указан или равен нулю. Пристального внимания заслуживают элементы файла passwd, в которых нет имени пользователя, либо вместо имени стоят знаки препинания. Часто такие записи позволяют свободно входить в систему.
Источником повышенной опасности являются программы, которые запускаются с измененным идентификатором пользователя (SUID). Самым простым способом уменьшения количества проблем, связанных со сменой идентификатора, - это доведение до минимума числа таких программ.
Если нужно всего лишь ограничить доступ к файлу или базе данных, достаточно добавить в файл /etc/passwd псевдопользователя, единственным назначением которого является владение требуемыми ресурсами. Следует следовать обычным правилам по созданию псевдопользователей, используя низкое значение UID. В поле пароля прописывается звездочка, а начальным каталогом такого пользователя делается каталог /dev/null.
Полезно периодически сканировать диски на предмет выявления новых программ с установленным битом SUID. C такой задачей справится команда find:
/usr/bin/find / -ser root -perm -4000 -print |
/bin/mail -s “Setuid root files” netadmin
В данном случае пользователь netadmin по электронной почте направляется список всех файлов, принадлежащих пользователю root и имеющих установленный бит SUID. Если в вашей системе файл /dev/kmem могут читать все пользователи, немедленно исправьте этот промах. Следует проверить также права доступа к файлам /dev/drum и /dev/mem, если они присутствуют в системе.
С помощью программы nmap можно просмотреть, какие порты активированы на заданном сервере. Например:
% nmap -sT host1.uexample.com
…………….
Port | State | Protocol | Service |
7 | open | tcp | echo |
9 | open | tcp | discard |
13 | open | tcp | daytime |
19 | open | tcp | chargen |
21 | open | tcp | ftp |
23 | open | tcp | telnet |
25 | open | tcp | smtp |
… | |||
513 | open | tcp | login |
Для поиска ненадежных паролей можно использовать программу crack, доступную по адресу ftp://coast.cs.purdue.edu/pub/tools/unix/pwdutils/crack/.
Программа tcpd (ftp://ftp.porcupine.org), часто называемая пакетом “TCP-оболочек”, позволяет регистрировать подключения к таким ТСР-сервисам, как telnetd, rlogind и fingerd. Кроме того, она позволяет задавать перечень систем, которые имеют право устанавливать подключения. Программа находится в каталоге /usr/ports/security/tcp_wrapper. Программа tcpd легко инсталлируется и не требует внесения изменений в действующие утилиты. Она работает в связке с демоном inetd. Достаточно модифицировать файл /etc/inetd.conf, чтобы вместо реального сетевого сервера выполнялась tcpd.
Посредством программы tripwire можно контролировать изменения в системных файлах. Она контролирует права доступа и контрольные суммы всех важных системных файлов. Это позволяет выявлять подмененные, поврежденные и подделанные файлы.
Весьма полезным может оказаться диагностический пакет программ ТСТ (http://www.fish.com/security), позволяющих анализировать систему после проникновения в нее нарушителя.
По материалам книги Дэвида Бэндла “Защита и безопасность в сетях LINUX”, Питер, 2002.
Наиболее полезными серверами по проблемам безопасности являются в данный момент серверы: http://www.linuxberg.com/ и http://freshmeat.net/
AIDE | http://www.cs.tut.fi/~rammer/aide.html | Свободно распространяемая замена tripwire |
BASS | http://www.securityfocus.com/data/tools/network/bass-1.0.7.tar.gz | Balk Auditing Security Scanners |
Bastille Linux | http://bastille-linux.souceforge.net/ | Программа усиления защиты Red Hat |
Chech.pl | http://checkps.alcom.o.uk/ | Средство аудита разрешений доступа к файловой системе |
firesoft | http://www.unix.gr/ | Для просмотра LOG-файлов ipchain и snort |
Firewall Manager | http://www.tectrip.net/arg/ | Графический интерфейс для Firewall |
FreeS/WAN | http://www.xs4all.nl/~freeswan/ | Безопасная сеть WAN для ядер Linux |
Fwctl | http://indev.insu.com/Fwctl/ | Средство конфигурирования для пакетных фильтров Linux |
gfcc | http://icarus.autostock.co.kr/ | Firewall GTK+ (ipchains) |
gSentiel | http://zurk.netpedia.net/zfile.html | Графический интерфейс для Sentiel, основанный на GTK |
gShield | http://muse.linuxgeek.org/ | Модульный Firewall Godot |
HostSentry | http://www.psionic.com/abacus/hostsentry/ | Обнаружение анормальных подключений к системе |
hping2 | http://www.kyuzz.org/antirez/ | Аудит и тестирование сети |
ipchains | http://www.rustcorp.com/linux/ipchains/ | Управление пакетным фильтром Linux |
ipchains-firewall | http://ipchains.nerdherd.org/ | Сценарии для формирования правил ipchains и маскирования IP |
ipfa | http://www.soaring-bird.com.cn/oss_proj/ipfa/ | Управление для Firewall |
ISIC | http://expert.cc.purdue.edu/~frantzen/ | Программа посылки частично случайных пакетов для тестирования стеков IP и Firewall |
Ripper | http://www.openwall.com/john/ | Взломщик паролей |
Linux Intrusion Detection System | http://www.soaring-bird.com.cn/oss_proj/lids/ | Обнаружение проникновения злоумышленников |
Logcheck | http://www.psionic.com/ | Анализ LOG для обнаружения нарушений |
maillog | http://old.dhs.org/ | По cron передает по почте LOGs |
Mason | http://www.pobox.com/~wstearns/mason/ | Формирование Firewall на основе ipwadm или ipchain |
Nessus | http://www.nessus.org/ | Аудит безопасности |
netfilter | http://www.samba.org/netfilter/ | Программный фильтр пакетов |
nmap | http://www.insecure.org/nmap/ | Сканирование сети |
nstream | http://www.hsc.fr/cabinet/products/index | Анализатор сетевых потоков |
OpenSSH | http://www.openssh.com/ | Защищенная оболочка Secure Shell с открытым кодом |
Ping String | http://www.ksrt.org/pstring/ | Идентификатор трафика ICMP |
PMFirewall | http://www.pointman.org/ | Конфигурирование ipchains в Firewall и маскирования IP |
PortSentry | http://www.psionic.com/abacus/portsentry/ | Регистрация сканирования портов в реальном времени и реагирование |
PSPG | http://members.xoom.com/miscreants/ | Pretty Simple Password Generator/ Генерация паролей |
QIPchains | http://www.vano.odessa.net/software/ | Сценарий оболочки для быстрого добавления/удаления правила Firewall Linux |
redir | http://sammy.net/~sammy/hacks/ | Перенаправляет порт ТСР на другой IP-адрес и порт |
S/key | ftp://thumper.bellcore.com/pub/nmh/ | Система одноразовых паролей |
SAINT | http://www.wwdsi.com/saint/ | Security Administrator’s Integrated Network Tool - Инструмент администратора безопасности |
samhain | http://samhain.netpedia.net | Средство проверки целостности файлов |
SARA | http://home.arc.com/sara/index.html | Аудит безопасности (как SATAN/SAINT), если в системе установлена программа nmap |
secure delete | http://thc.pimmel.com/files/thc/secure_delete-2.1.tar.gz | Безопасное удаление файлов, безопасная перезапись виртуальной памяти и незанятого дискового пространства |
Secure Remote Password Protocol | http://srp.stanford.edu/srp/ | Протокол аутентификации и обмена ключами, основанный на использовании паролей |
Secure Shell (ssh) | ftp://ftp.cs.hut.fi/pub/ssh/ http://www.ssh.fi/ | Средство для защищенных подключений с использованием шифрования и взаимной авторизации |
Secure-Linux Patch | http://www.openwall.com/linux/ | Исправление ядра Linux для блокировки атак, основанных на переполнении стека |
Sentiel | http://zurk.netpedia.net/zfile.html | Быстрое сканирование системных файлов |
sifi | http://www.ifi.unizh.ch/ikm/SINUS/firewall | Пакетный фильтр TCP/IP для Linux, основанный на состояниях |
Slinux Kernel | http://www.slinux.cx/ | Безопасное ядро Linux |
snort | http://www.clark.net/~roesh/security.html | Система обнаружения несанкционированного проникновения |
sslwrap | http://www.rickk.com/sslwrap/ | SSL-оболочка для серверных приложений, таких как демоны РОР3/IMAP |
Sportal | http://sportal.sourceforge.net/ | Слежение за файлами с графическим интерфейсом GTK |
sXid | ftp://marcus.seva.net/pub/sxid/ | Слежение за suid/sgid, написанное на С |
TARA | http://home.arc.com/tara/index.html/ | Tiger Analytical Research Assistant - набор сценариев для проверки локальной безопасности |
Phreak Firewall | http://bewoner.dma.be/Phreak/ | Установка настройки Firewall с использованием к маскировки IP |
TheBox | http://yak.airwire.net/ | Сценарии для установки, настройки и управления маскировкой IP и прозрачного кэширования |
Triplight | http://linux.rice.edu/magic/triplight/ | Обнаружение несанкционированного проникновения и целостности файлов, использует md5 sum |
Tripwire | Survey of the IDS-systems | Survey of the IDS-systems |
Wipe | http://gsu.linux.org.tr/wipe/ | Безопасное удаление файлов с магнитных носителей |
ya-wipe | http://www.erols.com/thomassr/zero/download/wipe | Безопасное удаление файлов |
Информацию об атаках и различных средствах противодействия читатель может найти на в:
http://www.cert.org/reports/dsit_workshop-final.html
Существует много средств для детектирования DDoS (Distributed denial-of-service). Каждое из этих средств имеет свои слабости, и ни одно не является универсальным решением. Некоторые из них можно найти:
http://www.fbi.gov/nipc/trinoo.htm
http://staff.washington.edu/dittrich/misc/stacheldraht.analysis
http://www.iss.net/cgi-bin/dbt-display.exe/db_data/press_rel/release/122899199.plt
http://www.sans.org/y2k/stacheldraht.htm
Информацию о том, как корректно сконфигурировать сеть можно найти в RFC-2267
Архив средств для детектирования DDoS атак можно найти по адресу
http://packetstorm.securify.comdistributed/
CERT/CC публикует справочные материалы и другие документы по данной проблематике, например
http://www.cert.org/advisories/CA-2000-01.html
http://www.cert.org/advisories/CA-99-17-denial-of-service-tools.html
http://www.cert.org/tech_tips
Число WEB-серверов в мире приближается к 300 миллионам. Некоторые из них посещаются большим число клиентов и по этой причине становятся привлекательными мишенями атак. Ведь если заразить какой либо популярный сайт, его посетители будут заражаться и быстро сформируют botnet, что и нужно атакеру.
Ниже приводятся некоторые наиболее часто используемые виды атак (файл access_log, в разных версиях Apache имена этого файла немного варьируются). Первой следует назвать атаки, где в запросе GET или HEAD объект запроса содержит несколько символов "/" или "/.". У такой атаки имеется две цели: попытка проникнуть на уровень каталога, который ниже базового каталога WEB-сревера, определенного конфигурационным файлом Apache; если в запросе число символов "/" велико, такая атака становится DoS-атакой, так как каждый символ "/" обрабатывается независимо, а это потребует много времени процессора. Ниже представлено несколько примеров таких запросов, пришедших на сервер http://book.itep.ru. На любом сервере глубина вложения каталогов известна и при числе "/" больше допустимого, можно с большой вероятностью считать это атакой. Символ "." может использоваться с той же целью, что и "/".
217.197.219.87.dynamic.jazztel.es -
- [11/Dec/2010:00:50:45 +0300] "GET /././preword.htm HTTP/1.1" 200 18714 "-" "Java/1.6.0_22"
217.197.219.87.dynamic.jazztel.es -
- [11/Dec/2010:00:50:45 +0300] "GET /././preword.htm HTTP/1.1" 200 18714
Рекорд записи в файле access_log имеет формат CLF (Combined Log Format) и начинается с имени или IP-адреса источника запроса. Последующие два символа "- -" говорят о том, что данный ресурс для доступа не требует процедуры идентификации (директива IdentityCheck). Далее следует дата и время запроса с точностью до секунды. За временем следует тип используемого метода HTTP и проход и имя запрашиваемого ресурса, за ними идет версия протокола HTTP и статусный код, возвращаемый клиенту, а также размер присланного объекта в килобайтах. Описания форматов журнальных файлов смотри в http://httpd.apache.org/docs/2.0/logs.html.
217.197.219.87.dynamic.jazztel.es -
- [11/Dec/2010:00:50:52 +0300] "GET /././2/convrs_2.htm HTTP/1.1" 200 18643 "-" "Java/1.6.0_22"
217.197.219.87.dynamic.jazztel.es -
- [11/Dec/2010:00:50:52 +0300] "GET /././2/convrs_2.htm HTTP/1.1" 200 18643
217.197.219.87.dynamic.jazztel.es - - [11/Dec/2010:00:50:53 +0300] "GET /././1/intr_1.htm HTTP/1.1" 200 73905 "-" "Java/1.6.0_22"
217.197.219.87.dynamic.jazztel.es - - [11/Dec/2010:00:50:53 +0300] "GET /././1/intr_1.htm HTTP/1.1" 200 73905
217.197.219.87.dynamic.jazztel.es - - [11/Dec/2010:00:50:55 +0300] "GET /././10/Apache.htm HTTP/1.1" 200 27929 "-" "Java/1.6.0_22"
217.197.219.87.dynamic.jazztel.es - - [11/Dec/2010:00:50:55 +0300] "GET /././10/Apache.htm HTTP/1.1" 200 27929
217.197.219.87.dynamic.jazztel.es - - [11/Dec/2010:00:50:58 +0300] "GET /././10/adr_1011.htm HTTP/1.1" 200 12716 "-" "Java/1.6.0_22"
217.197.219.87.dynamic.jazztel.es - - [11/Dec/2010:00:50:58 +0300] "GET /././10/adr_1011.htm HTTP/1.1" 200 12716
ppp91-76-233-188.pppoe.mtu-net.ru - - [29/Mar/2010:15:00:26 +0400]
"GET ///////////////////////////////////////////////////////////////////////4/44/tcp.files
ppp91-76-233-188.pppoe.mtu-net.ru - - [29/Mar/2010:15:00:26 +0400]
"GET ///////////////////////////////////////////////////////////////////////4/44/tcp.files
ppp91-76-233-188.pppoe.mtu-net.ru - - [29/Mar/2010:15:00:27 +0400]
"GET ///////////////////////////////////////////////////////////////////////4/44/tcp.files
ppp91-76-233-188.pppoe.mtu-net.ru - - [29/Mar/2010:15:00:27 +0400]
"GET ///////////////////////////////////////////////////////////////////////4/44/tcp.files
139.static.118-96-133.astinet.telkom.net.id -
- [04/Dec/2010:01:15:37 +0300] "PUT /indonesia.htm HTTP/1.1" 405 305 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0;
InfoPath.2)"
139.static.118-96-133.astinet.telkom.net.id - - [04/Dec/2010:01:15:37 +0300] "PUT /indonesia.htm HTTP/1.1" 405 305
satel-msk-254.tele.net.ru -
- [01/Dec/2010:12:44:05 +0300] "GET /./1/d:/Work/book.itep.ru/www/css/book.css HTTP/1.1" 404 308 "http://book.itep.ru/./1/intr_1.htm"
"WebCopier v3.0"
satel-msk-254.tele.net.ru - - [01/Dec/2010:12:44:05 +0300]
"GET /./1/d:/Work/book.itep.ru/www/css/book.css HTTP/1.1" 404 308
satel-msk-254.tele.net.ru - - [01/Dec/2010:12:44:05 +0300] "GET /././preword.htm HTTP/1.1" 200 18574 "http://book.itep.ru/./1/intr_1.htm"
"WebCopier v3.0"
satel-msk-254.tele.net.ru - - [01/Dec/2010:12:44:05 +0300] "GET /././preword.htm HTTP/1.1" 200 18574
81.5.95.158 - - [22/Nov/2009:18:08:02 +0300] "GET /////////////////////////////////////////////////////////4/4/rfc2858.htm HTTP/1.1" 200 19776 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.251.0 Safari/532.5"
36-99-134-95.pool.ukrtel.net - - [16/Nov/2009:22:52:37 +0300] “GET //////4/44/%3Chttp://www.nic.ru/dns/service/gtld/child_ns.html HTTP/1.0" 404 331 "http://book.itep.ru//////4/44/dns_4412.htm" "Wget/1.10.2"
36-99-134-95.pool.ukrtel.net - - [16/Nov/2009:22:53:00 +0300] "GET /////////4/44/%3Chttp://www.nic.ru/dns/service/gtld/child_ns.html HTTP/1.0" 404 334 "http://book.itep.ru/////////4/44/dns_4412.htm" "Wget/1.10.2"
36-99-134-95.pool.ukrtel.net - - [16/Nov/2009:22:53:22 +0300]
"GET ///////////6/http/:snoopy.falkor.gen.nz/~rae/des.html HTTP/1.0" 404 321 "http://book.itep.ru///////////6/des_641.htm" "Wget/1.10.2"
36-99-134-95.pool.ukrtel.net - - [16/Nov/2009:22:53:22 +0300] "GET ///////////6/http/:snoopy.falkor.gen.nz/~rae/des.html HTTP/1.0" 404 321
36-99-134-95.pool.ukrtel.net - - [16/Nov/2009:22:53:59 +0300] "GET ////////////////2/25/www.iso.ch/ittf HTTP/1.0" 404 304
36-99-134-95.pool.ukrtel.net - - [16/Nov/2009:22:54:39 +0300] "GET /////////////////////2/25/www.iso.ch/ittf HTTP/1.0" 404 309
"http://book.itep.ru/////////////////////2/25/mpeg-4R.htm" "Wget/1.10.2"
36-99-134-95.pool.ukrtel.net - - [16/Nov/2009:22:54:39 +0300] "GET /////////////////////2/25/www.iso.ch/ittf HTTP/1.0" 404 309
36-99-134-95.pool.ukrtel.net - - [16/Nov/2009:22:55:05 +0300] "GET ////////////////////////2/25/www.iso.ch/ittf HTTP/1.0" 404 312
36-99-134-95.pool.ukrtel.net - - [16/Nov/2009:23:16:29 +0300] "GET /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4/44/%3Chttp://www.nic.ru/dns/service/gtld/child_ns.html HTTP/1.0" 404 526 "http://book.itep.ru/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4/44/dns_4412.htm" "Wget/1.10.2"
Часто хакеры пытаются на удачу посылать запросы, которые используют методы PUT, TRACE, DELETE, OPTIONS, PROPFIND и пр. (файл access_log). Если сервер сконфигурирован неаккуратно, такие запросы могут пройти и тогда у хакера может, например, появиться возможность записи на сервер нужных ему файлов (метод PUT).
125.167.78.103 - - [17/Sep/2010:01:09:04 +0400] "PUT /indonesia.txt HTTP/1.1" 405 305 "-" "Mozilla/4.0
(compatible; MSIE 6.0; Windows NT 5.1; SV1)"
125.167.78.103 - - [17/Sep/2010:01:09:04 +0400] "PUT /indonesia.txt HTTP/1.1" 405 305
fm-ip-118.136.90.111.fast.net.id - - [04/Sep/2010:06:52:53 +0400] "PUT /indonesia.txt HTTP/1.1" 405 305 "-" "Mozilla/4.0 (compatible; MSIE
fm-ip-118.136.90.111.fast.net.id - - [04/Sep/2010:06:52:53 +0400] "PUT /indonesia.txt HTTP/1.1" 405 305
static.213-239-217-149.clients.your-server.de - - [02/Sep/2010:12:43:11 +0400] "PROPFIND /2/qam.gif HTTP/1.0" 405 306 "-" "-"
static.213-239-217-149.clients.your-server.de - - [02/Sep/2010:12:43:11 +0400] "PROPFIND /2/qam.gif HTTP/1.0" 405 306
static.213-239-217-149.clients.your-server.de - - [02/Sep/2010:12:43:11 +0400] "HEAD /2/qam.gif HTTP/1.0" 200 - "-" "-"
static.213-239-217-149.clients.your-server.de - - [02/Sep/2010:12:43:11 +0400] "HEAD /2/qam.gif HTTP/1.0" 200 -
static.213-239-217-149.clients.your-server.de - - [02/Sep/2010:12:43:12 +0400] "LOCK /2/qam.gif HTTP/1.0" 405 302 "-" "-"
static.213-239-217-149.clients.your-server.de - - [02/Sep/2010:12:43:12 +0400] "LOCK /2/qam.gif HTTP/1.0" 405 302
Некоторые создатели WEB-сайтов легкомысленно размещают в базовом каталоге некоторые скрипты (например, php), позаимствованные из Интернет. Эти скрипты выполняют полезную работу, но могут содержать преднамеренно или случайно определенные уязвимости, которыми может воспользоваться хакер. Хакеры, зная о слабостях этих скриптов, пытаются их найти на сайтах. Если им повезет, то дальнейшее есть дело техники. Такие атаки можно выявлять, просматривая журнальный файл error_log, если у вас таких скриптов нет. Ниже приведены примеры таких запросов.
Sun Sep 19 21:33:41 2010] [error] [client 222.236.47.182] File does not exist: /home/httpd/htdocs/book/result/index.php
[Mon Sep 20 01:00:49 2010] [error] [client 208.64.68.228] File does not exist: /home/httpd/htdocs/store/docs/contact.php
[Mon Sep 20 01:00:49 2010] [error] [client 208.64.68.228] File does not exist: /home/httpd/htdocs/store/contact.php
[Mon Sep 20 01:00:49 2010] [error] [client 208.64.68.228] File does not exist: /home/httpd/htdocs/store/docs/AllSearch/contact.php
[Sun Sep 12 18:45:27 2010] [error] [client 205.251.131.33] File does not exist: /home/httpd/htdocs/book/result/xmlrpc.php
[Sun Sep 12 18:45:27 2010] [error] [client 205.251.131.33] File does not exist: /home/httpd/htdocs/book/result/xmlrpc.php
Хакеры не брезгуют и попытками грубого подбора пароля (это годится не только для WEB-серверов. Такие попытки выявляются при просмотре журнального файла secure в Linux, примеры смотри ниже.
Sep 20 06:52:36 saturn sshd[15855]: refused connect from 189.5.194.5 (189.5.194.5)
Sep 20 07:19:43 saturn sshd[16097]: refused connect from 189.5.194.5 (189.5.194.5)
Sep 20 07:33:32 saturn sshd[16262]: refused connect from 189.5.194.5 (189.5.194.5)
Sep 20 07:47:24 saturn sshd[16371]: refused connect from 189.5.194.5 (189.5.194.5)
Sep 20 08:01:55 saturn sshd[16483]: refused connect from 189.5.194.5 (189.5.194.5)
Sep 20 08:16:11 saturn sshd[16609]: refused connect from 189.5.194.5 (189.5.194.5)
Sep 20 18:55:04 saturn sshd[21634]: refused connect from 61.151.246.140 (61.151.246.140)
Очень часто хакеры для атак используют скрипты. В этом случае запросы следуют с большой частотой, по несколько в секунду (таймирование в Apache имеет разрешение по умолчанию 1 сек). Поэтому встречаются запросы, время прихода которых идентично. Так как запросы требуют для своего исполнения разного времени, а запись в журнальный файл производится после завершения обслуживания запроса, бывают случаи, когда последующий запрос в журнальном файле записывается по времени раньше предыдущего. На рис. 1. приведен пример суточной зависимости числа запросов в минуту.
Рис. 1. Суточная зависимость числа запросов в минуту
Большие всплески активности происходят, например, при работе программ копирования wget или WebCopier. Но это могут быть и DoS-аткаки. Изощренные хакеры могут использовать технику фальсификации адреса отправителя, при этом мишенями атаки становятся сразу две машины: WEB-сервер и машина, IP-адрес которой использовал хакер. Но для этого хакер должен получить доступ к маршрутизатору или хотя бы к прокси. Результаты автоматической обработки журнальных файлов Apache смотри по адресу http://saturn.itep.ru.
Хакер может сначала послать запросы для выяснения конфигурации WEB-севера, например (файл access_log):
81.24.210.24 - - [04/Dec/2010:13:18:15 +0300] "POST /cgi-bin/htsearch HTTP/1.1" 200 1657 "http://book.itep.ru/search.htm" "Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.6.30 Version/10.63"
81.24.210.24 - - [04/Dec/2010:13:18:15 +0300] "POST /cgi-bin/htsearch HTTP/1.1" 200 1657
..........
81.24.210.24 - - [04/Dec/2010:13:18:16 +0300] "GET /cgi-bin/htsearch?config=htdig&restrict=&exclude=&method=and&format=builtin-long&sort=score&words=IPTV HTTP/1.1" 200 1657 "http://book.itep.ru/cgi-bin/htsearch" "Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.6.30 Version/10.63"
81.24.210.24 - - [04/Dec/2010:13:18:16 +0300] "GET /cgi-bin/htsearch?config=htdig&restrict=&exclude=&method=and&format=builtin-long&sort=score&words=IPTV HTTP/1.1" 200 1657
Выяснив, что на сайте работает поисковая система, хакер предпринимает массированную атаку (файл error_log):
Sat Dec 04 13:13:02 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:13:02 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:13:02 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:13:02 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:13:02 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:13:02 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:13:02 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:13:02 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:13:03 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:13:03 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:13:04 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/fort.gif, referer: http://book.itep.ru/1/
[Sat Dec 04 13:13:04 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/history.htm, referer: http://book.itep.ru/1/
[Sat Dec 04 13:13:04 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/sem_sign1.gif, referer: http://book.itep.ru/1/
[Sat Dec 04 13:13:04 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/visits.gif, referer: http://book.itep.ru/1/
[Sat Dec 04 13:14:04 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/d:, referer: http://book.itep.ru/
[Sat Dec 04 13:14:04 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/d:, referer: http://book.itep.ru/
[Sat Dec 04 13:14:04 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/d:, referer: http://book.itep.ru/
[Sat Dec 04 13:14:04 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/d:, referer: http://book.itep.ru/
[Sat Dec 04 13:14:04 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/d:, referer: http://book.itep.ru/
[Sat Dec 04 13:14:04 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/d:, referer: http://book.itep.ru/
[Sat Dec 04 13:14:05 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/d:, referer: http://book.itep.ru/1/intro1.htm
[Sat Dec 04 13:14:05 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/d:, referer: http://book.itep.ru/1/intro1.htm
[Sat Dec 04 13:14:06 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/d:, referer: http://book.itep.ru/1/intro1.htm
[Sat Dec 04 13:14:06 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/d:, referer: http://book.itep.ru/1/intro1.htm
[Sat Dec 04 13:14:06 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/d:, referer: http://book.itep.ru/1/intro1.htm
[Sat Dec 04 13:14:06 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/d:, referer: http://book.itep.ru/1/intro1.htm
[Sat Dec 04 13:14:52 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:14:52 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:14:52 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:14:52 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:14:52 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:14:52 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:14:52 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:14:53 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:14:53 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
[Sat Dec 04 13:14:53 2010] [error] [client 81.24.210.24] File does not exist: /home/httpd/htdocs/book/result/1/1, referer: http://book.itep.ru/1/
Такого вида запросов поступило много тысяч. Столь упорная назойливость надоела и данному IP-адресу был запрещен доступ в нашу локальную сеть. Атаки такого типа отображаются на диаграммах типа показанной на рис. 2.
Рис. 2. Суточная зависимость числа ошибок за 5 минут
Но время от времени встречаются и сюрреалистические запросы, типа приведенного ниже. Сразу трудно даже понять, какую цель приследовал автор... А, может быть, это послание от внеземного разума?
[Thu Jan 13 20:10:26 2011] [error] [client 91.205.96.13] File does not exist: /home/httpd/htdocs/book/result/5/diag_51.htm>!!!!!!!!!!!!!!+!!!!!!!!!!!!!!!!!!!!!!+!!+!!!!!!!!!!!!!!!!!!!!!!+!!!!!!!!!!!!!!!!!!+SNMP<
Просмотр указанных выше файлов вручную неблагодарное, изнурительное и крайне неэффективное занятие, поэтому эту работу лучше поручить специальным скриптам. Но следует помнить, что при выявлении попытки атаки реакция должна быть быстрой (автоматической). Защититься от настырного атакера можно, внеся имя его машины или IP-адреса в список disallow конфигурационного файла Apache, после чего перезапустить это приложение. Можно внести соответствующие IP-адреса и в спиcки ACL. Но делать это нужно практически в процессе атаки, чтобы не дать хакеру никакого шанса.
UP:
10.18 Краткий справочник по командам UNIX |