WinRM Security Policies

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.

WinRM Security Policies Basic

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.

WinRM Security Policies encrypt traffic

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.

WinRM Security Policies digest

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.

WinRM Security Policies Run As

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.