Balküpü Çalışma Grubu
Transkript
Balküpü Çalışma Grubu
Ulak-CSIRT Balküpü Çalışma Grubu Onur BEKTAŞ onur at ulakbim . gov . tr Murat SOYSAL msoysal at ulakbim . gov .tr 1 Mayıs Konya 1 İÇERİK Balküpü nedir ? Balküpü Çalışma Grubu & ULAKNET Balküpü ULAKNET Balküpü Ağ Saldırı Tespit Sistemi Program girdisi : Honeyd Log Kayıtları Program Akış Diyagramı Programlar nerden çalıştırılıyor ? Honeyd loglarının taşınması Honeyd.log dosyasının saatlik işlenmesi Üniversite IP adresleri nasıl ayıklanıyor? Grafikler nasıl çiziliyor ? Program çıktıları Teşekkürler + Sorular ? 1 Mayıs Konya 2 BALKÜPÜ ? Balküpleri bilgi ve ağ güvenliğine yönelik yapılan saldırıların farkına varmak, saldırganların yöntemlerini izlemek, metodlarını belirlemek, yeni geliştirilen saldırı sistemlerini önceden haberdar olmak için özel olarak tasarlanmış yazılım veya sistemlerdir. Balküpleri kullanım alanları ve oluşturulma amaçlarına göre iki sınıf altında incelenebilir. Production balküpü Araştırma balküpü Balküpleri komplekslik seviyesine göre iki kısımda incelenebilir Yüksek iletişimli balküpleri (High interaction honeypot) Düşük iletişimli balküpleri (Low interaction honeypot) 1 Mayıs Konya 3 Balküpü Çalışma Grubu & ULAKNET Balküpü CSIRT çalışma grubu. Tüm kullanılmayan IP adresleri balküpüne yönlendiriliyor. İki sunucu üzerinde honeywall + honeyd ikilisi çalıştırılıyor. Düşük iletişimli honeyd tabanlı. IP spoofing ile tüm IP adreslerine yönlenen saldırılar kayıt altına alınıyor. 2007 Şubat ayından itibaren faliyette. 2007 Gökova’da, 2008 Akademik Bilişim sunum yapıldı. 1 Mayıs Konya 4 ULAKNET Balküpü Ağ Saldırı Tespit Sistemi (1) Hangi ülkeler bize saldırıyor? (kişisel merak) Hangi uçlarımız balküpüne takılıyor? Kimler virüs yayıyor? ULAKNET’e bağlı uçlara ağlarındaki güvenlik olayları hakkında bilgi verecek yeni bir araç oluşturmak. 1 Mayıs Konya 5 ULAKNET Balküpü Ağ Saldırı Tespit Sistemi (2) 530 Satır bash, Perl, awk, sed , php karması kod. 92 43 12 13 59 55 28 33 27 32 55 81 balkupu_run.sh (Ağ saldırı tespit sistemi temel işlevlerini yürüten kod) draw_graph.sh (tüm grafikleri çizer) filter_log_hourly.pl (honeyd.log dosyasını saatlik olarak ayıklar) find_netname.pl (veri tabanında IP adresinin hangi uca ait olduğunu bulur) graph_bar.pl (bar grafiklerini çizer) graph_pie.pl (pie grafiklerini çizer) ip_find_country_daily.sh (saldırı yapan ülkeri günlük bulmak için) ip_find_name_daily.sh (saldırı yapan uçları günlük bulmak için) ip_find_name_hourly.sh (saldırı yapan uçları saatlık bulmak için) ip_parse.pl (honeyd.log dosyasından uç IP adreslerini ayıklar) istatistik.php (Web sayfasını oluştur) kayit.php (Olay kayıtlarını açar) 1 Mayıs Konya 6 Program girdisi : Honeyd Log Kayıtları. 2004-01-07-14:36:58.7132 tcp(6) - 252.214.169.203 2064 192.168.27.180 21: 48 S [MacOS 8.0-8.6 OTTCP] 2004-01-07-16:48:30.1212 tcp(6) S 192.168.21.135 33395 172.162.8.91 80 [Linux 2.6 ] İlk alan olay kaydı ile ilgili zaman bilgisini verir. İkinci alan protokol bilgisini içereri (tcp, udp, icmp vb) Üçüncü alan aşağıdaki argümanları alabilir S yeni bir bağlantı başlangıcı E bağlantı sonu ( bu argümandan sonra honeyd alınan toplam veri miktarını basar) - paket hernangi bir bağlantının parçası değil ise Dördüncü alan sırası ile Kaynak IP , kaynak Port, hedef IP , hedef Port Bundan sonraki kısımlarda: Daha önce açılan bir bağlantının parçası olmayan TCP paketleri için TCP paket büyüklüğü ve TCP flagları basılır. Honeyd yapılandırılmasında desteğinin verilmesi durumunda bağlantı yapan istemcinin işletim sistemi köşeli parentez içinde verilir [ ] 1 Mayıs Konya 7 Program Akış Şeması (1) 1 Mayıs Konya 8 Program Akış Şeması (2) 1 Mayıs Konya 9 Programlar nerden çalıştırılıyor ? Unix cron #### HONEYD #### # Saatlik 0 * * * * (cd /honey/bin ; ./balkupu_run.sh filter_log_hourly_run ) 1 * * * * (cd /honey/bin ; ./balkupu_run.sh ip_parse_hourly_run ) 6 * * * * (cd /honey/bin ; ./ip_find_name_hourly.sh ) 0 * * * * ( cd /honey/bin ; ./balkupu_run.sh clear ) 28 * * * * (cd /honey/bin ; ./draw_graph.sh) 29 * * * * (cd /honey/bin; ./balkupu_run.sh create_case ) # Gunluk 1 0 * * * (cd 0 2 * * * (cd 0 3 * * * (cd 0 5 * * * (cd /honey/bin /honey/bin /honey/bin /honey/bin ; ./balkupu_run.sh filter_log_daily ) ; ./balkupu_run.sh ip_parse_daily_run ) ;./ip_find_name_daily.sh ) ; ./ip_find_country_daily.sh ) 1 Mayıs Konya 10 Honeyd loglarının taşınması 1 Mayıs Konya 11 Syslog-ng Başlığının Ayıklanması (BR.sh honeylog_parse) Apr 29 13:58:27 10.10.10.1 2008-04-29-13:59:24.1299 tcp(6) S 218.229.25.42 4858 193.140.11.12 139 [Windows 2000 ] function honeylog_parse { $PS -wx -o pid,command | $GREP -v grep | $GREP $HONEYD_RAW_LOG_FILE |$AWK '{print $1}'|$XARGS kill $TAIL -f $HONEYD_RAW_LOG_FILE | $AWK -F"$HONEYD_IP " '{print $2}'>> $HONEYD_LOG_FILE & } Daha önceden çalışan proses varsa öldür. Honeyd.ip adresinden sonraki kısmı (10.10.10.1) honeyd.log dosyasına yazdır. 2008-04-29-13:59:24.1299 tcp(6) S 218.229.25.42 4858 193.140.11.12 139 [Windows 2000 ] 1 Mayıs Konya 12 Honeyd.log dosyasının saatlik işlenmesi #!/usr/local/bin/perl $HONEYD_LOG_FILE="/honey/"; $HONEYD_LOG_PATH="/honey/"; $FILE=`date '+%H'` ; $DATE=`date '+%Y-%m-%d-%H'` ; while (defined($satir = <STDIN>)) { chomp($DATE) ; open (HOURLY_FILE,">>$HONEYD_LOG_PATH$FILE") || die "dosya aclimadi" ; if ( $satir =~/^$DATE/) { print HOURLY_FILE $satir;} close (HOURLY_FILE) ; } DATE değişkenine atanan 2008-04-29-14 benzeri bir zaman bilgisini 14 isimli dosyanın altına yazar. 1 Mayıs Konya 13 Üniversite IP adresleri nasıl ayıklanıyor? (Ip_parse.pl) #!/usr/local/bin/perl #Onur BEKTAS onur at ulakbim [.] gov [.] tr #26/09/2007 #24/10/2005 (Modified to use Net::IP::Match ) ## Using an ip array do not work because the source filter is invoked at compile-time, ## http://search.cpan.org/~marcel/Net-IP-Match-0.03/lib/Net/IP/Match.pm use Net::IP::Match ; while (defined($satir = <STDIN>)) { ($a,$b,$c,$ip_address) = split (" ",$satir) ; chomp ($ip_address); $a = __MATCH_IP($ip_address , qw {79.123.128.0/17 193.140.0.0/16 193.255.0.0/16 193.27.0.0/16 80.251.32.0/20 139.179.0.0/16 144.122.0.0/16 155.223.0.0/16 160.75.0.0/16 195.49.216.0/24 212.98.201.0/24 213.208.48.0/21} ); if ($a == 1 ) { print "$satir"} ; } 1 Mayıs Konya 14 Grafikler nasıl çiziliyor ? (1) (Draw_graph.sh,graph_bar.pl [root@dondurma /honey]# more 13.univ.saldiri.txt 582 GATA-NET 104 KARAMAN-NET 40 TRAKYA-NET 33 EGE-NET 21 GIRESUN-NET $CAT $HONEYD_LOG_PATH/$ONEHOURBEFORE.univ.saldiri.txt head -10 | awk '{print $1":"$2" ("$1") "}' > /tmp/$ONEHOURBEFORE.univ.graph.txt [root@dondurma /honey]# more 13.univ.graph.txt 582:193.140.32.10 (GATA-NET) 104:79.123.163.71 (KARAMAN-NET) 40:193.255.153.138 (TRAKYA-NET) 21:79.123.151.79 (GIRESUN-NET) graphbar.pl /tmp/$ONEHOURBEFORE.univ.graph.txt "$DAY [$ONEHOURBEFORE-$HOUR]" $HONEYD_LOG_PATH/ uc-saatlik$ONEHOURBEFORE.png "Saldiri Sayisi" "Uc" 1 Mayıs Konya 15 Grafikler Nasıl Çiziliyor (2) Graph_bar.pl #!/usr/local/bin/perl #Onur BEKTAS onur at ulakbim [nokta] gov [nokta] tr #ULAKNET'e yapilan saldiri istatistigi grafiklari cizim betigi use GD::Graph::bars; use GD::Graph::hbars; use GD::Graph::Data; $stat_dosyasi=$ARGV[0] ; $baslik=$ARGV[1]; $cikti_dosyasi=$ARGV[2]; $x_ekseni=$ARGV[4]; $y_ekseni=$ARGV[3]; if ($#ARGV < 4) {print "Kullanim: \n $0 dosya_adi baslik cikti.png" ; exit(0); } chomp($stat_dosyasi); chomp($baslik); @A="" ; @B="" ; open(STAT,"$stat_dosyasi") || die ("Istatistik Dosyasi @stat =<STAT>; foreach $satir(@stat) { ($saldiri_sayisi,$Uc) = split (/:/, $satir) ; chomp($saldiri_sayisi); chomp($Uc) ; push (@A,$Uc) ; push (@B,$saldiri_sayisi) ; 1 Mayıs Konya } acilamadi !!\n"); 16 Grafikler Nasıl Çiziliyor (3) @data = ([@A],[@B]); my $mygraph = GD::Graph::hbars->new; $mygraph->set( x_label => "$x_ekseni", y_label => "$y_ekseni", title => "$baslik", transparent => 0, logo => csirt.png, logo_position=>UL, bar_spacing => 8, shadow_depth => 0, shadowclr => 'dred', transparent => 0, dclrs => ['#9999CC', '#CCCC66', '#339900', '#990000', '#FFCC33'], boxclr => '#FFFFFF', ) or warn $mygraph->error; my $myimage = $mygraph->plot(\@data) or die $mygraph->error; open (IMG,">$cikti_dosyasi") or die $! ; binmode IMG; print IMG $myimage->png ; 1 Mayıs Konya 17 Çizilen Grafik 1 Mayıs Konya 18 Saldırı yapan ülkeler nasıl bulunuyor ? Geoiplookup Günlük dosyadaki ip adreslerini çıkar $CAT $DAYFILE | awk -F")" '{print $2}' | awk '{print $2}' > /tmp/gunluk.tum.ip.list.tmp.txt Dosyada boş satır varsa sil $GREP -v "^$" /tmp/gunluk.tum.ip.list.tmp.txt > /tmp/gunluk.tum.ip.list.txt Dosyada IP adreslerinin kaç kez geçtiğini saydır $CAT /tmp/gunluk.tum.ip.list.txt | $SORT -n | uniq -c /tmp/gunluk.tum.ip.dagilim.txt > Her bir IP adresini hangi ülkeye ait olduğunu bul for i in `$CAT /tmp/gunluk.tum.ip.dagilim.txt | awk '{print $2}'` ; do $GEOIPLOOKUP $i ; done > /tmp/gunluk.tum.ulke.txt IP adresi dosyası ile ülke dosyasını birleştir $PASTE /tmp/gunluk.tum.ip.dagilim.txt /tmp/gunluk.tum.ulke.txt > /tmp/gunluk.ulke.merge.txt Sonuçları en çok saldırı yapan en üstte olacak şekilde diz. $CAT /tmp/gunluk.ulke.merge.txt | $SORT -rn > $DAYFILE.gunluk.ip.ulke.txt 1 Mayıs Konya 19 Olay Kaydı nasıl açılıyor ? [root@dondurma ~/honey]$ more 13.univ.ip.dagilim.txt 582 193.140.32.10 GATA-NET 104 79.123.163.71 KARAMAN-NET 40 193.255.153.138 TRAKYA-NET function create_case { for i in `$CAT $HONEYD_LOG_PATH/$ONEHOURBEFORE.univ.ip.dagilim.txt | $AWK '{ if ($1 > 50) print ; }' | $AWK '{print $2}'` ; do echo -n "IPADRESI $i " grep $i $HONEYD_LOG_PATH/$ONEHOURBEFORE.univ.ip.dagilim.txt| awk '{print $1}' grep $i $HONEYD_LOG_PATH/$ONEHOURBEFORE | tail -50 ; done > $CASE_FILE } 1 Mayıs Konya 20 Üniversite Sunucuları,Kritik IP adreslerinin bulunması #!/bin/bash ### Universiter icin mx , ns ,www , ftp sunucu bulma betigi # Onur BEKTAS # onur at ulakbim nokta gov nokta tr rm -f uni_web.htm edudomain ns nstmp nsip mx mxip wwwip ftpip mergetmp mergeip wget -c http://www.yok.gov.tr/universiteler/uni_web.htm grep -i edu.tr uni_web.htm | awk -Fhref\=\" '{print $2}' | awk -F\" '{print $1}' | sed 's/\/$/ /g' | sed 's/http:\/\/www\.//g' > edudomain ## NS for i in `cat edudomain` ; do host -t ns $i ns4.nic.tr | grep "name server" | awk '{print $NF}' | grep -v ulakbim.gov.tr | grep -v ulak.net.tr | sed 's/.$//g' ; done > nstmp cat nstmp | sort | uniq > ns for i in `cat ns` ; do host $i | grep "has address" | awk '{print $1":"$NF}'; done >nsip #### MX for i in `cat edudomain` ; do host -t mx $i ns1.ulakbim.gov.tr | grep "mail is handled" | awk '{print $NF}' | sed 's/\.$//g' ; done > mx for i in `cat mx` ; do host $i | grep "has address" | awk '{print $1":"$NF}'; done >mxip ### WWW for i in `cat edudomain` ; do host www.$i | grep -i "has address" | awk '{print $1":"$NF}' ; done > wwwip ### FTP for i in `cat edudomain` ; do host ftp.$i | grep -i "has address" | awk '{print $1":"$NF}' ; done > ftpip ### Sonuc IP adresleri topla dosyaya yaz for i in `cat ftpip mxip nsip wwwip` ; do echo $i | awk -F: '{print $2}' ; done > mergetmp cat mergetmp | sort | uniq > mergeip 1 Mayıs Konya 21 Program çıktıları Saatlik 1. 2. En çok saldırı yapan 10 ULAKNET IP’sinin hangi uca bağlı oldukları. En çok saldırı gerçekleştiren ilk 10 ULAKNET ucu Günlük 1. 2. 3. Saldırı yapan ülke dağılımı (Ip sayısına göre,Günlük) Saldırı yapan ülke dağılımı (Saldırı sayısına göre,Günlük) Saldırı yapan IP/Ülke dağılımı (En çok saldırı yapan 10 IP adresinin hangi ülkere ait olduğu) 1 Mayıs Konya 22 İstatistikler I KRİTER 1. ÇALIŞMA 2. ÇALIŞMA 1-31 Aralık 5-25 Nisan 31 20 16.384 Mbyte 10.930 Mbyte 212.027.893 140,296,193 1.699.529 420.611 6445 1691 Zaman Aralığı Toplam Gün Dosya Büyüklüğü Satır Sayısı Tekil IP Adresi Uç Tekil IP Adresi 1 Mayıs Konya 23 Gün Toplam Satır Uç Oran % Gün Tekil IP Uç Oran % 5 5562561 4777 0.085878 5 26134 37 0.141578 6 4506343 6485 0.143908 6 26743 24 0.089743 7 4409523 8649 0.196144 7 24490 99 0.404247 8 3654037 47875 1.310195 8 26279 74 0.281594 9 5894750 13777 0.233716 9 20914 46 0.219948 10 7708705 5404 0.070103 10 17127 32 0.186839 11 3126412 238834 7.639236 11 24325 50 0.20555 12 4088757 66432 1.624748 12 29349 23 0.078367 13 3856105 24143 0.626098 13 25205 15 0.059512 14 4980937 12492 0.250796 14 26024 58 0.222871 15 8435152 4785 0.056727 15 12741 32 0.251158 16 8626482 9417 0.109164 16 12223 62 0.50724 17 8640096 2923 0.033831 17 10901 47 0.431153 18 8360083 8973 0.107331 18 30570 194 0.634609 19 8582547 2329 0.027136 19 17879 80 0.447452 20 8205534 10728 0.130741 20 46488 631 1.35734 21 8216414 6722 0.081812 21 28146 278 0.987707 22 2202398 4040 0.183436 22 7445 18 0.241773 23 1241820 1693 0.136332 23 5908 7 0.118483 24 2764946 1450 0.052442 24 5201 18 0.346087 25 5569973 24834 0.445855 25 10129 80 0.789811 506762 0.427166 Toplam 118633575 1 Mayıs Konya 24 İstatistikler II En çok saldırı yapan 10 ULAKNET IP Adresi 193.140.211.92 (BOUNET) 193.140.211.213 (BOUNET) 193.140.32.10 (GATA-NET) 193.140.211.77 (BOUNET) 193.140.211.2 (BOUNET) 79.123.163.71 (KARAMAN-NET) 193.140.211.127 (BOUNET) 193.140.208.84 (BOUNET) 79.123.173.136 (KASTAMONU-NET) 0 50000 1 Mayıs Konya 100000 150000 200000 250000 25 İstatistikler III En Çok Saldırı Yapan 10 IP Adresi (Tüm) 194.67.52.195 (Rusya) 222.211.145.40 (Çin) 61.150.81.14 (Çin) 79.118.48.120 (Romanya) 195.95.228.1 (Romanya) 79.175.227.136 (Polonya) 58.147.70.34 (Tayland) 58.194.127.62 (Çin) 1 Mayıs Konya 18000000 16000000 14000000 12000000 10000000 8000000 6000000 4000000 2000000 0 212.224.127.14 (Almanya) 26 İstatistikler IV En Çok Saldırı Yapan 10 Ülke İtalya İngiltere Türkiye ABD Rusya Bilinmeyen Romanya Polonya Almanya Çin 0 5000000 10000000 1 Mayıs Konya 15000000 20000000 25000000 30000000 27 İstatistikler V IP Sayısına Göre İlk 10 Ülke İngiltere İtalya Romanya Kanada Almanya Fransa Türkiye İspnaya ABD Çin 0 20000 40000 60000 1 Mayıs Konya 80000 100000 120000 140000 28 Sonrası.. Uçlarda balküpü ağlarının kurulması Saldırı kayıtları honeywall üzerinde çalışan snort ile birlikte gönderililebilir Saldırı yapan IP adreslerinin spoof olup olmadığı flow kayıtlarından kontrol edilebilir. Bunları yapacak: bash,perl,awk,sed,php bilen insanlara ihtiyacımız var. 1 Mayıs Konya 29 Referanslar,Eski çalışmalar Nepenthes, Honeytrap Balküpü Kurumları ve Yapılandırılma CSRT Viki, Onur BEKTAŞ Koray Üçtop ,Honeyd Kurulumu Belgesi http://csirt.ulakbim.gov.tr/dokumanlar/honeyd_kurulum.pdf HoneyWall Kurulumu , Murat Soysal-Onur BEKTAŞ http://viki.csirt.ulakbim.gov.tr/index.php/Wg02-honeypot http://csirt.ulakbim.gov.tr/dokumanlar/HoneyWall.pdf ULAKNET Ağ Saldırı Tespit Sitemi,Akademik Bilişim 2008,Onur BEKTAŞ- Murat Soysal http://csirt.ulakbim.gov.tr/dokumanlar/Balkupu.AB2008.pdf 1 Mayıs Konya 30 Teşekkürler + Sorular ? 1 Mayıs Konya 31
Benzer belgeler
ürün listemizi görmek için tıklayınız.!
BIFA GOFRET BITTER*38GR*24 954
BIFA GOFRET KOKOLIN KAPL.24*23GR - 1798
BIFA GOFRET SUTLU CIKOLATA 24*38GR-953
BIFA KEK ALEO VANILYA VISNE 50GR*24 4096
BIFA KEKS DONUT 50*24(4108)
BIFA KEKS KAKAO 24...