WinRM Client
WinRM Security Policies yazımızda WinRM protokolü uzaktan sunuculara komut göndermemize olan sağlayan iletişim protokolüdür. Powershell kullananlar özellikle bunu çok kullanmaktadır.Enter-PSSession komutları ile uzak sunuculara komut gönderiyoruz. Tabiki bu işlem güvenlik açısından risklidir ama güvenlik önlemleri ile sıkılaştırılabilir. Bunun için gerekli olan policyler aşağıda sıralanmıştır.
Basic Authentication
Basic Authentication şifreleri karşıdaki sunucuya göndermektedir. Bu da aslında siber saldırganlar için bulunmaz nimetlerden biridir. Çünkü saldırıya uğramış bir sunucu şifreyi farklı amaçlarda kullanabilir. Öncellikle bu açığımızı kapatmamız gerekmektedir. Bunun için basic authentication kapatmak gerekmektedir.
Computer Configuration > Policies > Administrative Templates> Windows Components>Windows Remote Management (WinRM)> WinRM Client > "Allow Basic Authentication"
GPO ayarını disable ediyoruz.
Encrypted Traffic
Winrm sonuç olarak sunucu ile client arasında bir iletişim oluşturmaktadır. Bu iletişimin şifrelenmiş olması gerekmektedir. Araya giren siber saldırganlar bu trafiği manipüle edebilmektedir. Bu sebepten şifrelenmemiş trafikleri red edilmesi gerekmektedir.
Computer Configuration > Policies > Administrative Templates> Windows Components>Windows Remote Management (WinRM)> WinRM Client > "Allow Unencrypted traffic"
GPO ayarını disable ediyoruz.
Digest Authentication
Digest Authentication aslında basic authentication’a çok benzemektedir. Sadece basic authentication da sunucuya gönderilen şifre burada gönderilmez. Bunun yerine digest’ını yani hash alarak sunucuya göndermektedir. Günümüzde hash kullanarak yapılan bir çok saldırı tipi bulunmaktadır. Bu sebepten dolayı basic ve digest yerine sertifika veya negotiate authentication kullanmak güvenlik açısından önemlidir. Bu sıkılaştırma ile digest authenticationları red edeceğiz.
Computer Configuration > Policies > Administrative Templates> Windows Components>Windows Remote Management (WinRM)> WinRM Client > "Disallow Digest Authentication"
GPO ayarını enable ediyoruz.
CredSSP Authentication
CredSSP aslında basic authentication benzemektedir. Credential ları sunucuya iletmektedir. Bunun da kapatılması yararlı olacaktır.
Computer Configuration > Policies > Administrative Templates> Windows Components>Windows Remote Management (WinRM)> WinRM Client > "Allow CredSSP Authentication"
GPO ayarı disable olarak işaretlenmelidir.
Trusted Host
İsteğe bağlı olarak Winrm üzerinden uzaktan kod çalıştırırken client bilgisayarında hiç bir ayar yapılmazsa trusted hostlara ekleme yapmanız gerekmektedir. Tüm kullanıcılar için önceden trusted host lar belirlenebilmektedir. Bu ayar biraz isteğe bağlıdır.
Computer Configuration > Policies > Administrative Templates> Windows Components>Windows Remote Management (WinRM)> WinRM Client > "Trusted Hosts"
Gpo ayarını enable ederek trusted host list tanımlaması yapılmalıdır.
WinRM Service
WinRM Servis tarafında da aynı ayarlar aslında yapılmaktadır. Farklı olan ayarları görsellerle aşağıda sunmaktayız.
Computer Configuration > Policies > Administrative Templates> Windows Components>Windows Remote Management (WinRM)> WinRM Service > "Allow Basic Authentication"
disable edilmektedir.
Computer Configuration > Policies > Administrative Templates> Windows Components>Windows Remote Management (WinRM)> WinRM Service > "Allow Unencrypted traffic"
disable edilmelidir.
Computer Configuration > Policies > Administrative Templates> Windows Components>Windows Remote Management (WinRM)> WinRM Service > "Disallow Digest Authentication"
enable edilmelidir.
Computer Configuration > Policies > Administrative Templates> Windows Components>Windows Remote Management (WinRM)> WinRM Service > "Allow CredSSP Authentication"
disable edilmelidir.
RunAs Credential
WinRM servisininde kullanılan herhangi bir plug-in için RunAs kimlik bilgilerinin saklanıp saklanmayacağı konusunda sıkılaştırma önemlidir. Çünkü siber saldırganlar sunucular üzerinden parola çalabilme olasılıkları bulunmaktadır. Güvenlik önlemi olarak runas kimlik bilgilerini depolanmasının önüne geçmek gerekmektedir. Bu sebepten aşağıda policy önemlidir.
Computer Configuration > Policies > Administrative Templates> Windows Components>Windows Remote Management (WinRM)> WinRM Service > "Disallow WinRM from storing RunAs credentials"
ayarını enable olarak işaretliyoruz. Bu ayar sayesinde run as credential kullanılmasına izin vermeyecektir. Eğer daha önceden kullanılmışsa ise depolamadan silecektir.
Sonuç olarak WinRM Security Policies güvenlik önlemlerini bu yazımızda detaylıca bahsettik. Diğer yazılarımızı aşağıdaki kategorilerden takip edebilirsiniz.