Python ile Git Commit İçinde Gizli Bilgi Tespiti

0 Yanıt 0 Görüntülenme
Puanlayanlar
Katılımcılar
Konuyu Açan #1
Günümüzde yazılım geliştirme süreçlerinde git gibi versiyon kontrol sistemleri, kodun yönetimi ve takibi açısından vazgeçilmez araçlar haline geldi. Ancak, bu sistemlerde yapılan hatalar veya bilinçli paylaşımlar sırasında gizli bilgiler (API anahtarları, şifreler, erişim tokenleri gibi) yanlışlıkla commit edilerek ciddi güvenlik açıklarına yol açabiliyor. Bu nedenle, git commit sırasında veya sonrasında gizli bilgilerin tespiti önemli bir güvenlik adımıdır. Bu konuda Python tabanlı birkaç strateji ve araçtan bahsetmek faydalı olacaktır.

İşte bu amaçla kullanılabilecek temel yaklaşımlar:
[list=1]
  • Regex Kullanımıyla Otomatik Tespiti
  • Güvenlik Odaklı Sürüm Kontrolü Entegrasyonları
  • Git Hook ve Otomasyonlar
    [/list]

    1. Regex Kullanımıyla Otomatik Tespiti
    Python’da regex (düzenli ifadeler) kullanarak, şifreler, API anahtarları veya token gibi gizli bilgilerin olası örüntülerini tespit edebilirsiniz. Örneğin, API anahtarları genellikle belirli öneklerle başlar veya belirli biçimlerde olur. Bu örnekte, temel bir regex ile API anahtarlarının ve şifrelerin tespiti yapılabilir.

    Kod örneği:
    KOD
    1234567891011121314151617181920212223import re
    
    [b]Potansiyel gizli bilgi örnekleri için regex[/b]
    patterns = [url=AK|API|SECRET|TOKEN|PASSWORD|KEY|ACCESS]
        r'["\'[/url]_?[\'\"]\s*:\s*["\'][^"\']+["\']',  # Anahtar ve token yapısı
        r'[url=AKIA|A3T|ASIA]"\'[/url][A-Z0-9]{16,}',  # AWS erişim anahtarları gibi
        r'[url=ssh-rsa|ecdsa-sha2-nistp256]"\'[/url][^"\']*',  # SSH anahtarları
    ]
    
    def find_secrets(code):
        for pattern in patterns:
            matches = re.findall(pattern, code)
            if matches:
                print("Bulunan gizli bilgi örneği:", matches)
    
    [b]Örnek kullanım[/b]
    commit_diff = '''
        "API_KEY": "AKIAIOSFODNN7EXAMPLE",
        "password": "SuperSecret123",
        "ssh": "ssh-rsa AAAAB3Nza..."
    '''
    
    find_secrets(commit_diff)
    


    Bu yöntem, commit öncesinde veya sonrasında hızlıca tarama yaparak gizli bilginin olup olmadığını tespit etmekte kullanılabilir.

    2. Güvenlik Odaklı Sürüm Kontrolü Entegrasyonları
    Git’e özel araçlar veya CI/CD pipeline’larına entegre edilebilecek scriptler ile, commit sırasında veya pull request’lerde otomatik tarama yapılabilir. Örneğin, git-secrets gibi araçlar, belirli anahtar kelimeleri ve patternleri arayarak gizli bilgilerin commit edilmesini engeller. Python tabanlı scriptler ise bu araçlara entegre edilerek, daha özelleştirilmiş tespitler sağlar.

    3. Git Hook ve Otomasyonlar
    Pre-commit veya pre-push hook’ları kullanarak, commit yapılmadan önce kodun taranmasını sağlayabilirsiniz. Python ile yazılmış scriptler, bu hook’lara entegre edilerek, bir gizli bilgi tespiti durumunda commit’in engellenmesini sağlar. Bu sayede, hatalı commitler üretim ortamına ulaşmadan engellenir ve güvenlik riski minimize edilir.

    Sonuç olarak, gizli bilgilerin paylaşımı veya sızdırılmasının önüne geçmek için otomatik tespit mekanizmaları geliştirmek ve uygulamak hayati önem taşır. Güvenlik, sadece kod yazarken değil, versiyon kontrol ve dağıtım aşamalarında da sürekli kontrol ve denetim gerektirir. Bu alanda Python’un sunduğu esneklik ve çeşitli araçlar ile, güvenliği artırmak mümkündür.
  • Yanıt vermek için giriş yapmış olmalısınız.

    0 alıntı seçildi