|
1.
AIDE (Advanced Intrusion Detection Environment)
AIDE — это система обнаружения атак, основанная на узле (Host-Based
Intrusion Detection System, HIDS), свободная альтернатива Tripwire (если вы
уже работали с Tripwire, то не должны испытывать сложности с конфигурационным
файлом AIDE). HIDS используется для обнаружения изменений в важных системных
файлах настроек и двоичных файлах с помощью сверки уникальных криптографических
контрольных сумм, созданных каждого из файлов и сохраненных в надежном месте.
Принцип действия таков: заранее сохраненный и достоверный хеш сравнивается с
сгенерированным с текущей копии каждого файла, чтобы определить какой из файлов
был изменен. HIDS является великолепным решением для регистрации подозрительных
изменений в системе, однако для того, чтобы она заработала, нужно приложить
небольшие усилия.
Конфигурационный файл основан на применении регулярных выражений, макросов и
правил для файлов и каталогов. Есть следующие макросы:
| Макрос |
Описание |
Синтаксис |
| ifdef |
если определен |
@@ifdef "name" |
| ifndef |
если не определен |
@@ifndef "name" |
| define |
определить переменную |
@@define "name" "value" |
| undef |
удалить переменную |
@@undef "name" |
| ifhost |
если "hostname" |
@@ifhost "hostname" |
| ifnhost |
если не "hostname" |
@@ifnhost "hostname" |
| endif |
endif должен использоваться каждый раз, когда используется любой из
вышеприведенных макросов, за исключением define и undef
|
@@endif |
Если у вас есть много компьютеров с Gentoo и вы хотите использовать на них
AIDE, то макросы будут весьма полезными. Но не на всех компьютерах
запускаются одни и те же сервисы или есть одни и те же пользователи.
Теперь необходимо установить флаги проверок для файлов и каталогов. Возможны
сочетания прав доступа, свойств файлов и криптографических хешей
(контрольных сумм).
| Флаг |
Описание |
| p |
права доступа |
| i |
inode |
| n |
количество ссылок |
| u |
пользователь |
| g |
группа |
| s |
размер |
| b |
число блоков |
| m |
время последней модификации |
| a |
время последнего доступа |
| c |
время изменения |
| S |
проверка растущего размера |
| md5 |
контрольная сумма MD5 |
| sha1 |
контрольная сумма SHA1 |
| rmd160 |
контрольная сумма RMD160 |
| tiger |
контрольная сумма Tiger |
| R |
p+i+n+u+g+s+m+c+md5 |
| L |
p+i+n+u+g |
| E |
Пустая группа |
| > |
растущий лог-файл p+u+g+i+n+S |
А если AIDE собран с поддержкой mhash, то доступны следующие возможности:
| Флаг |
Описание |
| haval |
контрольная сумма HAVAL |
| gost |
контрольная сумма ГОСТ |
| crc32 |
контрольная сумма CRC32 |
Теперь вы можете создать собственные правила, основанные на сочетании
вышеперечисленных флагов, например:
Листинг 1.1: Создание набора правил для AIDE |
All=R+a+sha1+rmd160
Norm=s+n+b+md5+sha1+rmd160
|
И последнее, что нам понадобится для создания собственного конфигурационного
файла, — это умение добавлять правило для файла или каталога. Чтобы
ввести правило, скомбинируйте файл или каталог с правилом. AIDE добавляет все
файлы рекурсивно, если вы не указали обратное в другом правиле.
| Флаг |
Описание |
| ! |
Не добавлять этот файл или каталог. |
| = |
Добавлять этот каталог, но не рекурсивно. |
А теперь взглянем на полный пример:
Листинг 1.1: /etc/aide/aide.conf |
@@ifndef TOPDIR
@@define TOPDIR /
@@endif
@@ifndef AIDEDIR
@@define AIDEDIR /etc/aide
@@endif
@@ifhost smbserv
@@define smbactive
@@endif
# Расположение базы данных для чтения.
database=file:@@{AIDEDIR}/aide.db
# Расположение базы данных для записи.
database_out=file:aide.db.new
verbose=20
report_url=stdout
# Определение правил
All=R+a+sha1+rmd160
Norm=s+n+b+md5+sha1+rmd160
@@{TOPDIR} Norm
!@@{TOPDIR}etc/aide
!@@{TOPDIR}dev
!@@{TOPDIR}media
!@@{TOPDIR}mnt
!@@{TOPDIR}proc
!@@{TOPDIR}root
!@@{TOPDIR}sys
!@@{TOPDIR}tmp
!@@{TOPDIR}var/log
!@@{TOPDIR}var/run
!@@{TOPDIR}usr/portage
@@ifdef smbactive
!@@{TOPDIR}etc/smb/private/secrets.tdb
@@endif
=@@{TOPDIR}home Norm
|
В приведенном примере мы указали некоторые макросы, корневой каталог, с
которого будет начинать свою работу AIDE, и каталог, в котором находится AIDE.
AIDE сверяется с /etc/aide/aide.db при проверке на целостность. Но
при обновлении или создании нового файла она сохраняет информацию в
/etc/aide/aide.db.new. Это делается для того, чтобы не переписать
старую базу данных. Параметр report_URL пока не реализован, но, согласно
автору, он должен отправлять электронную почту или даже запуск сценариев.
Теперь по умолчанию пакет AIDE поставляется вместе с рабочим конфигурационным
файлом, сценарием-помощником и сценарием планировщика заданий crontab.
Сценарий-помощник содержит множество задач для вас и предоставляет более
дружественный интерфейс. Чтобы просмотреть все доступные параметры, попробуйте
aide --help. Все что вам нужно, чтобы начать, — запустить aide
-i, и теперь сценарий crontab должен найти базу данных и ежедневно
отправлять отчеты по электронной почте. Рекомендуется все же пересмотреть файл
/etc/aide/aide.conf и удостовериться, что конфигурация подходит
для данного компьютера.
Примечание:
В зависимости от процессора, скорости чтения диска и установленных для файлов
флагов, это может занять много времени.
|
Примечание:
Не забудьте установить алиасы, чтобы получать почту, адресуемую
суперпользователю. Иначе вы никогда не узнаете, что пишет для вас в отчетах
AIDE.
|
Все же есть небольшой риск, заключающийся в том, что злоумышленник может (если
узнает об установленном AIDE) изменить локальную базу данных файлов, обновить
ее или изменить /usr/bin/aide. Поэтому вы должны создать
компакт-диск или иной носитель и сохранить на нем копию файла .db и двоичных
файлов AIDE.
Дополнительную информацию вы можете найти на сайте проекта AIDE
1.
Snort
Snort является сетевой системой обнаружения вторжения (Network Intrusion
Detection System, NIDS). Чтобы установить и настроить его, воспользуйтесь
следующими примерами.
Листинг 1.1: /etc/conf.d/snort |
PIDFILE=/var/run/snort_eth0.pid
MODE="full"
NETWORK="10.0.0.0/24"
LOGDIR="/var/log/snort"
CONF=/etc/snort/snort.conf
SNORT_OPTS="-D -s -u snort -dev -l $LOGDIR -h $NETWORK -c $CONF"
|
Листинг 1.1: /etc/snort/snort.conf |
var HOME_NET 10.0.0.0/24
var EXTERNAL_NET any
var SMTP $HOME_NET
var HTTP_SERVERS $HOME_NET
var SQL_SERVERS $HOME_NET
var DNS_SERVERS [10.0.0.2/32,212.242.40.51/32]
var RULE_PATH ./
preprocessor frag2
preprocessor stream4: detect_scans detect_state_problems detect_scans disable_evasion_alerts
preprocessor stream4_reassemble: ports all
preprocessor http_decode: 80 8080 unicode iis_alt_unicode double_encode iis_flip_slash full_whitespace
preprocessor rpc_decode: 111 32771
preprocessor bo: -nobrute
preprocessor telnet_decode
include classification.config
include $RULE_PATH/bad-traffic.rules
include $RULE_PATH/exploit.rules
include $RULE_PATH/scan.rules
include $RULE_PATH/finger.rules
include $RULE_PATH/ftp.rules
include $RULE_PATH/telnet.rules
include $RULE_PATH/smtp.rules
include $RULE_PATH/rpc.rules
include $RULE_PATH/rservices.rules
include $RULE_PATH/dos.rules
include $RULE_PATH/ddos.rules
include $RULE_PATH/dns.rules
include $RULE_PATH/tftp.rules
include $RULE_PATH/web-cgi.rules
include $RULE_PATH/web-coldfusion.rules
include $RULE_PATH/web-iis.rules
include $RULE_PATH/web-frontpage.rules
include $RULE_PATH/web-misc.rules
include $RULE_PATH/web-attacks.rules
include $RULE_PATH/sql.rules
include $RULE_PATH/x11.rules
include $RULE_PATH/icmp.rules
include $RULE_PATH/netbios.rules
include $RULE_PATH/misc.rules
include $RULE_PATH/attack-responses.rules
include $RULE_PATH/backdoor.rules
include $RULE_PATH/shellcode.rules
include $RULE_PATH/policy.rules
include $RULE_PATH/porn.rules
include $RULE_PATH/info.rules
include $RULE_PATH/icmp-info.rules
include $RULE_PATH/virus.rules
# include $RULE_PATH/experimental.rules
include $RULE_PATH/local.rules
|
Листинг 1.1: /etc/snort/classification.config |
config classification: not-suspicious,Not Suspicious Traffic,3
config classification: unknown,Unknown Traffic,3
config classification: bad-unknown,Potentially Bad Traffic, 2
config classification: attempted-recon,Attempted Information Leak,2
config classification: successful-recon-limited,Information Leak,2
config classification: successful-recon-largescale,Large Scale Information Leak,2
config classification: attempted-dos,Attempted Denial of Service,2
config classification: successful-dos,Denial of Service,2
config classification: attempted-user,Attempted User Privilege Gain,1
config classification: unsuccessful-user,Unsuccessful User Privilege Gain,1
config classification: successful-user,Successful User Privilege Gain,1
config classification: attempted-admin,Attempted Administrator Privilege Gain,1
config classification: successful-admin,Successful Administrator Privilege Gain,1
# NEW CLASSIFICATIONS
config classification: rpc-portmap-decode,Decode of an RPC Query,2
config classification: shellcode-detect,Executable code was detected,1
config classification: string-detect,A suspicious string was detected,3
config classification: suspicious-filename-detect,A suspicious filename was detected,2
config classification: suspicious-login,An attempted login using a suspicious username was detected,2
config classification: system-call-detect,A system call was detected,2
config classification: tcp-connection,A TCP connection was detected,4
config classification: trojan-activity,A Network Trojan was detected, 1
config classification: unusual-client-port-connection,A client was using an unusual port,2
config classification: network-scan,Detection of a Network Scan,3
config classification: denial-of-service,Detection of a Denial of Service Attack,2
config classification: non-standard-protocol,Detection of a non-standard protocol or event,2
config classification: protocol-command-decode,Generic Protocol Command Decode,3
config classification: web-application-activity,access to a potentially vulnerable web application,2
config classification: web-application-attack,Web Application Attack,1
config classification: misc-activity,Misc activity,3
config classification: misc-attack,Misc Attack,2
config classification: icmp-event,Generic ICMP event,3
config classification: kickass-porn,SCORE! Get the lotion!,1
|
Дополнительной информация может быть найдена на сайте Snort.
1.
Обнаружение вредоносных программ с помощью chkrootkit
Система HIDS, как AIDE, является лучшим средством для обнаружения изменений
в вашей системе, но хуже не будет, если будет установлен еще один рубеж
обороны. chkrootkit — это утилита, которая сканирует системные
файлы на наличие руткитов — программ, разработанных для сокрытия
присутствия взломщика и сохранения доступа к системе, а также на наличие следов
кейлоггеров и прочих вредоносных программ. Хотя chkrootkit (и прочие
аналоги, например rkhunter) являются полезными утилитами, как контроля
за системой, так и для обнаружения следов вторжения, но они не могут
гарантировать, что ваша система в безопасности.
Наилучший способ использовать chkrootkit для обнаружения внедрения
— запускать его с помощью cron. Сначала установите
app-admin/chkrootkit. chkrootkit может запускаться из
командной строки или же с помощью записи в cron следующего вида:
Листинг 1.1: Назначение задания chrootkit в crontab |
0 3 * * * /usr/sbin/chkrootkit
|
|
Обновлено 1 ноября 2006 |
Исходный документ обновлен 19 июля 2010 |
|
Donate to support our development efforts.
|
|
|