Sırların sızması: Di'ye bir adımsaster

Evinizin anahtarlarını suçlulara vermek kesinlikle en iyi fikir değil. Ancak modern yazılım geliştiren çoğu kuruluşta sıklıkla olan şey budur.

Sırların sızdırılmasıyla ilgili bu ilk yazımızda, bunun neden bu kadar sık ​​yaşandığını, sonuçlarını ve sorunu önlemek veya hafifletmek ve sır sızıntısı olaylarıyla başa çıkmak için hangi adımların atılması gerektiğini analiz edeceğiz.

Aman Tanrım! Bulut erişim anahtarlarımı herkese açık bir depoya yükledim.

Sabit kodlanmış sırlar DevOps araçlarındaki kaynak kodunda veya yapılandırma dosyalarında bulunan sır, kötü ellere geçebilir. Eğer sır şuysa... commitHerkese açık bir kaynak kod deposunda saklanan bir kod, kesinlikle felakete mahkumdur. Ancak özel depolar bile güvenli değildir, çünkü sırlar uygulama dosyaları, günlükler veya çalınan kaynak kodlar aracılığıyla da sızdırılabilir.

Geriye dönüp bakınca, bu rahatsız edici. Basit bir gözden kaçırmanın ne sıklıkla ciddi bir güvenlik ihlaline yol açtığını görüyoruz. Sadece Google'da "AWS anahtar sızıntıları""GitHub erişim belirteci sızıntıları“, ve benzeri. Bu örnekleri şu veya bu satıcı için gizli birer öneri olarak algılamayın. Kendi önerilerinizi kullanın!

Örneğin, (ünlü) Codecov saldırısı Nisan 2021'deki saldırı, Codecov Docker imajının, saldırganın Codecov'un özel git depolarına erişim sağlamasına ve ortam değişkenlerini ve git deposu URL'lerini toplamak için Codecov'un bash yükleyici betiğine tek bir satır eklemesine olanak tanıyan git kimlik bilgilerini içermesi nedeniyle mümkün oldu.

Saldırılarda elde edilen ödüllerin bir kısmının, ek sistemlere erişim sağlamak için gereken sırlar olduğunu ve birçok saldırının kimlik bilgileri, kripto anahtarları ve token'ların sızdırılmasına büyük yatırım yaptığını hatırlatmakta fayda var. 

Sorunun Sabit kodlanmış sırlar yaygın bir uygulamadır.Mart 2022'de Lapsus$ APT 189 GB sızdırıldı Samsung'un kaynak koduna ve diğer hassas dosyalarına ait bazı bilgilerin analiz edilmesi sonucunda bunların bazı içerikler barındırdığı ortaya çıktı. Analiz, bu içeriklerin Samsung'un kaynak kodunu ve diğer hassas dosyalarını ele geçirdiğini gösterdi. 6,600 adet önceden kodlanmış gizli bilgi: %90'ı dahili sistemler için, ancak %10'u GitHub, AWS veya Google gibi harici hizmetler ve araçlar için. Bu sırlar arasında AWS/Twilio/Google API anahtarları, veritabanı bağlantı dizeleri ve diğer hassas bilgiler yer alıyordu. Bu, çoğu kod tabanında en son teknoloji seviyesidir.

Sırların sızdırılması, tedarik zinciri saldırılarına giden en kolay yoldur.

