CyberFlow Logo CyberFlow BLOG
Soc L2 Network Analysis C2

Zeek (Bro) ile Ağ Trafiği Analizinin Temelleri

✍️ Ahmet BİRKAN 📂 Soc L2 Network Analysis C2

Bu yazıda, Zeek ile ağ trafiği analizinin temellerini keşfedecek ve log yapısının önemi üzerinde duracağız.

Zeek (Bro) ile Ağ Trafiği Analizinin Temelleri

Zeek, ağ güvenliği için kritik bir araçtır. Bu blogda, Zeek ile ağ trafiği çözümlemesinin temellerini öğrenip, log yapısını keşfedeceksiniz.

Giriş ve Konumlandırma

Zeek'in Temel İşlevi

Siber güvenlik dünyasında ağ trafiği analizi, sistemlerin güvenliğini sağlamak adına kritik bir rol oynamaktadır. Farklı araçlar ve yöntemler kullanılarak gerçekleştirilen bu analiz, siber tehditlerin tanımlanması ve önlenmesi için hayati öneme sahiptir. Zeek, bu bağlamda çok güçlü bir ağ güvenlik monitörü olarak öne çıkmaktadır.

Zeek, yalnızca ağ trafiğini kaydetmekle kalmaz, aynı zamanda bu trafiğin meta verilerini üretir. Yani, verilerin ham içeriği yerine, bağlantılar, kullanıcı aktiviteleri ve uygulama protokolleri gibi anlamlı bilgiler sunar. Bu yetenekleriyle, Zeek, ağ güvenliği analistlerine her bir IP oturumu hakkındaki bilgileri sağlayarak şüpheli aktiviteleri tespit etme süreçlerini büyük ölçüde kolaylaştırır. Bu tür bir analiz, olası saldırılar hakkında önemli bilgiler sunarak, güvenlik takımlarının olaylara hızlı bir şekilde müdahale etmelerine olanak tanır.

Temel Log Dosyası

Zeek ile ağ trafiği analizinin en önemli bileşenlerinden biri, log dosyalarının düzenli ve anlamlı bir şekilde oluşturulmasıdır. Zeek, bu amaçla çok sayıda log formatı üretir ve bunlar arasındaki uygun bağları kurmak, siber güvenlik analistlerinin işlevselliğini artırır. Zeek’in oluşturduğu temel log dosyası, her bir IP oturumunun özeti, süresi ve aktarılan byte miktarını içeren conn.log dosyasıdır. Bu dosya, ağ üzerindeki her bir bağlantının durumunu izlemeye ve analiz etmeye olanak tanır.

Örneğin, conn.log dosyasında yer alan bağlantı durumu (conn state) kodları, bir bağlantının nerede durduğunu analiz etmede kritik bilgiler sunar. Aşağıda bu bağlamda bazı örnek durumlar verilmiştir:

S0 - Sadece SYN görüldü, cevap alınamadı
SF - Bağlantı normal şekilde kuruldu ve sonlandı
REJ - Bağlantı denemesi hedeften reddedildi (RST)

Bu kodlar, bir saldırı tespiti veya diğer ağ problemleri hakkında bilgiler sağlamak adına kullanılır.

Log Okuma Aracı

Zeek loglarının analizi için terminal ortamında pratik bir yaklaşım benimsemek gerekir. Loglar içindeki belirli bilgileri ayrıştırmak ve hızlı bir şekilde analiz yapabilmek için Zeek'in sunduğu zeek-cut gibi komut satırı araçları kullanılabilir. Bu araçlar, log dosyalarındaki belirli sütunları çıkarmak için oldukça etkilidir. Örneğin, bir ağ analisti belirli bir IP adresinin bağlantı zamanlamalarını ve aktarılan veri miktarlarını incelemek istediğinde zeek-cut komutunu kullanarak gerekli verileri çok daha hızlı elde edebilir.

Zeek Log Türleri

Zeek’in sunduğu çeşitli log türleri, ağ güvenliği analizi sırasında büyük kolaylık sağlamaktadır. Her bir log türü, ağ üzerindeki farklı aktiviteleri kattığı değerle analiz için daha fazla bilgi sunar. Örneğin:

  • http.log: Web istekleri, URI’ler ve User-Agent bilgileri.
  • dns.log: Alan adı sorguları ve dönen IP yanıtları.
  • files.log: Ağ üzerinden aktarılan dosyaların hash özetleri.

