PowerShell Loglama

PowerShell, adından da anlaşılacağı üzere son derece güçlü bir komut ortamı ve Microsoft Windows’da yerleşik olarak bulunan bir komut dosyası dilidir. PowerShell pek çok Windows ortamda default olarak iz bırakmaz. Aslına bakarsanız default olarak iz bırakmaması dünya çapında bir çok kuruma pahalıya patlamıştır. Kısaca PowerShell tarihçesine değinmek gerekirse;

  • PowerShell 2.0 Windows 7/2008 sistemlerde geliyordu ve analiz açısından çok az kanıt sunmaktaydı.
  • Microsoft güvenlik açısından, daha detaylı loglama ve analiz için kilometre taşı diyebileceğimiz PowerShell 5.0’ı geliştirdi. Bu sürüm ile birlikte sistem üzerinde gerçekleştirilen aktivitelerin loglanması sağlanmış oldu. (PowerShell commands and scripts, de-obfuscated code, output, and transcripts of attacker activity.)
  • $PSVersionTable komutu ile PowerShell sürümünüzü görüntüleyebilir, isterseniz upgrade yapabilirsiniz.

PS loglama neden önemli?

PowerShell loglamanın önemini her geçen gün çok daha iyi anlamaktayız. Powershell loglamaya yeteri kadar önem verilmesi ve SIEM+DLP gibi başrol oyunculara gereken hassasiyetin gösterilmesi gerekmektedir. Yine her zaman belirttiğim gibi farkındalık çok önemlidir. Güvenliğin her bir adımının adeta bir zincirin halkası olduğu unutulmamalıdır.

Yapılandırma

Group Policy Management üzerindeki policy ayarlarından ihtiyaca uygun policy etkinleştirilebilir.

Policy aktif olduktan sonra Eventviewer’da 4103 olarak olaylar oluşmaya başlayacaktır. Burada kritik olan nokta ilgili komutlara göre alarm mekanizması oluşturmaktır. Önemli durumlarda ilgili ekipler bilgilendirilmelidir.

PS komut satırından script içeren bir program çalıştırıldığında Command Type=Script olacaktır.

Referanslar;

1- https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-6