Paket bağımlılıkları, tedarik zinciri saldırıları için şu anda en sık karşılaşılan ancak tek hedef olmayan saldırı türüdür. Kötü niyetli kişiler, kurbanların yazılımlarına yüklenen yeni bir paket oluşturabilir (örneğin, ... kullanarak). yazım hatası ve diğer teknikler), ancak tipik olarak yazılım depolarındaki kaynak koduna değişiklikler ekleyerek mevcut bir paketi enfekte etmeye çalışırlar (SCM(GitHub, GitLab veya BitBucket gibi) veya NPM, PyPI, RubyGems, Maven Central gibi herkese açık kayıt defterlerine kötü amaçlı sürümler ekleyerek.

Ancak kötü amaçlı kod enjekte etmek veya karmaşık bir bağımlılık grafiğine gizlenmiş kötü amaçlı bir bağımlılık eklemek şunları gerektirir: login Kullanıcı adı/şifre, belirteçler veya erişim anahtarları gibi kimlik bilgileri (bunlara "anahtarlar(kısaca ""), hedef kaynak deposu veya genel kayıt defteri için sırasıyla kullanılır. 

Kötü adamlar bazen anahtarları şu yollarla ele geçiriyorlar: sosyal mühendislik.  saldırı event-stream Popüler bir NPM paketi güzel bir örnek sunuyor. Ancak sızdırılmış verileri aramak... login Yazılım tedarik zinciri saldırılarında en sık kullanılan saldırı tekniği kimlik bilgileri veya erişim anahtarlarıdır.

Kaynak kod depoları ve paket kayıt defterleri, yazılım geliştirme sürecinde iki temel sistemdir. pipelineAncak DevOps'ta birçok araç bulunmaktadır: CI/CD Sistemler, test çalıştırma araçları, yapılandırma ve tedarik otomasyonu veya dağıtım ve sürüm işlemleri... Bunların hepsi yazılımlara kötü amaçlı kod enjekte etmek için kötüye kullanılabilir. Bu araçlar için geçerli anahtarların sızdırılması doğrudan sefalete ve acıya yol açar. Genel bulut kaynaklarınız üzerinde tam kontrole sahip kök erişim anahtarlarının sızdırıldığını hayal edin…

Genel tavsiyeler

Burada yeni bir şey söylemiyoruz, bunu hepiniz biliyorsunuz. Ama harekete geçin! Unutmayın ki botlar düzenli olarak tüm kamuya açık alanları tarıyor. SCM Depolar. Bazı öneriler, belirli bir sıralama olmaksızın.

  • Eğer BT güvenlik yönetimi sorumluluğunuz varsa, Sırların nasıl ele alınması gerektiğini tanımlayın. Güvenlik politikasında yer alır. Ancak politikalar, uygulanmadıkları sürece etkilidir: Kuruluşunuzda -sadece DevOps ekipleriniz değil, yazılım tedarikçileriniz de dahil olmak üzere- gizlilik bilgilerinin işlenmesine ilişkin bir yönergenin uygulanmasını ve kuruluşunuzun olay müdahale planının gizlilik sızıntısı olayları için hükümler içermesini sağlayın.
  • Uygulamak ve yürürlüğe koymak çok faktörlü kimlik doğrulama (MFA, 2FA veya hangi kısaltma olursa olsun). Ve güvenlikten ödün verilmiyor: Bir USB güvenlik anahtarı, maliyetine değecek birkaç dolara değer. Binlerce kimlik bilginizi git-push ile göndermeniz (kolay) ve ardından sarhoş olup anahtarlarınızı sizinle bağlantılı bir şeyle bir barda bırakmanız gerekiyor (özellikle alkol kullanmıyorsanız, olasılık biraz daha düşük).
  • Güçlü ve kaydedilmemiş bir parola ile parola yöneticisi kullanın. Sistemlerdeki gizli bilgileri yönetmek için ise farklı yöntemler kullanın. Gizli Kasalar. CI/CD sistemler, bulut sağlayıcıları, SCMDiğer DevOps araçları da bu hizmeti sunar, ancak genel bir Secret Vault çözümü de tercih edebilirsiniz.
  • tercih ederim kısa ömürlü Token'lar uzun ömürlü erişim anahtarlarına dönüştürülebilir. Bunların iptali daha kolaydır ve kötü amaçlı kullanıma daha sınırlı bir alan sunar.
  • Kimlik bilgilerinin tekrar kullanımını sınırlayınSaldırganlar, hedef sistemden ele geçirdikleri kimlik bilgilerini diğer sistemlerde de yeniden kullanacaklardır; bu da parola yöneticisi kullanmanın bir başka nedenidir. Parola yöneticileri ve gizli kasa sistemleri, kimlik bilgilerinin yeniden kullanılmasını geçmişte bırakmalıdır.
  • Kullanımını sınırlayın ve izleyin. Gizem Şifreler. Özel bir takip sistemini hak edecek kadar güçlüler.
  • Uygulamak güçlü karma algoritması ve şifrelemeUSB (kriptografik) anahtarlarına, ortaklar ve iş arkadaşlarıyla kimlik bilgilerinin iletilmesi için katı prosedürlere ve benzerlerine geri dönelim.
  • Kullanmak gizli tarayıcıÖrneğin, bir yerde çalıştırın. pre-commit kanca Sürüm kontrol sistemlerindeki sızıntıları önlemek için bir güvenlik kapısı görevi görür. Olaydan önce Burada önemli olan şudur. Alternatif olarak, örneğin sızdırılan sırları tespit etmek için, işlemden önce bir kontrol olarak, işlem sonrası taramalar kullanabilirsiniz. pull request birleştirmeler. Not: Xygeni platformumuz, her iki çalışma moduna da olanak tanıyan bir gizli bilgi tarayıcısı içerir. 
  • Kullanımın manuel alternatifi kod incelemeleri Sabit kodlanmış gizli bilgileri aramak daha yüksek maliyetlidir ve işlem sonrasında gerçekleşir.commit (Ama umarım en azından sır dışarıdakilerin eline geçmeden önce). Ancak incelemeler, sır tarayıcılarından kaçabilecek alışılmadık sırları da tespit edebilir.       
  • Kazara önleyin commitOrtak dosyaları gizli bilgilerle birlikte uygun şekilde sürüm kontrolüne dahil etmek. desenleri hariç tut (`gitignore` şablonu gibi), aşağıdaki gibi dosyaları dikkate alarak .env.npmrc.pypircGeçici dosyalar… Güvenlik katmanına eklenen bir diğer unsur gerçekten de.
  • Ve bu uzun listenin sonuncusu: Bulut sağlayıcılarının, mümkün olduğunda, anahtar sızıntılarına karşı tarama yapmalarına izin verin. En azından bu  eğer yalnızca sığınmacı statüleri sona erdirilmemişse, kalıcı oturma iznine Sızıntı gerçekleştiğinde sizi bilgilendireceğiz, ancak bulut sağlayıcıları için güvenlik olmazsa olmazdır. Post-hoc Gizli tarama, taramanın nerede ve ne sıklıkla gerçekleştirildiği konusunda çok şeffaf değildir ve genellikle açık bir kurulum gerektirir, ancak her şey başarısız olduğunda kesinlikle son çaredir.

Aman Tanrım! Bulut erişim anahtarlarımı herkese açık bir depoya yükledim, ikinci deneme

Bu en iyilerimizin bile başına gelebilir. Kolları sıvayın!

Sızdırılan gizli bilgiyi hemen yenileyin/iptal edin/devre dışı bırakın! Hesabınızda düzgün bir çok faktörlü kimlik doğrulama (MFA) varsa risk çok daha düşüktür. Örneğin web sitelerindeki özel anahtarlar için bu daha zor olabilir (yeni bir özel anahtar için yeni bir sertifika oluşturmanız ve mevcut olanı iptal etmeniz gerekir), ancak modern araçlar kimlik bilgilerini yenilemenin veya belirteçleri iptal etmenin hızlı bir yolunu sunar. 

Mümkün olduğunda, sağlayıcının önerdiği adımları izleyin, örneğin Bu örnekte AWS.

Sızıntının nedenini belirleyin. Nasıl meydana geldiğini bilmek, açıklama, analiz, kontrol altına alma ve ders çıkarma faaliyetleri için çok önemlidir.

Ardından, sızıntıyı etkilenen taraflara bildirin ve sızıntıyı durdurmak ve hasarı azaltmak için aldığınız önlemleri açıklayın. Oluşan hasarı geri döndürmenin bir yolu yok, sızan şey sızmıştır. Şeffaf olun ve başkalarını bilgilendirin ki onlar da harekete geçebilsinler. 

O halde şunlarla başlayın: adli.  pozlama penceresi Sızıntı ile gizli bilginin geçersiz hale geldiği an arasındaki süreyi ifade eder. Bu süre zarfında etkilenen hesapla ilgili olağandışı etkinlikleri takip etmek ve günlükleri okumak için hazır olun. Etkilenen hesap kullanılarak oluşturulan hesapları ve anahtarları kaldırın. Etkilenen hesabın yönetici ayrıcalıklarına sahip olması durumunda, düzeltmenin çok daha karmaşık olduğunu unutmayın. 

(Sürüm kontrolü) geçmişini yeniden yazma Karmaşık bir durum. Totaliter devletler bile bunu deniyor ama başaramıyor (kelime oyunu yapıyorum). Ve muhtemelen alakasız: halka açık depolardaki bilgisayar korsanları veya botlar, özellikle maruz kalma süresi yeterince uzunsa, depoyu kopyalamış veya altını çoktan çıkarmış olabilirler. 

Eğer maceracıysanız ve botların sızdırılan bir sırrı tespit etmesinin ne kadar sürdüğünü kendi gözlerinizle görmek istiyorsanız, tuzak telleri gibi yöntemler işinize yarayabilir. Kanarya Jetonları Denemeler yapmanıza izin veriyoruz. Unutmayın, botlar varsayılan ayarları kara listeye alıyor. canarytokens.org ihtisas…

Daha fazla bilgi için Kovacs, E. “Sızdırılan Samsung Kaynak Kodunda Binlerce Gizli Anahtar Bulundu“. Güvenlik Haftası, Mart 2022. Dyjak, A. “Birkaç gün önce sırlar konusunda küçük bir deney yaptım. commitHerkese açık git depolarına gönderildi…“.Tweet dizisi, Kasım 2020.Rzepa, P.“GitHub deposunda AWS erişim anahtarlarının sızması ve Amazon Reaction'da bazı iyileştirmelerMedium, Kasım 2020.
sca-tools-software-composition-analysis-tools
Yazılım risklerinizi önceliklendirin, giderin ve güvence altına alın.
Ücretsiz hesabınızı alın.
Hiçbir kredi kartı gerekmektedir.

Yazılım Geliştirme ve Teslimatınızı Güvence Altına Alın

Xygeni Ürün Paketi ile