Web Uygulamalarında Güvenlik Çözümleri

12.10.2008

Saldırılar ve Hacking olaylarının %70' i Uygulama katmanına olmaktadır.
Bu durumda donanımsal güvenlikten önce, uygulamamıza ait güvenliğin sağlanması gerekir.

Hazırlanan Web Uygulamasının dökümantasyonu kesinlikle yapılmalıdır. Sadece son kullanıcı için değil, kendi içimizde de uygulamaya müdahale edecek kişiler açısından dökümantasyonun yeri son derece büyüktür.

Uygulamayı hazırladınız. Kullanımı başlandı. Uygulamayı yazan arkadaşlarınızdan biri, işten ayrıldı. Uygulama ile 6 ay sonra bir problem ile karşılaşırsanız elinizde bir dökümantasyonunuz yok ise buraya müdahalenizin size ne kadar mal olacağını hesaplamak gerçekten çok zor.

Bir uygulama geliştirmedeki aşamalara uygun yazım yapılmasının önemle üzerinde durulmalı.
1) Analiz
2) Tasarım
3) Geliştirim
4) Sınama
5) Entegrasyon
6) Teslim
7) Bakım

En önemli aşama hepimizinde bildiği gibi "Analiz" aşamasıdır. Bu aşama üzerinde kaybedeceğimiz zamana kesinlikle bir kayıp niteliğinde bakılmamalıdır. Aksine burada kaybettiğiniz vakit programın kalitesini ortaya koyacaktır.

"Analiz - Tasarım - Geliştirim" aşamalarında sürekli birbirleri ile etkileşimleri olmaktadır. Bu yüzden burayı bir grup olarak düşünebiliriz ve 1. grup tamamlanmadan diğerlerine geçme gibi bir şansımız yoktur.

Daha sonra önemle üzerinde durulan "Sınama" aşaması gelmektedir. Sınama aşamasında tavsiye edilen bir checklist üzerinden programın sınamasının yapılmasıdır.
Örneğin: Her Textbox için numeric kontrolü yapılcak, taşma kontrolü yapılacak gibi.

Genel bir açıklama yaptıktan sonra bir uygulamanın güvenliğinde dikkat edilmesi ve yapılması gereken noktalara değinmek istiyorum.

1) Kullanıcı Yönetimi
Kullanıcı Şeması çıkartılmalıdır. Bu programda hedef kitlemiz kimlerdir ?
Bir başka deyişle:
* Kurumun Çalışanları.
* Kurumun para verip, hizmet aldığı kullanıcılar.
* Kurumun para alıp, hizmet verdiği kullanıcılar.
Bu şemaya bakarak, kullanıcıların uygulama üzerinde oluşturabileceği tehlikeleri tek seferde görme olanağana sahip oluruz.

2) Yetki Kontrolü
 Yukarıdaki şemamıza bakarak yetkilendirmemizi kolaylıkla yapabiliriz. Fakat elimizde bir şema olmadığı taktirde yanlış bir yetkilendirme büyük problemlere sebep olabilir.

3) Veri Güvenliği
Burada kullanıcının kayıt eklediği tablolar üzerinde olmaz ise olmaz 6 alan bulunmalıdır.
Bunlar:
Oluşturan Kullanıcı = Bu kayıt hangi kullanıcı tarafından oluşturuldu. 
Oluşturma Tarihi = Bu kayıt hangi tarihte oluşturuldu.
Oluşturan IP = Bu kayıt hangi ip üzerinden oluşturuldu.
Değiştiren Kullanıcı = Bu kayıt hangi kullanıcı tarafından değiştirildi.
Değiştirilme Tarihi = Bu kayıt hangi tarihte değiştirildi.
Değiştiren IP = Bu kayıt hangi ip tarafından değiştirildi.

Gibi tüm sorulara açıklık getirecek 6 alan mevcuttur.

4)İzleme
Bu aşamada ise sistemi kullanan kullanıcılar sistem içerisinde neler yaptıklarını gözlemlemek içindir. Olası gelebilecek tehlikeleri buradan görme imkanımız vardır.
Örneğin: "A" kullanıcısı sisteme kaç kere giriş yaptı, sistemde neler yaptı?
gibi sorulara cevap bulabilmek için gerekli adımdır.

Uygulamamıza gelebilecek olası saldırıların yöntemleri:
1) Kontrol edilemeyen parametreler.
2) Eişim kontrol kopuklukları
3) Kullanıcı ve oturum yönetiminde kopukluklar
4) Arabellek taşmaları
5) Sql Injection
6) Hata mesajları
7) Güvensiz şifreleme
8) Uzaktan yönetim açıkları
9) Sunucu ayar yanlışlıkları
10) Siteler arası programlar

0 kişi tarafından 0 olarak değerlendirildi

  • Currently 5.0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5