MS08-037 ve MS09-008 güvenlik güncelleştirmeleri ile yapılan değişiklikler

Merhaba,

DNS servisi ile ilgili yakin zamanda yayinlanmis olan güvenlik güncellestirmeleri ve bunun sonucunda olusan bazi degisiklikler ile ilgili bilgi vermek istedim.

Ilk olarak 2008 Temmuz ayinda MS08-037 güvenlik güncellestirmesini yayinladik. Hem DNS istemci hem de DNS sunucu hizmetlerini etkileyen ve “spoofing” (aldatmaca – kendini authoritative (yetkili) olarak tanimlayip, farkli sunuculara yönlendirme) olarak tanimlanan olasi problemlere iliskin olarak yayinlandi. Kaminsky DNS vulnerability olarak adlandirilan bu açik için daha sonra ayrica bir bilgilendirme yapmayi düsünüyorum.

Bu güncellestirme genelinde iki farkli güncellestirme bulunuyor:

  • 951748 – DNS istemci tarafi için güncellestirme
  • 951746 – DNS Sunucu tarafi için güncellestirme

Mart 2009’da ise yine bir güvenlik günlestirmesi yayinlandi. MS09-008 numarasi ile belirtilen bu güncellestirmenin detaylari için asagidaki KB makalelerine göz atabilirsiniz.

  • 961063 - MS09-008: DNS sunucusu güvenlik güncellestirmesi: 10 Mart 2009'un açiklamasi
  • 961064 - MS09-008: WINS sunucusu güvenlik güncellestirmesi: 10 Mart 2009'un açiklamasi

MS09-008 güncellestirmesi 951746 – DNS sunucu tarafi için güncellestirmeyi içermektedir. Ancak yine de DNS sunuculari üzerine 951748 – DNS istemci tarafli güncellestirmeyi kurmalisiniz. Çünkü DNS sunuculari da ayrica DNS istemcileri olarak davranmakta ve bu hizmeti çalistirmaktadirlar. Biraz karisik olduguna katiliyorum. Neyse ki Windows Update sizin yerinize hangi güncellestirmelere ihtiyaciniz oldugunu, sisteminizi tarayarak ve Catalog sunucularinda arama yaparak bulabiliyor. Tabii Automatic Updates ya da WSUS kullaniyorsaniz.

Burada deginmek istedigim bu güncellestirmeler ile birlikte gelen degisiklikler ve bilenen, adreslenmis olan sorunlar. Yapilan en önemli degisiklik kaynak baglanti noktalarinin rasgele seçilmesidir. (DNS server source port randomization)

DNS sunuculari istemcilerden gelen sorgulari hep TCP/UDP 53 numarali baglanti noktasini dinleyerek karsilarlar. Yönlendirme islemi yapmakta olan her DNS sunucusu istemci adina diger DNS sunucularini sorgulayarak, istemci tarafindan gönderilen sorgu için isim çözümlemesi yapmaktadir. DNS sunucusu bunun için UDP 53 baglanti noktasini hedef (target port) olarak seçer ve kaynak baglanti noktasi (source port) için ise ephemeral (kisa süreli) baglanti noktalarindan bir tanesini rasgele seçmektedir. Bu baglanti noktalari IANA tarafindan tanimlanmis baglanti noktalarinin disinda kalan baglanti noktalarindan olusturulmus bir araliktir. Burada bahsi geçen güncellestirmelerden öncesinde bu aralik 1024 ile 5000 olarak tanimlanmistir. Network yöneticileri bu araligi daha kisa tutup, Firewall üzerinde daha kisa bir araliga geçis izni vermek isteyebilirler. Bunun için de MaxUserPort adinda bir kayit defteri girdisi kullanilir:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort

Örnegin, bu deger 2000 olarak verilirse, Windows Server 2003, 1024 – 2000 araligini kisa süreli baglanti noktasi olarak seçecektir.

  • Eger bu anahtar kullaniliyorsa, güncellestirmeler yüklendiginde bir degisiklik olmayacaktir. Baglanti noktasi 1024 – MaxUserPort araligindan seçilecektir.

  • Eger bu anahtar kullanilmiyorsa, güncellestirmeler yüklendiginde, daha çok kaynak ayirmak için bu aralik 49152 ile 65535 arasinda olacaktir.

Windows Server 2008 için varsayilan durum kaynak araliginin 49152 ile 65535 arasinda kullanilmasidir. MaxUserPort kayit girdisi ise 49512 den itibaren ne kadar port ayrilacagini belirtmektedir. Bu davranis 953230 numarali güvenlik güncellestirmesini yükledikten sonra da degismemektedir. Windows Server 2008’de yapilan bu degisiklik hakkinda daha fazla bilgi için:

929851 Windows Vista ve Windows Server 2008'de TCP/IP için varsayilan dinamik baglanti noktasi araligi degisti

