Argus(Audit Record Generation and Utilization System) ileri seviye network analizi yapan açık kod bir araçtır. İstemci ve sunucu olarak iki ayrı bilesenden oluşur.
Sunucu bileşeni ağ üzerinden yakaladığı trafiği analiz edip binary olarak kaydeder veya doğrudan istemci bileşenine aktarabilir.
Argus istemci ise sunucudan aldığı girdiyi analiz eder. Argus server mirror trafik , pcap dosyası veya netflow’dan veri okuyarak analiz yapabilmektedir.
Argus yeni protokollere hızlı bir şekilde adapte olan 10 yıldır geliştirilen bir yazılımdır.
Argus hedef trafik üzerinde gelişmiş filtreleme seçeneklerine sahiptir. Herhangi bir parametre verilmeksizin çalıştırılırsa eth0 arabirimini dinleyerek tüm veriyi kaydeder.
root@bt:~# argus -w tum_data
Argus örnekleri
Argus sunucu ve istemcileri için -r parametresi ile dosyadan veri okumayı gosterir
Argus sunucu ham veri okurken istemciler argus sunucunun verilerini okuyabilir.
#argus -r argus_server_icin.pcap -w argus_client
root@bt:~# ra -r argus_client
Direk ethernete gelen veriyi okumak istendiğinde , öntaımlı argus eth0 i dinleyerek calisir
Aşağıdaki komut ile eth1 i dinlemesi sağlanabilir.
root@bt:~# argus -i eth1 -w net_77
argus[18397]: 29 Jul 10 18:48:00.219096 started
argus[18397]: 29 Jul 10 18:48:00.219477 ArgusGetInterfaceStatus: interface eth1 is up
Aşağıdaki örnekte , argus sunucu , herhangi bir filtreleme yapmadan eth1 gelen trafiği , argus istemcinin okuyabileceği formatta net_77 dosyasına kaydediyor .
root@bt:~# argus -i eth1 -w net_77
root@bt:~# ra -r net_77 |more
15:09:07.907516 e s esp 11.22.33.44 -> 11.22.33.44.0x0c1* 424 381008 INT
15:09:08.110395 e esp 11.22.33.44 -> 11.22.33.44.0x5ae* 321 325798 INT
15:09:07.910347 e s tcp 11.22.33.44.48078 <?> 94.245.127.43.https 269 51571 CON
15:09:08.111925 e esp 11.22.33.44 -> 11.22.33.44.0×243* 283 45618 INT
15:09:08.114929 e esp 11.22.33.44 -> 11.22.33.44.0xc33* 7 2650 INT
15:09:07.915032 e s esp 11.22.33.44 -> 11.22.33.44.0x56c* 311 77258 INT
15:09:08.116565 e esp 11.22.33.44 -> 11.22.33.44.0x7b6* 4 920 INT
15:09:08.114184 e esp 11.22.33.44 -> 11.22.33.44.0x30d* 480 555568 INT
15:09:08.117813 e esp 11.22.33.44 -> 11.22.33.44.0x8e9* 48 11760 INT
15:09:07.911239 e tcp 11.22.33.44.www <?> 11.22.33.44.28682 295 280935 CON
15:09:07.907756 e s esp 11.22.33.44 -> 11.22.33.44.0x88d* 359 107050 INT
Aşağıdaki örnekte argus kaydedilen trafiği okuyarak bir argus istemci olan racluster’a girdi olarak veriyor.
racluster istemci ve sunucu arasındaki tüm trafiği port bağımsız olarak tek satırda toplar ve yine bir argus istemci olan rasort yazılımına verir. Rasort birçok sıralama kriteri bulunan bir argus client yazılımıdır. Aşağıdaki örnek te en fazla veri transferine göre istemci sunucu çiftlerini listeler.
rasort –help menusunden sıralam kriterleri görülebilir.
root@bt:~# argus -r port_80 -w – |racluster -m matrix -w – |rasort -m bytes |head -10
12:33:05.316320 e ip 11.22.33.44 <-> 84.51.18.163 23105 25059939 CON
12:33:05.314842 e ip 11.22.33.44 <-> 193.206.140.34 16250 15702651 CON
12:33:05.314470 e ip 11.22.33.44 <-> 77.72.184.33 10115 10715968 CON
12:33:05.320042 e ip 11.22.33.44 <-> 83.66.15.138 8118 8836581 CON
12:33:46.320669 e ip 11.22.33.44 <-> 195.95.193.16 6448 6150899 CON
12:33:05.354095 e ip 11.22.33.44 <-> 83.66.140.10 6363 5134069 CON
12:33:05.335623 e ip 11.22.33.44 <-> 195.234.52.80 6957 5043303 CON
12:33:05.760453 e ip 11.22.33.44 <-> 88.255.168.83 5060 4879868 CON
12:33:17.819516 e ip 77.72.184.58 <-> 77.79.108.82 3238 3612957 CON
12:33:05.531533 e ip 11.22.33.44 <-> 94.75.253.173 3791 3186203 CON
Kaynak ip bazlı, en fazla veri transferi yapan ilk 10 ip
root@bt:~# racluster -M rmon -m saddr -r net_77 -w – – ip | rasort -m bytes -s saddr bytes |head -10
11.22.33.44 878147223
11.22.33.44 686936864
11.22.33.44 142340585
11.22.33.44 129783932
195.234.52.80 116004786
11.22.33.44 42923014
62.244.214.22 42170662
212.58.2.211 38119666
85.105.27.117 29664516
83.66.15.138 27507330
En fazla paket gönderen ilk 10 ip adresi
root@bt:~# racluster -M rmon -m saddr -r net_77 -w – – ip | rasort -m pkts -s saddr pkts |head -10
11.22.33.44 1211197
11.22.33.44 962912
11.22.33.44 357568
11.22.33.44 289999
195.234.52.80 161004
11.22.33.44 122575
88.255.31.98 56154
212.58.2.211 54285
11.22.33.44 43832
62.244.214.22 40244
Belli bir host un belli bir portuna giden trafiği kaydetmek için aşağıdaki gibi komut girilir
#argus -i eth1 -w dst_11.22.33.44_port_80_file – tcp and dst port 80 and ip and dst 11.22.33.44
# ra -r dst_11.22.33.44_port_80_file |more
20:30:16.484743 e tcp 213.211.31.112.1047 ?> 11.22.33.44.www 2 900 CON
20:30:16.702024 e tcp 212.175.32.126.5478 ?> 11.22.33.44.www 33 14105 CON
20:30:16.475614 e tcp 78.180.207.102.2761 ?> 11.22.33.44.www 1 60 CON
20:30:16.475704 e tcp 194.54.40.173.2192 ?> 11.22.33.44.www 1 60 CON
20:30:16.475860 e tcp 88.240.217.53.3443 ?> 11.22.33.44.www 1 60 CON
20:30:16.476951 e tcp 212.156.145.246.19704 ?> 11.22.33.44.www 2 1226 CON
20:30:16.483686 e tcp 92.45.235.97.2063 ?> 11.22.33.44.www 1 60 CON
20:30:16.484686 e tcp 194.27.14.239.49215 ?> 11.22.33.44.www 2 1165 CON
20:30:16.488325 e tcp 85.97.128.238.37428 ?> 11.22.33.44.www 59 3540 CON
20:30:16.490779 e tcp 88.249.61.141.1117 ?> 11.22.33.44.www 2 1356 CON
20:30:16.495398 e tcp 88.224.184.137.55918 ?> 11.22.33.44.www 3 1234 CON
20:30:16.497452 e tcp 212.253.69.30.1329 ?> 11.22.33.44.www 32 13389 CON
20:30:16.499386 e tcp 88.247.220.208.23143 ?> 11.22.33.44.www 5 1938 CON
Bunun yanında binary dosyaya tum gelen trafiği yazıp okurken ra aracılığı ile filtreleme yapabiliriz
root@bt:~# ra -r net_77 – dst port 80 -n |more
79 dan büyük 444 ten küçük prtları listelemek için
# ra -r net_77 – dst port gt 79 and dst port lt 444 -n |more
Argus çıktısında son sütun bağlantının durumunu gösterir . Bağlantının birçok durumu olabilir bağlantı kurulmuş olabilir , başlatılıyor olabilir, bitiriliyor olabilir, bitirmek veya başlatmak iin karşıdan bir cevap bekleniyor olabilir bu şekilde argusta 20 ye yakın durum bildirimi vardır .
Trafiğimizdeki durum istatistiğini alabilmek için için linux bash programlamadan yardım alabiliriz .
Argus un tarafından trafik için dosya oluşturmasını sağlamalıyız , bunu yaparken amacımız zamanla durum değerlerinin değişiklerini gözlemlemek olduğu için argus u deomon modunda -d parametresi ile çalıştırmalıyız
argus -i eth1 -w durum_kayit -d
Argus bu aşamadan sonra durum_kayit dosyasina verileri kaydeder ve arka planda deomon olarak çalışır
Gerekli process öldürülmeden kayıt devam eder
Kaydedilen dosyadaki durumların istatisitğini 10 sn lik aralıklarla ekrana basan bir script yazılıp bağlantı durumlarındaki değişmeler incelenebilir .
Script :
root@bt:~# cat karsilastirma
#!/bin/bash
while true ;
do
ra -r /root/durum_kayit -nn – |awk ‘{print $NF}’ |sort |uniq -c |sort -nr > durum
cat durum
echo ” —————–”
rm -rf /root/durum_kayit
sleep 10
done
root@bt:~# ./karsilastirma
—————–
1859 CON
1146 FIN
994 RST
668 INT
41 REQ
14 URFIL
13 ECO
3 ACC
1 URP
1 URH
1 TXD
1 RSP
1 CLO
—————–
bu noktada hping3 -S 11.22.33.44 –rand-source –flood -p 80 9819 ACC syn flood yapıldı ve bağlantı durumlarındaki değişiklik görüldüğü gibidir.
3549 REQ
1861 CON
912 FIN
738 RST
655 INT
19 URFIL
18 ECO
1 URP
1 URH
Argus hakkında detaylı bilgi için http://nsmwiki.org/index.php?title=Argus adresi incelenebilir.