Açık Kaynak Kodlu Bir Tehdit Avcısı: Velociraptor
Öncelikle Velociraptor kelimesinin anlamından başlayalım. Latincede ‘hızlı gaspçı’ anlamına gelmektedir ve aynı zamanda eski dönemlerde yaşamış olan bir kuş benzeri tüylü bir canlının da ismidir. Mike Cohen tarafından oluşturulan Velociraptor siber güvenlikte ise açık kaynaklı uç nokta izleme, adli delillerin toplanması, olay günlükleri incelemesi, tarihsel incelemeler gibi işlemlerin yapılmasını sağlar. Velociraptor’un gücü ve esnekliği Velociraptor Sorgu Dili’nden (VQL) gelmektedir.
Velociraptor’ün bazı özelliklerini inceleyelim.
- Ücretsiz bir açık kaynak çözümüne erişim
- Son noktada adli analiz (dakikalar içinde büyük ölçekli tehditleri avlayarak uç noktada otomatik ve cerrahi analizlerin yapılmasını sağlar.)
- Bilgi paylaşımı
- Hız ve ölçekte cerrahi toplama (adli delilleri verimli bir şekilde öncelik sırasına koyup ve hızla analiz eder.)
- Hızlandırılmış ortalama algılama süresi (MTTD) ve ortalama yanıt verme süresi (MTTR) (kullanıcıların olası hasarı sınırlandırarak taktiksel müdahaleleri ve düzeltmeleri hızlı bir şekilde gerçekleştirmesini sağlar.)
- Linux, Windows ve macOS desteği.
- Güçlü VQL sorgulama dili. (Uç noktaları toplamak ve avlamak için yapıtları tanımlar, sorguları değişen tehditlere ve soruşturma yoluyla kazanılan yeni bilgilere yanıt olarak hızla uyarlar.)
Şimdi ise Velociraptor’ün Linux ortamına kurulumunu gösterelim.
Terminal ortamını açtıktan sonra;
Aşağıdaki adresi yazıp kurulum soyasını indirelim.
Aşağıdaki komutu çalıştırarak dosyayı yürütülebilir yapıyoruz.
chmod +x velociraptor-v0.6.4-2-linux-amd64
Ardından, Velociraptor'u yapılandırmak için aşağıdaki komutu çalıştırın:
velociraptor config generate –i
Ardından sistem bize bazı sorular yöneltecek onları aşağıdaki gibi cevaplayalım.
Buradaki işlemlerden sonra yapılandırma dosyasının içeriğinde bazı değişiklikler yapmamız gerekiyor. Bu yüzden nano ile yapılandırma dosyasını açıyoruz.
nano /etc/velociraptor.config.yaml
Bu komuttan sonra bind_address yazan yerlerin karşılığına kendi server IP’mizi yazıyoruz. Kaydedip kapatıyoruz.
Şimdi ise Velociraptor için bir systemd doyası oluşturmamız gerekiyor.
nano /lib/systemd/system/velociraptor.service
Bu dosyayı oluşturduktan sonra içerisinde aşağıdaki kodları yazalım. Kaydedip kapatalım.
systemd arka plan programını yeniden yükleyelim.
systemctl daemon-reload
Daha sonrasında ise velociraptor’u başlatıyoruz.
systemctl enable --now velociraptor
Artık Velociraptor’ün durumunu inceleyebiliriz.
Tarayıcımıza http://(dns_adımız):8889 olacak şekilde giriyoruz ve belirlediğimiz kullanıcı adı ile şifreyi girerek velociraptor arayüzüne erişmiş oluyoruz.
Buraya kadar olan kısımda sadece Velociraptor’ün kurulumunu yaptık. Bundan sonraki kısımda ise Velociraptor’ün kullanımından bahsedeceğiz. Ara yüzü aşağıdaki gibidir.
Arama kısmına, istemciyi görmek ve onunla etkileşim kurmak için magnifying glass yazıp show all seçeneğini seçiyoruz.
Daha sonrasında bizi böyle bir ekran karşılıyor. Burada Yeşil nokta uç noktanın çevrimiçi olduğunu ve Velociraptor sunucusuyla iletişim kurduğunu gösterir. Sarı nokta, sunucunun uç noktadan 24 saat içinde herhangi bir iletişim almadığı anlamına gelir. Kırmızı nokta, sunucunun uç noktadan son haber almasının üzerinden 24 saatten fazla zaman geçtiği anlamına gelir.
Client ID İstemcilerin "C" ile başlayan benzersiz bir kimliği vardır. Dahili olarak, client ID, uç nokta kimliğinin en doğru kaynağı olarak kabul edilir. Bir istemci kimliği, istemcinin şifreleme anahtarından türetilir ve istemcideki uç noktada depolanır
Hostname, istemcinin kendisini Velociraptor sunucusuna tanımladığı ana bilgisayar adıdır.
Operating System Version (OS Version), İstemci işletim sistemiyle ilgili ayrıntılar bu sütunda görüntülenir. Ana bilgisayarın bir Windows/Linux/MacOS makinesi ve ilgili sürümü olup olmadığını gösterir.
Labels (etiketler), birden fazla clienti bir grup olarak tanımlamak için kullanışlıdır. Etiket, bir ana bilgisayarla ilişkili herhangi bir addır. Etiketler, iyi tanımlanmış bir ana bilgisayar grubu aramamız gerektiğinde yararlıdır. Gereksiz veri toplamaktan veya olmamamız gereken makinelere erişmekten kaçınmak için aramayı bir veya daha fazla etiketle sınırlayabiliriz. Etiketleri arama ekranı aracılığıyla değiştirmek mümkündür. GUI'de ana bilgisayarları seçmeniz ve ardından "etiket ekle" düğmesini tıklamanız yeterlidir. Etiketleri GUI aracılığıyla değiştirmek mümkün olsa da, label()eklenti aracılığıyla etiket eklemek veya kaldırmak için VQL sorgularını kullanmak genellikle daha kolaydır.
(VQL dili ile ilgili detayları bir sonraki yazımda izah etmeye çalışacağım.)
Burada sağ üst tarafta bulunan seçenekleri inceleyerek başlayalım.
Overview(genel bakış): Burada Client Kimliği, Temsilci Sürümü, Ajan adı, Son görülme zamanı, Son Görülen IP, İşletim sistemi, Ana bilgisayar adı, Serbest bırakmak, Mimari, Client Meta Verileri
VQL Drilldown: Bu görünümde, istemci hakkında 24 saatlik zaman aralığında Bellek ve CPU kullanımı, istemci etki alanına katılmış bir makineyse Active Directory etki alanı ve istemci için etkin yerel hesaplar gibi ek bilgiler bulunur.
Veriler, son 24 saat boyunca Bellek ve CPU ayak izinde iki renkte temsil edilir.
Turuncu - Bellek kullanımı
Mavi - CPU kullanımı
Shell: Kabuk ile komutlar, istemci makinede uzaktan yürütülebilir. Komutlar PowerShell , CMD , Bash veya VQL'de çalıştırılabilir .
Örneğin whoami komutunu çalıştırıp sonuçlara bakalım.
Komutu çalıştırmak için sağ taraftaki launch ifadesine tıklayıp, sonuçları görmek için de göz şekline tıklıyoruz.
Bu sonuçları inceledikten sonra diğer sayfaya geri dönüp sol taraftaki seçenekleri inceleyelim.
Collected: Burada daha önce Shell'den yürütülen komutların sonuçlarını görmekteyiz. VFS ( Sanal Dosya Sistemi ) ile etkileşim gibi diğer eylemler burada, Collected’da görünecektir.
Interrogate: Bu seçenek sorgulama işlemlerini yaptırır. Sorgulama normalde client ilk kaydolduğunda gerçekleşir, ancak Sorgula düğmesine tıklayarak herhangi bir clienti sorgulayabilirsiniz.
Bir sonraki yazımda Velociraptor'ün temel komutlarından ve diğer işleyişlerinden bahsedeceğim. Takipte kalın :)
Kaynakça
https://socfortress.medium.com/free-incident-response-with-velociraptor-bedd2583415d
https://docs.velociraptor.app/docs/overview/
https://tryhackme.com/room/velociraptorhp