Geliştirme ortamları daha karmaşık hale geldikçe uygulamalar giderek daha fazla dış hizmetle iletişim kurar. Bir yazılım geliştirme projesi harici bir hizmetle iletişim kurduğunda, kimlik doğrulama için bir belirteç veya “gizli” kullanır.
Bu belirteçler, herhangi bir modern uygulamayı bir arada tutan yapıştırıcıdır ve günümüzde kodlarda şaşırtıcı bir hacim ve çeşitlilik bulunmaktadır. Bu sırlar sızdırılırsa sonuçları çok büyük olabilir. Bu nedenle saldırganlar onları taç mücevherleri olarak görüyor ve sürekli olarak onları toplamanın yollarını arıyor.
Bu sırların belirlenmesi ve güvence altına alınmasının, kısmen yüksek orandaki hatalı pozitif sonuçlardan dolayı zorlu olduğu kanıtlanmıştır. Ancak yapay zeka ve makine öğrenimi, sırların daha doğru bir şekilde tanımlanması konusunda umut vaat ediyor; Son araştırmamız, hatalı pozitiflik oranını %86’ya kadar azaltabileceklerini buldu.
Makale, sır türlerini, mevcut güvenlik çözümlerinin sınırlamalarını ve yapay zeka (AI) ile makine öğrenimini (ML) güvenlik araçlarına entegre etmenin etkinliğini inceleyerek siber güvenlik liderlerinin en kritik risklere odaklanmasına olanak tanıyacak.
Farklı türdeki sırları açığa çıkarmak
Yazılımdaki sırlar, yazılım geliştirme yaşam döngüsü (SDLC) ve sürekli entegrasyon (CI) ve sürekli teslimat/sürekli dağıtım (CD) süreçlerinde yer alan ve bir kuruluş için gizli tutulması gereken her türlü hassas veridir.
Sızıntılar yoluyla açığa çıkan sırlarla ilişkili çok çeşitli gizli türler ve riskler şunları içerir:
Kullanıcı adı ve şifre: klasik bir kimlik doğrulama yöntemi. Bir tehdit aktörü tarafından keşfedilmeleri halinde diğer kritik sistemlere erişmek için kullanılabilirler.
API anahtarları bir kullanıcının, geliştiricinin veya programı bir API’ye çağıran kişinin kimliğini doğrulayan benzersiz tanımlayıcılardır. Bunların açığa çıkması, kilidini açtıkları hizmetlere yetkisiz erişime veya kötüye kullanıma yol açabilir.
SSH anahtarları Uzak sistemlere güvenli bir şekilde erişmek için kullanılan dijital imzalardır. Güvenliği ihlal edilirse, yetkisiz sistem erişimine ve olası ihlallere de yol açabilirler.
Git kimlik bilgileri üçüncü taraf veritabanlarındaki kod havuzlarına erişmek için kullanılır. Açığa çıkması durumunda yetkisiz kod değişiklikleri veya hırsızlık meydana gelebilir, bu da geliştirme sürecini etkileyebilir veya kritik bir güvenlik olayına yol açabilir.
Tüm sırlar sistem kimlik bilgileri veya belirli kod dizeleri değildir. Bazen geliştiriciler yanlışlıkla sağlık verileri, kredi kartı numaraları veya banka hesap bilgileri gibi kişisel bilgileri (PII) kodun içinde bırakır. Çoğu durumda bu, kazara bırakılan “test” verileridir ancak yine de bir kuruluşu ihlallere karşı savunmasız bırakabilir ve ifşa edilmesi halinde uyumluluk ihlalleri nedeniyle ağır para cezalarına çarptırılabilir.
Sırları korumanın zorlukları
Kaynak kodu yönetimi (SCM) sistemlerinden CI/CD işlem hatlarına ve bulut altyapısına kadar SDLC’nin her adımında rol oynadıkları için bu gizli dizileri güvenli bir şekilde yönetmek kolay bir iş değildir.
Sırların ortaya çıkacağı ortak yer kaynak kodudur. Son araştırmalar, ortalama olarak her 100 veri deposunda 12 geçerli sırrın bulunduğunu göstermektedir. Bir sır Git tabanlı bir depoya ulaştığında, onu bulmak ve kaldırmak inanılmaz derecede zorlayıcı hale gelir; çünkü gizli olabilir, bir yan dalda saklanabilir ve kendisini hala her geliştiricinin makinesine kopyalayabilir ve muhtemelen kamuya açık hale gelebilir.
Ancak kod depoları sırların bulunabileceği tek yer olmaktan çok uzaktır. Hatalar veya yanlış yönetim nedeniyle yapılara ve kapsayıcılara ulaşabilir, günlükler, bulut varlıkları ve hatta bazen wiki’ler oluşturabilirler. Bu konumlar genellikle kasıtlı olarak halka açık olduğundan daha da önemli bir tehdit oluşturabilir.
Gizli tarayıcıların rolü ve sınırlamaları
Sırları güvende tutmak, geliştirme ekiplerinin farkındalığını artırmayı, tüm SDLC varlıklarınızın güvenlik duruşunu güçlendirmeyi, katı izin politikaları uygulamayı ve sır tarayıcıları kullanmayı içerir.
Sır tarayıcıları, bu tür sırların kötü niyetli ellere ulaşmadan önce sızmasını bulmak için oluşturuldu. Kaynak kodunu, çok çeşitli gizli türleri kapsayan önceden tanımlanmış kurallarla (regex’ler) karşılaştırarak çalışırlar. Kurala dayalı oldukları için sır tarayıcıları genellikle bir yanda yüksek yanlış pozitif oranları, diğer yanda ise düşük gerçek pozitif oranları arasında geçiş yapar.
Daha fazla potansiyel sırrı yakalamak için kuralların gevşetilmesi eğilimi, sıklıkla hatalı pozitif sonuçlara yol açıyor ve bu durum, bu alarmları ele almakla görevli olanlar arasında uyarı yorgunluğuna yol açıyor. Bazı tarayıcılar, yanlış uyarıları azaltmak için, sırrın bir test dosyasında bulunup bulunmadığını veya bir kod değişkeni, işlev çağrısı, CSS seçimi vb. gibi görünüp görünmediğini anlamsal analiz yoluyla kontrol etmek gibi ek kural tabanlı filtreler uygular.
Ancak bu basit yaklaşımlar, her ne kadar cazip gelse de, birçok yanlış olumsuzlukla sonuçlanır, çünkü gerçek sırlar bu kriterlerin kapsamına girebilir.
Yapay zeka ile yanlış alarmları azaltma
Yapay zeka bu zorluğun üstesinden gelmede rol oynayabilir. Büyük Dil Modeli (LLM), sırların nüanslarını ve bunların ne zaman yanlış pozitif olarak değerlendirilmesi gerektiğini anlamak için çok miktarda koda yönlendirilebilir ve ince ayar yapılabilir (eğitilebilir). Bir sır ve tanıtıldığı bağlam göz önüne alındığında, bu model daha sonra bunun işaretlenip işaretlenmemesi gerektiğini bilecektir. Bu yaklaşımın kullanılması, gerçek pozitif oranları sabit tutarken yanlış pozitiflerin sayısını azaltacaktır.
AI/ML kullanımını açık kaynaklı projelerden alınan 10.000’den fazla manuel olarak etiketlenmiş örnek üzerinde test ettik; yanlış pozitifleri %86 oranında azaltarak gerçek pozitifler üzerinde ihmal edilebilir bir etki yarattık; bu da gürültünün önemli ölçüde azaltılması ve risk önceliklendirmesinin iyileştirilmesi anlamına geliyor.
Zaman kaybetmeden sırları korumak
Koddaki sırları korumak, giderek büyüyen büyük bir zorluktur. Bunu ele almak çok katmanlıdır ve tarayıcılar yalnızca tek bir katmandır. Ancak bu katman, aşırı gürültüyü bastıran AI/ML ile optimize edildiğinde çok daha verimli ve etkili hale gelir.