Оглавление Оглавление 1
Вид материала | Документы |
- Кожич Павел Павлович Минск 2010 г Оглавление Оглавление 2 Применение информационных, 302.47kb.
- Оглавление оглавление, 63.5kb.
- Оглавление Оглавление, 259.29kb.
- Ланин Борис Евсеевич Оглавление Оглавление 1 лекция, 810.53kb.
- Оглавление: Оглавление:, 350.3kb.
- Октябрьской Революции Краснознаменной академии (ввиа) имени профессора Н. Е. Жуковского, 1685.68kb.
- Караваева Елена Леонидовна г. Светлый 2008 г. Оглавление оглавление 2 пояснительная, 130.81kb.
- Винарский Владимир Афанасьевич ассистент Шешко Сергей Михайлович Минск 2008 г. Оглавление, 156.88kb.
- Коледа Виктор Антонович, ст преподаватель Пол Кожич Минск 2010 г. Оглавление Оглавление, 340.48kb.
- Обуховский Виктор Степанович, ассистент Позняков Андрей Михайлович Минск 2006 г оглавление, 266.12kb.
УпражненияУпражнение 1 :
Решение 1 :
Tripwire telnet nmap
ВведениеБезопасность – это не состояние и не результат, а непрекращающийся процесс. Это означает, что администратор должен просматривать файлы журналов каждый день, устанавливать обновления для системы, применять патчи, в частности, устраняющие проблемы с безопасностью, запускать сканеры, выявляющие потенциальные уязвимости (такие как Nessus), запускать системы обнаружения вторжений (на уровне хоста, такие как Tripwire или на уровне локальной сети как Snort) и т.п... Работа администратора по обеспечению безопасности занимает полный рабочий день. Основы KerberosВведение: Kerberos - это механизм аутентификации, созданный в MIT (Massachusets Institute of Technology – Массачусетский Технологической Институт). Этот механизм использует сильное шифрование данных и аутентификацию для удостоверения обмена данными между клиентом и сервером или приложениями. Каждое приложение, которое хочет использовать механизм аутентификации Kerberos, должно иметь встроенную поддержку Kerberos. Большинство приложений, таких как клиенты telnet или ftp были переписаны с поддержкой kerberos. Важно знать, что локальные приложения вашей компании могут потребовать доработки, чтобы сделать их совместимыми с kerberos. Как это работает: Клиент (или сервис, или пользователь) посылает запрос на получение билета (авторизации для клиента, позволяющей использовать определенный сервис в течение определенного периода времени) на сервер Kerberos, именуемый KDC (Key Distribution Center – центр распределения ключей – этот сервер содержит базу паролей клиентов). KDC генерирует билет (TGT : Ticket Granting Ticket), шифруя его паролем клиента, и отсылает обратно. Клиент расшифровывает билет и использует его для доступа к сервису. Настройка: Kerberos использует следующие конфигурационные файлы:
Затем нужно предпринять следующие шаги:
Быть в курсеОчень важно регулярно просматривать главные списки рассылки, посвященные безопасности. В них публикуется информация о новых уязвимостях. Существует несколько списков рассылки, относящихся к безопасности:
Выявление открытых почтовых ретрансляторовОткрытый почтовый ретранслятор (open relay) - это почтовый сервер, принимающий соединения от всех и вся. Такие серверы используются спамерами для рассылки спама. Проверка на то, что сервер является открытым релеем, довольно проста: [user@test user]$ telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is ']'. 220 test@domain.org ESMTP Sendmail 8.12.11/8.12.11; Wed, 18 Aug 2004 22:06:55 +0200 HELO test 250 test@domain.org Hello localhost [127.0.0.1], pleased to meet you mail from: spammer@whatever.com 250 2.1.0 spammer@whatever.com... Sender ok rcpt to: someone@domain.org 250 2.1.5 someone@domain.org... Recipient ok DATA 354 Enter mail, end with "." on a line by itself test open relay . 250 2.0.0 i7IK6tPp009873 Message accepted for delivery ] telnet> Connection closed. [user@test user]$ Почтовый сервер должен принимать «заказ» на отправку почты только от известных пользователей. В наши дни, почтовые сервера по умолчанию настроены на запрет открытой ретрансляции. Системы обнаружения вторженийTripwire : Tripwire - это утилита обнаружения вторжений. Эта программа осуществляет мониторинг изменений ключевых файлов, отслеживая контрольные суммы, размеры, и т.п. Tripwire выявляет и генерирует отчеты об изменениях в тысячах стратегически важных системных файлов. Если утилита обнаружила измененный файл, то вы решаете, является ли это изменение результатом нормальных действий в системе. Если это так, модифицируйте базу Tripwire, чтобы это изменение перестало попадать в отчет. Если же изменение не является результатом нормальной деятельности, исследуйте его на предмет потенциального взлома. Настройка: Два конфигурационных файла: /etc/tripwire/twcfg.txt ROOT =/usr/sbin POLFILE =/etc/tripwire/tw.pol DBFILE =/var/lib/tripwire/$(HOSTNAME).twd REPORTFILE =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr SITEKEYFILE =/etc/tripwire/site.key LOCALKEYFILE =/etc/tripwire/$(HOSTNAME)-local.key EDITOR =/bin/vi LATEPROMPTING =false LOOSEDIRECTORYCHECKING =false MAILNOVIOLATIONS =true EMAILREPORTLEVEL =3 REPORTLEVEL =3 MAILMETHOD =SENDMAIL SYSLOGREPORTING =false MAILPROGRAM =/usr/sbin/sendmail -oi -t Здесь мы задаем главные настройки Tripwire. /etc/tripwire/twpol.txt ... [пропущено] ... @@section GLOBAL TWROOT=/usr/sbin; TWBIN=/usr/sbin; TWPOL="/etc/tripwire"; TWDB="/var/lib/tripwire"; TWSKEY="/etc/tripwire"; TWLKEY="/etc/tripwire"; TWREPORT="/var/lib/tripwire/report"; HOSTNAME=localhost; @@section FS SEC_CRIT = $(IgnoreNone)-SHa ; # Critical files that cannot change SEC_SUID = $(IgnoreNone)-SHa ; # Binaries with the SUID or SGID flags set SEC_BIN = $(ReadOnly) ; # Binaries that should not change SEC_CONFIG = $(Dynamic) ; # Config files that are changed infrequently but accessed often SEC_LOG = $(Growing) ; # Files that grow, but that should never change ownership SEC_INVARIANT = +tpug ; # Directories that should never change permission or ownership SIG_LOW = 33 ; # Non-critical files that are of minimal security impact SIG_MED = 66 ; # Non-critical files that are of significant security impact SIG_HI = 100 ; # Critical files that are significant points of vulnerability ... [SNIP] ... ( rulename = "Kernel Administration Programs", severity = $(SIG_HI) ) { /sbin/adjtimex -> $(SEC_CRIT) ; /sbin/ctrlaltdel -> $(SEC_CRIT) ; /sbin/depmod -> $(SEC_CRIT) ; /sbin/insmod -> $(SEC_CRIT) ; /sbin/insmod.static -> $(SEC_CRIT) ; /sbin/insmod_ksymoops_clean -> $(SEC_CRIT) ; /sbin/klogd -> $(SEC_CRIT) ; /sbin/ldconfig -> $(SEC_CRIT) ; /sbin/minilogd -> $(SEC_CRIT) ; /sbin/modinfo -> $(SEC_CRIT) ; #/sbin/nuactlun -> $(SEC_CRIT) ; #/sbin/nuscsitcpd -> $(SEC_CRIT) ; /sbin/pivot_root -> $(SEC_CRIT) ; /sbin/sndconfig -> $(SEC_CRIT) ; /sbin/sysctl -> $(SEC_CRIT) ; } Здесь мы задаем то, какие атрибуты и для каких файлов мы собираемся проверять. Каждый файл является объектом, для которого задается маска свойств :
В Tripwire существует набор предопределенных переменных – комбинаций свойств:
Третий конфигурационный файл: /etc/tripwire/twinstall.sh. Этот скрипт должен быть запущен после установки. [root@test tripwire]# ./twinstall.sh ---------------------------------------------- The Tripwire site and local passphrases are used to sign a variety of files, such as the configuration, policy, and database files. Passphrases should be at least 8 characters in length and contain both letters and numbers. See the Tripwire manual for more information. ---------------------------------------------- Creating key files... ... [пропущено] ... ---------------------------------------------- Signing policy file... Please enter your site passphrase: Wrote policy file: /etc/tripwire/tw.pol A clear-text version of the Tripwire policy file /etc/tripwire/twpol.txt has been preserved for your inspection. This implements a minimal policy, intended only to test essential Tripwire functionality. You should edit the policy file to describe your system, and then use twadmin to generate a new signed copy of the Tripwire policy. [root@test tripwire]# На следующем шаге необходимо инициализировать базу tripwire: [root@test tripwire]# tripwire --init Please enter your local passphrase: Parsing policy file: /etc/tripwire/tw.pol Generating the database... *** Processing Unix File System *** ... [пропущено] ... Wrote database file: /var/lib/tripwire/test.twd The database was successfully generated. [root@test tripwire]# Теперь мы можем проверить систему с помощью этой базы: [root@test tripwire]# tripwire --check ... [пропущено] ... Tripwire(R) 2.3.0 Integrity Check Report Report generated by: Report created on: Thu Aug 19 11:06:11 2004 Database last updated on: Never ============================================================================= Report Summary: ============================================================================= Host name: test Host IP address: Unknown IP Host ID: None Policy file used: /etc/tripwire/tw.pol Configuration file used: /etc/tripwire/tw.cfg Database file used: /var/lib/tripwire/test.twd Command line used: tripwire --check ============================================================================= Rule Summary: ============================================================================= ----------------------------------------------------------------------------- Section: Unix File System ----------------------------------------------------------------------------- Rule Name Severity Level Added Removed Modified --------- -------------- ----- ------- -------- Invariant Directories 66 0 0 0 Temporary directories 33 0 0 0 * Tripwire Data Files 100 1 0 0 Critical devices 100 0 0 0 ... [SNIP] ... ----------------------------------------------------------------------------- *** End of report *** Tripwire 2.3 Portions copyright 2000 Tripwire, Inc. Tripwire is a registered trademark of Tripwire, Inc. This software comes with ABSOLUTELY NO WARRANTY; for details use --version. This is free software which may be redistributed or modified only under certain conditions; see COPYING for details. All rights reserved. Integrity check complete. [root@test tripwire]# После проверки tripwire генерирует отчет с именем – временем запуска. Этот отчет находится в каталоге /var/lib/tripwire/report : [root@test root]# ls /var/lib/tripwire/report/ test-20040819-110611.twr [root@test root]# Если обнаруженные изменения - результат нормальной работы системы, то мы можем обновить базу. Если это не так, мы должны проверить, что система не была взломана. Обновление базы tripwire: [root@test tripwire]# /usr/sbin/tripwire --update --twrfile /var/lib/tripwire/report/test-20040819-110611.twr Please enter your local passphrase: Wrote database file: /var/lib/tripwire/test.twd [root@test tripwire]# Snort : Введение: Snort - это система обнаружения вторжений с открытым исходным кодом, способная выполнять анализ трафика в реальном времени и регистрацию пакетов в IP-сетях. Утилита может выполнять анализ протоколов, поиск определенного содержимого и может быть использована для обнаружения различных атак и зондирований, таких как переполнение буфера, сканирование портов, атак на CGI, зондирований SMB, попыток определения операционной системы и многого другого. Snort также может быть использован для прослушивания трафика: [root@test root]# snort -v Running in packet dump mode Log directory = /var/log/snort Initializing Network Interface eth0 --== Initializing Snort ==-- Initializing Output Plugins! Decoding Ethernet on interface eth0 --== Initialization Complete ==-- -*> Snort! <*- Version 2.1.0 (Build 9) By Martin Roesch (roesch@sourcefire.com, www.snort.org) 08/19-12:15:15.663264 0.0.0.0:68 -> 255.255.255.255:67 UDP TTL:128 TOS:0x0 ID:17587 IpLen:20 DgmLen:328 Len: 300 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 08/19-12:15:19.668662 0.0.0.0:68 -> 255.255.255.255:67 UDP TTL:128 TOS:0x0 ID:17589 IpLen:20 DgmLen:328 Len: 300 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 08/19-12:15:21.192426 ARP who-has 192.168.0.254 tell 192.168.0.42 08/19-12:15:21.192587 ARP reply 192.168.0.254 is-at 0:C0:9F:2F:7E:DD 08/19-12:15:21.192598 192.168.0.42:33122 -> 199.107.65.177:80 TCP TTL:64 TOS:0x0 ID:34789 IpLen:20 DgmLen:60 DF ******S* Seq: 0x2D71BAF6 Ack: 0x0 Win: 0x16D0 TcpLen: 40 TCP Options (5) => MSS: 1460 SackOK TS: 10370323 0 NOP WS: 0 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ ... [пропущено] ... более подробный вывод: [root@test root]# snort -vde Running in packet dump mode Log directory = /var/log/snort Initializing Network Interface eth0 --== Initializing Snort ==-- Initializing Output Plugins! Decoding Ethernet on interface eth0 --== Initialization Complete ==-- -*> Snort! <*- Version 2.1.0 (Build 9) By Martin Roesch (roesch@sourcefire.com, www.snort.org) 08/19-12:16:23.135164 0:40:F4:98:D2:D9 -> 0:C0:9F:2F:7E:DD type:0x800 len:0x62 192.168.0.42 -> 4.2.2.1 ICMP TTL:64 TOS:0x0 ID:0 IpLen:20 DgmLen:84 DF Type:8 Code:0 ID:35600 Seq:1 ECHO F7 7D 24 41 E3 0F 02 00 08 09 0A 0B 0C 0D 0E 0F .}$A............ 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F ................ 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F !"#$%&'()*+,-./ 30 31 32 33 34 35 36 37 01234567 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 08/19-12:16:23.441050 0:C0:9F:2F:7E:DD -> 0:40:F4:98:D2:D9 type:0x800 len:0x62 4.2.2.1 -> 192.168.0.42 ICMP TTL:244 TOS:0x0 ID:17833 IpLen:20 DgmLen:84 DF Type:0 Code:0 ID:35600 Seq:1 ECHO REPLY F7 7D 24 41 E3 0F 02 00 08 09 0A 0B 0C 0D 0E 0F .}$A............ 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F ................ 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F !"#$%&'()*+,-./ 30 31 32 33 34 35 36 37 01234567 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Настройка: Мы хотим запустить snort в режиме демона, обнаруживающего внешние вторжения. Главный конфигурационный файл snort /etc/snort/snort.conf : #-------------------------------------------------- # .org Snort 2.1.0 Ruleset # Contact: snort-sigs@lists.sourceforge.net #-------------------------------------------------- # $Id: snort.conf,v 1.133 2003/12/18 17:05:07 cazz Exp $ # ################################################### # This file contains a sample snort configuration. # You can take the following steps to create your own custom configuration: # # 1) Set the network variables for your network # 2) Configure preprocessors # 3) Configure output plugins # 4) Customize your rule set # ################################################### ... [пропущено] ... Эти комментарии отражают главные шаги настройки Snort:
Правила Snort обычно находятся в /etc/snort/rules : [root@test root]# ls /etc/snort/rules/ attack-responses.rules experimental.rules local.rules p2p.rules shellcode.rules web-cgi.rules backdoor.rules exploit.rules misc.rules policy.rules smtp.rules web-client.rules bad-traffic.rules finger.rules multimedia.rules pop2.rules snmp.rules web-coldfusion.rules chat.rules ftp.rules mysql.rules pop3.rules sql.rules web-frontpage.rules ddos.rules icmp-info.rules netbios.rules porn.rules telnet.rules web-iis.rules deleted.rules icmp.rules nntp.rules rpc.rules tftp.rules web-misc.rules dns.rules imap.rules oracle.rules rservices.rules virus.rules web-php.rules dos.rules info.rules other-ids.rules scan.rules web-attacks.rules x11.rules [root@test root]# Простое правило выглядит следующим образом: alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"FTP CWD ..."; flow:to_server,established; content:"CWD"; nocase; content:"..."; classtype:bad-unknown; sid:1229; rev:5;) Это правило означает, что snort должен подать сигнал тревоги, если он получит пакет, пришедший из внешней сети и адресованный нашей локальной сети, предназначенный для порта FTP и содержащий строку “CWD”. Чтобы запустить демон snort: [root@test root]# /etc/init.d/snortd start Starting snort: [ OK ] [root@test root]# |