paint-brush
SAST Tekniği ile Kodu Hacker Gibi Okuyunile@matejsmycka
2,749 okumalar
2,749 okumalar

SAST Tekniği ile Kodu Hacker Gibi Okuyun

ile Matěj Smyčka4m2024/05/03
Read on Terminal Reader

Çok uzun; Okumak

Statik uygulama güvenlik testi (SAST), kodun güvenliğini ve güvenilirliğini artırmak için kullanılan statik kod analizinin bir alt kümesidir. SAST eski bağımlılıkları, gizli tespitleri, güvenlik açıklarına yol açan mantıksal hataları ve daha fazlasını tespit eder. Bu sihirli bir değnek değil ama aşağıda asılı kalan meyveleri bulmanıza ve zamandan tasarruf etmenize yardımcı olabilir.
featured image - SAST Tekniği ile Kodu Hacker Gibi Okuyun
Matěj Smyčka HackerNoon profile picture
0-item
1-item
2-item

Kodu manuel olarak okumak zaman alıcı bir işlemdir. Ayrıca önemli ayrıntıların gözden kaçırılması kolay olduğundan hataya açıktır. Geliştiriciler ve penetrasyon test uzmanları olarak bu süreci otomatikleştirmenin bir yolunu bulmamız gerekiyor. SAST bu görevde bize yardımcı olabilecek bir tekniktir.


SAST sihirli bir değnek değil. Yalnızca açık kaynaklı projelere veya beyaz kutu sızma testlerine yönelik kaynak koduna erişimi olan kullanım senaryoları için kullanılabilir. Ancak, aşağıda asılı olan bazı meyveleri bulmanıza ve zamandan tasarruf etmenize yardımcı olabilir.

SAST nedir?

Statik uygulama güvenlik testi (SAST), kodun güvenliğini ve güvenilirliğini artırmak için kullanılan statik kod analizinin bir alt kümesidir. SAST eski bağımlılıkları, gizli tespitleri, güvenlik açıklarına yol açan mantıksal hataları ve daha fazlasını tespit eder. SAST, görsel kod karmaşıklığı, kod belirsizliği ve güvenlik açıklarına yol açabilecek sezgisel olmayan uygulamalar gibi siber güvenliği ikincil olarak etkileyen testleri içerir.

Uygulamadaki araçlar

SAST araçları genellikle koddaki bilinen güvenlik açıklarını arayan steroidler üzerindeki normal ifade kalıp eşleştiricileridir. Örneğin, bir SAST aracı Python kodunda eval , exec veya pickle kullanımını arayabilir; bu işlevler isteğe bağlı kod yürütmek için kullanılabilir.

Kural örneği

Bilgisayar Korsanlığı ve SAST

SAST'a yaklaşımımı üç kategoriye ayıracağım:

  1. Güvenlik açığı tespiti : Koddaki saldırı vektörlerini bulmak için Semgrep , Bandit , Nodejsscan gibi araçları kullanıyorum. Genellikle temizlenmemiş girdiler, kötü kriptografi veya savunmasız kitaplıklar gibi pek de göze çarpmayan sonuçlarla karşılaşabilirsiniz. Bu arada Semgrep PRO sürümünde daha fazla kural var; Projede 10'dan fazla geliştirici yoksa ücretsizdir.

    Semgrep ve SQLi

  2. Gizli tespit : Gitleaks , Trufflehog veya Grep, koddaki sırları bulmanıza yardımcı olabilir. Bu önemlidir çünkü sırlar ayrıcalıkları yükseltmek veya hassas verilere erişmek için kullanılabilir. Genellikle veritabanı bağlantı dizeleri, API anahtarları veya şifreler kodda saklanır.

  3. Yanlış yapılandırmalar : Checkov veya Trivy gibi araçlar yanlış yapılandırmaları bulmanıza yardımcı olabilir. Yanlış yapılandırmalar genellikle "kod olarak altyapı" (IaC) dosyalarındadır ancak kodun kendisinde de olabilir. Bunun bir örneği, bir veritabanını internete maruz bırakan, yanlış yapılandırılmış bir docker-compose dosyası olabilir. Docker dosyalarını taramak için hadolint ve grype kombinasyonunu öneririm

    Daha fazla bilgi: https://dkb-zh.gitlab-pages.ics.muni.cz/vulnerability-management/web-guides-external/docs/guide_iac_sast/#docker


