Thread Starter
#0
🧠
🔐 Giriş
Modern yazılım projelerinde güvenlik açıklarını kod yazımı sırasında tespit etmek, siber saldırılara karşı en etkili savunmalardan biridir. İşte tam bu noktada GitHub’ın sunduğu güçlü bir analiz aracı devreye girer: CodeQL.
CodeQL, kaynak kod üzerinde sorgulama (query) yapılmasına olanak tanıyan bir analiz motorudur. Güvenlik açığı oluşturabilecek desenleri algılar ve geliştiricileri proaktif olarak uyarır.
🚀 CodeQL Nedir?
CodeQL, kodu veri tabanına dönüştürerek analiz etmenizi sağlayan statik analiz (Static Code Analysis) aracıdır. GitHub tarafından geliştirilmiş olup, geliştiricilerin veya güvenlik araştırmacılarının kod üzerinde SQL-benzeri sorgular yazarak güvenlik açıklarını tespit etmesine olanak sağlar.
Basitçe: Kodunuzu veriye çevirir ve o veri üzerinde “kodda hatalı desen var mı?” sorguları çalıştırırsınız.
🧪 CodeQL Nasıl Çalışır?
1. Kod Veritabanına Dönüştürülür
CodeQL, projenizi analiz ederek her bir fonksiyon, değişken, sınıf ve dosyayı tablo yapısına dönüştürür.
2. Sorgulama Yapılır (Query)
Kodun bu veri tabanı üzerinde CVE temelli veya özel yazılmış CodeQL sorguları çalıştırılır. Örneğin:
CODE
123from Function f
where f.getName() = "eval"
select f, "eval fonksiyonu kullanılmış, bu potansiyel bir güvenlik açığıdır."3. Uyarılar Oluşur
Eğer kodda zafiyet barındıran desenler tespit edilirse GitHub size Security tab altında uyarı olarak gösterir.🔐 CodeQL ile Tespit Edilebilecek Güvenlik Açıkları
| Açık Türü | Açıklama |
|---|---|
| SQL Injection | Kullanıcı girdisinin filtrelenmeden sorguya girmesi |
| XSS (Cross Site Scripting) | HTML'e zararlı veri enjekte edilmesi |
| Komut Enjeksiyonu | eval(), exec() gibi kritik işlevlerin kötü kullanımı |
| Hardcoded Credentials | Kod içinde gömülü şifre veya anahtar bulunması |
| İzinsiz Dosya Erişimi | Kullanıcının dosya sistemi üzerinde yetkisiz erişimi |
🧰 CodeQL'i Kimler Kullanabilir?
- Geliştiriciler: Kodlarını yazarken statik analizle güvenliği entegre edebilir.
- Siber Güvenlik Uzmanları: Açık kaynak projelerde zafiyet taraması yapabilir.
- Bug Bounty Avcıları: CodeQL ile güvenlik araştırmaları yapabilir.
- DevSecOps Mühendisleri: CI/CD süreçlerine CodeQL entegre ederek güvenlik katmanı oluşturabilir.
🧩 Desteklenen Diller
CodeQL, birçok popüler dili destekler:- C/C++
- Java
- JavaScript / TypeScript
- Python
- Go
- Ruby
- C#
💡 Yeni dil destekleri GitHub tarafından sürekli geliştirilmektedir.
⚙️ GitHub'da CodeQL Nasıl Kullanılır?
- GitHub Security tabına girin
- "Enable Code scanning" seçeneğini tıklayın
- GitHub Actions ile CodeQL’i yapılandırın
- Her push veya pull request’te otomatik analiz başlatılır
🎯 Avantajları
- ✅ Otomatik analiz ve güvenlik açığı tespiti
- 📊 Özelleştirilebilir sorgularla esnek denetim
- 🔄 CI/CD entegrasyonu ile sürekli güvenlik
- 🔐 Açık kaynak projelerde ücretsiz kullanımı
📌 Sonuç
CodeQL, günümüz yazılım geliştirme süreçlerine entegre edilmesi gereken güçlü bir güvenlik aracıdır. Kodunuzu daha yazarken analiz etmenizi sağlar, manuel hataları otomatik yakalar ve potansiyel zafiyetleri erken aşamada bildirir. GitHub ile tam entegre çalışan CodeQL, modern DevSecOps anlayışının temel taşlarından biridir.[IMG width="249px" size="1050x1050"]https://i.hizliresim.com/a6d55tm.png[/IMG]