security testing
Uygulama Güvenliği Nasıl Test Edilir - Web ve Masaüstü Uygulama Güvenliği Test Teknikleri
Güvenlik Testi Gerekiyor mu?
Yazılım endüstrisi bu çağda sağlam bir kabul gördü. Bununla birlikte, son on yılda, siber dünya neredeyse her işletmenin yeni biçimlerini şekillendiren daha da baskın ve itici bir güç gibi görünüyor. Günümüzde kullanılan web tabanlı ERP sistemleri, BT'nin sevgili küresel köyümüzde devrim yarattığının en iyi kanıtıdır.
Günümüzde web siteleri yalnızca tanıtım veya pazarlama amaçlı değil, aynı zamanda tüm iş ihtiyaçlarını karşılamak için daha güçlü araçlara dönüştü.
Web tabanlı Bordro sistemleri, Alışveriş Merkezleri, Bankacılık, Stok Ticareti uygulaması günümüzde sadece kuruluşlar tarafından kullanılmamakta aynı zamanda ürün olarak da satılmaktadır.
Bu, çevrimiçi uygulamaların GÜVENLİK olarak adlandırılan hayati özellikleriyle ilgili müşterilerin ve kullanıcıların güvenini kazandığı anlamına gelir.
Hiç şüphe yok ki, güvenlik faktörü masaüstü uygulamaları için de birincil değerdir.
Ancak web hakkında konuştuğumuzda güvenliğin önemi katlanarak artıyor. Bir çevrimiçi sistem işlem verilerini koruyamazsa, hiç kimse bunu kullanmayı düşünmez. Güvenlik ne henüz tanımını arayan bir kelime ne de incelikli bir kavram. Bununla birlikte, güvenlik ile ilgili bazı iltifatları listelemek istiyorum.
ücretsiz anime izlemek için en iyi anime siteleri
Bir uygulamadaki güvenlik kusurlarına örnekler
- 'Kabul' dalı 'Sınav' dalının verilerini düzenleyebiliyorsa Öğrenci Yönetim Sistemi güvensizdir
- DEO (veri giriş operatörü) 'Raporlar' oluşturabiliyorsa, bir ERP sistemi güvenli değildir
- Müşterinin Kredi Kartı Ayrıntıları şifrelenmemişse, çevrimiçi bir Alışveriş Merkezi'nin güvenliği yoktur
- Özel bir yazılım, bir SQL sorgusu kullanıcılarının gerçek şifrelerini alırsa yetersiz güvenliğe sahiptir.
Güvenlik
Şimdi, size Güvenlik'in en basit tanımını kendi sözlerimle sunuyorum.
'Güvenlik, korunan verilere yetkili erişimin verildiği ve yetkisiz erişimin kısıtlandığı anlamına gelir' .
Dolayısıyla iki ana yönü vardır; birincisi verilerin korunması ve ikincisi bu verilere erişimdir. Dahası, uygulama ister masaüstü ister web tabanlı olsun, güvenlik yukarıda bahsedilen iki husus etrafında döner.
Hem masaüstü hem de web tabanlı yazılım uygulamaları için güvenlik konularına genel bir bakalım.
Ne öğreneceksin:
Masaüstü ve Web Güvenliği Testi
Bir masaüstü uygulaması yalnızca erişimi açısından değil, aynı zamanda verilerinin organizasyonu ve depolanması açısından da güvenli olmalıdır.
Benzer şekilde, web uygulaması, veri korumanın yanı sıra erişimi açısından daha da fazla güvenlik talep eder. Bir web geliştiricisi, uygulamayı SQL Enjeksiyonlarına, Brute Force Attacks'a ve XSS'ye (siteler arası komut dosyası oluşturma) karşı bağışık hale getirmelidir. Benzer şekilde, web uygulaması uzaktan erişim noktalarını kolaylaştırıyorsa, bunların da güvenli olması gerekir.
Dahası, Brute Force Attack'in yalnızca web uygulamalarıyla ilgili olmadığını, masaüstü yazılımlarının da buna karşı savunmasız olduğunu unutmayın.
Umarım bu önsöz yeterlidir ve şimdi konuya gelmeme izin verin. Şimdiye kadar bu makalenin konusunu okuduğunuzu düşündüyseniz lütfen özür dilerim. Yazılım güvenliğini ve temel endişelerini kısaca açıklamama rağmen, konum 'Güvenlik Testi'.
Önerilen Okuma => Web Uygulama Güvenliği Testi
Şimdi güvenlik özelliklerinin yazılım uygulamasında nasıl uygulandığını ve bunların nasıl test edilmesi gerektiğini anlatacağım. Odak noktam güvenlik konusunda değil, güvenlik testlerinin Whats and Hows'u olacak.
Önerilen Güvenlik Testi Araçları
# 1) Ağ parkeri
Netsparker HTML5, Web 2.0 ve Tek Sayfa Uygulamaları gibi her türlü eski ve modern web uygulaması için otomatik tarama ve tarama özelliklerine sahip bir web uygulaması güvenlik testi çözümüdür. Prova Tabanlı Tarama Teknolojisinden ve ölçeklenebilir tarama aracılarından yararlanır.
Yönetmeniz gereken çok sayıda varlığınız olmasına rağmen size tam bir görünürlük sağlar. Ekip yönetimi ve güvenlik açığı yönetimi gibi daha birçok işleve sahiptir. Jenkins, TeamCity veya Bamboo gibi CI / CD platformlarına entegre edilebilir.
=> En iyi Netsparker Güvenlik Test Aracını deneyin#iki) Kiuwan
SDLC'nin her aşamasında kodunuzdaki güvenlik açıklarını bulun ve düzeltin.
Kiuwan OWASP, CWE, SANS 25, HIPPA ve daha fazlası dahil olmak üzere en katı güvenlik standartlarıyla uyumludur. Geliştirme sırasında anında geri bildirim almak için Kiuwan'ı IDE'nize entegre edin. Kiuwan, tüm büyük programlama dillerini destekler ve önde gelen DevOps araçlarıyla entegre olur.
=> Kodunuzu ücretsiz tarayın# 3) Indusface, Ücretsiz Web Sitesi Kötü Amaçlı Yazılım Kontrolü oldu
İndusface WAS OWASP ilk 10'a göre güvenlik açıklarını tespit eden ve raporlayan kendi otomatik web uygulaması güvenlik açığı tarayıcısıyla birlikte verilen manuel Penetrasyon testi sağlar ve ayrıca her taramada web sitesinin bağlantıların, kötü amaçlı yazılımların ve tahrifat kontrollerinin bir Web sitesi itibar kontrolünü içerir
=> Ücretsiz Hızlı Web Sitesi Taraması Çalıştırın
=> Bize Ulaşın burada bir liste önermek için.
En İyi 8 Güvenlik Test Tekniği Listesi
# 1) Uygulamaya Erişim
İster masaüstü uygulaması ister web sitesi olsun erişim güvenliği, 'Roller ve Haklar Yönetimi'. Genellikle işlevselliği kapsarken örtük olarak yapılır,
Örneğin, Bir Hastane Yönetim Sisteminde, bir resepsiyonist, işi sadece hastaları kaydettirmek ve doktorlarla randevularını programlamak olduğu için laboratuvar testleri ile en az ilgilenir.
Bu nedenle, laboratuvar testleriyle ilgili tüm menüler, formlar ve ekranlar 'Resepsiyonist' Rolü için mevcut olmayacaktır. Dolayısıyla, rollerin ve hakların uygun şekilde uygulanması, erişim güvenliğini garanti edecektir.
Nasıl Test Edilir: Bunu test etmek için, tüm rollerin ve hakların kapsamlı bir şekilde test edilmesi gerekir.
Test kullanıcısı, farklı rollerin yanı sıra birden çok role sahip birkaç kullanıcı hesabı oluşturmalıdır. Daha sonra uygulamayı bu hesapların yardımıyla kullanmalı ve her rolün yalnızca kendi modüllerine, ekranlarına, formlarına ve menülerine erişimi olduğunu doğrulamalıdır. Test uzmanı herhangi bir çakışma bulursa, tamamen güvenle bir güvenlik sorununu kaydetmelidir.
Bu, aşağıdaki resimde çok güzel bir şekilde tasvir edilen kimlik doğrulama ve yetkilendirme testi olarak da anlaşılabilir:
Dolayısıyla, temel olarak, farklı kullanıcılar için 'kim olduğunuzu' ve 'neler yapabileceğinizi' test etmeniz gerekir.
Kimlik doğrulama testlerinden bazıları, parola kalitesi kuralları için bir test, varsayılan oturum açma için test, parola kurtarma testi, captcha testi, oturum kapatma işlevi testi, parola değişikliği testi, güvenlik sorusu / cevabı için test vb. İçerir.
Benzer şekilde, bazı yetkilendirme testleri, yol geçişi için bir test, eksik yetkilendirme testi, yatay erişim kontrolü sorunları için test vb. İçerir.
# 2) Veri Koruma
Veri güvenliğinin üç yönü vardır. İlki şu ki bir kullanıcı yalnızca kullanması gereken verileri görüntüleyebilir veya kullanabilir . Bu aynı zamanda roller ve haklarla da sağlanır
Örneğin, Bir şirketin TSR (telefonla satış temsilcisi) mevcut stok verilerini görüntüleyebilir, ancak üretim için ne kadar hammadde satın alındığını göremez.
Dolayısıyla, güvenlik testinin bu yönü yukarıda zaten açıklanmıştır. Veri korumanın ikinci yönü aşağıdakilerle ilgilidir: bu veriler veritabanında nasıl saklanır .
Daha fazla okuma = >> Veritabanı Güvenlik Testi nedir
Güvenli hale getirmek için tüm hassas verilerin şifrelenmesi gerekir. Şifreleme, özellikle kullanıcı hesaplarının şifreleri, kredi kartı numaraları veya diğer iş açısından kritik bilgiler gibi hassas veriler için güçlü olmalıdır.
Üçüncü ve son husus, bu ikinci yönün bir uzantısıdır. Hassas veya iş açısından kritik veri akışı gerçekleştiğinde uygun güvenlik önlemleri alınmalıdır. Bu veriler aynı uygulamanın farklı modülleri arasında yüzüyor veya farklı uygulamalara aktarılsa da, güvenliğini sağlamak için şifrelenmesi gerekir.
dijkstra'nın en kısa yol algoritmasının java'da uygulanması
Veri Koruması Nasıl Test Edilir: Test uzmanı, kullanıcı hesabının 'şifreleri', müşterilerin fatura bilgileri, diğer iş açısından kritik ve hassas veriler için veritabanını sorgulamalı ve bu tür verilerin tümünün DB'de şifrelenmiş biçimde kaydedildiğini doğrulamalıdır.
Benzer şekilde, yalnızca uygun şifrelemeden sonra verilerin farklı formlar veya ekranlar arasında iletildiğini doğrulaması gerekir. Ayrıca, test uzmanı, şifrelenmiş verilerin hedefte düzgün bir şekilde çözülmesini sağlamalıdır. Farklı 'gönderme' işlemlerine özel dikkat gösterilmelidir.
Test uzmanı, bilgi istemci ve sunucu arasında iletilirken, bir web tarayıcısının adres çubuğunda anlaşılabilir bir biçimde görüntülenmediğini doğrulamalıdır. Bu doğrulamalardan herhangi biri başarısız olursa, uygulamada kesinlikle bir güvenlik açığı vardır.
Test cihazı aynı zamanda tuzlamanın doğru kullanımını kontrol etmelidir (son girişe şifre gibi ekstra bir gizli değer ekleyerek ve böylece daha güçlü ve kırılmasını daha zor hale getirerek).
Güvensiz rastgelelik de bir tür güvenlik açığı olduğu için test edilmelidir. Veri korumasını test etmenin başka bir yolu, zayıf algoritma kullanımını kontrol etmektir.
Örneğin, HTTP bir açık metin protokolü olduğundan, kullanıcı kimlik bilgileri gibi hassas veriler HTTP yoluyla iletiliyorsa, uygulama güvenliği için bir tehdittir. HTTP yerine hassas veriler HTTPS (SSL, TLS tüneli ile güvence altına alınmıştır) aracılığıyla aktarılmalıdır.
Ancak HTTPS saldırı yüzeyini artırır ve bu nedenle sunucu yapılandırmalarının uygun olduğu ve sertifika geçerliliğinin sağlandığı test edilmelidir.
# 3) Brute-Force Attack
Brute Force Attack çoğunlukla bazı yazılım araçlarıyla yapılır. Konsept, geçerli bir kullanıcı kimliği kullanarak s çoğu yazılım, tekrar tekrar oturum açmaya çalışarak ilişkili parolayı tahmin etmeye çalışır.
Böyle bir saldırıya karşı güvenliğin basit bir örneği, ‘Yahoo’, ‘Gmail’ ve ‘Hotmail’ gibi tüm posta uygulamalarının yaptığı gibi hesabın kısa bir süre için askıya alınmasıdır. Belirli sayıda ardışık deneme (çoğunlukla 3) başarılı bir şekilde oturum açamazsa, bu hesap bir süre (30 dakika ila 24 saat) bloke edilir.
Brute-Force Attack nasıl test edilir: Test kullanıcısı, bazı hesap askıya alma mekanizmalarının mevcut olduğunu ve doğru şekilde çalıştığını doğrulamalıdır. (S) Alternatif olarak, geçersiz kimlik bilgileriyle oturum açmak için sürekli girişimlerde bulunulması halinde yazılım uygulamasının hesapları engellediğinden emin olmak için geçersiz kullanıcı kimlikleri ve Parolalarla oturum açmaya çalışmalıdır.
Uygulama böyle yapıyorsa, kaba kuvvet saldırılarına karşı güvenlidir. Aksi takdirde, bu güvenlik açığı test uzmanı tarafından rapor edilmelidir.
Kaba kuvvet testi de iki bölüme ayrılabilir - kara kutu testi ve gri kutu testi.
Kara kutu testinde, uygulama tarafından kullanılan kimlik doğrulama yöntemi keşfedilir ve test edilir. Ayrıca, gri kutu testi, parola ve hesap ayrıntılarının kısmi bilgisine ve bellek takas saldırılarına dayanmaktadır.
Tıklayın İşte örneklerle birlikte kara kutu ve gri kutu kaba kuvvet testini keşfetmek.
Yukarıdaki üç güvenlik özelliği, hem web hem de masaüstü uygulamaları için dikkate alınmalıdır, ancak aşağıdaki noktalar yalnızca web tabanlı uygulamalarla ilgilidir.
# 4) SQL Enjeksiyonu ve XSS (Siteler Arası Komut Dosyası)
Kavramsal olarak konuşursak, bu iki hack girişiminin teması benzerdir, bu nedenle bunlar birlikte tartışılır. Bu yaklaşımda, Kötü amaçlı komut dosyası bilgisayar korsanları tarafından bir web sitesini manipüle etmek için kullanılır .
Bu tür girişimlere karşı bağışıklık kazanmanın birkaç yolu vardır. Web sitesinin tüm giriş alanları için, alan uzunlukları herhangi bir komut dosyasının girişini kısıtlayacak kadar küçük tanımlanmalıdır.
.jar dosyasını nasıl çalıştırırım
Örneğin, Soyadı, 255 yerine 30 alan uzunluğuna sahip olmalıdır. Büyük veri girişinin gerekli olduğu bazı giriş alanları olabilir, bu tür alanlar için, bu verileri uygulamaya kaydetmeden önce girişin uygun şekilde doğrulanması yapılmalıdır.
Ayrıca, bu tür alanlarda, herhangi bir HTML etiketi veya komut dosyası etiketi girişi yasaklanmalıdır. XSS saldırılarını kışkırtmak için, uygulama bilinmeyen veya güvenilmeyen uygulamalardan komut dosyası yönlendirmelerini atmalıdır.
Nasıl SQL Enjeksiyonunu test et ve XSS: Test cihazı, tüm giriş alanlarının maksimum uzunluklarının tanımlandığından ve uygulandığından emin olmalıdır. (S) Ayrıca, tanımlanmış girdi alanları uzunluğunun herhangi bir komut dosyası girişi ve etiket girişi içermediğinden emin olmalıdır. Her ikisi de kolayca test edilebilir
Örneğin, 'Ad' alanı için belirtilen maksimum uzunluk 20 ise ve giriş dizesi '
thequickbrownfoxjumpsoverthelazydog ”bu iki kısıtlamayı da doğrulayabilir.
Ayrıca, test uzmanı tarafından uygulamanın anonim erişim yöntemlerini desteklemediği doğrulanmalıdır. Bu güvenlik açıklarından herhangi birinin mevcut olması durumunda uygulama tehlikededir.
Temel olarak, SQL enjeksiyon testi aşağıdaki beş yolla yapılabilir:
- Tespit teknikleri
- Standart SQL enjeksiyon teknikleri
- Veritabanının parmak izi
- Teknik sömürü
- SQL Injection Signature Invasion Techniques
Tıklayın İşte SQL enjeksiyonunu test etmenin yukarıdaki yolları hakkında ayrıntılı olarak okumak için.
XSS ayrıca kötü amaçlı komut dosyasını bir web sitesine enjekte eden bir enjeksiyon türüdür. Tıklayın İşte XSS için test etme hakkında derinlemesine araştırma yapmak.
# 5) Hizmet Erişim Noktaları (Kapalı ve Güvenli Açık)
Günümüzde işletmeler birbirine bağlı ve işbirliği yapıyor, aynı şey uygulamalar özellikle web siteleri için de geçerli. Böyle bir durumda, her iki ortak çalışan da birbirleri için bazı erişim noktaları tanımlamalı ve yayınlamalıdır.
Şimdiye kadar senaryo oldukça basit ve anlaşılır görünüyor ancak hisse senedi ticareti gibi bazı web tabanlı ürünler için işler o kadar basit ve kolay değil.
Çok sayıda hedef kitle olduğunda, erişim noktaları tüm kullanıcıları kolaylaştıracak kadar açık, tüm kullanıcıların isteklerini karşılayacak kadar uyumlu ve herhangi bir güvenlik denemesiyle başa çıkabilecek kadar güvenli olmalıdır.
Servis Erişim Noktaları Nasıl Test Edilir: İle açıklayayım misal hisse senedi ticareti web uygulamasının; Hisse senetlerini satın almak isteyen bir yatırımcı, hisse senedi fiyatları ile ilgili güncel ve geçmiş verilere erişebilmelidir. Kullanıcıya bu geçmiş verileri indirmesi için kolaylık verilmelidir. Bu, uygulamanın yeterince açık olmasını gerektirir.
Barındırmak ve güvence altına almakla, uygulamanın yatırımcıların serbestçe ticaret yapmasını kolaylaştırması gerektiğini kastediyorum (yasal düzenlemeler uyarınca). 7/24 alım veya satım yapabilirler ve işlem verilerinin herhangi bir bilgisayar korsanlığı saldırısına karşı bağışık olması gerekir.
Dahası, çok sayıda kullanıcı uygulamayla aynı anda etkileşime girecek, bu nedenle uygulama tüm kullanıcıları eğlendirmek için yeterli erişim noktaları sağlamalıdır.
Bazı durumlarda bunlar istenmeyen uygulamalar veya kişiler için erişim noktaları mühürlenebilir . Bu, uygulamanın iş alanına ve kullanıcılarına bağlıdır.
Örneğin, Özel bir web tabanlı Ofis Yönetim Sistemi, kullanıcılarını IP Adreslerine göre tanıyabilir ve o uygulama için geçerli IP aralığına girmeyen diğer tüm sistemlerle (uygulamalar) bağlantı kurmayı reddedebilir.
Test cihazı, tüm ağlar arası ve ağ içi erişim uygulama, güvenilir uygulamalar, makineler (IP'ler) ve kullanıcılar tarafından yapılır.
Açık bir erişim noktasının yeterince güvenli olduğunu doğrulamak için, test edenin hem güvenilen hem de güvenilmeyen IP adreslerine sahip farklı makinelerden ona erişmeye çalışması gerekir. Uygulamanın performansına güven duymak için farklı türde gerçek zamanlı işlemler toplu olarak denenmelidir. Böylelikle uygulamanın erişim noktalarının kapasitesi de net bir şekilde gözlemlenecektir.
Test uzmanı, uygulamanın diğer tüm istekler reddedilirken yalnızca güvenilen IP'lerden ve uygulamalardan gelen tüm iletişim isteklerini eğlendirmesini sağlamalıdır.
Benzer şekilde, uygulamanın bir açık erişim noktası varsa, test eden kişi, kullanıcıların verilerinin güvenli bir şekilde yüklenmesine (gerekirse) izin verdiğinden emin olmalıdır. Bu güvenli şekilde, dosya boyutu sınırı, dosya türü kısıtlaması ve yüklenen dosyanın virüslere veya diğer güvenlik tehditlerine karşı taranması hakkında kastediyorum.
Bu, bir test uzmanının bir uygulamanın güvenliğini erişim noktalarına göre nasıl doğrulayabileceğidir.
# 6) Oturum Yönetimi
Bir web oturumu, aynı kullanıcıyla bağlantılı HTTP isteği ve yanıt işlemlerinin bir dizisidir. Oturum yönetimi testleri, web uygulamasında oturum yönetiminin nasıl işlendiğini kontrol eder.
Belirli boşta kalma süresinden sonra oturumun sona ermesini, maksimum yaşam süresinden sonra oturumun sonlandırılmasını, oturumu kapattıktan sonra oturumun sonlandırılmasını, oturum tanımlama bilgisi kapsamını ve süresini kontrol edebilir, tek bir kullanıcının aynı anda birden fazla oturumu olup olmadığını test edebilirsiniz.
# 7) Hata işleme
Hata işleme testi şunları içerir:
Hata kodlarını kontrol edin : Örneğin, test 408 istek zaman aşımı, 400 hatalı istek, 404 bulunamadı, vb. Bunları test etmek için sayfaya bu hata kodlarının döndürülmesi için belirli isteklerde bulunmanız gerekir.
Hata kodları ayrıntılı bir mesajla döndürülür. Bu mesajlar, bilgisayar korsanlığı amacıyla kullanılabilecek herhangi bir kritik bilgi içermemelidir.
Yığın izlerini kontrol edin : Temel olarak uygulamaya bazı istisnai girdiler vermeyi içerir, öyle ki döndürülen hata mesajı hackerlar için ilginç bilgiler içeren yığın izleri içerir.
# 8) Belirli Riskli İşlevler
Temel olarak, iki riskli işlev şunlardır: ödemeler ve dosya yüklemeleri . Bu işlevler çok iyi test edilmelidir. Dosya yüklemeleri için, öncelikle istenmeyen veya kötü amaçlı dosya yüklemelerinin kısıtlanmış olup olmadığını test etmeniz gerekir.
Ödemeler için öncelikle enjeksiyon güvenlik açıklarını, güvenli olmayan kriptografik depolamayı, arabellek taşmalarını, şifre tahminini vb. Test etmeniz gerekir.
=> Bize Ulaşın burada bir liste önermek için.Daha fazla okuma:
- Web Uygulamalarının Güvenlik Testi
- İlk 30 Güvenlik Testi Görüşme Sorusu
- Fark SAST / DAST / IAST / RASP arasında
- SANS En İyi 20 Güvenlik Açığı
Önerilen Kaynaklar
- Web Uygulaması Güvenliği Test Kılavuzu
- Alfa Testi ve Beta Testi (Tam Kılavuz)
- ETL Test Veri Ambarı Test Eğitimi (Tam Kılavuz)
- Ağ Güvenliği Testi ve En İyi Ağ Güvenliği Araçları
- Web Uygulaması Sızma Testi İçin Yeni Başlayanlar Kılavuzu
- Derleme Doğrulama Testi (BVT Testi) Tam Kılavuzu
- Fonksiyonel Test ve Fonksiyonel Olmayan Test
- Örnek Test Durumlarıyla Eksiksiz Sızma Testi Kılavuzu