Argus kelimesi yüzlerce gözü olan bir mitolojik Yunan tanrısının adından gelmektedir. Argus, ağ trafiğini kapsamlı olarak denetlemek için tasarlanmış bir gerçek zamanlı ağ akış monitörü uygulamasıdır. Argus açık kaynak kodludur ve server-client olmak üzere iki bileşenden oluşmaktadır.
Argus Kurulumu
Argus kurulumunu Kali 2018.v1 dağıtımı üzerinde kaynak kodundan derleyerek gerçekleştireceğiz. Öncelikle kaynak indirilmesi bir kaç gerekli paketin kurulması ve son olarak da Argus kaynak kodlarının derlenmesi ve kurulması etapları aşağıdaki gibi gerçekleştirilir. Bu komutlar yardımıyla kurulumu sorunsuz şekilde gerçekleştirebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 |
# Sunucu kurulumu wget http://qosient.com/argus/src/argus-3.0.8.1.tar.gz tar -zxvf argus-3.0.8.1.tar.gz cd argus-3.0.8.1/ # gerekli paketlerin kurulumu apt-get update apt-get install bison apt-get install libpcap-dev # kaynak kodun derlenmesi ve kurulum ./configure make make install |
1 2 3 4 5 6 7 |
# İstemci kurulumu wget http://qosient.com/argus/src/argus-clients-3.0.8.tar.gz tar -zxvf argus-clients-3.0.8.tar.gz argus-clients-3.0.8/ ./configure make make install |
Not: Ubuntu 16.04 dağıtımında paket olarak gelmektedir fakat eski versiyonu olduğu için yeni eklenen özellikler bu versiyonda yoktur. O yüzden güncel sürümünün kurulması daha iyi olacaktır.
Argus aracının en önemli özellikleri büyük miktarda veriyi verimli bir şekilde depolayabilme, bu verileri hızlıca işleyebilme ve analiz edebilme kabiliyetine sahiptir. Bunun yanı sıra her bir akışın paket dinamiklerini ve semantiğini istatistiksel işlemler yaparak yakalar. Bu açıdan, Argus aracı, ağ güvenliği yönetiminde ve ağ adli analizinde kullanılabilir.
Argus sunucu bileşeni canlı trafikten ya da kayıtlı pcap dosyalar üzerinde işlem yaparak ilgili bileşenleri binary olarak kaydeder. Bu bileşenin bir yapılandırma dosyasına ihtiyaç duyar. Aşağıda örnek bir yapılandırma verilmiştir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
ARGUS_FLOW_TYPE="Bidirectional" # ARGUS_FLOW_TYPE="Unidirectional" ARGUS_FLOW_KEY="CLASSIC_5_TUPLE" #ARGUS_DAEMON=no ARGUS_MONITOR_ID=`hostname` ARGUS_ACCESS_PORT=561 #ARGUS_CAPTURE_FULL_CONTROL_DATA=no ARGUS_CAPTURE_FULL_CONTROL_DATA=yes ARGUS_SET_PID=yes ARGUS_PID_PATH="/var/run" #ARGUS_FLOW_STATUS_INTERVAL=5 ARGUS_FLOW_STATUS_INTERVAL=3600 ARGUS_MAR_STATUS_INTERVAL=60 ARGUS_DEBUG_LEVEL=0 ARGUS_GENERATE_RESPONSE_TIME_DATA=yes ARGUS_GENERATE_PACKET_SIZE=yes ARGUS_GENERATE_JITTER_DATA=yes ARGUS_GENERATE_MAC_DATA=yes ARGUS_GENERATE_APPBYTE_METRIC=yes ARGUS_GENERATE_TCP_PERF_METRIC=yes ARGUS_GENERATE_BIDIRECTIONAL_TIMESTAMPS=yes ARGUS_CAPTURE_DATA_LEN=300 |
Buradaki yapılandırma dosyasındaki en önemli iki anahtara biraz değinelim.
- ARGUS_FLOW_TYPE anahtarı ağ akışının tipini belirler. Bilindiği gibi ağ akışı “Bidirectional” ve “Unidirectional” olmak üzere ikiye ayrılır.
- Unidirectional: Ağ akışının iki ucu arasındaki kaynak ve hedef noktalar için ayrı ayrı flow kayıdı oluşturulur. Yani A <-> B arasındaki bağlantıda hem A->B’ye bir ağ akışı hem de B->A’ya bir ağ akışı oluşturulur.
- Bidirectional: Ağ akışının iki ucu arasındaki kaynak ve hedef noktalar için tek bir ağ kaydı oluşturulur.
- ARGUS_FLOW_STATUS_INTERVAL anahtarı ağ akışında belirtilen süre içerisinde periodik olarak flow kaydı oluşturur. Böylelikle çok uzun ömürlü akışların aktivitesine daha net ve anlamlı göz atılmış olunabilir.
Yukardaki yapılandırma dosyası argus.conf adında kaydedilip. Aşağıdaki gibi öncelikle bir pcap dosyası indirilerek daha sonra argus sunucunun bunu işleyip binary olarak test.argus dosyasına kaydetmesi sağlanır.
wget https://mcfp.felk.cvut.cz/publicDatasets/CTU-Malware-Capture-Botnet-50/normal-capture-20110817.pcap –no-check-certificate argus -F argus.conf -r normal-capture-20110817.pcap -w test.argus
İstemci bileşeninin de analiz edilen ve kaydedilen binary dosydan istenilen verileri elde etmek için aşağıdaki gibi bir yapılandırma kullanılabilir.
1 2 3 4 5 6 7 8 9 |
#RA_FIELD_SPECIFIER= srcid seq stime ltime dur sstime sltime sdur dstime dltime ddur srng drng trans flgs avgdur stddev mindur maxdur saddr dir daddr proto sport dport sco dco stos dtos sdsb ddsb sttl dttl shops dhops sipid dipid pkts spkts dpkts bytes sbytes dbytes appbytes sappbytes dappbytes load sload dload rate srate drate loss sloss dloss ploss sploss dploss senc denc smac dmac smpls dmpls svlan dvlan svid dvid svpri dvpri sintpkt dintpkt sintpktact dintpktact sintpktidl dintpktidl sintpktmax sintpktmin dintpktmax dintpktmin sintpktactmax sintpktactmin dintpktactmax dintpktactmin sintpktidlmax sintpktidlmin dintpktidlmax dintpktidlmin jit sjit djit jitact sjitact djitact jitidl sjitidl djitidl state deldur delstime delltime dspkts ddpkts dsbytes ddbytes pdspkts pddpkts pdsbytes pddbytes suser:1500 duser:1500 tcpext swin dwin jdelay ldelay bins binnum stcpb dtcpb tcprtt synack ackdat inode smaxsz sminsz dmaxsz dminsz #RA_FIELD_DELIMITER=',' RA_FIELD_SPECIFIER= stime dur sdur ddur state pkts spkts dpkts RA_PRINT_LABELS=0 RA_USEC_PRECISION=6 #RA_PRINT_NAMES=0 RA_TIME_FORMAT="%Y/%m/%d %T.%f" |
Yapılandıma dosyası ra.conf olarak kaydedilip aşağıdaki gibi çalıştırılabilir.
ra -F ra.conf -r test.argus | head -5
Örnek olması açısından sadece ilk 5 çıktı ekranda gösterilmiştir. ra.conf içerisinde istediğiniz alanları aktif edip analizinizi kişiselleştirebilirsiniz. Bir sonraki yazımızda bu alanları özellik olarak kullanan makina öğrenmesi algoritmaları aracılığıyla ağ protokollerinin tespit ve sınıflanmasını işleyeceğiz. Bir sonraki yazıda görüşmek üzere.
Kaynaklar:
http://argus.tcp4me.com/install.html