measures ssdlc
Güvenli Bir SDLC veya SSDLC İçin Uygulanacak Çeşitli Güvenlik Önlemleri Hakkında Bilgi Edinin:
Teknoloji hızla büyüdükçe, güvenli verilerin hacklenmesi ve çalınmasına ilişkin güvenlikle ilgili tehditler de buna göre arttı. Bu nedenle, teknolojideki büyümenin, yazılım üreticilerinin, yazılımlarının güvenlik tehditlerine ve güvenlik açıklarına karşı güçlü ve sağlam olmasını sağlamak için zorluklar yarattığına şüphe yok.
Bir yazılım ürünü, özellikle kişisel ve finansal verileri içeren Savunma, Finans ve Sağlık Hizmetleri gibi sektörlerde, yüksek düzeyde güvenli olduğu ve belirtilen ve düzenlenmiş güvenlik ve gizlilik standartlarını karşılamadığı kanıtlanmadıkça, amaçlanan işlevsellik için mükemmel çalışsa bile yayınlanamaz. .
İster yüksek ister orta şiddette olsun, ürün devreye alındığında üründe bir güvenlik kusuru olması göze alınamaz. Bu nedenle, yazılımı ve verileri her türlü saldırıdan, kötü niyetli tehditlerden, güvenlik açıklarından korumak ve yazılımın son kullanıcıya güvenilirliğini sağlamak çok önemlidir.
Geleneksel yazılım geliştirmemize karşı, yazılımın tamamı geliştirildikten sonra son aşamada test etmek artık etkili değil. Çevik, DevOps ve ShiftLeft konseptinin uygulanmasıyla, testlerin uygulama yaşam döngüsünün her aşamasında olduğu kadar erken aşamalarda gerçekleştirilmesi esastır.
Bununla birlikte, yazılımın güvenliği son aşamada oluşturulamaz hatta test edilemez ve bu nedenle yazılımın toplam güvenliğini sağlamak için her aşamada inşa edilmesi gerekir.
Ne öğreneceksin:
SSDLC İçin Güvenlik Önlemleri
Aşağıda, Güvenli SDLC veya SSDLC'yi sağlamak için yazılım geliştirme yaşam döngüsü boyunca uygulanabilecek çeşitli güvenlikle ilgili önlemler yer almaktadır ve kusurların mümkün olduğunca bir sonraki aşamaya taşınmasına izin verilmemektedir.
SDLC aşamalarında güvenliğin inşa edilmesi gereken çeşitli güvenlik analizleri ve değerlendirmeleri vardır.
- Gereksinimler Aşaması
- Planlama aşaması
- Mimari ve Tasarım Aşaması: Tasarıma dayalı Güvenlik Riski Değerlendirmesi.
- Geliştirme aşaması: Güvenli Kod Analizi, güvenlik için kodun statik bir analizi.
- Uygulama Aşaması: Dinamik Kod Analizi, bir uygulama güvenlik testi.
- Test - Dağıtım Öncesi Aşama: Sızma Testi ve Güvenlik Açığı Analizi.
# 1) Gereksinimler Aşaması
- Öncelikle yazılımda gerekli güvenlik önlemlerinin oluşturulmasını sağlamak için, Güvenlikle İlgili Özel Gereksinimler Gereksinimler aşamasında yeterli ayrıntı ve beklenen sonuçlarla net bir şekilde yakalanması gerekir.
- Tipik kullanım durumlarını ve iş senaryolarını tanımlarken, net bir dizi Güvenlikle İlgili Kullanım Durumları ve Senaryoları güvenlik özelliklerini yakalamak ve güvenlik testi senaryolarını tasarlamak için doğrulama amacıyla tanımlanmalıdır.
Aşağıda, yakalanabilecek açık güvenlikle ilgili gereksinimleri gösteren birkaç örnek örnek verilmiştir.
Sec-Req-01: Sistemin tüm ağ geçitlerinde ve giriş noktalarında kimlik doğrulama önlemleri alması gerekir.
Sec-Req-02: Sistemin, güvenli bir oturum açma ekranı aracılığıyla kimlik doğrulamasını uygulaması gerekir.
Sec-Req-03: KİŞİSEL VERİLER beklemede şifrelenecektir.
# 2) Planlama Aşaması
Yüksek düzeyde, ancak bunlarla sınırlı olmamak üzere, Planlama Aşamasında aşağıdaki noktalara dikkat edilmesi gerekir.
java'da ikili arama ağacı oluşturmak
- Güçlü, Özel Güvenlik Ekibi , program ekibinin PMO (proje yönetim ofisi) dışında çalışan, aşağıdakilerden oluşan Güvenlik Görevlisi, Güvenlik Mimarları, Güvenlik Testçileri programın güvenlikle ilgili tüm faaliyetlerini tarafsız bir şekilde yürütmek ve yönetmek için oluşturulacak. Bu rollerin her biri için açık bir RnR (roller ve sorumluluklar) ve RACI tanımlanmıştır.
- Hiç yükselişler, belirsizlikler Güvenlik ile ilgili konular PSO (Ürün Güvenliği Görevlisi) tarafından ele alınmalıdır, böylece güvenlik ekibi sorunsuz çalışır ve doğru kararların alınmasına yardımcı olur.
- Sağlam Güvenlik Testi Stratejisi güvenlikle ilgili gereksinimlerin nasıl uygulanacağını, nasıl, ne zaman ve neyin test edileceğini, her aşamada hangi araçların kullanılması gerektiğini belirtmek gerekir.
- Dahil etmek zorunludur Güvenlik Temas Noktası Programla ilgili tüm teknik / gözden geçirme tartışmaları için, böylece güvenlik ekibi programda meydana gelen herhangi bir değişiklikten haberdar olur.
# 3) Mimari ve Tasarım Aşaması
Tasarım Aşamasının başlarında güvenlik hususlarına daha fazla dikkat etmek, güvenlik risklerini önlemeye ve daha sonra SDLC'de Tasarım değişikliklerinde önemli çabaları azaltmaya yardımcı olacaktır.
Yazılımı ve yazılımın üzerinde barındırılacağı altyapıyı tasarlarken mümkün olan her şey Güvenlik Tasarımı Uygulamaları güvenlik mimarlarının katılımıyla iyi tasarlanmış olması gerekir.
İşlevsel ve işlevsel olmayan Tasarım ve Mimari yönleri arasındaki herhangi bir belirsizlik ve çatışmanın, doğru paydaşları içeren beyin fırtınası oturumları aracılığıyla çözülmesi gerekir.
Bu aşamada, bazen de denilen ayrıntılı bir Ürün Güvenliği Risk Değerlendirmesi 'Statik Değerlendirme' Güvenlik uzmanlarından oluşan ekip tarafından gerçekleştirilmelidir.
Güvenlik Riski Değerlendirmesi Tasarım perspektifinden güvenlikle ilgili kusurları belirlemek ve buna göre Ürünü yükseltmek için ön tasarım / mimari aşamasında programların bir Güvenlik açısından gözden geçirilmesini içerir Güvenlik riskleri onları ele almak ve bir sonraki aşamaya girmekten kaçınmak için proje ekibine.
Bu değerlendirmeler, Organizasyonel / Endüstriyel güvenlik yönergelerine, standartlarına ve bu belgelerde ana hatları verilen kontrollere göre gerçekleştirilir. Örneğin. UXW 00320, UXW 030017
Ürün Güvenliği Risk Değerlendirmesi Sırasında:
- Gereksinimler, Özellikler, Kullanıcı Hikayeleri ve Tasarım Dokümanları, Proje ekibi tarafından paylaşılan detaylara, eserler baz alınarak incelenir, Örneğin. Tasarım Belgeleri (HLDD ve LLDD). Değerlendirmeler ayrıca belgelerin olmaması durumunda ilgili proje ekibi üyeleriyle görüşmeleri veya herhangi bir şüphe varsa netleştirmeyi de içerir.
- Programın Güvenlik Gereksinimlerini belirlenen standartlara ve diğer en iyi uygulamalara göre eşlerken boşluklar belirlenir. Bazen tehdit modelleri de belirlenen boşluklara göre geliştirilir.
- Bu boşluklar, potansiyel Güvenlik Riskleri olarak tanımlanır, ayrıca uygulama için olası azaltımların önerilmesi, yükseltilmesi ve yönetilmesi de dahildir.
- Bu Etki Azaltmalar proje ekibi tarafından uygulandığında, Sistem Test ekibi tarafından tasarlanan uygun test senaryoları aracılığıyla kapanış için doğrulanırlar.
- İzlenebilirlik sağlayan Risk Yönetim Matrisi, bu risklerin takibi için hazırlanır. Kalan riskle ilgili onay ve imza, Güvenlik Mimarı ve PSO tarafından alınacaktır.
Tasarım aşamasında tanımlanan tipik tehdit modelleri; Giriş Doğrulama, Denetim / Günlük Yönetimi, Yapılandırmalar ve şifrelemelerle ilgilidir. Risk tanımlama, Zayıf Parolalar, Basit Brute Force Attacks vb. Gibi saldırı güvenlik açıklarını içerir.
Tipik incelemeler, kişisel verilere erişim, denetim izlerine erişim, kara listeye alma-beyaz listeye alma varlıkları, veri temizleme ve silme etkinliği ile ilgili riskleri içerir.
oracle veritabanı mülakat soruları ve cevapları
Örnek Test Senaryoları şunları içerir:
- Arabellek Taşması Güvenlik Açığı: Parametreleri manuel olarak fuzzing yaparak sağlamak için, sunucuyu yavaşlatmak ve sunucuyu yanıt vermemeye zorlamak mümkün olmamalıdır (Hizmet Reddi).
- Veri Temizliği: Saldırganın sisteme kötü amaçlı içeriği enjekte edip depolayamaması için her Giriş ve Çıkış için uygun veri temizliğinin sağlanması.
# 4) Geliştirme Aşaması
Güvenli Kod Analizi bir Statik Kod Değerlendirmesi değerlendirmek için kullanılan yöntem Güvenlik Kodu otomatik bir Tarama aracı kullanarak yazılımın çeşitli özelliklerinin incelenmesi. Misal: Güçlendirin.
Bu analiz, güvenlik tehditleri için oluşturulan kodu taramak için her kod girişinde / yapısında gerçekleştirilir. Bu değerlendirme genellikle bir Kullanıcı Hikayesi düzeyinde yapılır.
- Eklentiler aracılığıyla taramaları güçlendirmek, Geliştirici'nin makinelerine yüklenmelidir.
- Fortify'ın derleme şablonuyla entegre edilmesi gerekiyor.
- Tüm yapılarda günlük olarak otomatik tarama yapılacaktır.
- Tarama sonucu, yanlış pozitifler için Güvenlik ekibi tarafından analiz edilecektir.
- Bu değerlendirmeyle belirlenen kusurlar yükseltilir ve kapanana kadar yönetilir, böylece sızıntı en aza indirilir / bir sonraki seviyeye sıfırlanır.
Örnek Test Senaryoları şunları içerir:
- Veri aktarımı sırasında hassas verilerin düz metin olarak gönderilmemesini sağlamak.
- Güvenli veri aktarımını sağlamak için, dışarıya bakan API'lerin bir HTTPS kanalına dağıtılması gerekir.
# 5) Uygulama Aşaması
Dinamik Kod Analizi OWASP (Açık Web Uygulaması Güvenlik Projesi) testi olarak da adlandırılan Uygulama Güvenliği Testinden başka bir şey değildir. Güvenlik Açığı Analizi ve Sızma Testi (VAPT), uygulama / Test Aşamasında gerçekleştirilmelidir.
Bu analiz, ikili dosyaları ve bazı ortam yapılandırmalarını değerlendirir ve güvenlik gereksinimleri için kodu daha da güçlendirir.
Bu analizin bir parçası olarak, Dinamik Davranış veya programların çeşitli özelliklerinin işlevselliği, güvenlikle ilgili açıklar için analiz edilir. Dinamik kod analizi yapmak için öngörülen kullanım durumları ve iş senaryoları da kullanılır.
Bu aktivite, Test Derlemeleri otomatik ve manuel bir yaklaşımla çeşitli güvenlik araçlarını kullanmak.
- HP WebInspect, Burp Suite, ZAP ve SOAP UI araçları genellikle güvenlik açıklarını standart güvenlik açığı veritabanlarına ( Misal: OWASP İlk 10 )
- Bu aktivite esas olarak otomatik olsa da, belirli araç kısıtlamaları nedeniyle, yanlış pozitifleri önceliklendirmek için bazı manuel çalışmalar gerekebilir.
- Bu ideal olarak, teste hazır yazılımın dağıtıldığı ayrı bir ortamda (Sistem Test Ortamı) yapılır.
- Güvenlik açıklarının yükseltilmesi ve önerilen Azaltmalarla kapatılması gerekir.
Bu analiz sırasında tanımlanan tipik tehdit kalıpları; Girdi doğrulama, Bozuk Kimlik Doğrulama ve Oturum Yönetimi, Hassas verilerin teşhiri, XSS ve Parola Yönetimi ile ilgilidir.
Örnek Test Senaryoları şunları içerir:
- Şifre Yönetimi: Şifrelerin yapılandırma dosyalarında veya sistemin herhangi bir yerinde düz metin olarak depolanmamasını sağlamak için.
- Sistem Bilgisi Sızıntısı: Sistem bilgilerinin herhangi bir noktada sızdırılmamasını sağlamak için, printStackTrace tarafından açığa çıkan bilgiler, düşmana bir saldırı planından yardımcı olabilir.
# 6) Test - Dağıtım Öncesi Aşama
Penetrasyon testi Kısaca Kalem Testi ve Infra VAPT (Güvenlik Açığı Analizi ve Sızma Testi) , eksiksiz bir bütünsel testtir tam çözüm ve konfigürasyonlar (ağ dahil) ideal olarak üretim öncesi veya üretim benzeri bir ortamda yapılır.
Bu, esas olarak, diğer Güvenlik Açıklarıyla birlikte DB Güvenlik Açıklarını ve Sunucu Güvenlik Açıklarını belirlemek için gerçekleştirilir. Bu, Güvenlik Testinin gerçekleştirilecek son aşamasıdır. Dolayısıyla bu, daha önce bildirilen kusurların ve risklerin doğrulanmasını da içerir.
- Kalem testi yapmak için piyasada bulunan Nessus, Nmap, HP Web Inspect, Burp Suite, ZAP gibi araçlar kullanılır.
- Otomatik araçlar kullanılarak web uygulamalarının taranması ve daha fazla doğrulama için istismar bu test sırasında yapılır. Testler, gerçek saldırganın davranışını simüle etmek için yapılır ve bu nedenle birkaç olumsuz test de içerebilir.
- Altyapı Güvenlik Açığı değerlendirme, güvenlik açıklarını belirlemek ve hedeflenen saldırılara karşı dayanıklılığı kontrol etmek için altyapının (ağlar, sistemler ve sunucular) taranması, analizi ve güvenlik yapılandırması incelemesini içerir.
- Bu, dağıtıma hazır yazılımın test edildiği ve dolayısıyla gerçek zamanlı ortamı simüle ettiği üretim öncesi veya üretim benzeri bir ortamda gerçekleştirilir.
- Güvenlik açıkları, yanlış pozitifleri ortadan kaldırmak için hem tarayıcılar hem de manuel teknikler kullanılarak belirlenir. Ayrıca, manuel test sırasında gerçek zamanlı iş senaryoları gerçekleştirilecektir.
- Tüm program için yürütülen Güvenlik Analizinin tamamı hakkında, varsa yüksek riskli öğelerin durumunu vurgulayan bir nihai rapor oluşturulacaktır.
Örnek Test Senaryoları şunları içerir:
- Savunmasız HTTP yöntemlerinin etkinleştirilmediğinden emin olmak için.
- Diğer kullanıcıların hassas bilgilerinin ağ üzerinden açık metin olarak görünmemesini sağlamak için.
- Kötü amaçlı bir dosyanın yüklenmesini önlemek için Dosya Yükleme doğrulamasının uygulandığından emin olmak için.
SSDLC için Tablo Özeti
Aşağıdaki tablo, yukarıda açıklanan güvenlik analizinin farklı yönlerini özetlemektedir.
SDLC Aşaması | Anahtar Analiz Yapıldı | Bu değerlendirmelerde tam olarak ne yapılır | Giriş | Kullanılan aletler | Çıktı |
---|---|---|---|---|---|
Gereksinimler | Güvenlik Gereksinimlerinin verimli bir şekilde yakalanmasını sağlamak için. | Gereksinimler analiz edilir. | Gereksinim Belgeleri / Kullanıcı Hikayeleri / Özellikleri | El kitabı | Güvenlik Gereksinimleri, gereksinim özelliklerinde oluşturulmuştur. |
Planlama | Güvenlik Ekibi kurulacak Güvenlik Test Stratejisi hazırlandı. | Ekip belirlendi ve kuruldu. Paydaşlarla strateji hazırlanmış, gözden geçirilmiş ve onaylanmıştır. | Nil | El kitabı | RnR ve RACI tanımlı güvenlik ekibi kurulumu. Güvenlik Testi Stratejisi belgesi imzalandı. |
Tasarım | Güvenlik Riski Değerlendirmesi | Güvenlik kusurlarını belirlemek için programla ilgili belgelerin gözden geçirilmesi. Ekip ile tartışma. Riskler belirlenir ve Azaltıcılar önerilir. | Proje ile ilgili dokümanlar: HLDD, LLDD. | Manuel inceleme | Tanımlanmış Tasarım Riskleri. Önerilen Azaltımları içeren Risk Yönetimi Matrisi. |
Geliştirme | Güvenli Kod Analizi (Statik Değerlendirme) | Güvenlik Tarayıcıları, geliştiricinin makinelerine takılır. Derleme şablonuyla entegre güvenlik aracı. | Geliştirilmiş Kod | Tarayıcıları Otomatikleştirin (Fortify). Yanlış pozitiflerin manuel olarak triyajı. | Güvenli Kod Kusurları. Etki Azaltıcılı Risk Yönetimi Matrisi. |
Uygulama | Dinamik Kod Analizi (Dinamik Değerlendirme) | Uygulama güvenlik testi yapıldı. | Birim test edilmiş yapı Özel test Ortamı | Güvenlik testi araçları (HP WebInspect, Burp Süit, ZAP Yanlış pozitiflerin manuel triyajı. | Dinamik kod analizi hataları. Etki Azaltıcılı Risk Yönetimi Matrisi. |
Test / Dağıtım Öncesi | Kalem Testi, Infra VAPT | Gerçek zamanlı senaryoları kullanarak penetrasyon testi ve Infra VAPT. Daha önce bildirilen risklerin / kusurların doğrulanması. | Derlemeyi dağıtmaya hazır. Üretim Öncesi veya Çevre gibi Üretim. | Güvenlik Test Araçları (Nessus, NMAP, HP WebInspect) Yanlış pozitiflerin manuel olarak triyajı. | Etki Azaltıcılı Risk Yönetimi Matrisi. Risk durumuyla birlikte son güvenlik testi raporu. |
Sonuç
Böylelikle, SDLC'nin çeşitli aşamalarına entegre edilmiş tüm bu güvenlikle ilgili yönlerin uygulanmasıyla, kuruluşun güvenlik kusurlarını döngünün erken aşamalarında tespit etmesine yardımcı olur ve kuruluşun uygun azaltmaları uygulamasına olanak tanır, böylece Yüksek Riskli Güvenlik Hataları Canlı Sistemde.
Çalışma ayrıca, güvenlik kusurlarının çoğunun geliştirme aşamasında, yani yazılımda Kodlama Aşaması , burada kodlama, her ne sebeple olursa olsun, tüm güvenlik yönlerine yeterince dikkat etmemiştir.
İdeal olarak hiçbir geliştirici, güvenliği tehlikeye atan kötü bir kod yazmak istemez. Bu nedenle, geliştiricilere bir Güvenli Yazılımın nasıl yazılacağı konusunda rehberlik etmek için yaklaşan eğitim, En İyi Uygulamalar ve Kodlama Yönergeleri Yazılımın daha iyi güvenliğini sağlamak için Geliştiriciler için.
Secure SDLC veya SSDLC ile ilgili bu öğreticinin yararlı olduğunu umuyoruz !!
Önerilen Kaynaklar
- SDLC (Yazılım Geliştirme Yaşam Döngüsü) Aşamaları, Metodolojileri, Süreçleri ve Modelleri
- 2021'de 10 En İyi Mobil Uygulama Güvenlik Test Aracı
- Profesyoneller Tarafından 2021'de Kullanılan 19 Güçlü Sızma Testi Aracı
- Mobil Uygulama Güvenliği Test Yönergeleri
- Ağ Güvenliği Testi ve En İyi Ağ Güvenliği Araçları
- Güvenlik Testi (Tam Kılavuz)
- Web Uygulamasını Test Etmek İçin En İyi 4 Açık Kaynak Güvenlik Test Aracı
- Web Uygulaması Güvenliği Test Kılavuzu