Bu log türleri, analistlerin ağ trafik akışını kapsamlı bir şekilde takip etmelerinin yanı sıra, olayların ilişkilendirilmesi ve derinlemesine analiz yapılabilmesine olanak sağlar.

Bağlantı Durumları (Conn State)

Bir saldırının ya da olağan dışı bir durumun tespit edilmesinin ilk adımı, bağlantı durumlarının doğru bir şekilde analiz edilmesidir. Zeek loglarında bağlantı durumları, ağ üzerindeki her bir oturumun başlangıcından sonuna kadar yaşadığı süreçleri anlamak için anahtar rol oynar. conn.log dosyasındaki durum kodları, ağ analistlerine bir saldırının başlama zamanını, süresini ve türünü belirlemede yardımcı olur.

Sonuç olarak, Zeek ile ağ trafiği analizinin temellerinin öğrenilmesi, siber güvenlik pratiğinin daha derin bir anlayışla yürütülmesini sağlayacaktır. Bu içerik, okuyucuları Zeek’in sunduğu olanaklar ve teknik içeriğe hazırlamak için tasarlanmıştır. İlerleyen bölümlerde, Zeek ile etkili bir trafik analizi yapmak için gerekli olan araçlar ve yöntemler detaylı olarak incelenecektir.

Teknik Analiz ve Uygulama

Zeek'in Temel İşlevi

Zeek, bir ağ güvenlik monitörü olarak tanımlanabilir ve ağ trafiğini analiz ederek sadece paketlerin ham içeriğini kaydetmez, aksine trafiğin meta verisini (metadata) üreten bir yapıya sahiptir. Bu özellik, ağ üzerindeki aktivitelerin izlenmesi ve tespit edilmesi açısından son derece önemlidir. Analiz edilen veriler, güvenlik analistlerine potansiyel tehditlere ilişkin bilgi sağlar ve ağ üzerindeki tehditlerin hızlı bir şekilde tespit edilmesini sağlar.

Temel Log Dosyası

Zeek, ağ üzerindeki IP oturumlarının (session) özetini, süresini ve aktarılan byte miktarını içeren en temel log filesi olan conn.log dosyasını oluşturur. Bu dosya, ağ trafiği hakkında kapsamlı bir bilgi sağlar ve analistlerin trafik akışlarını daha iyi anlamalarına yardımcı olur.

Log Okuma Aracı

Zeek loglarını analiz ederken, belirli sütunları hızlıca ayrıştırmak ve okumak için zeek-cut adı verilen komut satırı aracı kullanılır. Bu araç, log dosyalarındaki belirli alanlara (fields) erişim sağlar. Örneğin, conn.log dosyasından belirli sütunları çekmek için aşağıdaki komut kullanılabilir:

zeek-cut id resp_bytes < conn.log

Bu komut, conn.log dosyasındaki resp_bytes sütununu çeker ve aldığınız verileri analiz etmenizi kolaylaştırır.

Zeek Log Türleri

Zeek tarafından oluşturulan birden fazla log türü vardır. Örneğin, http.log, web istekleri, URI'ler ve User-Agent bilgileri içeren logları; dns.log, alan adı sorguları ve dönen IP yanıtları içeren logları ve files.log, ağ üzerinden aktarılan dosyaların hash özetleri gibi değerli bilgileri içeren logları barındırır.

Logların içeriğini eşleştirmek, farklı türlerdeki logların incelenmesi sırasında faydalı olabilir. Her log dosyası, işlemekte olduğunuz olayla ilgili belirli bir bilgi parçası sunar.

Bağlantı Durumları (Conn State)

conn.log dosyasında, bağlantıların durumlarını tanımlayan çeşitli kodlar mevcut olup, bu durum kodları analizin önemli bir parçasını oluşturur. Aşağıda bazı bağlantı durumu kodları ve anlamları verilmiştir:

  • S0: Sadece SYN görüldü, cevap alınamadı.
  • SF: Bağlantı normal şekilde kuruldu ve sonlandı.
  • REJ: Bağlantı denemesi hedeften reddedildi (RST).

