The post Açık kod Araçlarla Firewall/IPS Testleri-I first appeared on Complexity is the enemy of Security.
]]>Bu yazıda açık kod yazılımlarla Firewall/IPS ürünlerinlerine dair bazı testler nasıl gerçekleştirilir konusunu ele alacağız.
# tcpsic -s rand -d 192.168.2.23, 445 -F 100 -p 1000000
Using random source IP’s
Compiled against Libnet 1.1.2.1
Installing Signal Handlers.
Seeding with 3329
No Maximum traffic limiter
Using random source ports.
Bad IP Version = 10% IP Opts Pcnt = 10%
Frag’d Pcnt = 10% Urg Pcnt = 10%
Bad TCP Cksm = 10% TCP Opts Pcnt = 10%
1000 @ 70024.3 pkts/sec and 4666.7 k/s
2000 @ 70912.6 pkts/sec and 5177.1 k/s
3000 @ 80069.5 pkts/sec and 5270.3 k/s
4000 @ 70631.9 pkts/sec and 5112.1 k/s
5000 @ 80100.4 pkts/sec and 5455.4 k/s
8000 @ 70965.2 pkts/sec and 5223.5 k/s
|
# perl -MCPAN -e “install Net::RawIP”
# perl -MCPAN -e “install Net::Pcap”
# perl -MCPAN -e “install Net::PcapUtils”
# perl -MCPAN -e “install NetPacket”
|
# wget http://dev.inversepath.com/ftester/ftester-1.0.tar.gz
# tar -xzf ftester-1.0.tar.gz
|
192.168.2.23:1-1024:100.100.100.86:1-65535:AS:TCP:0
192.168.2.23:1-1024:100.100.100.86:1-65535:S:TCP:0
192.168.2.23:1-1024:100.100.100.86:1-65535:A:TCP:0
192.168.2.23:1-1024:100.100.100.86:1-65535::UDP:0
192.168.2.23::100.100.100.86:::ICMP:3:5
|
istemci#./ftest -f ftest.conf -v -d 0.01 |
sunucu# ./ftestd -i eth0 -v |
#./freport ftest.log ftestd.log
Authorized packets: ------------------- 22 - 192.168.2.23:1025 > 100.100.100.86:22 S TCP 0 25 - 192.168.2.23:1025 > 100.100.100.86:25 S TCP 0 80 - 192.168.2.23:1025 > 100.100.100.86:80 S TCP 0 113 - 192.168.2.23:1025 > 100.100.100.86:113 S TCP 0 1027 - 192.168.2.23:80 > 100.100.100.86:1025 PA TCP 0 Modified packets (probably NAT): -------------------------------- >>>>>>>> Filtered or dropped packets: ---------------------------- 1 - 192.168.2.23:1025 > 100.100.100.86:1 S TCP 0 2 - 192.168.2.23:1025 > 100.100.100.86:2 S TCP 0 3 - 192.168.2.23:1025 > 100.100.100.86:23 S TCP 0 ... |
ids=192.168.0.10:1025:10.1.7.1:25:S:TCP:0:VRFY
ids-conn=192.168.0.10:23:10.1.7.1:1025:PA:TCP:0:to su root
insert /usr/local/etc/snort/rules/exploit.rules 192.168.0.10 10.1.7.1 0
insert-conn /usrlocal/etc/snort/rules/bad-traffic.rules 192.168.0.10 10.1.7.1 0
|
The post Açık kod Araçlarla Firewall/IPS Testleri-I first appeared on Complexity is the enemy of Security.
]]>The post Intrusion Prevention System Stateful Signature Inspection Testleri first appeared on Complexity is the enemy of Security.
]]>Günümüz sistemlerinde kullanılan IPS’lerin tamamı stateful mimaride çalışır. Stateful packet inspection (Durum korumalı paket inceleme) IPS’in ya da Firewall’un üzerinden geçirdiği her paketi bağımsız olarak incelemesi yerine paketler arasındaki ilişkiyi gozetleyerek daha akıllı kararlar verebilmesini sağlar.
Mesela bir bağlantıda saldırı imzası aramadan önce bağlantının gerçekten bir bağlantı mı olduğunu yoksa rastgele gönderilen paketler mi olduğunu anlayabilir. Kısacası oturum kavramını sağlar ve birbirleriyle ilişkili paketleri tek bir oturum olarak kabul eder ve inceler.
Açık kaynak kodlu Snort IPS/IDS sistemi incelenirse hem stateful yapıda hem de stateless yapıda kuralların yazılabildiği görülecektir.
Snort Stateless Saldırı İmzası
scan.rules:alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:”SCAN SYN FIN”; flow:stateless; flags:SF,12; reference:arachnids,198; classtype:attempted-recon; sid:624; rev:7;)
Snort Stateful Saldırı İmzası
web-misc.rules:alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:”WEB-MISC /etc/passwd”; flow:to_server,established; content:”/etc/passwd”; nocase; classtype:attempted-recon; sid:1122; rev:5;)
Bu Snort kuralı ile gelen giden her paketin ayrı ayrı incelenmesi yerine sadece oturum kurulmuş (3’lü el sıkışmayı başarıyla tamamlamış) paketlerin incelenmesi ve içeriğinde /etc/passwd barındıran oturumlar için -paketler için değil- uyarı vermesi sağlanmaktadır.
Eğer IPS sistemleri herhangi bir yapılandırmadan geçirilmeden oldugu gibi ağda konumlandırılırsa gelen giden her paketi değerlendirip saldırı araması yapacak sekilde çalışacaktır (Default olarak stateful çalışanlar da var)
Stateful mimarisi aktif edilmemiş bir IPS’in ne gibi dezavantajları olabilir?
Stateful çalışmayan bir IPS uzaktan sahte IP adreslerinden gönderilecek cesitli paketleri gercek bir saldırı gibi algılayacak ve loglamaya calısacaktır. Bu süre zarfında birileri eger gercekten sisteme yönelik denemeler yapıyorsa loglardan anlasılması güc olacaktır.
Yine benzer şekilde saldırgan IPS’i işlevsiz bırakmak için farklı -ve sahte- ip adreslerinden milyonlarca saldırı imzası üretecek paketler gönderebilir. IPS gelen her paketi teker teker incelemeye tabi tuttuğu için kısa sürede devre dışı kalabilir. Gerçekleştirdiğimiz testlede 10 dakika süren bir atağın etkisinin IPS loglama sisteminde 7-8 kadar etkisi olmuştur.
Örnek:
Hedef olarak belirlenen IPS’in çalışma yapısını anlamak için bazı örnek paketler gönderilmesi gerekmektedir.
Bu paketlerden bazıları aradaki IPS cihazını kızdıracak ve kural/imzalarının tetiklenmesini ve trafiği engellemesini -RST ya da pasif DROP- sağlayacaktır.
I. Adım
Birinci adımda test yapılan IPS’in arkasındaki sunucunun TCP/80 portuna sıradan SYN paketleri gönderilir.
Hedef sunucu bu paketlere -port açık olduğu için- ACK/SYN bayraklı paketle cevap verecektir.
root@seclabs:~# hping3 -p 80 -S www.bank1.com.tr
HPING www.bank1.com.tr (eth0 1.2.3.4): S set, 40 headers + 0 data bytes
len=46 ip=1.2.3.4 ttl=244 DF id=19935 sport=80 flags=SA seq=0 win=1608 rtt=3.6 ms
len=46 ip=1.2.3.4 ttl=244 DF id=46389 sport=80 flags=SA seq=1 win=1608 rtt=3.5 ms
len=46 ip=1.2.3.4 ttl=244 DF id=8438 sport=80 flags=SA seq=2 win=1608 rtt=3.2 ms
len=46 ip=1.2.3.4 ttl=244 DF id=21695 sport=80 flags=SA seq=3 win=1608 rtt=3.3 m
II. Adım
Bu adımda hedef sunucuya gönderilen SYN bayraklı paketlerin içerisine veri eklenmiştir.
root@seclabs:~# cat test1
test deneme123
Amac hedef sistem önündeki IPS’in kurallarındaki SYN bayraklı paketler veri taşıyamaz kuralının aktif olup olmadığını öğrenmek. Aşağıdaki çıktı IPS’de bu kuralın aktif olmadığını göstermektedir.
root@seclabs:~# hping3 -p 80 -S www.bank1.com.tr -d 100 -E test1
HPING www.bank1.com.tr (eth0 1.2.3.4): S set, 40 headers + 100 data bytes
[main] memlockall(): Success
Warning: can’t disable memory paging!
len=46 ip=1.2.3.4 ttl=244 DF id=19727 sport=80 flags=SA seq=0 win=1608 rtt=3.8 ms
len=46 ip=1.2.3.4 ttl=244 DF id=49973 sport=80 flags=SA seq=1 win=1608 rtt=3.5 ms
len=46 ip=1.2.3.4 ttl=244 DF id=2089 sport=80 flags=SA seq=2 win=1608 rtt=4.2 ms
len=46 ip=1.2.3.4 ttl=244 DF id=62685 sport=80 flags=SA seq=3 win=1608 rtt=3.5 ms
SYN bayraklı paket veri taşıyamaz kuralının aktif olduğu IPS’ gönderilecek paketlere cevap donulmez ya da RST paketi dönülür.
root@seclabs:~# hping3 -p 80 -S www.bank3.com.tr -d 100 -E test1 -c 4
HPING www.bank3.com.tr (eth0 1.8.12.7): S set, 40 headers + 100 data bytes
[main] memlockall(): Success
Warning: can’t disable memory paging!— www.bank3.com.tr hping statistic —
4 packets tramitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
III. Adım
Hedef sisteme SYN bayraklı paket içerisinde veri gönderilebildiği belirlendi. Bu asamada gönderilen verinin içeriğiyle oynayarak IPS’in tetiklenmesini sağlamaya calışılacaktır. Eğer IPS oturum kurulmamış TCP bağlantılarını takip edip IPS imzalarını çalıştırıyorsa bu o IPS’in iyi yapılandırılamadığı anlamına gelir.
Hedef sistemdeki IPS’i tetiklemek için gönderilen veri parçası
root@seclabs:~# cat test2
GET /etc/passwd HTTP/1.0root@seclabs:~# hping3 -p 80 -S www.bank1.com.tr -d 100 -E test2
HPING www.bank1.com.tr (eth0 1.2.3.4): S set, 40 headers + 100 data bytes
[main] memlockall(): Success
Warning: can’t disable memory paging!
len=46 ip=1.2.3.4 ttl=53 id=13 sport=80 flags=RA seq=0 win=4096 rtt=12.4 ms
len=46 ip=1.2.3.4 ttl=53 id=13 sport=80 flags=RA seq=1 win=4096 rtt=11.9 ms
len=46 ip=1.2.3.4 ttl=53 id=13 sport=80 flags=RA seq=2 win=4096 rtt=12.8 ms
Bazı IPS’ler sadece /etc/passwd geçtiğinde kızmaz, bunun yerine ../../etc/passwd gibi bir ifade konulduğunda imzalarını devreye sokar.
hedefe payload olarak gönderilen test2 dosyası içeriği
GET /etc/passwd HTTP/1.0
hedefe payload olarak gönderilen test3 dosyası içeriği
GET ../..//etc/passwd HTTP/1.0
GET /etc/passwd HTTP/1.0’e kızmayan fakat GET ../../../etc/passwd HTTP/1.0 IPS Davranışı
root@seclabs:~# hping3 -p 80 -S www.bank2.com.tr -d 100 -E test2
HPING www.bank2.com.tr (eth0 4.5.6.7): S set, 40 headers + 100 data bytes
[main] memlockall(): Success
Warning: can’t disable memory paging!
len=46 ip=4.5.6.7 ttl=247 DF id=37297 sport=80 flags=SA seq=0 win=8190 rtt=3.6 ms
len=46 ip=4.5.6.7 ttl=247 DF id=64305 sport=80 flags=SA seq=1 win=8190 rtt=3.7 ms
len=46 ip=4.5.6.7 ttl=247 DF id=16772 sport=80 flags=SA seq=2 win=8190 rtt=3.4 ms
^C
— www.bank2.com.tr hping statistic —
3 packets tramitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 3.4/3.6/3.7 msroot@seclabs:~# hping3 -p 80 -S www.bank2.com.tr -d 100 -E test3
HPING www.bank2.com.tr (eth0 4.5.6.7): S set, 40 headers + 100 data bytes
[main] memlockall(): Success
Warning: can’t disable memory paging!
len=46 ip=4.5.6.7 ttl=57 id=13 sport=80 flags=RA seq=0 win=4096 rtt=3.2 ms
len=46 ip=4.5.6.7 ttl=57 id=13 sport=80 flags=RA seq=1 win=4096 rtt=3.1 ms
len=46 ip=4.5.6.7 ttl=57 id=13 sport=80 flags=RA seq=2 win=4096 rtt=3.2 ms
The post Intrusion Prevention System Stateful Signature Inspection Testleri first appeared on Complexity is the enemy of Security.
]]>The post Kurumsal İş Ortamlarında Snort Kullanımı first appeared on Complexity is the enemy of Security.
]]>Bu yazı Snort’un güçlü yanları ve iş ortamlarında kullanımı için bilinmesi gereken temel hususları içermektedir ve Snort hakkında yanlış bilinen birçok konuyu da aydınlatmaktadır.
Kısa özet: Snort eğer iyi yapılandırılırsa -ki bayağı emek ister- iş ortamlarında en az ticari muadilleri kadar başarılı olur. Ama günümüzde Snort’un kullanımı genelde IPS olarak değil IDS olarak yaygındır ve iyi yapılandırılmadığı için verimli kullanılamamaktadır. Bu sebeple Snort kelimesinin geçtiği ortamlarda şu tip yakınmalar sık duyulmaktadır: “Snort yüksek trafiklerde iş göremez”, “Snort sadece imza tabanlı bir IPS sistemidir”, “Snort, yeterli protokol tanıma desteğine sahip değildir”, “Snort, çok false positive üretmektedir”…. Bu yakınmalar, eğer bilinçli olarak yapılmıyorsa bilgisizce yapılıyor demektir.
Snort’u iş ortamlardında başarıyla kullanmak için yapılması gereken en temel şey saldırı tespit ve engelleme sistemlerinin temeli olan TCP/IP bilgisini geliştirmektir. TCP/IP bilgisi olmadan yönetilecek herhangi bir IDS/IPS şirketinize bir fayda getirmeyecektir, sadece kendinizi güvende hissetmenizi sağlayacaktır. Türkiye’de tamamı orta ve büyük ölçekten oluşan 100 şirkete yapılan IPS kullanım anketinin sonuçları Türkiye’de IPS/IDS kullanımının tamamen nazar boncuğu görevini yerine getirdiğini gösteriyor.
Ankete katılan kurumların %97′indeki IPS çok basit bir iki yöntemle aşılabiliyor. Yine ankete katılanlardan hiç bir firma aldıkları IPS’i detaylı test etmemişler. Daha çok NSS ve Gartner raporlarına dayanarak satın alımlar yapılmış. Anketten çıkan önemli bir sonuç da %85 oranında firmaların IPS’in bugüne kadar ciddi bir saldırıyı engellemediğini düşünüyor…
Kısacası Türkiye’de alınan IPS ürünleri amacına uygun kullanılmamaktadır. Bunun temel sebebi de IPS yöneticilerindeki TCP/IP bilgisi eksikliğidir ve IPS’i satanların sattıkları ürünü sihirbaz olarak pazarlayıp firmaları bir nevi “kandırmalarıdır”. IPS, Firewall, router gibi statik bir sistem değildir, sadece mantık kuralları işlemez, detay bilgi gerektirir ve bu bilgiden yoksun IPS yöneticilerinin yönettiği sistemler korunmasızdır.
Aşağıdaki maddeler Snort’u kişisel bilgisayarından tutun da gigabit ağlara kadar her ortamda denemiş, tecrübeli bir snort kullanıcısının tavsiyeleridir.
* Snort’u gerçekten amacına uygun olarak kullanabilmek için mutlaka bir GUI gerekmektedir. Ne kadar uzmanı olursanız olun sizden başka sistem/güvenlik yöneticilerinin de Snort’u kullanabilmesini istiyorsanız mutlaka bir gönetim arabirimi kullanın.
* Logları analiz etmek için base ya da Aanval gibi bir analiz/raporlama sistemi kullanın. Ve günlük olarak loglara bakmaya çalışın.
* Ağ yapınızı çıkarın ve sadece korumak istediğiniz servislere ait snort imzalarını aktif edin. Snort ile birlikte 10.000 civarı saldırı imzası gelmektedir. Bunların hepsi açılırsa Snort ciddi performans kaybına uğrayacaktır ve daha da önemlisi Snort’un üreteceği alarmlar fazla olacağı için gerçek alarmları yakalayamayacaksınız.
* Mutlaka Snort’un lisanslı kural/imzalarını kullanın. Ek olarak Bleeding Snort kurallarını da inceleyerek itiyaç duyduklarınızı ekleyin.
* Snort’u SnortSam ya da inline özelliğiyle kullanın. False positivelerden kaçınmak için kendinize ait sunucuları beyaz listelere ekleyin.
* Default ayarlarıyla Snort’u en fazla 40-50 Mb trafikte kullanabilirsiniz. Bundan fazlasında paket kayıpları oluşmaya başlayacaktır. Performans için bir dünya ayar var bunları araştırın ya da Snort eğitimine katılıp gigabit ağlarda Snort’un nasıl kullanılacağını öğrenin.
* Intel ağ kartı tercih edin.
* Hattınız gigabit olmasa da gigabit ağ kartları tercih edin.
* Snort’u daha performanslı kullanmak için barnyard2 eklentisini kullanın.
* Mysql’e perfoprmans ayarları yapın
* Asimetrik trafik kullanıyorsanız Snort’un gelen–giden trafiği tamamen gördüğünden emin olun. Gerekirse gelen ve giden bağlantıları bridge yaparak Snort’a verin.
* Snort birden fazla CPU kullanamayacağı için tek bir CPU’yu Snort’un hizmetine verin. Gerekirse birden fazla Snort’u farklı işlemcilerde çalıştırarak manuel yük dağılımı gerçekleştirin.
* Klasik libpcap kullanmayın yerine daha performanslı eklentileri araştırın
* Kullanmadığınız protokollere ait preprocessorları kapatın.
* Son olarak Snort’u hem Firewall’un dışını hem de iç tarafını dinleyecek şekilde yapılandırın ve farklı ayarlarla kullanın.
* Snort inline olarak yerleştirilmişse fail open kit kullanın
Aslında burada yazılı olanlar sadece Snort için değil tüm IPS sistemleri için geçerlidir. Özellikle ticari IPS yazılımı kullanan güvenlik yöneticilerinin mutlaka Snort kurcalamalarını önerilmektedir, bunun temel sebebi ticari ürünler kapalı olduğu için IPS çalışma mantığının ürünler üzerinde tam anlaşılamamasıdır.
Snort’u kurcalayarak bir IDS/IPS nasıl çalışır, hangi durumlarda saldırı uyarısı verir, hangi paketleri normal, hangilerini anormal olarak tanımlar rahatlıkla öğrenilebilir.
The post Kurumsal İş Ortamlarında Snort Kullanımı first appeared on Complexity is the enemy of Security.
]]>The post Snort IPS için bypass kiti first appeared on Complexity is the enemy of Security.
]]>Bu konuda ben Netoptics cihazlarını tercih ediyorum. Kite http://www.netoptics.com/support/documents/BypassSolution.pdf adresinden bypass kitin çalışma mantığına ve özelliklerine erişebilirsiniz.
The post Snort IPS için bypass kiti first appeared on Complexity is the enemy of Security.
]]>The post Snort IPS(Saldırı Engelleme Sistemi) Eğitimi 10-11 Temmuz 2010 first appeared on Complexity is the enemy of Security.
]]>Eğitim kontenjanımız 10 kişiyle sınırlıdır.
Eğitim içeriği Snort Certified Professional (SnortCP) ile uyumludur.
Snort IPS eğitimi ileri seviye bir eğitim olduğu için katılımcıların orta seviye TCP/IP bilgisine sahip olmaları beklenmektedir. TCP/IP güvenliği konusunda yeterlililik durumunuzu görmek için aşağıdaki değerlendirme sınavlarını kullanabilirsiniz.
Eğitim içeriği hakkınde detay bilgi almak ve kayıt için http://www.bga.com.tr/?p=1459
The post Snort IPS(Saldırı Engelleme Sistemi) Eğitimi 10-11 Temmuz 2010 first appeared on Complexity is the enemy of Security.
]]>The post Saldırı Tespit Sisteminiz(Snort) Paket Kaçırıyor mu? first appeared on Complexity is the enemy of Security.
]]>Snort kullanımında proses sonlandırıldıktan sonra ekrana ne kadar trafik yakaladığı, ne kadar trafiği düşürdüğü, trafiğin ne kadarı hangi protokolden oluşuyor gibi bilgileri ekrana basacaktır.
===============================================================================
Packet Wire Totals:
Received: 4944815
Analyzed: 4914581 (99.389%)
Dropped: 30180 (0.610%)
Outstanding: 54 (0.001%)
===============================================================================
Breakdown by protocol (includes rebuilt packets):
ETH: 4920496 (100.000%)
ETHdisc: 0 (0.000%)
VLAN: 0 (0.000%)
IPV6: 14 (0.000%)
IP6 EXT: 0 (0.000%)
IP6opts: 0 (0.000%)
IP6disc: 0 (0.000%)
IP4: 4919708 (99.984%)
IP4disc: 0 (0.000%)
TCP 6: 0 (0.000%)
UDP 6: 0 (0.000%)
ICMP6: 0 (0.000%)
ICMP-IP: 0 (0.000%)
TCP: 4764304 (96.826%)
UDP: 155176 (3.154%)
ICMP: 228 (0.005%)
TCPdisc: 0 (0.000%)
UDPdisc: 0 (0.000%)
ICMPdis: 0 (0.000%)
FRAG: 0 (0.000%)
FRAG 6: 0 (0.000%)
ARP: 178 (0.004%)
EAPOL: 0 (0.000%)
ETHLOOP: 0 (0.000%)
IPX: 0 (0.000%)
OTHER: 596 (0.012%)
DISCARD: 0 (0.000%)
InvChkSum: 9 (0.000%)
S5 G 1: 0 (0.000%)
S5 G 2: 5915 (0.120%)
Total: 4920496
=======================================
Kullanılan sistem FreeBSD ise netstat -B komutuyla da ne kadarlık paket kaybı olduğu gözlemlenebilir.
[root@S-Guard11 ~]# netstat -B
Pid Netif Flags Recv Drop Match Sblen Hblen Command
20000 em0 p–s— 8611 8505 8611 32762 32730 snort
41911 em0 p–s— 81404 0 81404 10692 0 ourmon
The post Saldırı Tespit Sisteminiz(Snort) Paket Kaçırıyor mu? first appeared on Complexity is the enemy of Security.
]]>The post Hangi Snort Kuralı Ne İşe Yarar? first appeared on Complexity is the enemy of Security.
]]>Bu konuda Snort kullanıcılarına yardımcı olmak amacıyla geliştirilmiş snortid.com adresi kullanılabilir. Snortid.com adresine girilecek herhangi bir snort ID’sine karşılık o kuralla ilgili tüm bilgiler ekrana dökülecektir.
The post Hangi Snort Kuralı Ne İşe Yarar? first appeared on Complexity is the enemy of Security.
]]>The post NSS Labs Hangi IPS Çözümünü öneriyor? first appeared on Complexity is the enemy of Security.
]]>Yaklaşık bir haftadır tüm hesaplarıma aşağıdaki gibi e-posta geliyor… Ben de bu soruyu alıp “Hangi IPS çözümü diğerinden farklıdır, neden” diye sormak isterim. Hatta daha ileriye gidip IPS çözğmleri gerçek koruma sağlar mı diye kışkırtıcı bir soru sorabilirim ama bu aşamaya henüz gelemedik:)
NSS Labs Hangi IPS Çözümünü öneriyor?
Sayın huzeyfe onal,
Tüm IPS üreticileri en iyi çözüme sahip olduklarını iddaa ederler, bu durumda hangisine güvebilirsiniz ?
Bu kafa karışılığını ortadan kaldırmak için NSS Labs gibi güvenilir bağımsız bir otoritenin görüşlerine başvurmanızı tavsiye ederiz. NSS Labs, dünyanın önde gelen bağımsız araştırma ve bilgi güvenliği test kuruluşudur. 2009 yılı son çeyreğinde, NSS Labs 7 IPS üreticisini 1,159 farklı atak tipi aracılığıyla zorlu bir teste tabi tutmuştur.
Hangi IPS konfigürasyonu tamamlandıktan sonra en yüksek bloklama oranlarına erişmiştir ? Hangi IPS çözümleri kaçırma testlerini başarıyla tamamlamıştır ? Hangi IPS çözümleri RPC parçalama, URL gizleme ve FTP kaçırma gibi testlerden başarısız olmuştur ?
Bu soruların cevaplarını ve daha fazlasını, ücretsiz olarak ve NSS Labs tarafından hazırlanan Q4 2009 Ağ Sızma Engelleme Sistemi Test Yönetici Özeti içerisinde bulabilirsiniz.
Bu raporda lider IPS çözümleri NSS Labs değerlendirme kategorilerinde “Tavsiye edilir”, “Tarafsız” ve “Dikkat” olarak yer alıyor.
NSS Labs yönetici özetinin bir kopyasını ücretsiz olarak edinmek için, kayıt olunuz.
Sourcefire
Bir iki dakikalığına raporda ismi geçen Sourcefire’ı çıkarıp herhangi bir IPS ismi yazın bakalım birşey değişecek mi?
Değişmeyeceğini garanti edebilirim zira çok değil son beş yılı incelerseniz hemen tüm bilinen IPS firmaları(Mcafee, TippingPoint, IBM ISS Proventia) benzeri e-posta göndermişlerdir.
Peki hangisine inanacağız? NSS gerçekten bağımsız bir kuruluş mu? Eğer bağımsızsa neden her sene IPS firmalarıyla ilgili şüphe uyandıracak biçimde değişik raporlar üretiyor? Ya da IPS ürünleri neden daha iyiye gitmiyor ve bazıları daha önceki performanslarını sağlayamıyor? IPS dediğimiz cihaz tam teknik detay içeren bir sistemdir, neden IPS’inizi kendiniz test emiyorsunuz?… Sorular uzar gider.
IPS satıcıları, NSS, Gartner gibi kurumlar kendilerini ön plana çıkarınca NSS/Gartner raporlarını ön plana çıkarır, raporlar kendilerini kötülüyorsa adını bile anmaz ve bu kurumların bağımsız olmadığını ileri sürer. Peki doğruyu nasıl bulacağız?
Aslında bir IPS’i test etmek zor degildir, NSS ya da benzeri kurumların yaptığı testleri biraz TCP/IP bilgisi olan herkes kendi test ortamlarında gerçekleştirebilir. Hatta gerekiyorsa gidip NSS’in testleri nasıl gerçekleştiriyor, hangi opensource/ticari araçları, yöntemleri kullanıyor detaylıca öğrenip birebir aynı testleri gerçekleyebilirsiniz.
IPS’i test edemeyecek birinin IPS yönetmesi zaten sıkıntılı bir durumdur, IPS’ler Firewall gibi değildir, detay teknik bilgi gerektirir. Eğer teknik bilgisi yetersiz birisine IPS yönetimi verilmişse o IPS’i aşmak çok kolay olacaktır ki yakında yayınlayacağım “Türkiye’de IPS Kullanım Şekilleri” raporu bunu fazlasıyla ortaya çıkarıyor.
Bir iki firmadan almak istediğimiz güvenlik ürünlerini test etmek istiyoruz ama bu konuda yeterli kaynak yok serzenişi üzerine önce bu konuda bir eğitim içeriği hazırladım şimdilerde de eğitim içeriğini dolduruyorum.
Eğitimin adı “Uygulamalı Firewall/IPS Testleri Eğitimi”.
İçeriği temel olarak günümüz sınır güvenliğini oluşturan dört bileşenin detaylı testlerinde oluşuyor: Firewall, Web application Firewall, Network Intrusion Prevention System ve DDOS Prevention System
Amaç: güvenlik cihazlarının kullanıldığı ortamlarda gerçek hayatta yapılan yanlışlıkları örneklerle gösterme ve bilinen araçları kullanarak çeşitli testlere tabi tutma(performans, işlevsellik vs).
İçeriği hazırlarken westCostLabs, NSS, IcsaLabs gibi dünyada bu konuda kabul gören(?) test firmalarının yöntemlerine paralel gittik fakat o testlerde olmayan, ya da test dökümanlarına yazılmamış ama gerçek hayatta tecrübe ettiğimiz konuları da ekledik. Bir aya kadar eğitim ciddi birkaç firmada görücüye çıkacak(kendi çalıştığım firmalar). Sonrasında kurumsal olarak isteyenlere sunulacak. Tabi bir de işin gerçek cihazlarla çalışma yönü var, onun için de bilinen güvenlik üreticilerinin Türkiye’deki yetkilileriyle görüşmelere başlıyorum.
En ufak projede bilen 50-60k $ tutacak bu ürünleri almadan önce gerçek testlerden geçirmek isterseniz şimdiden bu eğitime yer ayırtmanızı öneririm. Eğitim sadece kurumsal şirketlere açık olacaktır. Detaylarını içerik tamamlanınca ayrı bir blog postu olarak buraya gireceğim.
The post NSS Labs Hangi IPS Çözümünü öneriyor? first appeared on Complexity is the enemy of Security.
]]>The post SynCookie/SynProxy ile korunan sistemlere yönelik port tarama first appeared on Complexity is the enemy of Security.
]]>Syncookie /Synproxy’nin Synflood DOS engelleme haricinde başka faydaları da vardır. Bunlardan biri de TCP üzerinden yapılan port taramalarını zorlaştırmaktır. Eğer saldırgan TCP port tarama yapıyorsa sürpriz bir şekilde tüm portları açık olarak görecektir.
Syncookie/Synproxy gelen her SYN pakjetine karşılık SYN+ACK cevabı döner. Taradığı sistemden SYN+ACK cevabı geldiğini gören tarama program port açık der ve tekrar paket göndermez.
Synproxy/syncookie ile korunan sistemlere karşı port tarama
root@bt:~# hping –scan 80-100 www.example.com-S -V
using eth0, addr: 192.168.1.103, MTU: 1500
Scanning www.example.com(95.0.11.13), port 80-100
21 ports to scan, use -V to see all the replies
+—-+———–+———+—+—–+—–+
|port| serv name | flags |ttl| id | win |
+—-+———–+———+—+—–+—–+
80 www : .S..A… 55 56928 0
81 : .S..A… 55 57184 0
82 : .S..A… 55 57440 0
83 : .S..A… 55 57696 0
84 : .S..A… 56 57952 0
85 : .S..A… 56 58208 0
86 : .S..A… 56 58464 0
87 link : .S..A… 56 58720 0
88 kerberos : .S..A… 56 58976 0
89 : .S..A… 56 59232 0
90 : .S..A… 56 59488 0
91 : .S..A… 56 59744 0
92 : .S..A… 55 60000 0
93 : .S..A… 55 60256 0
94 : .S..A… 55 60512 0
95 supdup : .S..A… 55 60768 0
96 : .S..A… 55 61024 0
97 : .S..A… 55 61280 0
98 linuxconf : .S..A… 55 61536 0
99 : .S..A… 55 61792 0
100 : .S..A… 56 62048 0
All replies received. Done.
Not responding ports:
Aynı çıktıyı nmap ile tarama yaptığımızda da alırız
root@bt:~# nmap www.example.com-p80-100 –reason
Starting Nmap 5.00 ( http://nmap.org ) at 2010-02-14 12:09 EST
Warning: Hostname www.example.comresolves to 5 IPs. Using 95.0.11.13.
PORT STATE SERVICE REASON
80/tcp open http syn-ack
81/tcp open hosts2-ns syn-ack
82/tcp open xfer syn-ack
83/tcp open mit-ml-dev syn-ack
84/tcp open ctf syn-ack
85/tcp open mit-ml-dev syn-ack
86/tcp open mfcobol syn-ack
87/tcp open priv-term-l syn-ack
88/tcp open kerberos-sec syn-ack
89/tcp open su-mit-tg syn-ack
90/tcp open dnsix syn-ack
91/tcp open mit-dov syn-ack
92/tcp open npp syn-ack
93/tcp open dcp syn-ack
94/tcp open objcall syn-ack
95/tcp open supdup syn-ack
96/tcp open dixie syn-ack
97/tcp open swift-rvf syn-ack
98/tcp open linuxconf syn-ack
99/tcp open metagram syn-ack
100/tcp open newacct syn-ack
Nmap done: 1 IP address (1 host up) scanned in 0.24 seconds
Bu şekilde korunmuş sistemlere yönelik başarılı TCP taramaları gerçekleştirmek için 3’lü el sıkışmayı tamamlayan ve sonrasında ek paketler gönderen tarama tiplerini denemek gerekir.
Mesela nmap ile birlikte gelen versiyon belirleme özelliği burada işimize yarayabilir. Zira versiyon belirleme özelliği sadece SYN paketi gönderip cevap olarak SYN+ACK gelmesiyle tarama işlemini sonuçlandırmaz, portu açık olarak belirledikten sonra(karşı taraftan gelecek SYN+ACK cevabı) o portta çalışan uygulamanın versiyonunu belirlemek için ek paketler gönderir ki bu ek paketler SYNCookie/SynProxy korumasını devre dışı bırakır(Syncookie/synproxy 3’lü el sıkışmayı tamamlayan paketler için devreden çıkar ve paketleri doğrudan koruduğu sistemlere iletir). Her ne kadar tarama süresi oldukça uzasa da açık portları sağlıklı bir şekilde keşfetmek için versiyon belirleme taraması yapmak gerekir.
root@bt:~# nmap www.example.com-PN -sV –top-ports 10
Starting Nmap 5.00 ( http://nmap.org ) at 2010-02-14 12:52 EST
Interesting ports on 11.22.33.44(11.22.33.44):
PORT STATE SERVICE VERSION
21/tcp filtered ftp
22/tcp filtered ssh
23/tcp filtered telnet
25/tcp filtered smtp
80/tcp open http Microsoft IIS webserver 7.0
110/tcp filtered pop3
139/tcp filtered netbios-ssn
443/tcp filtered https
445/tcp filtered microsoft-ds
3389/tcp filtered ms-term-serv
Service Info: OS: Windows
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 10.32 seconds
The post SynCookie/SynProxy ile korunan sistemlere yönelik port tarama first appeared on Complexity is the enemy of Security.
]]>The post Penetrasyon testlerinde IPS Keşfi first appeared on Complexity is the enemy of Security.
]]>Yapılan güvenlik testlerinde(penetrasyon testleri) bu tip cihazlar konuya hakim bir güvenlikci/hacker tarafından rahatlıkla bypass edilebilmektedir. (Çeşitli teknikler kullanarak IPS bypass etme konusunu yakında çıkacak yazımda detaylı değineceğim)
Testler öncesi hedef sistemi koruyan bir IPS var mı yok mu(IPS’in aktif olup olmadığı, aktifse gelen saldırı paketlerine nasıl aksiyon aldığı) anlamak için basit denemeler yapmamız bizi sonuca götürecektir.
IPS Keşfi
IPS keşfi için çeşitli yöntemler denenebilir fakat benim uzun süredir sık kullanılan IPS ürünlerinde test ettiğim ve çalıştığını onayladığım basit bir yöntem var: hedef sisteme IPS’I tetikleyecek HTTP istekleri göndermek ve cevapları incelemek. Gönderilecek HTTP istekleri anahtar kelime olup IPS’i tetikleyecek HTTP istekleri seçilmelidir.
Hemen hemen tüm IPS’lerde directory/path traversal zaafiyetine karşı çeşitli imzalar yer almaktadır. Ya da URL de geçecek /etc/passwd, /bin/sh, cmd.exe gibi stringler IPS’in devreye girmesi ve aksiyon alması için yeterlidir.
Örnekler:
#telnet ip_adresi 80
GET ../../../etc/passwd HTTP/1.0
#telnet ip_adresi 80
GET ../../../bin/sh HTTP/1.0
#telnet ip_adresi 80
GET ../../../../cmd.exe HTTP/1.0
gibi.
Bu istekleri hedef sisteme gönderdiğimizde eğer bağlantı aniden kesiliyorsa (TCP RST) ya da hedef sisteme olan bağlantınız kesiliyorsa(hedefe gönderdiğiniz paketlere cevap dönmüyorsa) arada koruma modunda bir IPS(ya da benzeri işlevi yapan bir Firewall özelliği(Checkpoint SmartDefense gibi)) var demektir.
Eğer geriye cevap olarak RST paketi dönüyorsa IPS aktif olarak saldırıları RST paketiyle engelliyor demektir. Geriye cevap dönmüyr ve bağlantınız zaman aşımına uğruyosa IPS herhangi bir paket dönmeden sessiz olarak paketinizi düşürüyor demektir.
IPS koruması olmayan bir sisteme bu tip HTTP istekleri gönderdiğimizde aşağıdakina benzer çıktı alırız.
# telnet www.snort.org 80
Trying 68.177.102.20…
Connected to www.snort.org.
Escape character is ‘^]’.
GET ../../../etc/passwd HTTP/1.0
HTTP/1.1 400 Bad Request
Date: Mon, 15 Feb 2010 09:53:42 GMT
Server: Apache
Content-Length: 289
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache Server at www.snort.org Port 80</address>
</body></html>
Connection closed by foreign host.
IPS koruması olduğunu düşündüğümüz bir siteye aynı isteği gönderip tcpdump ile paketleri izlersek nasıl bir aksiyon aldığını rahatlıka görebiliriz.
root@bt:~# telnet www.tippingpoint.com 80
Trying 66.179.208.38…
Connected to www.tippingpoint.com
Escape character is ‘^]’.
GET ../../../etc/passwd HTTP/1.0
…
…
Yapılan isteğe herhangi bir cevap dönmüyor, arada bir cihazın engellediğini düşünüyoruz ve tcpdump ile paketleri izliyoruz.
root@bt:~# tcpdump -i eth0 -ttnn host www.tippingpoint.com-X
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
1266164687.171707 IP 192.168.1.103.33743 > 66.179.208.38.80: S 2292162228:2292162228(0) win 5840 <mss 1460,sackOK,timestamp 5333259 0,nop,wscale 6>
1266164687.186012 IP 66.179.208.38.80 > 192.168.1.103.33743: S 2738042328:2738042328(0) ack
1266164687.186042 IP 192.168.1.103.33743 > 66.179.208.38.80: . ack 1 win 5840
1266164701.117674 IP 192.168.1.103.33743 > 66.179.208.38.80: P 1:35(34) ack 1 win 5840
1266164704.116954 IP 192.168.1.103.33743 > 66.179.208.38.80: P 1:35(34) ack 1 win 5840
0x0000: 4510 004a ffc2 4000 4006 e3a3 c0a8 0167 E..J..@.@……g
0x0010: c21d d30a 83cf 0050 889f 9eb5 a333 35d9 …….P…..35.
0x0020: 5018 16d0 54ae 0000 4745 5420 2e2e 2f2e P…T…GET…/.
0x0030: 2e2f 2e2e 2f65 7463 2f70 6173 7377 6420 ./../etc/passwd.
0x0040: 4854 5450 2f31 2e30 0d0a HTTP/1.0..
1266164710.117343 IP 192.168.1.103.33743 > 66.179.208.38.80: P 1:35(34) ack 1 win 5840
0x0000: 4510 004a ffc3 4000 4006 e3a2 c0a8 0167 E..J..@.@……g
0x0010: c21d d30a 83cf 0050 889f 9eb5 a333 35d9 …….P…..35.
0x0020: 5018 16d0 54ae 0000 4745 5420 2e2e 2f2e P…T…GET…/.
0x0030: 2e2f 2e2e 2f65 7463 2f70 6173 7377 6420 ./../etc/passwd.
0x0040: 4854 5450 2f31 2e30 0d0a HTTP/1.0..
1266164722.117149 IP 192.168.1.103.33743 > 66.179.208.38.80: P 1:35(34) ack 1 win 5840
0x0000: 4510 004a ffc4 4000 4006 e3a1 c0a8 0167 E..J..@.@……g
0x0010: c21d d30a 83cf 0050 889f 9eb5 a333 35d9 …….P…..35.
0x0020: 5018 16d0 54ae 0000 4745 5420 2e2e 2f2e P…T…GET…/.
0x0030: 2e2f 2e2e 2f65 7463 2f70 6173 7377 6420 ./../etc/passwd.
0x0040: 4854 5450 2f31 2e30 0d0a HTTP/1.0..
Tcpdump çıktısından anlaşılacağı gibi hedef system gönderdiğimiz HTTP istekleri karşılık bulmuyor. Çünki aradaki IPS bu paketleri zararlı olarak işaretleyip sessize blokluyor.
IPS’in RST paketiyle engelleme yaptığı durum
Bazı IPS’ler saldırıyı engellerken TCP RST paketi kullanır(aslında bu engelleme yöntemi ayarlanabilir bir seçenektir ve çoğu IPS için sessiz blokla ya da TCP RST gönder denilebilir)
Yine önünde IPS olduğunu düşündüğümüz bir siteye yönelik HTTP isteğiimizi gönderelim.
root@bt:~# telnet www.checkpoint.com 80
Trying 216.200.241.66…
Connected to www.checkpoint.com.
Escape character is ‘^]’.
GET ../../../etc/passwd HTTP/1.0
Connection closed by foreign host.
Aldığımız “Connection closed by foreign host.” Mesajı bize arada bir cihazın aktif olarak bağlantımızı blokladığını gösterir. Önermemizi doğrulamak için tcpdump çalıştırıp ekrana düşen paketleri incelersek hedef sistemden dönen RST paketi görülebilir.
# tcpdump -i eth0 -ttttnn host www.checkpoint.com
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
2010-02-14 11:37:26.306084 IP 192.168.1.103.52392 > 216.200.241.66.80: S 1303966254:1303966254(0) win 5840 <mss 1460,sackOK,timestamp 5560999 0,nop,wscale 6>
2010-02-14 11:37:29.303649 IP 192.168.1.103.52392 > 216.200.241.66.80: S 1303966254:1303966254(0) win 5840 <mss 1460,sackOK,timestamp 5561899 0,nop,wscale 6>
2010-02-14 11:37:29.559554 IP 216.200.241.66.80 > 192.168.1.103.52392: S 3390823897:3390823897(0) ack 1303966255 win 5792 <mss 1460,sackOK,timestamp 3163092484 5560999,nop,wscale 2>
2010-02-14 11:37:29.559597 IP 192.168.1.103.52392 > 216.200.241.66.80: . ack 1 win 92 <nop,nop,timestamp 5561975 3163092484>
2010-02-14 11:37:42.377165 IP 192.168.1.103.52392 > 216.200.241.66.80: P 1:35(34) ack 1 win 92 <nop,nop,timestamp 5565821 3163092484>
2010-02-14 11:37:42.632340 IP 216.200.241.66.80 > 192.168.1.103.52392: R 3390823898:3390823898(0) win 0
Son pakete bakılacak olursa bağlantımızı koparanın RST paketi olduğu görülecektir.
..
The post Penetrasyon testlerinde IPS Keşfi first appeared on Complexity is the enemy of Security.
]]>