SAST araçları mükemmel değildir. Size yanlış pozitifler ve yanlış negatifler verecekler. **Ancak bazı uygulamalardan rastgele yararlanmaya kıyasla çok daha fazla zaman tasarrufu sağlar. Sızma testi çalışmalarımda ve yarışmalarımda SAST araçlarını kullandım. Kod tabanına başlamamda bana yardımcı oldu ve güvenlik açıklarını nerede aramam gerektiği konusunda bana bazı ipuçları verdi.

Bilgisayar korsanlığında SAST kullanarak nasıl eğitim verilir?

Hack The Box ile başlamanızı tavsiye ederim. Bu platform, kaynak kodunu alma ve güvenlik açıklarını bulma gibi zorluklar sunar. Daha sonra bunları gerçek bir makinede kullanın. Bu, SAST araçlarının pratikte nasıl kullanılacağını öğrenmenin harika bir yoludur.

Veya geliştiriciyseniz CI/CD işlem hattınızda SAST araçlarını kullanabilirsiniz. Bu şekilde araçlara ve çıktılarına alışabilirsiniz. Aynı zamanda uygulamanızın güvenliğini de artıracaksınız.

HackTheBox zorlukları

Rehber tavsiyesi

SAST ve gizli tespite başlamanıza yardımcı olacak bir rehber listesi hazırladım. Bu kılavuzlar tezimin bir parçası olarak yazılmıştır ve SAST araçlarına ilgi duyan herkes için harika bir başlangıç noktasıdır.

Gizli tespite nasıl başlanır?

Sırları tespit ederken şunu unutmayın: Bilgisayar korsanları bunu biliyorsa bu bir sır değildir. Deneyimli geliştiriciler bile yanlışlıkla parolaları veya bağlantı dizelerini uzaktan kaynak kontrolüne aktarabilir. Bu kılavuz, çeşitli araçları kullanarak bu riski azaltmak için hızlı ve kolay yöntemler sunar.

Gizli algılama nasıl otomatikleştirilir?

Bu kılavuz, ön işleme kancaları ve CI/CD işlem hatlarını kullanarak gizli algılamanın anlaşılmasına odaklanmaktadır. Kod öncelikle GitLab'a odaklansa da son bölüm GitHub'u da kapsayacak.

SAST ardışık düzenleriyle nasıl başlanır?

Bu kılavuz, GitLab'da Statik Uygulama Güvenliği Testini (SAST) başlatma adımlarını etkili bir şekilde özetlemektedir. SAST, potansiyel güvenlik açıklarını belirlemek için statik kod analizini kullanan bir süreçtir.

IaC SAST'a nasıl başlanır?

Bu kısa özet sayfası, Kod Olarak Altyapı (IaC) yapıtlarını taramak için yararlı araçları tanıtır ve bunları CI/CD ardışık düzeninize nasıl entegre edeceğinize dair örnekler sunar.

Golang'da özel araç

Golang'da normal ifadeleri büyük kod tabanlarıyla hızlı bir şekilde eşleştirmeme yardımcı olan özel bir araç oluşturdum.

Kesinlik ve varyans arasında sonsuz bir değiş-tokuş vardır.

Daha fazla farklılığa ihtiyacınız olduğunu ve daha fazla manuel incelemeye aldırış etmediğinizi varsayalım. Bu durumda grep benzeyen ancak gizli tespit için daha uygun olan RegFinder'ı deneyebilirsiniz (daha büyük depolarda daha hızlıdır, çıktıyı temizler, bazı dosya uzantılarını yok sayar). Veya grep'i doğrudan kullanabilirsiniz. En değerlisi kullanacağınız araç değil, depodaki normal ifadelerdir .

  1. Bu depoyu klonla
  2. grep -n -r your_app/ -Ef regex_dir/general.txt çalıştırın

Veya

  1. ./regfinder.elf -d your_app/ -f regex_dir/general.txt çalıştırın

Mevcut normal ifade kalıplarını genişletmek kolaydır. Bu araç otomatik işlem hatları için uygun değildir. Ancak standart dışı bir sır bulmanız gerekiyorsa veya güvenlik incelemeleri gibi daha fazla manuel çalışmanın beklendiği diğer değerlendirmelerde kullanışlı olur.



Diğer araçlarla ilgili harika deneyiminiz varsa yorum yapın . Okuduğunuz için teşekkürler.