Şekil değiştiren komut satırları
Komut satırını saldırgan belirler. Programlar aynı seçeneği birkaç yazılışla kabul eder; tek yazılış için yazılmış bir kural diğerlerini kaçırır. PowerShell bunun yaygın örneğidir: -EncodedCommand base64 kodlanmış bir script alır ve PowerShell kısaltılmış parametre adlarını kabul eder; -e, -ec, -enc ve -EncodedCommand hepsi çalışır. Windows programları birçok seçenekte - yerine / da kabul eder.
windash
windash modifier'ı - ile /'yi (ve bazı programların kabul ettiği en dash, em dash ve horizontal bar karakterlerini) birbirinin yerine geçer hale getirir:
CommandLine|windash|contains: ' -enc '
-enc ve /enc ile eşleşir. Diğer kısaltmalara yardımı olmaz.
re
re modifier'ı değeri bir regular expression olarak ele alır. Sigma'da regular expression'lar varsayılan olarak büyük-küçük harfe duyarlıdır; re|i onları duyarsız yapar. Düz değerlerin aksine bir regular expression alanın tamamına sabitlenmez: ^ ya da $ kullanılmadıkça alanın herhangi bir yerinde eşleşir.
CommandLine|re|i: '\s[-/](e|ec|en[a-z]*)\s+[a-z0-9+/=]{20,}'
şöyle okunur: boşluk, sonra - ya da /, sonra e, ec ya da ardından harfler gelen en, sonra boşluk, sonra en az 20 base64 karakteri. Base64 argümanını şart koşmak, onu bir script içindeki -eq'dan ayıran şeydir. Regular expression'lar contains'ten daha zor okunur ve çoğu SIEM'de daha yavaş çalışır; seçenekler listelenemediğinde kullanın.
base64offset
Kodlanmış metnin kendisi biliniyorsa base64offset|contains onu base64 verinin içinde arar. Base64 üçer bayt kodlar; aynı metin nereden başladığına göre farklı görünür; modifier olası üç biçimi üretir. PowerShell script'i base64'ten önce UTF-16LE olarak kodlar, bu yüzden önce wide modifier'ı gelir:
CommandLine|wide|base64offset|contains: 'Invoke-Expression'
Bu, kodlanmış bir komutta bilinen bir metni çözmeden bulur.