[Owasp-turkey] Onerileriniz

Bedirhan Urgun urgunb at hotmail.com
Sun Jun 10 01:04:45 EDT 2007


 
 Ben tesekkur ederim.
 
 - captcha konusunu anlayabiliyorum (ama Membership Provider'daki ozelligi bilmiyordum), sirketler giris sayfalarinda bunu koymayi reddediyorlar cogu zaman (erisilebilirlik, kullanim kolayligi, v.b.).
 - Integrated Auth. konusunda, acaba kimlik dogrulama icin SqlMembershipProvider mi kullaniyorsunuz. Bu zaten Windows Integrated Auth. kullaniyor bildigim kadari ile. Diger bi deyisle Trusted Connection. Mesela;
 
<!-- http://msdn2.microsoft.com/en-us/library/ms998317.aspx -->
<connectionStrings>  <add name="MyLocalSQLServer"       connectionString="Initial Catalog=aspnetdb;data source=localhost;Integrated Security=SSPI;" /></connectionStrings>
 - Yine msdn kaynakli bir yerden asagidaki alintiyi aldim:
 
"...You should use Windows authentication instead of SQL authentication whenever possible because you avoid storing credentials in connection strings and you avoid passing passwords over the network to your database server. You should consider encrypting your connection string to protect server connection details, such as the database server and name."
 
 Yani aslinda sanirim amac olurda birileri Web.config'i gorurse, clear-text sifreyi gormesin. Ama siz zaten sifreli tutuyorsunuz, bence bu da yeterli, ama tabi riski hesaplayacak sizsiniz veya yetkilileriniz.
 - En son yazdiginiz ile alakali olarak (imza meselesi), cok ilginc. :) Risk olarak baska bir uygulamanin DB'ye baglanmasini almissiniz. Baska bir uygulama derken IIS icinde host edilecek baska bir ASP.NET uygulamasi demek mi istediniz. Eger boyleyse sanirim CAS (Code Access Security) isinizi gorur. Yani sadece bir uygulamaya (sizin uygulamaniza) sql'e baglanma izni verebilirsiniz. Shared hosting gibi bir durum yoksa, zaten cross ile baglamissiniz DB'yi, boyle biseye gerek var mi, tabi bilemiyorum.
 
bedirhan


Date: Fri, 8 Jun 2007 12:58:57 -0700From: vuzun at csusb.eduTo: owasp-turkey at lists.owasp.orgSubject: Re: [Owasp-turkey] Onerileriniz








 
Tesekkurler degerli onerilerin icin,
- Membershipproviderda mesela 5 tane kere yanlis login yapilirsa, hesabi kilitle secenegi aktif
- Sifre secme isleminde minimum 6 uzunluk, 1 sayi zorunlu, ayica ajaxcontroltoolkit ile gelen passwordsthrength bilesenini kullanip, kullanicinin sectigi sifre ne kadar guvenli bir nebze olsun kullaniciya bildiriyorum.
- server.htmlencode isleminin sebebi, xss ve injection saldirilari icin.
- capthca her nekadar koyabilsemde sorun bizim yaptigimiz her uyguluma accessible olmak zorunda ( korler, gorme bozuklugu olanlar , sagirlar vs vs icin ), gerci capthcanin accessible olan versiyonlarida var sanirim ama gene de isimi zorlastiriyor.
- windows integrated auth. Kullanirsam eger, ve nete acik olan web sunucusu hack olursa, bu durumda sql server da artik ataga acik degil mi ? ben ise arada bir sql sifresi koyarak, bunu engellemeye calismistim. Bu konuda ne dusunuyorsun ?
- kaan : https://mail.csusb.edu ya gidersen orada mail server icin verdigimiz ornek bir certificate var.
- bu arada sql server a, erisim sadece web server uzerinden ve bir sifre ile. Web uygulamasini imzalayip, sadece bu web uygulamasi sorgu kosturabilir, bunun disinda baska bir uygulama sifre ile gelse bile izin verme demek gibi bir sansimiz var mi ?
volkan
 




From: Bedirhan Urgun [mailto:urgunb at hotmail.com] Sent: Friday, June 08, 2007 12:46 PMTo: volkan uzun; owasp-turkey at lists.owasp.orgSubject: RE: [Owasp-turkey] Onerileriniz
 
  Merhaba, Bi kac oneri de ben vereyim istedim;   - ASP.NET - SQL2005 baglantisinin cross kablo ile oldugunu soylemissiniz, belki Windows (Integrated) Auth. ile bu ikisinin kimlik dogrulama kismini halledebilirsiniz. Boylece web.config'de hic sifrelenmis bile olsa parola bulundurmus olmazsiniz.   - Butun girdileri bir denetimden gecirebiliriz. (bunu zaten yapiyorsunuzdur)   - Kayit meselesinde belki gecersiz kullanici adi/parola denemelerini de kaydedebilirsiniz (veritabani cok siser diyorsaniz, aslinda bir backup plani yapmak gerekebilir).    - Yukaridan hareketle, kaba kuvvet kimlik dogrulama saldirilarindan korunmak icin login sayfasina CAPTCHA koyabilirsiniz, veya "Anti Brute Force Resource Metering" tekniklerinden bi tanesini uygulayabilirsiniz.   - Kullanicilarin sifrelerinin hash'ini tutuyorsunuz db'de, belki bunlari tuzlamak gerekebilir. :) Yani salted hash. Salt'lari da web sunucusunda bir dosyada veya web.config'de (tek salt kullanarak) tutabilirsiniz.   - Server.HTMLEncode fonksiyonunu (veya daha iyisi AntiXSS kutuphanesini) belki html uretirken kullanmak isteyebilirsiniz. Ama tabi tam olarak anlayamadim ne yapmak istediginizi.   - dosya upload meselesini zaten daha once konusmustuk (upload edilen dosyanin ismi degistirilebilir, upload edilen dizin web dizini disinda birakilabilir, upload edilen dosyanin icerigi kontrol edilebilir, v.b.).   - Ve uygulamanin calisma haklarini Fulltrust'tan Medium'a cekebilirsiniz belki (belki hic koda veya politikaya dokunmadan calisir :) )   - Gerci bayagi sikilastirilmis bi sekilde kuruluyor bildigim kadari ile ama SQL 2005 hardening'ine egilebiliriz. bilmiyorum....   Daha soylenebilecek eminim cok sey vardir, mesela Membership provider'in guvenlik zaafiyetleri var mi acaba veya kullanim hatalari?  Umarim bi nebze de olsa faydali olur. bedirhan