Bu kodlar, ağ trafiğinin durumunu anlamak için önemlidir ve her bir olayın analizi sırasında izlenmelidir.

Olay İlişkilendirme

Zeek loglarında bir bağlantının, farklı log dosyaları (örneğin conn.log ve http.log) arasında takip edilebilmesini sağlamak için kullanılan benzersiz tanımlayıcıya uid denir. uid, çoklu log dosyaları arasında ilişkileri sağlamayı kolaylaştırır ve analistlere olayların bağlamını daha iyi anlaması için gerekli bilgiyi sunar.

Özelleştirme ve Kurallar

Zeek, güvenlik politikalarınıza uygun olarak özelleştirilebilir. Özel kurallar yazmak için Zeek scripting dili kullanılır. Özelleştirilmiş kurallar, belirli tehditleri tespit etmenizi veya ağ üzerinde istenmeyen davranışları belirlemenizi sağlar. Aşağıdaki gibi basit bir kural tanımı yapılabilir:

rule ssh_attempt {
    event ssh_auth_attempt;
    action {
        print "SSH authentication attempt detected";
    }
}

Bu örnekte, bir SSH yetkilendirme denemesi tespit edildiğinde belirli bir eylem gerçekleştirilir.

SIEM Entegrasyonu

Zeek loglarının modern SOC mimarileri dahilinde SIEM (Security Information and Event Management) çözümleriyle entegrasyonu önemlidir. Zeek, loglarınızı JSON formatında dışa aktarma yeteneğine sahiptir, bu da logların SIEM sistemlerine kolayca entegre edilmesini sağlar:

zeek -r your_capture.pcap -b /path/to/zeek/logs

Bu komut, your_capture.pcap dosyasını okuyarak logları oluşturur ve belirtilen dizine kaydeder.

Analiz Metodolojisi

Modern bir ağ güvenlik analistinin Zeek loglarını kullanarak şüpheli bir ağ aktivitesini tespit etmek için izleyebileceği bazı temel adımlar bulunmaktadır. Analistler, genellikle başlangıç noktasında bir güvenlik olayı tespit ettiğinde, ilgili log dosyalarını inceleyerek potansiyel kötü niyetli aktiviteleri belirlemek için bağlantı durumları ve olayları eşleştirmeye başlarlar.

SOC L2 Pratiği

Blue Team analistleri, Zeek ile ağ trafiğini analiz ederek trafik hacmini değerlendirir ve potansiyel tehditleri proaktif bir şekilde tespit etmeye çalışır. Zeek logları, analiz sırasında yapılan her türlü eylem için potansiyel bir kaynak oluşturur.

Sonuç olarak, Zeek’in ağ trafiği analizi için sunduğu özellikler, güvenlik analistlerinin ağ üzerindeki aktiviteleri derinlemesine incelemelerine ve olası tehditleri belirlemelerine olanak sağlar. Eğitim ve teknik bilgi ile desteklenen bu kaynak, ağ güvenliği alanında çalışan profesyoneller için değerli bir başvuru noktasıdır.

Risk, Yorumlama ve Savunma

Ağ trafiği analizi, siber güvenlikte kritik bir rol oynamaktadır. Zeek (eski adıyla Bro), ağ monitoringi ve olay analizinde önemli bir araç olarak kullanılmaktadır. Bu bölümde, Zeek üzerinden elde edilen bulguların güvenlik anlamı, potansiyel yanlış yapılandırmalar veya zafiyetlerin etkileri, veri sızıntıları, topoloji analizi, servis tespiti gibi sonuçların nasıl yorumlanacağına dair detaylar ele alınacaktır.

Zeek Loglarının Güvenlik Anlamı

Zeek, ağ trafiğini gerçek zamanlı olarak analiz ederek, paketlerin ham içeriklerini kaydetmek yerine, bunların üzerinde meta veri oluşturan bir araçtır. Bu sayede, ağ üzerindeki aktivitelerin detaylı bir özetini sağlamaktadır. Örneğin, conn.log dosyası, her IP oturumunun (session) süresini, aktarılan byte miktarını ve durumunu içermektedir.

