Her sene düzenlenen Linux Yaz Kampı'nda BilgiO ekibi olarak hem sponsor olduk hem de 4 eğitmenle katıldık. Anlatmak için önerdiğimiz konular arasından seçilen Bilgi Güvenliğine Giriş hakkında konuşmak bana düştü ve 12 Ağustos 2015'de Linux 2 sınıfında dersi gerçekleştirdik.
Toplamda 8 saat süren eğitimde amaç hem Bilgi Güvenliği'ne giriş anlamında çerçeve çizmek hem de somut ve gerçek hayattan örneklerle Bilgi Güvenliği'nin savunma bacağında farkındalığı arttırmak olarak kararlaştırılmıştı. Sınıfın seviyesi Linux 2 olduğu için sabah saatlerinde ilk iş olarak tüm katılımcılardan gün boyunca kendi laptoplarında promiscious mode'da packet capture yapmalarını rica ettim. Diske kayıt ettiğimiz pcap dosyalarını akşam 19:00'dan itibaren açıp inceleyeceğimiz bilgisini de paylaşarak.

Bolu Abant İzzet Baysal Üniversitesi'nin sağladığı misafir kablosuz ağına bağlı sınıftaki laptoplar arasında gün boyunca çeşitli port scan teknikleri de deneyerek bu trafik loglarında hem organik trafik hem de kasıtlı üretilmiş aktiviteleri biriktirdik.

Hem Linux Yaz Kampı notlarımızı katılımcılarla paylaşmak, hem de Bro ile network analizine giriş yapmak adına sınıfta topladığımız pcap dosyalarının kasıtlı ve rastlantısal olarak ağda gözümüze çarpan garipliklerin kaba bir analizini bu yazıyla yayınlıyoruz.
Paketlerin toplanması

Sabah saatlerindeki ilk dersimizde öncelikle katılımcılardan makinalarına tcpdump, ngrep, nmap, bro ve wireshark yüklemelerini istedim. Bu yazılımlardan wireshark haricinde diğerleri sadece konsoldan çalıştırılabilen uygulamalar. Yaz kampında topladığımız pcap dosyaları üzerinde analiz yapmadan önce paketleri nasıl topladığımızı da açıklayalım. Konsol üzerinden paketleri toplamak için öncelikle sistemde aktif kullanımda olan network kartının belirlenmesi iyi olur. Bunun için :

scription">PHP- Kodu:
atmaca:~ ***nbsp;cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
face 
|bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
docker0
:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
wlp1s0
293903917  256679    0    0    0 316426          0         0 28499235  188617    0    0    0     0       0          0
   lo