Date: Fri, 8 Jun 2007 09:20:28 -0700From: vuzun at csusb.eduTo: owasp-turkey at lists.owasp.orgSubject: [Owasp-turkey] Onerileriniz

Selamlar, 
Uzerinde calistigim bir projede oldukca paranoyak olmak zorundayim; cunku gazilerin (veterans) bazi kisisel bilgileri ( sosyal sigorta nosunu son  4 hanesi, dogum tarihi, hastaliklari  vs ) tutuluyor.
Uygulamayi bastan sonra asp.net 2.0, c#, framework 2.0, sql server 2005 ile gelistiriyorum.
Simdi sizlerden oneri bekliyorum asagida yazdigim guvenlik amaciyla aldigim onlemler disinda yapilmasi gereken seyler sizce var midir ?
 

Kullanicilar mutlaka authentication, ve authorization ile sisteme giris yapiyorlar, bu sistemi .net frameworkun membership provider ile hallediyorum. Bir admin acilan kullanici hesaplarini onayladiktan sonra hesaplar kullanilabilir hale geliyor. Sifreler ayda 1 kere kullanim disi oluyor, ve tekrar sifre yaratilmasi isteniyor. Sifreler hash olarak tutuluyor
Yonetici, her kullanici icin, sayfa bazinda hak tanima islemi yapabiliyor.
Sisteme her giris/cikis, upload islemi, ve tum kayit silme islemleri loglaniyor ( bunu cok abartmadim veri tabani cildirmasin diye )
web.config’te connection string kismi sifreli.
Kullanicilarin hassas bilgileri ( hastalik bilgileri, sosyal sigorta nolari, dogum tarihleri ) simetrik bir anahtarla sifrelendikten sonra veritabanina kayit ediliyor. Bu simetrik anahtar web.configte tutuluyor, web.config’in bu kismida sifreleniyor aspnet_regiis ile. Simetrik keyin bir kopyasi sunucularin bakimi yapan bir kisi tarafindan saklaniyor.Burada guvenlikten sorumlu bir arkadasimiz, simetrik keyi usb keyde saklamayi, ve her veri goruntulenmesi icin anahtardan tekrar okunmasini istedi ama pratikte bu imkansiz.
veritabaninda henuz yapmadim ama yapmayi dusundugum sql server 2005’in sundugu bir imkan olan, veritabani seviyesinde sifreleme kullanilacak..
Her turlu veri girisi Server.HtmlEncode ile encode yapilarak sisteme kayit ediliyor.
Her turlu dosya upload isleminde zip islemi yapiliyor.
tum sql sorgu islemleri stored procedure kullanildi, dinamik sql kesinlikle kullanilmadi, veriler veritabanindan cekilirken sadece gerekli kolonlar cekiliyor.
web sunucusu ile veri tabani birbirine cross kablo ile bagli ve aralarinda nat ip adresi var ( bu californiada zorunlu bir uygulama gazi bilgileri icin ).
web sunucusu ve veri tabani bu uygulama disinda baska hicbir uygulamayi barindirmiyor ( bu da baska bir zorunluluk )
web sunucusuna calistigim yerin verdigi bir sertifika yuklu ve sadece (ssl) https:// ile erisime izin var.
web sunucusuna erisim hakki olan 4 kisinin kullandigi notebooklarda vpn yuklu, ve vpn ile sisteme girince aldiklari sabit ipler, iis uzerinde authenticated olan tek ipler. Vpn sifreleri sistem admininin sorumlulugu altinda
vpn kullanmadan sisteme giris yok. ( iis authentaticanda geri cevriliyorlar )
 
simdi tek aradigim sey bunlara ekstra olarak, ziplenmis dosyayi nasil imzalarim, buna digital olarak imza atabilirsem, upload eden kisinin bir bilgisini imza icine atabilirmiyim ?
Baska onerdiginiz, acik gordugunuz bir kisim var mi ?
 
 



Play free games, earn tickets, get cool prizes! Join Live Search Club.   Join Live Search Club!
_________________________________________________________________
Play free games, earn tickets, get cool prizes! Join Live Search Club. 
http://club.live.com/home.aspx?icid=CLUB_wlmailtextlink
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.owasp.org/pipermail/owasp-turkey/attachments/20070610/8b8f7fdd/attachment.html 


More information about the Owasp-turkey mailing list