zeek-cut -d conn.log

Yukarıdaki komut, conn.log dosyasındaki belirli alanları hızlıca incelemek için kullanılabilir. Analiz sırasında, her bağlantının durumu önemlidir. Örneğin, SF (bağlantı normal şekilde kuruldu ve sonlandı) ve REJ (bağlantı denemesi hedeften reddedildi) durumları, ağda potansiyel bir tehlikeyle karşılaşabileceğimizi gösterir.

Yanlış Yapılandırmalar ve Zafiyetler

Yanlış yapılandırmalar, ağ güvenliğinde büyük riskler oluşturabilir. Zeek'in sunduğu loglar, bu yapılandırmaların izlenmesine yardımcı olur. Örneğin, belirli IP adreslerinden gelen sıra dışı bağlantı talep sayıları veya alışılmadık bağlantı durumları, potansiyel bir zafiyetin göstergesi olabilir.

zeek-cut src_ip, dst_ip, conn_state conn.log | sort | uniq -c | sort -nr | head

Yukarıdaki komut, bağlantı durumlarını ve IP çiftlerini sıralar, böylece hangi kaynakların en çok bağlantı gerçekleştirdiğini anlayabiliriz. Eğer belirli bir IP adresi normalden fazla bağlantı kuruyorsa, bu siber saldırı göstergesi olabilir. Bu gibi durumlarda, zeek loglarına dayanarak hızlıca önlem almak kritik önem taşır.

Veri Sızıntısı ve Topoloji Tespiti

Zeek, veri sızıntılarını tespit etme yeteneği sayesinde, ağdaki güvenlik açıklarını belirlemek için önemli bir araçtır. Log dosyalarında yer alan files.log, ağ üzerinden aktarılan dosyaların hash özetlerini içermekte, bu da istenmeyen veri transferlerinin tespitini kolaylaştırmaktadır:

zeek-cut -d files.log

Topoloji analizi açısından, Zeek ile ağdaki tüm bağlantılar ve bu bağlantıların durumu takip edilebilir. Herhangi bir anomalinin tespiti, saldırıların önlenmesi açısından kritik bir adım olabilir. Elde edilen bulgular, ağ mimarisi üzerine detaylı gözlemler yapmamıza olanak tanır.

Profesyonel Önlemler ve Hardening Önerileri

Zeek ile bilimsel bir yaklaşım benimseyerek, ağ güvenliğini artırmak mümkün. Önerilen bazı hardening önlemleri şunlardır:

  1. Firewall Kuralları: Ağınıza yönlendiren trafik üzerinde etki sağlamak için güçlü firewall kuralları belirlenmelidir. Gereksiz portların kapatılması kritik öneme sahiptir.

  2. Otomatik İzleme: Zeek'in sağladığı log dosyalarındaki belirli anormallikleri otomatik olarak izleyen sistemler kurulmalıdır. Bu, potansiyel tehditlerin zamanında tespit edilmesini sağlar.

  3. Düzenli Güncellemeler: Zeek ve diğer ağ güvenliği araçlarının düzenli olarak güncellenmesi gerekmektedir. Bilinen zafiyetlere karşı güncellemeler ve yamanın yapılması son derece önemlidir.

  4. Eğitim ve Farkındalık: Takım üyeleri, ağ güvenliği hakkında sürekli durum güncellemeleri ve eğitimler ile desteklenmelidir. Bu, insan hatalarının minimumda tutulmasına yardımcı olur.

Sonuç

Zeek, ağ trafiği analizi ve güvenlik izleme alanında güçlü bir araçtır. Elde edilen loglar aracılığıyla, ağ aktivitesinin güvenlik anlamını yorumlamak, yanlış yapılandırma ve zafiyetlerle ilgili riskleri değerlendirmek, veri sızıntılarını anlamak ve ağ topolojisi üzerindeki etkilerini görmek mümkündür. Doğru hardening uygulamaları ve profesyonel önlemlerle birlikte, Zeek’in sunduğu bilgilerden en iyi şekilde yararlanmak mümkün hale gelir. Bu sayede, ağ güvenliğinizin seviyesini artırabilirsiniz.