Ağ Akış Kayıtlarının Siber Güvenlikte Kullanımı
Ağ akışı ağ trafiğinde paketlerin veri içeren kısımları işlenmeden özel algoritmalar kullanılarak paketteki başlık bilgileri, protokol bilgileri gibi belirli kısımların kaydedilip bunlardan istatiksel analizler yapmaya olanak sağlayan teknolojidir. Kaydedilen ağ akışlarında kullanıcı mahremiyetini ihlal edecek verilerin bulunmaması teknolojinin kurumlarda, şirketlerde yaygın olarak kullanılmasına neden olmuştur. Bu makalede ağ akış kayıtlarının siber güvenlikte kullanımı ile ilgili geliştirilen uygulamalara ve yapılan çalışmalara değinilecektir.
1. Ağ Akış Kayıtlarının Türleri
Ağ trafiği hakkında en çok paket gönderip alan bilgisayarlar, trafikte en çok kullanılan protokoller vb. genel bilgileri elde etmemizi sağlayan ağ akış kayıtlarının 3 türü vardır. Bunlar arasında en yaygın olarak kullanılanı Netflow olmak üzere diğerleri sFlow ve IPFIX formatlarıdır.
1.1 Netflow
Cisco tarafından geliştirilmiş bir ağ akışı protokolüdür. Cisco IOS haricinde, Linux, BSD ve Solaris platformlarında da desteklendiği için bir standart halini almıştır [1]. Netflow genel olarak veriyi toplayan sunucu ve veriyi analiz eden sunucu olmak üzere iki bileşenden oluşur.
Netflow’un aktif olarak üretildiği cihazlardan veriler toplanarak veri toplama sunucusuna gelir. Veri toplama sunucusuna bu iletim UDP (standart olarak port 2055) protokolü kullanılarak yapılır. Diğer bir yöntem de verinin SCTP (Stream Control Transmission Protocol) protokolü aracılığıyla iletilmesidir [2]. İletimin TCP ile yapılamamasının sebebi TCP protokolünün karakteristiğinde yer alan paketlerin sırasız dağıtımına izin vermemesi özelliğinden kaynaklanmaktadır. Paketlerin sıralı iletimi de gecikme ve ara bellek problemlerine neden olmaktadır.
Veri toplama sunucusuna gelen verilerden ya aynı makine üzerinde ya da veriyi analiz edecek farklı bir sunucuya gönderilerek görsel grafikler oluşturulur ve raporlar üretilir. Cisco Netflow v5 standardına göre ağ akışı genel olarak 7 temel değerden oluşur [3]. Bunlar:
- Kaynak IP
- Hedef IP
- Kaynak Port (TCP, UDP ya da 0)
- Hedef Port (TCP, UDP ya da 0)
- IP Protokolü
- IP Servis Tipi
- Giriş Arayüzü
Netflow paketlerinin başlık bilgileri versiyonlar arasında farklılık gösterse de tüm versiyonlarda da sabit olarak görülen bazı bilgiler vardır. Bunlar:
- Versiyon Numarası
- Sıra Numarası (Kayıpların ve tekrarların önlenmesi amaçlı)
- Zaman Damgaları (Ağ akışı başlangıç ve bitiş bilgisi)
- Toplam Kayıt Sayısı
Netflow v5’in sabit ağ akışı formatına karşılık Netflow v9’un dinamik ve şablonlar kullanarak üretilen ağ akış kayıtlarında birçok yeni bilgi gelmektedir.
Ağ akışındaki bu veriler kullanılarak trafikten şu istatistikler elde edilebilir.
- En fazla trafik üreten IP adresleri
- En fazla kullanılan protokoller
- En fazla görülen otonom sistemler, ağ arayüzleri
- En fazla kullanılan uygulamalar (uygulamaların bilinen port numaraları için ağ akışında kaynak ve hedef port bilgilerine bakarak)
- İki nokta arasındaki en fazla paket, veri (bayt) alışverişi olan bağlantı
- İki nokta arasındaki en uzun süreli bağlantı
- İki nokta arasındaki bağlantılarda en fazla kullanılan uygulamalar ve protokoller
Elde edilen bu ve benzeri istatistikler yorumlanarak çeşitli saldırıların veya girişimlerin tespiti, ağ anomalilerin tespiti, kurum içerisinden veri kaçağı olup olmadığı vb. birçok sonuca ulaşılabilir.
1.2 sFlow
sFlow, anahtar ve yönlendiricilerin olduğu bir ağda ağ akışının incelenmesini sağlayan protokoldür [5]. Bu cihazlardaki sFlow ajanları veriyi üreterek veri toplama ve analiz sunucusuna gönderir.
HP marka cihazlar tarafından kullanılmaktadır. Özelliklerinin belirlenmesi, geliştirilmesi bir konsorsiyum tarafından desteklenmekte olan sFlow’un son olarak 5. versiyonu duyurulmuştur. Netflow ile benzer özelliklere sahip olsa da Netflow’dan ayrılan en önemli noktaları şöyle sıralanabilir [6]:
- Netflow sadece 3. katmanda çalışırken sFlow 2. ve 3. katmanda çalışır ve 3. katman yönlendirmesine ihtiyaç duymamaktadır.
- Ağ akış protokollerinin farklı katmanlarda çalışması yakaladıkları trafik türünde de farklılık oluşmasına neden olur. Netflow sadece IP protokolü ile ilgili trafiği yakalarken, sFlow IPX, Appletalk, XNS vb. IP protokolü tabanlı olmayan trafiği de yakalayabilir.
- Netflow IP trafiğinin %100’ünü yakalayabilirken, sFlow uzun süreli bağlantı veya kısa süreli çok sayıda bağlantının olduğu bir ağda trafiğin bir kısmını kaçırabilir.
sFlow,
- Ağ problemlerinin tanımı, tespiti ve çözümlenmesi
- Gerçek zamanlı tıkanıklık kontrolü
- Ağ kullanımının faturalandırılmasını gerektiren uygulamalarda
- Servis dışı bırakma ataklarının kaynağının tespiti ve yetkisiz ağ aktivitelerinin izlenmesi
- Ağdaki yönlendirmelerle ilgili profil çıkarılması ve kapasite hesaplanmasında vb. gibi birçok uygulamada kullanılabilir.
1.3 IPFIX
IPFIX (IP Flow Information Export) yönlendirici, anahtarlayıcı ve diğer ağ cihazlarından IP akış bilgisinin üretilmesi için standartlaştırılan bir IETF protokolüdür [8]. Netflow v9 ile büyük oranda benzerlik gösterir. Aslında Netflow protokolünün farklı türde cihazların kullanılabilmesi için esnetilmiş hali denebilir. IPFIX protokolü Juniper, Nortel, SonicWALL, Extreme, NTOP, Plixer gibi ürünler tarafından desteklenmektedir. Trafiğin IPFIX formatında özetlenmesinin faydaları şöyle sıralanabilir [9]:
- Herhangi bir üretici firmaya özel bir protokol değildir.
- Üretici firmalar kendi ürünleri için özel olarak IPFIX protokolünde tanımlanmış 200’den fazla alandan istediklerini seçerek özel ağ akış kaydı oluşturabilirler.
- Ağ trafiği özetindeki bilgi içeren alanların boyutları özel olarak belirlenebilir. Böylece yüksek miktarda akış olan bir ağda daha verimli çalışması sağlanabilecektir.
Üretilen trafik özetinin iletimi için IPFIX taşıma katmanı protokollerinden SCTP’yi tercih eder. Bununla birlikte TCP ve UDP protokollerinin kullanımını da destekler.
2. Ağ Akış Kayıtlarının İzlenmesi
Netflow, sFlow ve IPFIX gibi farklı protokoller kullanılarak üretilen ağ akışının izlenmesi ve analiz edilmesi için birçok açık kaynak kodlu ve ticari uygulama geliştirilmiştir. Açık kaynak kodlu uygulamalar arasında en popüler olanları NfSen ve Silk’dir.
2.1 NfSen
NfSen, ağ akışı üreteçleri tarafından dışa aktarılan ağ akışlarının işlenmesi için kullanılan bir arayüz yazılımıdır. Çalışması için arka planda Apache, PHP, RRDtool gibi uygulamalar kullanılır. NfSen kullanılarak belirli zaman periyotlarına ait ağ akışı paket sayısı bayt sayısı gibi bilgiler grafiksel olarak incelenebilir.
NfSen’in daha verimli kullanımı için birçok eklenti geliştirilmiştir. Bu eklentiler sayesinde TCP/UDP, trafiğinin port bazlı dağılımı, botnet tespiti, bağlantı kurulan adreslerin harita üzerinde yerinin gösterilmesi gibi birçok istatistiki bilgi elde edilebilmektedir [11]. Ayrıca ağ akışı için çeşitli eşik değerleri ve kurallar tanımlanarak belirlenen koşulların gerçekleşmesi durumunda alarm üretmesi sağlanabilir.
2.2 Silk
Silk, CERT NetSA (CERT Network Situational Awareness Team) tarafından geliştirilmiş ağ akış bilgisinin toplanmasını ve işlenmesini sağlayan bir yazılımdır [12]. Arka planda pcap ya da anlık trafik bilgisinden ağ akışını çıkartıp IPFIX formatında saklanmasını sağlayan YAF (Yet Another Flowmeter) kullanır [13]. Grafiksel bir arayüz sunmayan Silk buna karşın toplanan ağ akış bilgisinin sorgulanması için çok güçlü komut satırı araçlarına sahiptir.
Silk kullanılarak istenilen zaman periyotunda trafik özeti, en çok bağlantı kurulan adresler ve coğrafi konumları, en fazla bağlantı kurulan kaynak/hedef portlar, en fazla kullanılan protokoller vb. gibi birçok istatiksel bilgi elde edilebilir. Ayrıca Python dili kullanılarak geliştirilen eklentilerle Silk’in daha etkin kullanımı sağlanabilir.
3. Ağ Akış Kayıtlarının Kullanım Senaryoları
Ağ akışı derin paket incelemesi (Deep Packet Inspection) yöntemi gibi çok fazla sistem kaynağı gerektirmemesi, kullanıcı mahremiyetini ihlal etmemesi, klasik istatiksel yöntemlere göre avantajlarının bulunması vb. nedenlerden dolayı siber güvenlik araştırmacıları tarafından ilgi çekici bir konu haline gelmiştir. Yapılan araştırmalara göre ağ akışının siber güvenlikte kullanımı ile ilgili bazı örnekler şöyle sıralanabilir:
- Botnet Tespiti
- DNS Tünel Tespiti
- SSH Ataklarının Tespiti
3.1 Botnet Tespiti
Botnet zararlı yazılımlar aracılığıyla işletim sistemleri ya da üzerinde çalışan servislerin açıklıklarından faydalanılarak ele geçirilmiş bilgisayar topluluğudur. Botnetler, günümüz internet dünyasının en önemli problemlerinden birisidir. IRC, HTTP, P2P gibi farklı türleri olan botnetlerin tespiti için birçok çalışma gerçekleştirilmiştir. Ağ akış bilgisi kullanılarak botnet tespiti özellikle IRC botlar üzerinde etkilidir.
NfSen için geliştirilmiş olan botnet tespit eklentisi saldırı tespit sistemleri için önceden yayınlanmış olan botnet C&C sunucularına ait imzaları uygun formata dönüştürerek benzer bir trafik olması durumunda alarm üretir. Eklenti IP adresi, port numarası, protokol numarası, zaman damgası gibi bilgiler kullanır [14]. Ancak bu yöntem sadece daha önce tespit edilmiş botnetlere yeni bağlantının olma durumunu tespit eder [15]. Yöntemin etkili bir şekilde çalışabilmesi için güncel bot kuralları eklentiye girdi olarak verilmelidir.
Yeni botnet tespitinin yapılabilmesi farklı türdeki botnetlerin davranışsal analizi yapılarak eğitilebilen bir sisteme girdi olarak verilmesi ile mümkündür. Eğitilen sistem çıktı olarak bir botnet tespit modeli üretir. Bu modelde çalıştırılan botnet zararlı yazılımından elde edilen bağlantı sayısı, bağlantıdaki paket sayısı, kullanılan portlar gibi ağ akışıyla ilgili istatiksel bilgiler bulunur. Bu model anlık trafik üzerinde uygulanarak benzer davranışlar tespit edilmeye çalışılır. Özellikle günümüzde artık daha sık karşılaşılan P2P botnetlerin tespiti için bu yöntem kullanılabilmektedir [16].
3.2 DNS Tünel Tespiti
DNS tünelleme DNS paketleri içerisinden herhangi bir TCP/UDP paketinin taşıma işlemine verilen addır. Saldırının gerçekleşebilmesi için DNS paketlerini kodlayacak (encode) saldırgan (tunnel client) ve paketleri alıp kodu çözerek (decode) iletilmek istenen veriyi alacak uzak sunucuya (tunnel server) ihtiyaç vardır.
DNS tünelleme için 3 farklı saldırı senaryosu olabilir. Bunlar:
- Veri sızdırma amaçlı dosya transferi yapılması
- C&C (command and control) trafiğinin gerçekleştirilmesi (SSH bağlantısı üzerinden farklı bash komutlarının çalıştırılması gibi)
- İnternete erişim amaçlı. (İnternet erişiminin sadece yetkili kullanıcılara Proxy ile sağlandığı kafe, havaalanı gibi halka açık alanlarda)
Belirlenen senaryolara göre DNS tünel trafiğinin ağ akışı kullanılarak tespiti için şu yöntemler kullanılabilir:
- Eşik Değeri Metodu: İlk olarak günün belirli saat dilimlerine uygun normal trafiğe (DNS) ait örüntüler üretilir. Bu örüntülere göre normal trafiğe ait eşik değerleri belirlenir. Farklı günün aynı saat diliminde eşit değerinin aşılması durumunda alarm üretilir. Trafikteki bu tepe noktaları NfSen yazılımının sağladığı grafikler aracılığıyla izlenebilir.
- Brodsky-Darkhovsky Metodu: DNS tünel aktivitesinin olması ancak bunun trafikte gözle görülür anomali (örneğin NfSen grafiği için bir tepe noktası) oluşturmaması, buna karşın bir bağlantıdaki bayt, paket sayısı, bir paketteki bayt değeri ve bağlantı süresi gibi değerlerin herhangi birinde farklılık oluşması durumunda kullanılan yöntemdir. Metoda göre farklı periyotlara ait N adet kayıt alınır . Bu kayıt serisi mümkün olabilecek tüm k noktaları için ikiye ayrılır , . Birinci ve ikinci parçanın ortalama değeri alınarak belirli bir eşik değerini aşıp aşmadığı kontrol edilir. Eşit değerinin aşılması durumunda alarm üretilir.
- Dağıtım Tabanlı Metot: Ağ akışındaki farklı değerlerin (bir bağlantıdaki paket, bayt sayısı, bir paketteki byte sayısı vb.) dağılımını inceleyerek DNS tünel aktivitesini tespit etmeyi sağlayan yöntemdir. Metoda göre önceden kaydedilmiş normal trafik ve anlık trafikteki değerler ECDF (Emperical Cumulative Distribution Function)’ye göre karşılaştırılır [18]. Ardından iki ECDF değeri arasındaki maksimum uzaklık belirlenir. Uzaklığın belirlenen eşik değerini aşması durumunda alarm üretilir.
Yapılan testlere göre Brodsky-Darkhovsky metodu ve dağıtım tabanlı metodun DNS tünel trafiğinin tespitinde eşik değeri metoduna göre zaman bakımından daha verimsiz olduğu görülmüştür.
3.3 SSH Ataklarının Tespiti
SSH atakları özellikle başarılı olması durumunda bir sistem için en tehlikeli durumlardan birisidir. Çünkü SSH vasıtasıyla sisteme erişim sağlayan saldırgan hem girdiği sistemin tüm kontrolünü ele geçirebilir, hem de bağlantı kurduğu makine üzerinden başka sistemlere saldırabilir. Klasik saldırı tespit sistemleri paket tabanlı çalıştığından yoğun trafiğin olduğu ya da trafiğin şifrelenmiş olarak aktığı sistemlerde SSH ataklarının tespitinde verimsiz kalmaktadır. Bunun yerine trafiğin özetini sunan ağ akış bilgisi kullanılabilir. SSH ataklarının gerçekleşmesi 3 farklı adıma bölünebilir:
- Tarama Evresi: Saldırgan belirlediği IP bloğunu tarayarak SSH servisinin çalıştığı (varsayılan TCP port 22) makineleri bulamaya çalışır.
- Kaba Kuvvet Evresi: Saldırgan bulduğu makinelerde SSH ile oturum açmak için birçok kullanıcı adı/parola kombinasyonu dener.
- Die-off Evresi: Saldırgan kaba kuvvet saldırısıyla erişim sağladığı makine üzerinde komutlar çalıştırmaya başlar. Dolayısıyla saldırgan ve ele geçirilmiş makine üzerinde hala bağlantı vardır.
Saldırının tespiti için iki nokta arasındaki bağlantı sayısı ve bağlantı başına düşen paket sayısı değerleri dikkate alınır.
Tarama evresinde tek bir noktadan birçok farklı IP’ye kurulan kısa bağlantılara bakılır. Bu bağlantılarda bağlantı başına düşen paket sayısı 2’dir (SYN,RST ya da SYN, SYN+ACK) ki bu da klasik port taramayı ifade eder. Kaba kuvvet evresinde iki nokta arasındaki uzun süreli ve çok sayıda paket içeren bağlantılara bakılır. Bağlantı başına düşen paket sayısı 11 – 14 arasında olanlar seçilir. Bu sayı SSH servisinin 3 başarısız giriş denemesinden sonra hata üretmesiyle ilişkilidir. Die-off evresinin tespiti için bağlantı başına düşen paket sayısının 8’den küçük ya da 14’den büyük olma durumuna bakılır. 8’den küçük olması saldırgan ile ele geçirilen makine arasında sadece bağlantı kurulduğunu 14’den büyük olması ise saldırganın makine ile aktif iletişimde (komut çalıştırması) olduğunu gösterir.
Şekil 6’ya göre 1. bölümler atağın tarama evresini, 2. bölümler atağın kaba kuvvet evresini, 3. bölümler die-off evresini ifade etmektedir. Benzer grafikleri elde edebilmek, saldırıyı tespit edebilmek için açık kaynak kodlu ağ akışı izleme yazılımı olan NfSen’e eklenti yazılmıştır [20].
4. Sonuç
Ağ üzerinden saldırıların tespiti için trafiğin tamamını işleyerek (DPI) başarı elde etmek güçtür. Özellikle trafiğin şifreli olarak aktığı ve yüksek bant genişliğine sahip ağlarda bu durum daha da zorlaşmaktadır. Bu noktada ağ trafiği için özet bir bilgi sunan ağ akış bilgisinin siber güvenlikte kullanımı önemli hale gelmiştir.
Botnet tespiti, DNS tünel tespiti, SSH atak tespiti, P2P (BitTorrent) trafiğinin tespiti [21], ağdaki anomalilerin tespiti [22], DDoS ataklarının tespiti [23], uzak sunucudaki NAT’ın tespiti [24] vb. birçok durumda kullanımı araştırmalara konu olmuştur. Sağladığı avantajlardan dolayı ilerleyen yıllarda siber güvenlik için popülaritesini devam ettiren, önemli bir konu olacağı tahmin edilmektedir.
Kaynak: Sedat Telli