Merhaba, yeni bir açık kaynak kodlu makale serisi ile karşınızdayız. Bu makale serisinde sizleri Security Onion ile tanıştırmak istiyorum.
Security Onion SANS eğitmenlerinden Doug Burks tarafından tamamen açık kaynak kodlu yazılımların bir araya getirilip entegre edilmesi ile ortaya çıkan, merkezi log yönetimi, Tehdit Avcılığı (Threat Hunting), Ağ Adli Bilişim (Network Forensic), server/client ve aktif cihazlar gibi log üreten her şeyi analiz edebilen bir platform.
Kurum ve yapılandırma işlemlerine başlamadan önce SO (Securtiy Onion) oluşturan araçlara beraber bakalım.
Elasticsearch, Logstash, Kibana, Snort, Suricata, Zeek, Wazuh, Sguil, Squert, CyberChef, NetworkMiner. Tabi kullanılan araçlar bunun ile sınırlı değil. Bu araçları tek tek açıklamak yerine, makalelerin ilerleyen bölümlerinde yeri geldikten uygulamalı olarak anlatacağım.
İsterseniz yavaş yavaş kuruluma geçelim.
Yapı
Securtiy Onion(artık SO diye kısaca ifade edeceğim) yukarıda da yazdığım gibi network analizi yapabiliyor. Bunu yapmak için fiziksel network tarafında yapılması gereken bazı ayarlar bulunmaktadır.
Benim yapım bu bileşenlerden oluşuyor.
1 – ESXi sanallaştırma altyapısı üzerinde 1 adet vm (üzerinde 2 ethernet kartı )
2 – Network ortamında 1 adet Hp 2920 switch
3 – Test işlemlerinde kullanmak üzere sunucu, client, güvenlik duvarı
İlk olarak SO kurulacak olan vm özellikleri üzerine konuşmamız gerekli.
VM konfigürasyonunda dikkat edilmesi gereken durumlar
- Network
Eğer network analizi yapılacaksa (zaten yapılmalı bence SO’nun en güçlü yanlarından birisi bu özelliği) üzerinde 2 adet ethernet kartı. Bu ethernetlerden birsi vm network’e bağlı diğeri yine hangi network dinlenecek ise o network’de promiscuous mod olarak yapılandırımış durumda. Burada ki önemli nokta hem switch üzerinde hemde vm altyapısında bu ethernet promiscuous mod olarak yapılandırılmalı. - Depolama
Bu çok önemli özelliklede network analiz yapıyorsanız çok fazla boyutta veri üretiliyor benim deneyimlerim ortalama bir network için 40 ile 50 TB lık bir alan 30 günlük log tutabiliyor tabi çok fazla değişken var. Bunlar EPS değerleriniz,network’ünüzün büyüklüğü ve oluşturduğu log miktarı, kullanılan cihazların sayısı (sunucu-istemci, switch, router ) gibi bir çok unsur var bunların iyi hesaplanması gerekli.
Kurulum Mimarisi
SO farklı yapılar için farklı kurulum senaryoları destekler bunlar:
Standalone Mimari
Bu makaleninde konusu olan tüm bileşenlerin tek bir sunucuda toplandığı yapı. Bu yapılar test veya küçük ortamlar için uygundur.
Distributed Depoloyment
Tavsiye edilen yapı şekilde. İkinci makalemizin konusunu bu yapının kurulması üzerine olacaktır. Bu yapıda depolama, analiz, log toplamadan görevli olan Forward’lar bir birinden ayrılmıştır.
Heavy Distributed Deployment
Bu yapıda sorgular master node’da yapılmakta diğer tüm işlemler diğer node’da devam etmekte, çok tavsiye edilen bir yapı değil ama “Distributed Deployment” yapılamıyorsa tercih edilebilinir.
Evet şimdi makalemizin konunusu olan “Standalone Mimari” ile devam edebiliriz. Bu yapıda yukarıda da bahsettiğimiz gibi tüm bileşenler tek bir sunucuda olacak.
İlk olarak yapılandırmaya switch üzerinden başlıyacağım. Kuracağımız yapıyı anlatırken ethernet kartlardan birinin “Promiscuous Mode” olarak yapılandaracağımız ve böylece network’deki tüm trafiği dinleyebileceğimizi söylemiştim. Bunun için ilk önce bu ethernet kartının switchde sonlanan portunuda “mirror” dediğimiz şeklide yapılandırmamız gerekli.
İlk önce swtich’e bağladım
Aşağıdaki komutlar ile switch üzerindeki 48 nolu portu mirror olarak, 1-47 arasındaki portlar üzerinde geçen tüm trafiğin bir kopyasını 48 nolu port üzerinde de geçecek çekilde yapılandırdım. Böylece switch üzerindeki tüm trafiği SO üzerine yönlendirmiş oldum ama daha bitmedi işin SO sunucu kısmında var.
configure terminal
mirror-port 48
interface 1-47 monitor
Sanllaştırma altyapısı olarak ESXi 6.7 kurulu ve fiziksel switch üzerinde gerekli yapılandırmalar ardında sanallaştırma üzerinde de gerekli yapılandırmaları yapmamız gerekli.
İlk önce yeni bir vss oluşturuyorum.
Ayarlar kısmında “Promiscuous Mode” Accept olarak ayarlıyorum.
Port Group oluşturuyoruz.
Evet bu işlemlerin ardından artık network’de olan bitenleri analiz edebileceğiz.
İlk önce kurulum için gerekli olan iso dosyasını https://securityonion.net/ adresinden indiriyoruz.
Sıra geldi SO VM oluşturmaya.
Ben test ortamı için 4 çekirdek, 8 GB ram seçimi yaptım. Diski Thick olarak ayarladım ama prod ortamlarda kullanmak için Thick seçilmesinde fayda var böylece disk okuma ve yazmada daha fazla performans alınılabilir.
SO iso’unu seçiyorum.
VM özelliklerine girip ikinci bir ethernet kartı ekleyip sonrasında network’u dinlemek için ayarladığım “Mirror-PG” seçiyorum.
VM start edip devam ediyorum.
Masasütündeki “Install SecurityOnion” linkine çift tıklayarak başlıyorum.
Kurulum bitiyor ve sunucumu resetliyorum.
Şuana kadar işletim sistemini kurduk. Şimdi sıra SO yapılandırmasında. Bunun içim yine masaüstündeki “Setup” kısayoluna çift tıklayarak başlatıyorum.
“Yes, Continue!” seçeneği ile devam ediyorum.
Ethernet kart yapılandırması için “Yes, configure /etc/network/interfaces!” seçeneği ile devam ediyorum.
VM üzerinde iki ethernet kartı var. Bunlardan birtanesi yönetim için kullanacağız diğerini network’u dinlemek için.
İlk olarak yönetim yani management interface’i ayarlamak ile başlıyorum. Management için kullanacağım interface’i seçiyorum.
Sabit ip vereceğim için “Static” seçeneği ile devam ediyorum.
Ip yapıladırmalarını kendinize göre yapın. Ben kendi network’um için uygun ayarları yaptım. Şimdi sıra “Promiscuous mode” olarak yapılandıracağımız network kartına geldi. Bunun için “Yes, configure sniffing interfaces” seçeneği ile devam ediyorum.
“Promiscuous Mode” için kullanacağım ikinci ethernet kartımı seçtim.
Bu ayarlardan sonra SO sunucumu yeniden başlatıyorum.
VM açıldıktan sonra “Setup” kısayoluna yeniden çift tıklıyorum.
Bu ekranda iki seçenek karşımıza geliyor. Bunlar:
Evaluation Mode – Standart mod, default ayarlarla kurulum tamamlanır.
Production Mode – Bu modda ayarları tek tek ayarlayabiliyoruz.
Ben “Production Mode” ile devam ediyorum.
“New” ile devam ediyorum böylece yeni bir kurulum yapacağımı söylüyorum.
Yönetim paneli için kullanıcı ve şifre belirliyorum.
“IDS” için kullanacağım kural setini seçiyorum. Ücretsiz olanda var veya bir ücret karşılığı “onkicode” denen kodu edinerek devam edilir. Detaylı bilgiyi buradan alabilirsiniz. https://www.snort.org/products
IDS için hangi altyapıyı kullanacağınızı seçiyorsunuz. Ben snort’u seçiyorum. Snort – Suricate karşılaştırması için burayı inceleyebilirsiniz. Karşılaştırma
Ağ arayüzüne gelen trafikle diske yazma yazılan trafik arasındaki veriyi ram’a yazarak paket kaybı yaşanmasının önüne geçmeyi hedeflemektedir. Bu değeri yükselterek paket kayıplarının önüne geçilebilinir.
İzlemek istediğiniz network aralıklarını giriyorsunuz.
Verilerin localda tutlacağını söylüyor eğer başka yerde tutmak isterseniz “No” seçeneği ile devam edebilirsiniz. Ben aynı sunucuda tutacağım için “Yes” seçeneği ile devam ediyorum.
Tutulacak log için kapasite değerini istiyor. Benim alanıma uygun değer geliyor.
“Yes” seçeneği ile onaylıyorum.
Kurulum bitti ve SO yeniden başladı. Herhangi bir tarayıcı açarak “https://SO ip’si/app/kibana” yazarak SO arayüzüne erişiyorum.
Görüldüğü gibi başarılı bir şekilde arayüze eriştim ve gelen logları görmeye başladı. Gördüğü gibi arayüz Kibana.
SO, görselleşitirme için Kibanayı kullanmaktadır.
Evet SO makalemizin ilk bölümünün sonuna geldik. İkinci makalede “Distributed Depoloyment” olarak kurumu yapacağız. Keyifli okumalar.