CI / CD Süreçlerinde Uygulama Güvenliği

6 dakikada okunur

Yazılım geliştirme süreçlerinde güvenlik testi ve uygulama güvenliği, güvenilir ve sağlam uygulamalar oluşturmanın önemli bir parçasıdır. Yazılımın geliştirme aşamasında ya da sonrasında güvenlik açıklarını tespit etme, analiz etme ve raporlama süreci Uygulama Güvenliği Testi (Application Security Testing, kısaca AST) olarak bilinir. Bu süreç, hem manuel hem de otomatik araçlar kullanılarak yapılabilir ve bu süreci CI / CD süreçlerine entegre ettiğimizde, DevSecOps'un bir parçası haline gelir.
Bu yazım, DevSecOps kavramındaki CI / CD süreçlerinde güvenlik uygulamalarını ele almaktadır.

  • Static Application Security Testing (SAST)
  • Dynamic Application Security Testing (DAST)
  • Software Composition Analysis (SCA)

Static Application Security Testing (SAST) Nedir?

SAST, kodlama aşamasında kullanılan bir test türüdür ve kodu henüz çalıştırılmadan analiz eder. SAST araçları, kaynak kodunu tarayarak potansiyel güvenlik açıklarını belirlemeye çalışır. Özellikle yazılımın geliştirme sürecinin erken aşamalarında kullanıldığında, hataların maliyetini minimumda tutmak açısından oldukça faydalıdır. Ancak, bu tür araçların verdiği false positive (yanlış pozitif) sonuçlar yazılım ekipleri için ekstra iş yükü oluşturabilir.

OWASP'ın sayfasında yer alan Source Code Analysis Tools sayfasında kullanabileceğiniz araçlar alfabetik sıra ile sıralanmaktadır. Gelişen teknolojiler ışığında yeni yazılımlar da çıktığından bu listeyi OWASP'ın sitesinden bakmanız daha iyi olacaktır.

Source Code Analysis Tools | OWASP Foundation
Source Code Analysis Tools on the main website for The OWASP Foundation. OWASP is a nonprofit foundation that works to improve the security of software.

Dynamic Application Security Testing (DAST) Nedir?

DAST, uygulamanın derlenip çalıştırıldığı ortamda güvenlik açıklarını tespit eden bir test türüdür. Bu ortam test ortamı da olabilir production(canlı) ortam da olabilir. Fakat production ortamda DAST testleri bazı performans sorunlarına veya yanlış alarm durumlarına yol açabilir. Kaynak koduna erişim gerektirmez, bunun yerine dışarıdan saldırı simülasyonları yaparak potansiyel açıkları belirler. Bu tür testler, uygulamanın gerçek kullanım durumlarını simüle eder ve potansiyel güvenlik açıklarını tespit etmede etkilidir.

OWASP'ın sayfasında yer alan Vulnerability Scanning Tools sayfasında kullanabileceğiniz araçlar alfabetik sıra ile sıralanmaktadır. Gelişen teknolojiler ışığında yeni yazılımlar da çıktığından bu listeyi OWASP'ın sitesinden bakmanız daha iyi olacaktır.

Vulnerability Scanning Tools | OWASP Foundation
Vulnerability Scanning Tools on the main website for The OWASP Foundation. OWASP is a nonprofit foundation that works to improve the security of software.

Software Composition Analysis (SCA) Nedir?

SCA, uygulamaların açık kaynak ve üçüncü taraf bileşenlerini analiz ederek, bu bileşenlerin potansiyel güvenlik açıklarını ortaya çıkarır. Günümüzde çoğu yazılım uygulaması açık kaynak kütüphaneler ve bileşenlerle geliştirilmekte olduğundan, SCA araçları bileşenlerin güvenlik risklerini yönetmek için kritik rol oynar. SCA araçları genellikle SAST ile birlikte kullanılır ve uygulamanın kodunu oluştururken bileşenlerin güvenliğini sağlar. Bu araçlar, tedarik zinciri güvenliğini sağlama açısından da oldukça önemlidir.

Component Analysis | OWASP Foundation
Component Analysis on the main website for The OWASP Foundation. OWASP is a nonprofit foundation that works to improve the security of software.

SAST ve DAST Arasındaki Farklar

