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

REFERENCES

REFERENCES Pitch control system installation from DCS to Plt.6 6E-204A fans

Detaylı

ürün listemizi görmek için tıklayınız.!

ü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...

Detaylı