Привет, Хабровчане!
Сегодня мы хотим поговорить о том, как системы обнаружения/предотвращения вторжений справляются со своей задачей сразу после того, как вы достали ее из коробки, провели инициализацию и поставили в свою сеть. В сегодняшнем тест-драйве будут участвовать следующие аппаратные платформы:
• Cisco IPS 4240;
• IBM Proventia GX4004;
• StoneGate IPS 1060.
Исходя из нашего опыта, примерно в 80% организаций IPS не настраиваются должным образом. Это обусловлено тем, что их просто некому настроить или систему установили только «для галочки», чтобы соответствовать тем или иным требованиям регуляторов. Поэтому мы решили провести сравнение систем обнаружения вторжений на дефолтных настройках.
В статье мы хотим поделиться результатами нашего тест-драйва с уважаемыми Хабражителями.
Всех заинтересовавшихся приглашаем под кат.
Системы IPS можно рассматривать как расширение систем обнаружения вторжений (IDS), так как задача отслеживания атак остается одинаковой. Однако они отличаются тем, что IPS должна отслеживать активность в реальном времени и быстро реализовывать действия по предотвращению атак. Возможные меры — блокировка потоков трафика в сети, сброс соединений, выдача сигналов оператору. Также IPS могут выполнять дефрагментацию пакетов, переупорядочивание пакетов TCP для защиты от пакетов с измененными SEQ и ACK номерами и т.п.
Техническое описание сравниваемых IPS
Вот, собственно, наши подопытные:
Для начала приведем несколько сухих цифр, характеризующих ТТХ аппаратных платформ, взятые из открытых источников информации:
Программа тест-драйва
Мы будем сравнивать работу трех IPS в одинаковых условиях: работа в режиме IDS (сравнение проводилось в реальной сети), работа в режиме IPS и «очень условное» нагрузочное тестирование (сравнение проводилось в лаборатории). В итоге мы получим сводную таблицу с данными о количестве найденных и заблокированных уязвимостей.
Сразу хотелось бы оговорить, что сравнение проходило на последней доступной версии ПО и с последними сигнатурами на момент тестирования, для обнаружения и блокирования угроз использовались политики по умолчанию.
Наш «гоночный трек»
Работа в режиме IDS
Тестирование аппаратных платформ систем обнаружения вторжений в режиме IDS (мониторинга сетевой активности) проводилось по схеме, представленной на рисунке ниже, путем подключения всех железок к span-портам коммутатора Cisco Catalyst 3750, на который зеркалировался трафик из реальной сети организации.
После трех дней работы в режиме мониторинга сети IPS нашли следующее количество уязвимостей/атак (мы брали в расчет только уязвимости уровня High, Medium и Low, уязвимости Info не учитывались):
• Cisco IPS 4240 – 17 уязвимостей/атак;
• IBM Proventia GX4004 – 32 уязвимости/атаки;
• StoneGate IPS 1060 – 103 уязвимости/атаки.
Общих уязвимостей/атак, которые смогли обнаружить все железки, не так уж и много:
• ICMP Network Sweep w/Address Mask;
• ICMP Network Sweep w/Timestamp;
• TCP_Port_Scan;
• UDP_Port_Scan;
• ICMP_Subnet_Mask_Request;
• ICMP_Timestamp_Request.
Сводную таблицу со списком всех найденных уязвимостей/атак и разбивкой по железкам можно посмотреть под спойлером.
Сигнатуры | Cisco IPS 4240 | IBM Proventia GX4004 | Stonegate IPS 1060 |
ICMP Network Sweep w/Address Mask |
+ | + | + |
ICMP Network Sweep w/Timestamp | + | + | + |
Microsoft Windows CIFS Clientside Buffer Overflow (CVE-2011-0654) |
+ | - | - |
SNMP Protocol Violation (CVE-2002-0012, CVE-2002-0013) |
+ | - | - |
UPnP LOCATION Overflow | + | - | - |
Invalid DHCP Packet (CVE-2004-1111) | + | - | - |
TCP Segment Overwrite | + | - | - |
DHCP Client DoS (CVE-2008-0084) | + | - | - |
TCP MSS exceeds maximum | + | - | - |
SQL Query in HTTP Request (CVE-2005-4643, CVE-2006-0581) |
+ | - | - |
Email_Calendar_Code_Exec (CVE-2007-0039) |
- | + | - |
Email_Mime_Filename_Overflow (CVE-1999-0004) |
- | + | - |
Email_Mime_Name_Overflow | - | + | - |
HTML_UTF8_Overflow (CVE-2006-2382) | - | + | - |
HTTP_CheckPoint_FW1_FormatString (CVE-2004-0039) |
- | + | - |
Image_JPEG_IE_Component_Overflow (CVE-2005-2308) |
- | + | - |
OTF_Windows_Cmap_Table_Corruption (CVE-2010-3959) |
- | + | - |
PsExec_Service_Accessed | - | + | - |
PsExec_Installed | - | + | - |
Script_IE_Improper_Ref_Counting (CVE-2012-4787) |
- | + | - |
SMB_Empty_Password | - | + | - |
BackOrifice_Ping (CVE-1999-0660) | - | + | - |
Email_Executable_Extension | - | + | - |
Flash_NavigateToURL_XSS (CVE-2007-6244) | - | + | - |
HTTP_Connect_Proxy_Bypass_SMTP | - | + | - |
HTTP_Field_With_Binary | - | + | - |
HTTP_Proxy_Cache_Poisoning (CVE-2005-1215) |
- | + | - |
HTTP_URL_repeated_char | - | + | - |
HTTPS_Proxy_Info_Disclosure (CVE-2005-2830) |
- | + | - |
ICMP_Flood | - | + | - |
Ping_Sweep | - | + | - |
Smurf_Attack (CVE-1999-0513) | - | + | - |
SNMP_Default_Backdoor (CVE-2000-0147) | - | + | - |
TCP_Port_Scan | + | + | + |
UDP_Port_Scan | + | + | + |
DNS_Version_Request | - | + | - |
HTTP_Authentication | - | + | - |
HTTP_Microsoft_Error_Report | - | + | - |
ICMP_Subnet_Mask_Request | + | + | + |
ICMP_Timestamp_Request | + | + | + |
ASN.1_Oversize-Block | - | - | + |
HTTP_CRL-Excessively-Long-Options-Request-Argument (CVE-2010-0361) |
- | - | + |
SMTP_CS-Novell-Groupwise-Client-Img-Tag-Src-Parameter-Buffer-Overflow (CVE-2007-6435) |
- | - | + |
MSRPC-TCP_CPS-Samba-Spoolss-RPC-SmbIoNotifyOptionTypeData-Request-Handling-BOF (CVE-2007-2446) |
- | - | + |
SMB-TCP_Negotiate-Protocol-Smb2-Remote-Code-Execution (CVE-2009-3103) |
- | - | + |
File-OLE_Microsoft-Excel-File-Handling-Code-Execution-Vulnerability (CVE-2008-0081) |
- | - | + |
File-OLE_Microsoft-VBA6-Stack-Memory-Corruption (CVE-2010-0815) |
- | - | + |
File-OLE_Microsoft-WordPad-Text-Converter-CVE-2010-2563 | - | - | + |
File-OLE_Microsoft-WordPad-Text-Converter-Buffer-Overflow (CVE-2010-1900) |
- | - | + |
File-OLE_Microsoft-Excel-Graphic-Object-Deref-Vulnerability-CVE-2011-0977 | - | - | + |
File-OLE_Microsoft-Office-Word-Sprmcmajority-Record-Buffer-Overflow | - | - | + |
File-OLE_Microsoft-Excel-Heap-Overflow-Vulnerability-CVE-2011-0098 | - | - | + |
File-OLE_Microsoft-Excel-Style-Record-Data-Handling-Code-Execution (CVE-2008-0114) |
- | - | + |
File-OLE_Microsoft-Excel-Merge-Cell-Record-Pointer-CVE-2010-3237 | - | - | + |
File-OLE_Microsoft-Office-Art-Property-Table-Memory-Corruption (CVE-2008-0114) |
- | - | + |
File-OLE_Microsoft-Office-Drawing-Exception-Handling-CVE-2010-3335 | - | - | + |
File-OLE_Microsoft-Office-Excel-Table-Record-Parsing-Code-Execution (CVE-2010-3232) |
- | - | + |
File-OLE_Microsoft-Graphics-Rendering-Engine-Thumbnail-Stack-Buffer-Overflow (CVE-2010-3970) |
- | - | + |
File-OLE_Microsoft-Office-Excel-Malformed-Records-Stack-Buffer-Overflow (CVE-2009-0559) |
- | - | + |
File-OLE_Microsoft-Office-Excel-Unexpected-Field-Value-Memory-Corruption (CVE-2009-0560) |
- | - | + |
File-OLE_Microsoft-Excel-Version-Information-Handling-Code-Execution (CVE-2010-0262) |
- | - | + |
File-OLE_Microsoft-Word-File-Information-Memory-Corruption-MS09-068 (CVE-2009-2135) |
- | - | + |
File-OLE_Microsoft-Excel-Conditional-Formatting-Values-Handling-Code-Execution (CVE-2008-0117) |
- | - | + |
File-OLE_Autonomy-Keyview-Excel-File-Sst-Parsing-Integer-Overflow | - | - | + |
File-OLE_Microsoft-Excel-Frtwrapper-Record-Buffer-Overflow (CVE-2008-3471) |
- | - | + |
File-OLE_Microsoft-Excel-Named-Graph-Record-Parsing-Stack-Overflow (CVE-2007-0215) |
- | - | + |
File-OLE_Microsoft-Office-Excel-Remote-Code-Execution-CVE-2009-3134 | - | - | + |
File-OLE_Microsoft-Excel-Use-After-Free-WriteAV-Vulnerability (CVE-2011-1986) |
- | - | + |
File-OLE_Microsoft-Excel-Array-Indexing-Vulnerability-CVE-2011-1990 | - | - | + |
File-OLE_Microsoft-Excel-Conditional-Expression-Parsing-Vulnerability (CVE-2011-1989) |
- | - | + |
File-OLE_Microsoft-Excel-Malformed-Fngroupcount-Value-Code-Execution (CVE-2006-1308) |
- | - | + |
File-OLE_Microsoft-Excel-Sst-Invalid-Length-Use-After-Free (CVE-2012-1887) |
- | - | + |
File-OLE_Microsoft-Excel-Memory-Corruption-CVE-2012-1886 | - | - | + |
File-Binary_Oracle-Java-Runtime-CMM-Readmabcurvedata-Buffer-Overflow (CVE-2010-0838) |
- | - | + |
File-MPEG_Microsoft-DirectShow-QuickTime-Movie-Parsing-Code-Execution (CVE-2009-1537) |
- | - | + |
File-Binary_IBM-Lotus-Notes-1-2-3-Work-Sheet-File-Viewer-Buffer-Overflow | - | - | + |
File-Text_Mozilla-Firefox-Multiple-URI-Handlers-Command-Execution (CVE-2007-4041, CVE-2007-3896) |
- | - | + |
File-Binary_Adobe-Reader-Security-Bypass-CVE-2013-0624 | - | - | + |
File-Text_Microsoft-Internet-Explorer-Object-Reference-Count-Memory-Corruption (CVE-2007-3902) |
- | - | + |
File-Text_Microsoft-Internet-Explorer-Virtual-Function-Table-Memory-Corruption (CVE-2011-2001) |
- | - | + |
File-Text_Microsoft-Internet-Explorer-HTML-Layout-CVE-2012-0011 | - | - | + |
HTTP_Reply-Chunked-Encoded-Chunk-Unparseable | - | - | + |
TCP_Segment-Content-Conflict | - | - | + |
TCP_Window-Shrinked | - | - | + |
Shared_CS-x86-X41nop-Shellcode | - | - | + |
Shared_SS-x86-X41nop-Shellcode | - | - | + |
HTTP_CSU-Potential-Dot-Dot-Slash-Directory-Traversal | - | - | + |
HTTP_CRL-Microsoft-ASP.NET-ViewState-Denial-Of-Service | - | - | + |
HTTP_CRL-Php-Quot-Print-Encode-Heap-Buffer-Overflow | - | - | + |
SMB-TCP_Samba-Authentication-Bypass | - | - | + |
SMB-TCP_MS-Windows-Print-Spooler-Service-Format-String-Vulnerability (CVE-2010-2563) |
- | - | + |
SNMP-UDP_Default-Community-String-Accepted | - | - | + |
MSRPC_SS-Sourcefire-Snort-Rule20275eval-Buffer-Overflow | - | - | + |
File-OLE_Microsoft-Excel-Linked-List-Corruption-Vulnerability-CVE-2011-0979 | - | - | + |
File-OLE_Microsoft-Excel-Memory-Heap-Overwrite-Vulnerability-CVE-2011-1275 | - | - | + |
File-OLE_Microsoft-Office-PowerPoint-FB1h-Parsing-BOF-CVE-2010-2572 | - | - | + |
File-OLE_Microsoft-Office-Excel-SxView-SXStreamID-CVE-2010-1245 | - | - | + |
File-OLE_Microsoft-Office-Excel-Malformed-Object-Record-Parsing-Code-Execution (CVE-2009-0557) |
- | - | + |
File-OLE_Microsoft-Office-Excel-Malformed-LBL-Record-Memory-Corruption (CVE-2009-0558) |
- | - | + |
File-OLE_Microsoft-Excel-Colinfo-Record-Buffer-Overflow (CVE-2006-3875) |
- | - | + |
File-OLE_OpenOffice-OLE-File-Stream-Buffer-Overflow (CVE-2008-0320) |
- | - | + |
File-OLE_Microsoft-Excel-Malformed-Selection-Record-Code-Execution (CVE-2006-1301) |
- | - | + |
File-OLE_Microsoft-Office-Excel-File-Obj-Record-Memory-Corruption (CVE-2008-4264) |
- | - | + |
File-OLE_Microsoft-PowerPoint-OfficeArt-Shape-RCE-Vulnerability (CVE-2011-3413) |
- | - | + |
File-OLE_Microsoft-Excel-MergeCells-Record-Heap-Overflow-Vulnerability (CVE-2012-0185) |
- | - | + |
File-OLE_Microsoft-Office-Excel-Publisher-Record-Memory-Corruption (CVE-2010-1250) |
- | - | + |
File-Text_x86-X41nop-Shellcode | - | - | + |
HTTP_Reply-Content-Type-Missing | - | - | + |
UDP_Checksum-Mismatch | - | - | + |
E-Mail_IMF-Multipart-Delimiter-Use-Invalid | - | - | + |
E-Mail_IMF-Base64-Length-Inconsistency | - | - | + |
IP_Checksum-Mismatch | - | - | + |
DNS_Client-Name-Bad-Label-Type | - | - | + |
DNS_Client-Class-Unknown | - | - | + |
TCP_Segment-SYN-Unexpected | - | - | + |
TCP_Segment-SYN-ACK-Unexpected | - | - | + |
E-Mail_IMF-Too-Long-Header | - | - | + |
E-Mail_IMF-Too-Long-Header-Field | - | - | + |
POP3_Server-Syntax-Error | - | - | + |
E-Mail_Message-Syntax-Error | - | - | + |
E-Mail_Content-Transfer-Encoding-Duplicate | - | - | + |
SMTP_Unknown-Command | - | - | + |
HTTP_IIS-Unicode-Encoding | - | - | + |
HTTP_Version-Varies | - | - | + |
HTTP_Request-Extra-Data | - | - | + |
TCP_Segment-SYN-ISN-Mismatch | - | - | + |
DNS-UDP_Nameserver-Version-Query | - | - | + |
HTTP_CS-Long-HTTP-Authorization-Negotiate-Token | - | - | + |
HTTP_CSU-Windows-Style-Absolute-Path-In-URI | - | - | + |
MSRPC-TCP_CPS-Windows-Local-Security-Authority-Username-Disclosure | - | - | + |
SNMP-UDP_Linux-Kernel-SNMP-NAT-Helper-SNMP-Decode-DoS-2 | - | - | + |
SNMP-UDP_Default-Community-String-Rejected | - | - | + |
File-Binary_Windows-LNK-File-Transfer | - | - | + |
HTTP_SHS-HTTP-0.9-Response-After-HTTP-1.0-Request | - | - | + |
HTTP_SHS-Content-After-Zero-Content-Length | - | - | + |
File-PNG_Conflicting-Content-Type-Text | - | - | + |
File-PNG_Conflicting-Content-Type-Text-Plain | - | - | + |
Стоить отметить, что IPS в режиме мониторинга может не только обнаружить атаки, но и найти уязвимые сервисы и приложения в сети, например, использование дефолтных настроек SNMP community, использование пустых паролей, необновленное ПО.
Работа в режиме IPS
Тестирование аппаратных платформ систем обнаружения вторжений в режиме IPS (мониторинга сетевой активности и блокирования вредоносного трафика) проводилось по схеме, представленной на рисунке ниже, путем поочередного включения всех аппаратных платформ в режиме Inline (в разрыв) между АРМ Атакующего и Жертвами (серверами). На Жертвах была установлена ОС Microsoft Windows 2003 R2 и следующее прикладное ПО:
• Oracle express 10g;
• MySQL 5.2;
• Apache 2.2.26;
• WEB IIS 6/ FTP ISS 6;
• Filezilla FTP Server 0.9.41 beta;
• TFTPD 32 4.0;
• MSSQL Express 2005.
С АРМ Атакующего с помощью сканера безопасности Nessus были просканированы Жертвы и определен список уязвимых сервисов, запущенных на них. После сканирования были проведены попытки эксплуатации уязвимостей (запуск эксплойтов) на Жертвах с помощью эксплойт-пака Metasploit Framework.
Ниже приведена сводная таблица реакции IPS на атаки:
Видно, что IPS с дефолтными настройками способны заблокировать не все атаки, даже те, которые используют не самые новые уязвимости. Поэтому настоятельно рекомендуется настраивать железку конкретно под свои нужды и сервисы.
«Очень условное» нагрузочное тестирование
Данное тестирование проводилось с использованием утилиты hping3 (про утилиту можно почитать тут) из дистрибутива Backtrack 5 R3. Целью проводимого тестирования являлась проверка «стойкости» IPS к атакам типа flood, т.е. мы не пытались сравнивать производительность устройств, а только лишь исследовали их реакцию на перегрузку.
Описание стенда:
IPS устанавливалась в разрыв между атакующим узлом (ОС Backtrack 5 R3) и узлом-жертвой (ОС Windows Server 2003 R2). Утилита hping3 запускалась в течение 5 минут с параметром «--flood», данный ключ позволяет использовать максимально возможную скорость генерации пакетов.
Пример команды:
hping3 ip_address --flood
Ниже представлена сводная таблица с результатами:
Как мы видим, ни одна из IPS-систем (на настройках по умолчанию) не смогла защитить узел от атаки типа «flood». Cisco и IBM в логах выдавали алерты и не пытались заблокировать атаку, StoneGate начал блокировать соединения, но ушел в перезагрузку, и атака на жертву успешно продолжилась. Это обусловлено тем, что по умолчанию режим работы inline-интерфейсов выбран fail-open, т.е. весь трафик свободно проходит между интерфейсами без инспекции в случае выхода из строя аппаратной платформы.
Заключение
Если вы решили поставить IPS для того, чтобы реально защитить своих пользователей или какие-то важные сервисы от угроз извне и быть в курсе того, что происходит у вас в сети, то рекомендуем заняться тонкой настройкой железки. Правильно оттюнингованная IPS способна закрыть очень большое количество «дырок» в безопасности, даже если она уже старенькая и слабенькая. А на дефолтных настройках ни один из производителей не показал результатов, которые можно было бы назвать «впечатляющими».
Всем спасибо за внимание!
Глебов Максим, Селищев Иван
Автор: itsecurity