SAST ve DAST testleri yazılım geliştirme süreçlerinde farklı zamanlarda kullanılır ve farklı güvenlik risklerini hedef alır. SAST, yazılım geliştirme sürecinin erken aşamalarında, kod seviyesinde güvenlik açıklarını tespit etmeye çalışırken; DAST, yazılımın çalıştığı test ortamında güvenlik risklerini keşfeder. Bazı senaryolarda DAST'ın production aşamasında da kullanıldığı oluyor fakat performans kaybı veya yanlış alarm durumları olduğundan önerilmemektedir. İdeal bir güvenlik stratejisi, bu iki aracı bir arada kullanmayı gerektirir.

DevSecOps Entegrasyonu: SAST, DAST ve SCA ile Güvenlik Tarama Süreçleri

DevSecOps, güvenliği yazılım geliştirme yaşam döngüsünün her aşamasına entegre etmektir. Azure DevOps pipeline’ına güvenlik tarama araçları entegre ederek bu süreci otomatize edebilirsiniz. SAST taramaları CI pipeline’ında kod derleme(build) sürecinde yer alırken, DAST testleri uygulamanın dağıtım(release) aşamasından sonra devreye girebilir. Ayrıca SCA araçlarıyla açık kaynak kütüphanelerin güvenlik durumları düzenli olarak kontrol edilebilir.

görsel kaynağı: https://www.cozumpark.com/uygulama-guvenlik-testi-nedir/

Probely gibi bir DAST aracı ve diğer güvenlik tarama yazılımlarını pipeline’a entegre ederek, güvenlik açıklarının düzenli olarak taranmasını ve tespit edilmesini sağlayabilirsiniz. Böylece yazılım geliştirme sürecinde güvenlik bir yan unsur olmaktan çıkıp, geliştirme sürecinin her aşamasında bir temel bileşen haline gelir.

Daha sonraki yazılarımda Probely yazılımını Azure DevOps CI / CD sürecine nasıl dahil edebileceğimizi konu edineceğim.

DevSecOps'un Shift Left ve Shift Right İlişkisi

DevSecOps, yazılım geliştirme süreçlerinde güvenliği önceliklendirerek sürekli ve entegre bir yaklaşım sunar. Bu yaklaşımın temel taşlarından biri, güvenlik kontrollerinin hem geliştirme aşamasının başında hem de yazılım çalıştığı ortamında aktif olmasıdır. İşte burada Shift Left ve Shift Right stratejileri devreye girer.

Shift Left, güvenlik testlerini yazılım geliştirme sürecinin erken aşamalarına kaydırarak güvenliği proaktif bir şekilde ele alır. Yazılımcılar, kodlarını yazarken otomatik güvenlik taramalarıyla potansiyel tehditleri erkenden tespit edebilir ve bu da büyük maliyet ve zaman tasarrufu sağlar. DevSecOps ile bu strateji, sadece test ekibinin değil, tüm yazılım ekibinin güvenlik konularında sorumluluk almasını teşvik eder.

Shift Right stratejisi ise, yazılımın canlı(production) ortamında test edilmesi, performans ve güvenlik ölçümlerinin yapılmasıdır. Yazılımın gerçek dünya koşullarında nasıl davrandığını anlamaya yardımcı olur. Gerçek zamanlı güvenlik testleri ile üretim ortamındaki kullanıcı davranışlarını ve potansiyel açıkları izler.

görsel kaynağı: https://www.linkedin.com/pulse/getting-started-cicd-pipeline-security-hossein-khoshbayan/

SAST, DAST, SCA, Shift Left, Shift Right?

Shift Left ve Shift Right stratejileri, SAST, DAST ve SCA gibi araçlarla birlikte DevSecOps süreçlerinin temelini oluşturur. Shift Left, güvenlik açıklarını erken aşamada yakalayarak SAST ve DAST ile proaktif önlemler alırken, Shift Right canlı ortamda DAST ile güvenlik testlerine devam edebilir, bu benim bu başlık altındaki düşüncemdir. Shift Right dediğimizde aslında SIEM, SOAR, WAF araçlarından bahsetmemiz gerekebilir. Fakat DAST araçları canlı ortamlar için de konfigüre edilebilir. Canlı ortam dediğimizde de Shift Left'den çıkmış oluyoruz. SCA ise üçüncü parti bağımlılıkları analiz ederek yazılımın her aşamasında güvenliği sağlar. Bu araçların etkin kullanımı, yazılım geliştirme süreçlerinde güvenliği artırır ve riskleri minimuma indirir. Bu araçların nasıl ve ne zaman kullanılacağını iyi belirlemek, güvenli yazılım geliştirme stratejilerinde büyük öneme sahiptir.

yekta.web.tr


Takip Et