Bu degisiklik bazi istemci/sunucu uygulamalarini etkileyebilir. DNS sunucusu veya istemcisinin rasgele seçtigi bu baglanti noktasi baska bir uygulama tarafindan sürekli kullaniliyor olabilir. Baglanti noktalari rasgele seçildii için örnegim DNS sunucu servisini yeniden baslattigimizda farkli bir baglanti noktasi seçecegi için bu problem tekrarlamayabilir. Ancak yine de kullanilan bu baglanti noktalarini devre disi birakmamiz gerekmektedir. Bu durumda MaxUserPorts ile tanimlama yapmak yerine ReservedPorts kisa süreli baglanti noktalarindan kullanilmasini istemediklerimizi belirleyebiliriz.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ReservedPorts

Bu anahtar REG_Multi_SZ dir ve böylelikle tek bir deger verebilecegimiz gibi belirli araliklari da verebiliriz. Örnegin:

  • Çoklu baglanti noktasi tanimlamak istersek: 3455-3465

  • Sadece tek bir baglanti noktasi tanimlamak istersek: 4000-4000

Örnegin SBS için asagidaki listede ki tanimlamalarin yapilmasi gerebilir:

1080 - 1080 Socks
1433 - 1434 MSSQL (diger SQL uygulamari için daha fazla kaynaga ihtiyaç olabilir)
1645 - 1646 IAS (Radius)
1701 - 1701 L2TP
1718 - 1720 H.323 Gatekeeper (sadece ISA 2000)
1745 - 1745 ISA Server 2000 ya da ISA Server 2004
1801 - 1801 MSMQ
1812 - 1813 IAS(Radius)
2883 - 2883 AUTD
3343 - 3343 (halihazirda ayrilmistir
3500 - 3619 sadece ISA 2000
4070 - 4071 BES
4500 - 4500 IPSEC

Görüldügü gibi bu sadece MaxUserPorts tanimlamasi yapildiginda gerekli olacaktir. MaxUserPorts tanimli degilse ve ya Windows Server 2008 kullaniliyorsa bu aralik 49152 ile 65535 arasinda olacagindan gerekli olmayabilir. Tabii kullandiginiz uygulamarin hangi baglanti noktalarini kullandiklarini bilmelisiniz. Bunun için sistem çalisirken netstat –bano çiktisi alarak hangi baglanti noktalarinin hangi servis veya uygulamalar tarafindan kullanildiginin bir listesini olusturabilirsiniz. Bu degisiklik nedeniyle karsilasilabilecek bilinen sorunlar asagidaki makalelerde adreslenmistir:

  • 956188 DNS Sunucusu hizmetine yönelik 953230 numarali güvenlik güncellestirmesini (MS08-037) yükledikten sonra UDP kullanilan ag hizmetlerinde sorunlarla karsilasiyorsunuz
  • 956189 Windows SBS çalisan bir bilgisayara DNS Sunucusu'na yönelik 953230 numarali güvenlik güncellestirmesi (MS08-037) yüklendikten sonra bazi hizmetler baslatilamayabilir veya düzgün çalismayabilir
  • 956190 953230 numarali güvenlik güncellestirmesi (MS08-037) yüklendikten sonra bir güvenlik duvari üzerinden gönderilen DNS sorgularinda rasgele kaynak baglanti noktalari kullanilmiyor

961063 güvenlik güncellestirmesi yine ayni kaynak noktalarinin rasgele seçilmesi ve kisa süreli baglanti noktalari için yeni bir aralik tanimlanmasi ile ilgili degisiklikleri içermektedir. MS09-008 güvenlik güncellestirmesi ile gelen bu degisiklige ek olarak WPAD sorgulamalari için bazi degisiklikler yapilmistir. Asagidaki makalede bu degisiklikler detaylica aktarilmaktadir. Özetle, WPAD sorgusunu farkli bir proxy adresine yönlendirmek için yapilabilecek bir girisimin engellenmesi saglanmistir. Bunun için de GlobalQueryBlockList adiyla bir kayit girdisi tanimlamasi getirilmistir.

968732 DNS sunucusuna yönelik güvenlik güncellestirmesi yüklendikten sonra DNS sunucusu davranisindaki degisiklikler

Sirket aginizda WPAD sorgulamasi yapmiyorsaniz veya bu sorguyu DNS üzerinden yapmiyorsaniz, bu güncellestirmeyle ilgili detaylari sadece bilgi amaçli okuyabilirsiniz. MS09-008 güvenlik güncellestirmesi ile ilgili WINS hizmetinde yapilan degisiklikler için ise asagidaki baglantiyi referans alabilirsiniz.

968731 WINS sunucusuna yönelik güvenlik güncellestirmesi yüklendikten sonra WINS sunucusu davranisindaki degisiklikler

Eger bir Firewall kullaniyorsaniz ve DNS sorgulari için hem istemcilerin kullanacagi hem de diger DNS sunucularina gönderilecek istekler için kullanilacak kisa süreli baglanti noktalarinin engellenmediginden emin olmalisiniz. Ayrica sirket içinde kullandiginiz uygulamalarin yukarida tanimlanan degisiklikler sonrasinda rasgele seçilecek baglanti noktalarini kullanip, kullanmadigini da kontrol etmelisiniz.

Okan Çetinim