Asp.Net Gelişmiş Hata Ayıklama Yazılımları ve Güvenlik Zafiyetleri

ASP.NET platformu üzerinde yazılan web uygulamalarında elmah, trace gibi hata ayıklama,loglama araçları vardır. Bu araçlar uygulama geliştiricinin veya site yöneticisinin, kullanıcıların karşılaştığı hata sayfaları ile ilgili detaylı bilgiler almasını sağlar. Bu uygulamalar doğru yapılandırılmadığında tuttukları bilgiler( IP, cookie, kullanıcı adı, yerel dizin hatta bazen parola,vb.) herkes tarafından görülebilir. Doğru yapılandırılmayan siteler ayrıca Google tarafındanda önbelleğe alınmış olabilir.

Böyle siteler ELMAH için,

  • inurl:elmah.axd SqlException
  • inurl:elmah.axd select where from
  • inurl:elmah.axd ASPXAUTH

Trace.axd için;

  • inurl:”trace.axd” ext:axd “Application Trace” 

Google arama parametreleriyle tespit edilebilir.

Ne yapılabilir? 

IP, kullanıcı adı , yerel dizin,vb bilgiler keşif aşamasında hackerların elini güçlendirecek, saldırının ileriki aşamalarında kullanabilecek öneme sahiptir. 

Cookie bilgisi ise yetki yükseltmek için kullanılabilir. Mesela siteye giriş yapmış bir yetkili kullanıcı site üzerinde bir hatayla karşılaştığında bu loglanacaktır. Loglanan bilgiler arasında cookie bilgiside varsa Firefox ve Cookies Manager kullanılarak (yada herhangi bir tarayıcı ve cookie yöneticisi kullanılabilir.) o kullanıcı haklarıyla siteye erişim sağlanabilir.

Nasıl?

Örnek bir Trace.axd sayfası aşağıdaki gibidir. Session Id değeri, o an için aktif olan bir oturum bilgisini tutmaktadır. Bu değer kopyalanır.

Herhangi bir cookie düzenleme aracıyla bize ait ASP.NET_SessinId bu değerle değiştirilir. 

Sayfa yenilendiğinde sisteme o SessionId sahip kullanıcı haklarıyla erişim sağlanır.

ELMAH tarafından loglanmış, cookie içermeyen ancak bilgi ifşası olan örnek bir sayfa aşağıdaki gibidir. 


Nasıl Önlem Alınabilir?

ELMAH varsayılan olarak uzaktan erişime kapalıdır. Daha sonra uygulama geliştirici tarafından uzaktan erişime açılabilir. Eğer gerekli değilse bu erişimin kapatılması gerekir ya da görüntülemek için bir yetkilendirme(authorization) formu koyulmalıdır. Bu işlemin nasıl yapılacağı ELMAH geliştiricisi tarafından şu bağlantı ‘da anlatılmıştır.

Trace.axd’de varsayılan olarak uzaktan erişime kapalıdır. Uzaktan erişim ve yetkilendirme için ELMAH kadar esneklik sunmasada güvenli yapılandırma için şu bağlantı takip edilebilir.