566373478 3958227    0    0    0     0          0         0 566373478 3958227    0    0    0     0       0          0
vboxnet0
:       0       0    0    0    0     0          0         0    67076     261    0    0    0     0       0          0[LEFT][/LEFT


Linux sisteminde bir çok durum ve değer, ara bir yazılım kullanımına gerek kalmaksızın /proc ve /sys dosya sistemlerinden öğrenilebilir. /proc/net/dev'e bakarak en çok trafiğin wlp1s0 adlı interface'den yapıldığını görebiliyoruz. Bu interface üzerinde akan tüm trafiği alıp tcpdump kullanarak diske yazacağız. Hem analizi kolaylaştırması, hem de disk alanını daha doğru yönetebilme adına tcpdump'la kayıt ederken 200MBlik dosyalar halinde parçalara bölmesini ve sıkıştırmasını istiyoruz. Bunun için :

description">PHP- Kodu:
atmaca:/mnt/pcap ***nbsp;tcpdump -i wlp1s0 -C 200M -z gzip -w atmaca.pcap -p -s 0
tcpdumplistening on wlp1s0link-type EN10MB (Ethernet), capture size 262144 bytes[LEFT][/LEFT


yazmamız yeterli. Parametrelerin açıklmaları :
- -i wlp1s0 : Hangi network kartından dinleme yapmak istediğimizi belirliyoruz.
- -C 200M : 200M lik dosyalar halinde diskde dosyalar oluşturulması
- -z gzip : Oluşturulan dosyaları, dosya kapatıldıktan sonra diskte az yer kaplaması için gzip ile sıkıştırılması
- -w atmaca.pcap : Oluşturulacak olan dosya adı
- -p : Dinleme yapılan network kartının kendisine gönderilmeyen kabloda geçen tüm paketleri yakalamasını (tcpdump varsayılan mode'u bu)
- -s 0 : Paket içeriğinin tümüyle kayıt edilmesi. Dilenirse bu diske yazılan datayı azaltmak için 0 yerine 64 gibi hedef protokole göre değişen bir miktar belirtilebilir. (tcpdump varsayılan değer zaten 0)

Yukarıdaki tcpdump komutunu kabaca sabah 10:00'dan itibaren akşam 19:00'a kadar sınıftaki tüm katılımcı makinalarında çalıştırdık. Öğlen 14:00'den itibaren olan seans boyunca da sınıftaki katılımcı IP'leri arasında ve wifi ile bağlı bulunan subnet'ler üzerinde nmap ile TCP ve UDP port scan teknikleri denedik.
Günün en son seansında 19:00'a geldiğimizde, katılımcı bilgisayarlarında aşağı yukarı aynı miktarlarda data birikeceğini varsaydık, ancak ne kadar data biriktirdiklerini sorduğumuzda gelen tablo yanıldığımızı ortaya çıkardı. Birkaç katılımcının bilgisayarındaki data miktarı 200 MB'nin altındaydı çünkü tcpdump komutu kesintiye uğramıştı. Çoğu katılımcıda biriken data 500-600 MB civarındaydı ki bu miktar katılımcıların gün boyunca zamanlarının büyük bir kısmını dersi dinleyerek, arka tarafta download ya da surf yapmadan geçirdiklerinden dolayı normal gözüküyordu. Ancak 2 katılımcıda 6 - 7 GB boyutunda data birikmişti. Fazla miktarda data biriken katılımcılardan bir tanesi BilgiO da bu yaz stajyer olarak yer aldığından ilk ona yöneldim ve gün boyu ne tür aktiviteler yaptığını sordum. Makinasında Fedora yüklüydü ve ne o kadar data oluşturacak download yapmıştı ne de internette gezmişti.
Tablo garip olduğu için bir USB anahtarda biriken 7 GB'lik datanın kabaca 2.3 GB'ini sunum için kullandığım kendi bilgisayarıma aktardım. Buradaki analiz çalışması hem derste hem de sonrasında gerçekleştirdiğim kaba analizi özetliyor.
Paketlerin birleştirilmesi

Birikecek paketlerin miktarını önden bilemediğimzden ötürü 200 MB'lik küçük parçalar halinde oluşturmuştuk. Ancak 2.3 GB boyutu 8G Ram'li bir makina için Wireshark'la açılıp analiz edilebilecek limitlerde olduğu için birleştirebilir kıvamda. Gelen dosyaların isimleri deneme.pcap, ... , deneme.pcap11 şeklindeydi, toplamda 12 dosya. Bu bölümde kullanacağımız konsol uygulamalarının tümü aslında bir grafik arayüz olan Wireshark uygulamasıyla birlikte geliyor. Paketleri birleştirmek için Wireshark'la gelen şu komutu çalıştırdık :

PHP- Kodu:
atmaca:/mnt/pcap/lyk ***nbsp;mergecap -F pcap -w lyk.pcap deneme.pcap*[LEFT][/LEFT] 


Bu komut sonunda diziminiz :

PHP- Kodu:
atmaca:/mnt/pcap/lyk ***nbsp;ls -goh
total 4.5G
-rw-r--r-- 1 191M Aug 12 11:12 deneme.pcap
-rw-r--r-- 1 191M Aug 12 12:23 deneme.pcap1
-rw-r--r-- 1 191M Aug 12 14:42 deneme.pcap10
-rw-r--r-- 1 191M Aug 12 14:51 deneme.pcap11
-rw-r--r-- 1 191M Aug 12 12:33 deneme.pcap2
-rw-r--r-- 1 191M Aug 12 13:06 deneme.pcap3
-rw-r--r-- 1 191M Aug 12 13:26 deneme.pcap4
-rw-r--r-- 1 191M Aug 12 13:34 deneme.pcap5
-rw-r--r-- 1 191M Aug 12 13:44 deneme.pcap6
-rw-r--r-- 1 191M Aug 12 13:52 deneme.pcap7
-rw-r--r-- 1 191M Aug 12 14:03 deneme.pcap8
-rw-r--r-- 1 191M Aug 12 14:24 deneme.pcap9
-rw-r--r-- 1 2.3G Aug 16 16:00 lyk.pcap[LEFT][/LEFT


yukarıda görüldüğü gibi 2.3G boyutunda yeni bir pcap dosyasında tüm pcap'leri birleştirdik. mergecap uygulaması okuduğu dosyalardaki trafik bilgisini zamana göre sıralayarak yeni dosya oluşturmalı ancak bu her zaman mümkün olmuyor. Yeni oluşan dosya içerisindeki paket istatistikleri, hangi zaman dilimine ait veriyi barındırdığının bilgisini almak için :

PHP- Kodu:
atmaca:/mnt/pcap/lyk ***nbsp;capinfos -A lyk.pcap
File name:           lyk.pcap
File type
:           Wireshark/tcpdump/... - pcap
File encapsulation
:  Ethernet
Packet size limit
:   file hdr65535 bytes
Number of packets
:   1932 k
File size
:           2400 MB
Data size
:           2369 MB
Capture duration
:    15055 seconds
Start time
:          Wed Aug 12 10:40:05 2015
End time
:            Wed Aug 12 14:51:00 2015
Data byte rate
:      157 kBps
Data bit rate
:       1258 kbps
Average packet size
1225.93 bytes
Average packet rate
128 packets/sec
SHA1
:                277a007b83dacf48ce6aa5a793ea6806fcd5fc08
RIPEMD160
:           c8d5c2ca561cc0163e3c67ecb55a1843e4ada59c
MD5
:                 aa680288a6722916aa0236268a596371
Strict time order
:   False[LEFT][/LEFT


capinfos uygulamasının belirttiği gibi "Strict time order: False" yani zaman sıralamasına uymamış frame'lere rastlanmış. Bu tek seferlik analiz gerçekleştirilecek dosyalarda çok önemli olmayabilir, ancak detaylı analiz gerçekleştirilecekse zaman sıralamasının düzgün olması analizi hızlandıracaktır. Sıralamayı düzeltmek için :

PHP- Kodu:
atmaca:/mnt/pcap/lyk ***nbsp;reordercap lyk.pcap lyk.pcap2[LEFT][/LEFT] 


PHP- Kodu:
1932492 frames1 out of order[LEFT][/LEFT


Zaman sırası düzeltilmiş yeni bir dosya oluşturduk, doğrulamak için :

PHP- Kodu:
atmaca:/mnt/pcap/lyk ***nbsp;capinfos -A lyk.pcap2
File name:           lyk.pcap2
File type
:           Wireshark/tcpdump/... - pcap
File encapsulation
:  Ethernet
Packet size limit
:   file hdr65535 bytes
Number of packets
:   1932 k
File size
:           2400 MB
Data size
:           2369 MB
Capture duration
:    15055 seconds
Start time
:          Wed Aug 12 10:40:05 2015
End time
:            Wed Aug 12 14:51:00 2015
Data byte rate
:      157 kBps
Data bit rate
:       1258 kbps
Average packet size
1225.93 bytes
Average packet rate
128 packets/sec
SHA1
:                9574040a3e0c2f7c94f7226a0f8f56132dc981fd
RIPEMD160
:           02b86bf3d5afc30e84fdb32f7a29186ad8453c02
MD5
:                 6fed732987ba7245c56897c2e34455f4
Strict time order
:   True[LEFT][/LEFT


"Strict time order: True" olarak doğrulandı. capinfos'un belirttiğine göre analiz yapacağımız paketler "Wed Aug 12 10:40:05 2015" ile "Wed Aug 12 14:51:00 2015" arasındaki döneme ait. Toplamda 4 saat 11 dakikalık bir zaman diliminde 128 packet/sec ile data birikmiş.

Bro ile analize girişmeden önce tshark ile bu dosya üzerindeki temel metriklere göre gruplandırarak göz atalım :

PHP- Kodu:
atmaca:/mnt/pcap/lyk ***nbsp;tshark -q -r lyk.pcap2 -z io,phs > io
atmaca:/mnt/pcap/lyk ***nbsp;tshark -q -r lyk.pcap2 -z http,stat, > http
atmaca:/mnt/pcap/lyk ***nbsp;tshark -q -r lyk.pcap2 -z expert > expert
atmaca:/mnt/pcap/lyk ***nbsp;tshark -q -r lyk.pcap2 -z hosts > hosts
atmaca:/mnt/pcap/lyk ***nbsp;tshark -q -r lyk.pcap2 -z conv,eth > flow-eth
atmaca:/mnt/pcap/lyk ***nbsp;tshark -q -r lyk.pcap2 -z conv,ip > flow-ipv4
atmaca:/mnt/pcap/lyk ***nbsp;tshark -q -r lyk.pcap2 -z conv,ipv6 > flow-ipv6
atmaca:/mnt/pcap/lyk ***nbsp;tshark -q -r lyk.pcap2 -z conv,tcp > flow-tcp
atmaca:/mnt/pcap/lyk ***nbsp;tshark -q -r lyk.pcap2 -z conv,udp > flow-udp[LEFT][/LEFT] 


Yukarıdaki istatistik işlemleri uzun sürebilir, her birinin output'unu ayrı dosyalara yönlendirerek geriye dönüp tekrar bakabilmek için kayıt altına alıyoruz. tshark'ın en temel özelliği, yakalanmış olan ağ trafiğinde hızlı analizler yapabilmemiz için konsoldan çok detaylı gruplandırma olanakları sunması. Network analizinde garip veya sıradışı trafiği yakalarken OSI ağ katmanlarına göre L2'deki Mac adresi seviyesinden başlayarak, L3'deki IPv4 ve IPv6 katmanlarına, oradan da TCP ve UDP protokollerinin yer aldığı L4 e doğru derinleşeceğiz. Bro ile L4'den itibaren yer alan derin paket analizi DPI (Deep Packet Inspection) yapmadan önce tshark ile L4 ve üstüne bu seviyede göz atmak oldukça faydalı olur.

tshark'ın analizi biraz zaman alabilir, bittiğinde oluşan dosyalarda kaçar satır olduğuna, yani aslında kaçar bağlantı olduğuna hızlıca bakmak için :

PHP- Kodu:
atmaca:/mnt/pcap/lyk ***nbsp;wc -l flow-*
6596 flow-eth
8502 flow
-ipv4
6644 flow
-ipv6
39053 flow
-tcp
103586 flow
-udp
164381 total
[LEFT][/LEFT


Şu haliyle baktığımızda bile sanki networke bağlı tek bir makina üzerinden bir switch değil de SPAN ya da Port Mirror üzerinden oldukça fazla bağlantının geçtiği bir noktayı dinlemişiz fikri oluşuyor. Normalde promisc mode a koyduğumuz bir network kartı, düzgün yapılandırılmış bir switch yapısında 6596 adet MAC2MAC iletişime rastlamamalı. Buna istisna olarak broadcast türü trafiklerden oluşan durumu belirtebiliriz. Bu şüpheden yola çıkarak flow-eth dosyasındaki tepe 25 satıra baktığımızda :

PHP- Kodu:
atmaca:/mnt/pcap/lyk ***nbsp;head -n 25 flow-eth
================================================================================
Ethernet Conversations
Filter
:<No Filter>
|       <-      | |       ->      | |     
Total     |    Relative    |   Duration   |
Frames  Bytes | | Frames  Bytes | | Frames  Bytes |      Start     |              |
f0:f7:55:c4:62:bf    <-> d0:53:49:24:95:21          0         0  227885 514212431  227885 514212431    44.349743000     15008.1465
f0
:f7:55:c4:62:bf    <-> 48:5a:b6:bd:86:c7          0         0  182973 283531510  182973 283531510    54.741060000      6008.9237
f0
:f7:55:c4:62:bf    <-> d0:53:49:1e:25:bb          0         0  155631 273849298  155631 273849298    48.682514000     15006.0653
f0
:f7:55:c4:62:bf    <-> dc:85:de:d6:de:31          0         0  113227 256553820  113227 256553820  9768.584938000      5179.6656
f0
:f7:55:c4:62:bf    <-> 08:3e:8e:69:2e:91          0         0  106586 104318802  106586 104318802    44.462241000     15010.1971
f0
:f7:55:c4:62:bf    <-> dc:a9:71:34:a4:63      36727   4080899   39039  62068503   75766  66149402     4.103751000     14997.1682
f0
:f7:55:c4:62:bf    <-> 28:c2:dd:27:cb:21          0         0   60398  85074430   60398  85074430  6198.344637000      8848.6653
f0
:f7:55:c4:62:bf    <-> 6c:71:d9:57:8b:87          0         0   58376  68510983   58376  68510983    51.105996000     13081.8260
f0
:f7:55:c4:62:bf    <-> 44:6d:57:4e:93:dd          0         0   53307  66112516   53307  66112516    44.348219000     15007.6249
f0
:f7:55:c4:62:bf    <-> ac:81:12:41:b6:59          0         0   51849 117069327   51849 117069327  6241.804765000      8197.5325
f0
:f7:55:c4:62:bf    <-> 54:27:1e:4f:50:29          0         0   42555  83641724   42555  83641724  6189.340543000       368.0126
f0
:f7:55:c4:62:bf    <-> 50:b7:c3:ae:37:f4          0         0   32900  49417840   32900  49417840  10058.523086000      4993.1339
f0
:f7:55:c4:62:bf    <-> 20:6e:9c:90:2e:43          0         0   31437  42759162   31437  42759162  6280.691880000      8769.1715
f0
:f7:55:c4:62:bf    <-> 74:2f:68:c4:60:5e          0         0   28625  14840639   28625  14840639  6189.583044000      8864.7232
f0
:f7:55:c4:62:bf    <-> 1c:4b:d6:25:f5:44          0         0   25771  35837774   25771  35837774  3673.061514000      1089.4056
ff
:ff:ff:ff:ff:ff    <-> 08:3e:8e:69:2e:91      23013   3876374       0         0   23013   3876374     0.919358000     15053.4418
f0
:f7:55:c4:62:bf    <-> 24:0a:64:16:6a:0f          0         0   19276  34496485   19276  34496485  11733.994557000       833.5819
f0
:f7:55:c4:62:bf    <-> 18:67:b0:ab:32:b7          0         0   18049  19956335   18049  19956335  10613.901327000      4407.2822
f0
:f7:55:c4:62:bf    <-> 50:cc:f8:d0:ce:06          0         0   16021  24136566   16021  24136566  11881.510579000      3162.0310
f0
:f7:55:c4:62:bf    <-> 78:31:c1:bf:c3:12          0         0   15988  39409858   15988  39409858  6189.308619000      8852.7856[LEFT][/LEFT


görebiliyoruz. "Total Frames" e göre sıralanmış olan bu tabloda "f0:f7:55:c4:62:bf" MAC adresinin Cisco'nun prefixi yani F0F755 ile başladığını görebiliyoruz. Listenin tepesinde yer alan 5 MAC adreslerinin aynı switch'e bağlı olan farklı makinalar oldukarını ve bunların sırasıyla 514M, 283M, 273M, 256M ve 104M trafik yaptığını söyleyebiliriz. 2.3G lik dosyamızın içinde yakalanmış olan trafiğin kabaca 1.4G'si bu 5 MAC adresi tarafından yapılmış. Normal şartlar altında, doğru config edilmiş bir network'de Cisco Switch'le herhangi bir makina arasındaki trafiği dinleyemememiz gerekiyordu. Şu tabloya bakarak yani switch MAC'i ile 5 farklı MAC arasında 1.4G'lik transfer toplamını görerek bizim dinleyemememiz gereken bir şekide data sniff ettiğimizi söyleyebiliriz.

Bir katman ilerleyip L2 seviyesinden L3 seviyesine geçerek, flow-ipv4 dosyasına benzer şekilde bakarsak :

PHP- Kodu:
atmaca:/mnt/pcap/lyk ***nbsp;head -n 25 flow-ipv4
================================================================================
IPv4 Conversations
Filter
:<No Filter>
|       <-      | |       ->      | |     
Total     |    Relative    |   Duration   |
Frames  Bytes | | Frames  Bytes | | Frames  Bytes |      Start     |              |
87.248.217.134       <-> 10.64.107.103              0         0  118753 237190780  118753 237190780  14342.809200000       711.9386
74.125.11.85         
<-> 10.64.108.202              0         0   79972 215800990   79972 215800990  9345.900228000      2964.5403
185.65.204.174       
<-> 10.64.94.83                0         0   69340 130247376   69340 130247376  1452.357998000       653.0781
94.103.32.100        
<-> 10.64.94.83                0         0   37648  46934459   37648  46934459   339.881647000      1759.4434
216.58.211.46        
<-> 10.64.107.72               0         0   22978  58499288   22978  58499288  13423.245071000       501.3866
255.255.255.255      
<-> 10.64.108.218          22569   3840170       0         0   22569   3840170     0.919358000     15053.4418
195.175.116.74       
<-> 10.64.107.163              0         0   22424  43797686   22424  43797686  6189.340543000       368.0126
195.175.112.147      
<-> 10.64.102.57               0         0   22001  32437684   22001  32437684  3856.735832000       877.4850
31.13.84.15          
<-> 10.64.108.202              0         0   20725  55753366   20725  55753366  6516.090940000      4620.4871
173.194.150.235      
<-> 10.64.106.96               0         0   19542  51574502   19542  51574502  11125.104648000       251.4764
195.175.116.64       
<-> 10.64.107.163              0         0   19036  38268762   19036  38268762  6189.349005000       368.0041
195.142.2.50         
<-> 10.64.94.83                0         0   17967  32335238   17967  32335238  2382.874050000       208.7959
193.140.192.33       
<-> 10.64.108.9             8363    573921    8937  21513609   17300  22087530  2598.166844000      7690.2329
173.194.150.231      
<-> 10.64.106.96               0         0   15461  41433979   15461  41433979  10097.733365000       672.2845
224.0.0.251          
<-> 10.64.105.112          14425    807800       0         0   14425    807800     0.406720000     15053.9545
185.94.84.233        
<-> 10.64.108.218              0         0   14128   1434244   14128   1434244  9976.970122000      5077.6892
10.64.111.255        
<-> 10.64.108.94           12411   3546654       0         0   12411   3546654     0.815757000     15053.6474
185.94.84.247        
<-> 10.64.108.218              0         0   11734   1108969   11734   1108969  6190.156382000      3785.6731
193.140.13.91        
<-> 10.64.75.192               0         0   11186  27737418   11186  27737418   516.024121000      2690.9741
255.255.255.255      
<-> 0.0.0.0                10805   2622319       0         0   10805   2622319    18.421411000     15033.2794[LEFT][/LEFT


en tepedeki 5 bağlantının farklı boyutlarda transferler gerçekleştirdiğini görebiliyoruz. Yine top 5'e bakarsak sırasıyla 237M, 215M, 130M, 46M ve 58M trafik gerçekleşmiş ve bu trafik lokal ağ'daki 10.64.X.X IP bloğuyla genel İnternet IP adresleri arasında olmuş. L2 seviyesinde baktığımızda 514M ile en çok transferi gerçekleştiren MAC adresini burada ilk bakışta göremiyoruz. Ancak 2 farklı yöntemle bu MAC adresinin ne tür trafik yaptığının analizini hızlıca yapabiliriz :

PHP- Kodu:
atmaca:/mnt/pcap/lyk ***nbsp;tshark -q -r lyk.pcap2 -z conv,ip,"eth.addr == d0:53:49:24:95:21" >  d0:53:49:24:95:21.log[LEFT][/LEFT] 


ile kimlerle trafik yaptığını görebileceğimiz gibi, istersek lyk.pcap2 dosyasından bu MAC adresinin yaptığı trafiği bir başka dosyaya yazarak analiz gerçekleştirebiliriz :

PHP- Kodu:
atmaca:/mnt/pcap/lyk ***nbsp;tcpdump -r lyk.pcap2 ether host d0:53:49:24:95:21 -w top1.pcap[LEFT][/LEFT] 


En çok trafiği yapan MAC adresi şu IP'lerle konuşmuş :

PHP- Kodu:
atmaca:/mnt/pcap/lyk ***nbsp;head -n 25 d0\:53\:49\:24\:95\:21.log
================================================================================
IPv4 Conversations
Filter
:eth.addr == d0:53:49:24:95:21
|       <-      | |       ->      | |     Total     |    Relative    |   Duration   |
Frames  Bytes | | Frames  Bytes | | Frames  Bytes |      Start     |              |
74.125.11.85         <-> 10.64.108.202              0         0   79972 215800990   79972 215800990  9345.900228000      2964.5403
31.13.84.15          
<-> 10.64.108.202              0         0   20725  55753366   20725  55753366  6516.090940000      4620.4871
173.194.150.233      
<-> 10.64.108.202              0         0    9665  26361132    9665  26361132  7827.238853000      1257.4134
173.194.151.25       
<-> 10.64.108.202              0         0    8916  23785492    8916  23785492  6353.687314000       366.7208
173.194.150.251      
<-> 10.64.108.202              0         0    8204  22352971    8204  22352971  6845.870447000       835.8458
173.194.150.231      
<-> 10.64.108.202              0         0    7249  19551255    7249  19551255  8187.405721000       882.8160
173.194.150.236      
<-> 10.64.108.202              0         0    5329  14299466    5329  14299466  8772.682908000       100.3534
173.194.150.247      
<-> 10.64.108.202              0         0    4366  11220074    4366  11220074  8598.328983000       456.2978
31.13.64.1           
<-> 10.64.108.202              0         0    3757   3194140    3757   3194140  6191.025133000      8665.5475
50.116.54.17         
<-> 10.64.108.202              0         0    3165   6840324    3165   6840324    44.349743000      8963.2525
216.58.209.206       
<-> 10.64.108.202              0         0    3148   3080932    3148   3080932  6354.756969000      8696.2641
74.125.11.75         
<-> 10.64.108.202              0         0    3041   8286453    3041   8286453  8390.593924000       101.9251
10.64.105.50         
<-> 10.64.81.250            2937    165364      42      2940    2979    168304  14925.224755000        63.4550
54.230.201.82        
<-> 10.64.108.202              0         0    2887   6614225    2887   6614225  9885.683099000       386.3900
31.13.91.2           
<-> 10.64.108.202              0         0    2624   2637332    2624   2637332  7342.864622000      6262.6217
149.3.176.174        
<-> 10.64.108.202              0         0    2589   7013941    2589   7013941  7149.363198000        91.3989
45.55.186.201        
<-> 10.64.108.202              3       360    2519    185691    2522    186051  7430.570704000      7209.5948
31.13.84.4           
<-> 10.64.108.202              0         0    2471   5664591    2471   5664591  6510.287985000      6920.4738
216.58.208.110       
<-> 10.64.108.202              0         0    2379   1799849    2379   1799849  6206.535803000      7247.9316
149.3.176.176        
<-> 10.64.108.202              0         0    2199   5666996    2199   5666996  9211.615041000       168.4312[LEFT][/LEFT


Bro ile analize giriş

Şu ana kadar anlattıklarımız, aslında yaz kampında beklemediğimiz bir durumdan kaynaklandı. Network switch seviyesindeki bir hatadan dolayı planlanmadığı halde katılımcıların bazılarında wifi networkünde istemediğimiz yerleri de dinlemek durumunda kaldık (Özellikle f0:f7:55:c4:62:bf <-> d0:53:49:24:95:21, f0:f7:55:c4:62:bf <-> 48:5a:b6:bd:86:c7, f0:f7:55:c4:62:bf <-> d0:53:49:1e:25:bb trafiklerine yoğunlaştık). Blog postu daha uzatmamak adına garipliğin adını switch config hatası olarak belirterek ve analizi bu seviyede bırakıp, Bro ile port scan ve diğer garipliklerin analizine geçiyoruz.

Bro'nun kurulumunu anlatmayı bir başka blog post a bırakalım. Bro'nun hazır kurulu olduğu bir makinada, yukarıda kullandığımız pcap dosyasını kullanarak base ve policy analizleri gerçekleştireceğiz. Bro, IDS olarak tanınmak istemeyen aslında Network Analizi için bir çerçeve ve araç kiti sunan bir uygulama. Ürettiği sonuçlarda alarm değil, sadece bilgi (notice) üretmek amacıyla var olduğunu söyleyebiliriz. Bro script tabanlı programlama arabirimi üzerinden yönetiliyor. Kurulumla birlikte Base ve Policy adında 2 temel grup script diziniyle birlikte geliyor. Benim laptobumda bunlar :

PHP- Kodu:
atmaca:~ ***nbsp;ls -gh /opt/bro/share/bro
total 0
drwxr
-xr-x 1 bro 130 Aug  4 22:30 base
drwxr
-xr-x 1 bro 136 Aug  4 22:30 broctl
drwxr
-xr-x 1 bro  46 Aug  4 22:30 broxygen
drwxr
-xr-x 1 bro  80 Aug  4 22:30 policy
drwxrwsr
-x 1 bro 114 Aug  4 22:30 site[LEFT][/LEFT


dizininde yer alıyorlar. base dizinindeki script'ler büyük oranda derin paket analizi (Layer 7 Extraction) amaçlı. policy dizinindeki script'ler ise gariplik tespiti için kullanılıyor.

Bro ile port scan yakalama

bro script'lerini teker teker ya da tümden çağırabilmek mümkün. Ders esnasında nmap ile katımcıların hem içinde bulundukları networkü hem de birbirlerini scan ettiklerini belirtmiştik. Bro nun port scan tespiti için kullandığı özel bir script var ve şu lokasyonda görülebilir : /opt/bro/share/bro/policy/misc/scan.bro
scan.bro script'ini ister canlı network interface'i üzerinde istersek de önceden kayıt edilmiş network trafik dosyasın üzerinde çalıştırabiliriz. scan.bro script'inin içine göz attığımızda Scan adında bir modul tanımlandığını ve bu modülde de Address_Scan ve Port_Scan adında 2 değişken üzerinde hareket ettiğini görebiliyoruz. Address_Scan bir IP adresinden birden çok IP üzerindeki belirgin bir porta bağlantı kurulduğu durumda (horizontal scan), Port_Scan değişkeninin de bir IP adresinden bir başka IP'deki bir çok porta bağlantı kurulduğunda tetiklendiğini belirtelim. bro'yu lyk.pcap2 dosyasına karşı scan.bro ile test ettirmek için :

PHP- Kodu:
atmaca:/mnt/pcap/lyk/bro ***nbsp;bro -C -r ../lyk.pcap2 -b policy/misc/scan[LEFT][/LEFT] 


Bu işlem 1 dk kadar sürebilir. Bittiğinde komutu çalıştırdığımız dizinde notice.log ve weird.log dosyalarını göreceğiz. bro, her türlü analiz sonucunu diske log dosyası olarak yazmak üzere dizayn edilmiş. Dolayısıyla ürettiği log dosyalarını doğru okuma becerisi bro ile çalışmakta bir numaralı altın kural. Tüm bro log dosyaları ve scan.bro scriptinin çıktılarını göreceğimiz notice.log dosyasının ilk 8 satırında log dosyasının formatı tarif ediliyor :

PHP- Kodu:
atmaca:/mnt/pcap/lyk/bro ***nbsp;head -n8 notice.log
#separator \x09
#set_separator  ,
#empty_field    (empty)
#unset_field    -
#path   notice
#open   2015-08-16-21-20-58
#fields ts      uid     id.orig_h       id.orig_p       id.resp_h       id.resp_p       fuid    file_mime_type  file_desc       proto   note    msg     sub   src      dst     p       n       peer_descr      actions suppress_for    dropped remote_location.country_code    remote_location.region  remote_location.city  remote_location.latitude remote_location.longitude
#types  time    string  addr    port    addr    port    string  string  string  enum    enum    string  string  addr    addr    port    count   string  set[enum]      interval        bool    string  string  string  double  double[LEFT][/LEFT] 


7. satırda görebileceğimiz gibi ts, uid, id.orig_h,...., remote_location.longtitude değerlerinin logda yer aldığını görebiliyoruz. bro log dosyalarını daha kullanılabilir hale getirmek için bro ile birlikte gelen bro-cut uygulamasını kullanacağız.

PHP- Kodu:
atmaca:/mnt/pcap/lyk/bro ***nbsp;bro-cut -d ts src dst note msg < notice.log
2015-08-12T11:00:04+0300        fe80::ebd:51ff:fe4b:9d5a        -       Scan::Address_Scan      fe80::ebd:51ff:fe4b:9d5a scanned at least 25 unique hosts on port 443/tcp in 4m6s
2015
-08-12T11:49:58+0300        10.64.102.57    -       Scan::Address_Scan      10.64.102.57 scanned at least 25 unique hosts on port 80/tcp in 4m42s
2015
-08-12T11:53:04+0300        fe80::bab4:2eff:feb7:716d       -       Scan::Address_Scan      fe80::bab4:2eff:feb7:716d scanned at least 25 unique hosts on port 443/tcp in 2m57s
2015
-08-12T12:27:24+0300        10.64.109.221   -       Scan::Address_Scan      10.64.109.221 scanned at least 25 unique hosts on port 80/tcp in 0m48s
2015
-08-12T12:29:05+0300        10.64.113.39    -       Scan::Address_Scan      10.64.113.39 scanned at least 25 unique hosts on port 443/tcp in 3m5s
2015
-08-12T13:04:40+0300        10.64.108.202   -       Scan::Address_Scan      10.64.108.202 scanned at least 25 unique hosts on port 443/tcp in 4m3s
2015
-08-12T13:26:59+0300        10.64.108.218   -       Scan::Address_Scan      10.64.108.218 scanned at least 25 unique hosts on port 80/tcp in 1m37s
2015
-08-12T13:27:54+0300        10.64.107.103   -       Scan::Address_Scan      10.64.107.103 scanned at least 25 unique hosts on port 443/tcp in 1m14s
2015
-08-12T13:28:38+0300        10.64.108.211   -       Scan::Address_Scan      10.64.108.211 scanned at least 25 unique hosts on port 443/tcp in 0m45s
2015
-08-12T13:36:26+0300        10.64.82.169    -       Scan::Address_Scan      10.64.82.169 scanned at least 25 unique hosts on port 443/tcp in 1m10s
2015
-08-12T13:38:39+0300        10.64.108.109   -       Scan::Address_Scan      10.64.108.109 scanned at least 25 unique hosts on port 443/tcp in 3m11s
2015
-08-12T13:43:06+0300        10.64.72.44     -       Scan::Address_Scan      10.64.72.44 scanned at least 25 unique hosts on port 80/tcp in 0m58s
2015
-08-12T13:43:53+0300        10.64.108.85    -       Scan::Address_Scan      10.64.108.85 scanned at least 25 unique hosts on port 443/tcp in 1m40s
2015
-08-12T13:48:34+0300        10.64.102.231   -       Scan::Address_Scan      10.64.102.231 scanned at least 25 unique hosts on port 443/tcp in 2m46s
2015
-08-12T14:02:13+0300        10.64.107.203   -       Scan::Address_Scan      10.64.107.203 scanned at least 25 unique hosts on port 443/tcp in 1m51s
2015
-08-12T14:18:54+0300        10.64.107.72    -       Scan::Address_Scan      10.64.107.72 scanned at least 25 unique hosts on port 80/tcp in 3m46s
2015
-08-12T14:23:54+0300        10.64.108.202   -       Scan::Address_Scan      10.64.108.202 scanned at least 25 unique hosts on port 80/tcp in 3m8s
2015
-08-12T14:34:41+0300        10.64.107.103   -       Scan::Address_Scan      10.64.107.103 scanned at least 25 unique hosts on port 443/tcp in 1m51s
2015
-08-12T14:37:07+0300        10.64.108.218   -       Scan::Address_Scan      10.64.108.218 scanned at least 25 unique hosts on port 80/tcp in 1m44s
2015
-08-12T14:46:17+0300        10.64.106.96    -       Scan::Address_Scan      10.64.106.96 scanned at least 25 unique hosts on port 80/tcp in 1m5s[LEFT][/LEFT


Yukarıda görüldüğü gibi 2 si IPv6 olmak üzere toplam 17 adet IP'nin network'de port taraması gerçekleştirdiğini görebiliyoruz. Bu sayı, aynı zamanda Linux 2 sınıfının katılımcı sayısına eşit, yani tüm katılımcılar birbirlerine ve bulundukları networke karşı port taraması gerçekleştirebilmiş.

Bro ile derin paket analizi (dpi ve L7 extraction)

bro yu lyk.pcap2 dosyasına karşı varsayılan script lerle çalıştırdığımızda :

PHP- Kodu:
atmaca:/mnt/pcap/lyk/bro ***nbsp;bro -C -r ../lyk.pcap2[LEFT][/LEFT] 


bulunduğu dizinde bir çok log dosyası oluşturacak :

PHP- Kodu:
atmaca:/mnt/pcap/lyk/bro ***nbsp;ls -goh
total 79M
drwx
------ 1   26 Aug 16 21:48 .state
-rw-r--r-- 1  25M Aug 16 21:48 conn.log
-rw-r--r-- 1 108K Aug 16 21:48 dhcp.log
-rw-r--r-- 1  40M Aug 16 21:48 dns.log
-rw-r--r-- 1  46K Aug 16 21:48 dpd.log
-rw-r--r-- 1 3.8M Aug 16 21:48 files.log
-rw-r--r-- 1 1.9M Aug 16 21:48 http.log
-rw-r--r-- 1 4.6K Aug 16 21:21 notice.log
-rw-r--r-- 1  253 Aug 16 21:48 packet_filter.log
-rw-r--r-- 1  643 Aug 16 21:48 ssh.log
-rw-r--r-- 1 1.3M Aug 16 21:48 ssl.log
-rw-r--r-- 1 6.8K Aug 16 21:48 tunnel.log
-rw-r--r-- 1 3.5M Aug 16 21:48 weird.log
-rw-r--r-- 1 4.2M Aug 16 21:48 x509.log[LEFT][/LEFT


Bu dosyaların her biri, bro içinde gelen protokol analiz ve decoder larının anlamlandırabildiği bilgi parçacıklarını barındırıyor. Networkdeki anomaly ve garipliklerin bir çoğu kendisini DNS protolünde gösterdiği için öncelikle dns.log dosyasını analiz edeceğiz. dns.log dosyasındaki önemli parametrelerden biri id.resp_p, yani DNS sorgusunun yönlendirildiği ve cevap vermesi beklenen port :

PHP- Kodu:
atmaca:/mnt/pcap/lyk/bro ***nbsp;bro-cut id.resp_p < dns.log | sort | uniq -c | sort -rn
101638 5355
81032 5353
61369 137
28875 53
[LEFT][/LEFT


Rastlanma sayılarına göre sıraladığımızda yukarıdaki liste karşımıza çıkıyor. Bu standart portların isimleri :
- 5355 : LLMNR (Link-Local Multicast Name Resolution)
- 5353 : Multicast DNS
- 137 : Netbios Name Service
- 53 : Domain Name Server
Dolayısıyla pcap dosyamızda en çok Microsoft'un yaygınca kullandığı lokal ağda DNS sorguları yapılmasını sağlayan protokol olduğunu görebiliyoruz. Benzer şekilde qtype_name değerine göre gruplandırıp baktığımızda da :

PHP- Kodu:
atmaca:/mnt/pcap/lyk/bro ***nbsp;bro-cut qtype_name  < dns.log | sort | uniq -c | sort -nr
89231 -
89164 A
60993 NB
15021 PTR
10678 AAAA
7400 
*
261 TXT
139 NBSTAT
16 SRV
8 SOA
2 NS
1 DS
[LEFT][/LEFT


NetBios (NB) protokolüyle gelen sorgu türlerinin oldukça fazla olduğunu görebiliyoruz. Buraya kadar herşey normal, net olarak Windoze ağırlıklı bir network dinlediğimizi söyleyebiliriz. Detaya inip query'lere geldiğimizde ise :

PHP- Kodu:
atmaca:/mnt/pcap/lyk/bro ***nbsp;bro-cut query  < dns.log | sort | uniq -c | sort -nr | head -n 25
55707 -
45215 wpad
40039 isatap
25744 WPAD
22180 ISATAP
9860 _googlecast
._tcp.local
5104 user
-pc
3766 USER
-PC
2946 _services
._dns-sd._udp.local
2626 WORKGROUP
1466 _ipp
._tcp.local
954 daisy
.ubuntu.com
937 _ipps
._tcp.local
764 baba 002._device
-info._tcp.local
701 _airplay
._tcp.local
649 safebrowsing
-cache.google.com
645 pc
565 _raop
._tcp.local
558 asus
-bilgisayar.local
459 www
.facebook.com
394 ADAIT
341 gizem
-2.local
335 www
.google.com
315 _migo
._tcp.local
288 DIFFERENTIA
.RU[LEFT][/LEFT


en çok sorgunun wpad, isatap, WPAD ve ISATAP isimleri için olduğunu görebiliyoruz. WPAD (Web Proxy AutoDiscovery Protocol) ve ISATAP (Intra-Site Automatic Tunnel Addressing Protocol) ile yine Windoze makinalardan kaynaklandığını söyleyebiliriz. query listesinin biraz ortalarına doğru ilerlediğimizde bizi garip ve random olduğu kesin olan isimler karşılıyor :

PHP- Kodu:
9 ZIXINQUB
9 XPKMOYJTJLQE
9 TCPDUMP
.ORG
9 SEREFCAN
9 OVRRZFB
9 MONSTER
9 JWMOSDTYBJWA
9 JICUYWYBWP
9 HURGENERAL91
9 EIJBZUNROQE
9 DLIEBWBVGQDP
9 BZYLLYCTS
9 BVUWSNXFLK
9 6.3.5.2
.c.7.e.f.f.f.2.9.2.d.e.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa
9 4bac056f
._sub._apple-mobdev2._tcp.local
9 4.4.5
.f.5.2.e.f.f.f.6.d.b.4.e.1.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa
9 4.2.5
.f.2.7.e.f.f.f.b.4.a.3.6.8.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa
9 2.5.6.1.5
.b.e.f.f.f.8.0.0.4.e.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa
9 169.115.64.10
.in-addr.arpa
9 1.8
.d.e.0.2.e.f.f.f.3.c.7.b.2.5.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa
8 zucbumzdprjrcju
8 ztkrtgvgpemiik
8 zqujoexcphqkg
8 zkpeqfhezbef
8 zjwqyquficy
8 zffmdib
8 zfdwyin
8 zdxlltrmufms
8 zbenjnebizwxwau
8 yyczvvdps
8 ywjxnrqakxnqh
8 yvezvjvsawdxb
8 yofgibjpieep
8 ynvkvwnxfgva
8 ymp
.local[LEFT][/LEFT


Bu garip query'lerin insan eliyle oluşturulmamış sorgular olduğunu farketmek çok zor değil. Bir çok botnet C&C sunucularıyla haberleşmede DNS üzerinden hızlı değişen DNS isimleriyle haberleşir. Yukarıdaki sorguların internete değil, lokal networke doğru broadcast veya multicast ile gönderildiğini gözlemleyebiliyoruz :

PHP- Kodu:
atmaca:/mnt/pcap/lyk/bro ***nbsp;bro-cut query id.resp_p id.resp_h < dns.log | sort | uniq -c | sort -nr
9 ZIXINQUB        137     10.64.111.255
9 XPKMOYJTJLQE    137     10.64.111.255
9 TCPDUMP
.ORG     137     10.64.111.255
9 SEREFCAN        137     10.64.111.255
9 OVRRZFB 137     10.64.111.255
9 MONSTER 137     10.64.111.255
9 JWMOSDTYBJWA    137     10.64.111.255
9 JICUYWYBWP      137     10.64.95.255
9 HURGENERAL91    137     10.64.111.255
9 EIJBZUNROQE     137     10.64.111.255
9 DLIEBWBVGQDP    137     10.64.111.255
9 BZYLLYCTS       137     10.64.111.255
9 BVUWSNXFLK      137     10.64.111.255
9 6fea36c1870d3d33
._gamecenter._tcp.local 5353    ff02::fb
9 4bac056f
._sub._apple-mobdev2._tcp.local 5353    224.0.0.251
9 4.4.5
.f.5.2.e.f.f.f.6.d.b.4.e.1.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        5353    ff02::fb
9 249.89.64.10
.in-addr.arpa       5353    224.0.0.251
9 169.115.64.10
.in-addr.arpa      5353    224.0.0.251
-       137     10.64.105.181
8 xyrkyslyjfz     5355    ff02
::1:3
8 xyrkyslyjfz     5355    224.0.0.252
8 www
.youtube-nocookie.com        53      10.11.0.8
8 www
.martinfowler.com    53      10.11.0.7
8 www
.google-analytics.com        53      8.8.4.4
8 www
.bizographics.com    53      10.11.0.7
8 widget
.intercom.io      53      10.11.0.8
8 w
.sharethis.com 53      10.11.0.7
8 vnrbfmyc        5355    ff02
::1:3
8 vnrbfmyc        5355    224.0.0.252
8 tex
.stackexchange.com   53      10.11.0.7
8 swift
.tango.me  53      10.11.0.8
8 stjtzhzrstr     5355    ff02
::1:3
8 stjtzhzrstr     5355    224.0.0.252
8 serverfault
.com 53      10.11.0.7
8 seher
-pc        5355    224.0.0.252
8 securityoniontest
-virtualbox.local      5353    ff02::fb
8 scifi
.stackexchange.com 53      10.11.0.7
8 s3
.amazonaws.com        53      10.11.0.8[LEFT][/LEFT


BilgiO da ağırlıkla sunucu networkünde iz sürmeye alıştığımızdan dolayı, internete çıkmayan ama sadece lokal ağda kalan bir botnet aktivitesi olabilir mi düşüncesiyle bu DGA (Domain Generation Algorithm) ile oluşturulduğu isimlerin bir kaçının (örneğin xyrkyslyjfz) peşine düştüm. İlk yaptığım bu sorguları gönderen IP'leri tespit etmek oldu :

PHP- Kodu:
atmaca:/mnt/pcap/lyk/bro ***nbsp;bro-cut id.orig_h query < dns.log | grep -E "xyrkyslyjfz|yvezvjvsawdxb|ztkrtgvgpemiik"  |  sort  | cut  -f 1 | uniq
10.64.106.164
10.64.108.146
10.64.80.240
fe80
::5129:a1ce:d695:d694
fe80
::b0d4:fdbb:fd0d:affb
fe80
::e09c:3206:d38c:5486[LEFT][/LEFT


Sonra bu IP'lerle olan tüm trafiği bir başka PCAP dosyasına aldım :

PHP- Kodu:
atmaca:/mnt/pcap/lyk/bro ***nbsp;tcpdump -r ../lyk.pcap2 "host 10.64.106.164 or host 10.64.108.146 or host 10.64.80.240" -w shortlist.pcap
reading from file ../lyk.pcap2link-type EN10MB (Ethernet)[LEFT][/LEFT


Yeni oluşturduğum pcap dosyasını Wireshark'la açıp göz gezdirdiğimde şu paterni kolaylıkla gözlemledim :
- Her IP 3 adet random domain name oluşturuyor.
- Önce NetBios üzerinden broadcast adresine
- Sonra LLMNR üzerinden A sorgusuyla multicast adresine
- En son olarak tekrar LLMNR üzerinden AAAA sorgusuyla multicast adresine
isim sorguları gönderiyor. Bu paterne uyan bir malware/botnet olup olmadığını araştırmak için Google'a yönlendiğimde cevap hemen karşıma çıkıyor. Google'ın Chrome için geliştirdiği DNS prefetch özelliği bu tarz bir davranış sergiliyor. DNS prefetch ile önceden DNS cache'leme yaptığı gibi beraberinde DNS hijacking'in de farkına varabilmek üzere cevapsız dönecek olan rastgele query'ler oluşturuyor. Basit ama etkili, öte yandan da botnet davranışına bir o kadar benzeyen bir yöntemi kullanıyor Chrome.
Konsol mu GUI mi?

Burada yapılan analiz çalışmasını web tabanlı bir uygulama olarak NtopNG ile de gerçekleştirebilmek mümkün. Bir sonraki pcap analizi yazımızda burada kullandığımız PCAP dosyalarını ve NtopNG kullanarak hızlı ağ analizine devam edeceğiz. Her zaman olduğu gibi, konsolda yapılan bu ve benzeri çalışmalar GUI'den daha fazla hakimiyet sağlar, GUI'ler (Wireshark ve NtopNG) görsel olarak canlı olsalar da büyük miktarlardaki dataları işleme konusunda yetersiz kalırlar.
Özet :

Linux Yaz Kampında Bilgi Güvenliğine Giriş dersinde incelemek üzere topladığımız ağ loglarında detaylı bir çalışma yaptık. Sonuçta networkde göze batan 2 temel garipliği yorumladık, bu çalışma esnasında her türlü ağ analizi çalışmasında kullanılabilecek temel araçlara giriş yaptık.

Kayra OTANER - BilgiO