1 puan yazan GN⁺ 2024-07-21 | 1 yorum | WhatsApp'ta paylaş
  • Bir güvenlik araştırmacısı, a16z ile ilişkili portfolio.a16z.com alt alan adında Heroku instance’ının tam process.env içeriğinin JavaScript’e dinamik olarak dahil edildiğini keşfetti
  • Açığa çıkan değerler arasında DATABASE_URL, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, SALESFORCE_CLIENT_SECRET, OKTA_CLIENT_SECRET, MAILGUN_API_KEY gibi çeşitli servis kimlik bilgileri bulunuyordu
  • Araştırmacı, JS dosyalarındaki secret’ları bulmak için yaptığı sıradan bir lunchcat taraması sırasında AWS anahtarı referansını yakaladığını ve bunun yalnızca tarayıcı geliştirici araçlarındaki Sources sekmesi ile görülebildiğini söyledi
  • Etki alanının PII içeren veritabanı, AWS, Salesforce ve Mailgun’u kapsadığı; Mailgun üzerinden a16z alan adından rastgele e-posta gönderilebildiği ve geçmiş e-postaların okunabildiği öne sürüldü
  • a16z, bug bounty ödemesi yapmadı ve gerekçe olarak kamuya açık iletişim girişimlerini gösterdi; araştırmacı ise ana sitede bir iletişim adresi bulunmadığını ve bulduğu e-posta adreslerinin de geri döndüğünü söyledi

Alt alan adı incelemesi sırasında ortaya çıkan ortam değişkenleri

  • Araştırmacı, Twitter’da şirketleri bulduktan sonra hızlıca sızma testi yaparak hedef seçtiğini ve sık sık Relevant People sekmesini kullandığını söyledi
    • Bu seferki yol crypto ile ilgili bir şirket → crypto girişim sermayesi → a16z cryptoa16z şeklinde ilerledi
  • a16z’yi incelerken olağan bir alt alan adı taraması yaptı ve lunchcat aracıyla alan adı kontrolü ve JS dosyalarındaki secret tespitini yürüttü
  • portfolio.a16z.com, a16z’ye bağlı şirketler için bir portföy yönetim aracı gibi görünüyordu ve inceleme sırasında sitenin bir yerinde AWS anahtarı referansı tespit edildi
  • JS içinde, Heroku instance’ının tüm process.env içeriği gibi görünen değerler dinamik olarak yer alıyordu
    • Dahil edilen öğeler arasında MARKETPLACE_URL, DATABASE_URL, SALESFORCE_CLIENT_ID, SALESFORCE_CLIENT_SECRET, OKTA_CLIENT_SECRET, SESSION_SECRET, MAILGUN_API_KEY, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, COOKIE_SECRET, HEROKU_POSTGRESQL_CRIMSON_URL vb. vardı
    • Araştırmacı, kimlik bilgilerini hızlıca kontrol ettiğini ve bunların sahte değil, gerçek kimlik bilgileri gibi göründüğünü söyledi
    • Erişimin, tarayıcı geliştirici araçlarında yalnızca Sources sekmesini açmak düzeyinde olduğunu anlattı

Olası sızıntı kapsamı ve bug bounty tartışması

  • Araştırmacının sıraladığı ihlal edilebilir servisler şunlardı
    • Veritabanı: PII içerdiğini söyledi
    • AWS: Açığa çıkan anahtarlarla erişim olasılığından söz edildi
    • Salesforce: Doğrudan doğrulamadığını, hesap yetkilerinin sınırlı olabileceğini ekledi
    • Mailgun: a16z alan adından rastgele e-posta gönderilebildiğini ve geçmiş e-postaların da okunabildiğini söyledi
    • Bunun dışında daha fazlası da olabileceğini belirtti
  • a16z, araştırmacının özel kanaldan değil kamuya açık şekilde iletişim kurmaya çalıştığını gerekçe göstererek bug bounty ödemedi
  • Araştırmacı, kamuya açık şekilde iletişime geçmesinin iki nedeni olduğunu söyledi
    • a16z’nin ana sitesinde kullanılabilir bir iletişim bilgisi bulamadı
    • Bulabildiği e-posta adresine gönderdiği mesaj geri döndü
  • İlgili bağlantı olarak TechCrunch haberi eklendi; araştırmacı, a16z ile iletişime geçmeye çalışırken attığı tweet’i Lorenzo’nun görüp kendisine ulaştığını ve haberi bu şekilde yazdığını söyledi

1 yorum

 
GN⁺ 2024-07-21
Hacker News yorumları
  • Açık kaynak projemizi (https://github.com/heyPuter/puter/) yayımladığımızda, Eva oldukça kapsamlı bir sızma testi yaptı ve güvenlik açığı bildirimini de son derece profesyonel biçimde ele aldı.
    O sırada bir bug bounty programımız bile yoktu; buna rağmen ödül talep etmedi. Eva hem çok yetenekli hem de sorumluluk sahibi bir hacker, bu yüzden a16z ona daha iyi davranmalı.

  • Ben de benzer bir hata yapmıştım.
    apostrophecms adlı Node.js CMS’ini kullanıyordum; “global settings” denen yönetici panelini kimlik doğrulama sunucusu API anahtarlarını yönetmek için kullanmıştık. Birkaç ay sonra bu değerlerin HTML kaynak koduna yazdırıldığını fark ettik.
    JavaScript’te kullanılabilsin diye böyle tasarlanmıştı ve belgelerde de yazıyordu; o yüzden onları suçlamıyorum, ama biz üstünkörü geçmiştik.
    Daha da sinir bozucu olan, büyük bir danışmanlık şirketine sızma testi için epey para ödememize rağmen onların da bunu yakalayamamış olmasıydı. Sonunda kendimiz keşfettik, logları kontrol ettiğimizde kötüye kullanım izine rastlamadık gibi görünüyordu ama yine de epey sarsıcı bir sızıntıydı.

    • O sızma testi için en azından iade isterdim.
      Şimdiye kadar gördüğüm sızma testlerinin hiçbiri kutucuk işaretlemekten öteye gitmedi.
    • ApostropheCMS kullanırken beklenmedik bir ifşayla karşılaşmanıza gerçekten üzüldüm.
      Dediğiniz gibi, bu veri paylaşım biçimi belgelerde yazıyordu; yine de şaşırtıcı olabilir.
      İleride araştıracak olanlar için ekleyeyim: Apostrophe’un şu anda desteklenen ana sürümü artık bu şekilde davranmıyor.
      Oturumu kapalı frontend’e veri enjekte etmek artık geliştiricinin bilerek seçmesi gereken bir şey; bu tür sürprizleri önlemek için böyle değiştirildi.
      Yine de belirli bir widget’ın ayarlarının ve içeriğinin parçası olarak API anahtarı eklemeyi gerektiren kullanım durumları hâlâ var.
      Not: Apostrophe’ta tasarımdan sorumluyum ve aynı zamanda mühendislik rolüm de var.
    • Web tabanlı bir içerik yönetim sistemini neden gizli değerleri yönetmek için kullandığınızı merak ettim.
    • Düzeltme: apostrophe cms’i suçlamaya çalışmıyorum.
      Bu durum bizim çok kiracılı yapılandırmamız ve apostrophe’u yeterince anlamamamız yüzünden ortaya çıktı.
    • “Belgelerde vardı, o yüzden suçlamıyorum. Biz üstünkörü geçtik” demişsiniz ama yine de onları suçlamalısınız.
      Tehlikeli bir davranışı belgelemek kişiyi sorumluluktan kurtarmaz; bence bu ders artık herkesçe biliniyor olmalı.
  • Yeni bir servis oluşturup ACME ile sunucuya LetsEncrypt sertifikası bağladığınız anda loglar saçma sapan isteklerle doluyor.
    Geliştiricilerin açık bırakmış olabileceği zayıf varsayılanları arayan botlar açıkça görülüyor; hatta process environment dosyasını isteyenleri bile gördüm.
    Böyle bir açığın nasıl keşfedilmediğini ya da istismar edilmediğini bilmiyorum; a16z çok şanslı olabilir ya da zaten istismar edilmiş ama kamuya açıklanmamış olabilir.
    İyi niyetli bir araştırmacı ya da white-hat kafasında canı sıkılmış biri önce onlarla iletişime geçmiş oldu. Böyle dikkatsizlikler için yasal bir çerçeve olmaması üzücü, ama bence a16z büyük bir para cezası yemeli.

    • “Böyle bir açık nasıl keşfedilmemiş ya da istismar edilmemiş olabilir?”
      Belki de çoktan edilmiştir.
      Bunu kapattırmak yerine açık bırakmak daha değerli olmuş olabilir.
    • Adil olmak gerekirse ana sitenin kendisi o kadar ilgi çekici görünmüyor.
      Ama OKTA gibi kimlik bilgilerinden birkaç tanesi oldukça tehlikeli görünüyor.
  • “Herkese açık şekilde iletişime geçtiği için bug bounty vermedik. Bunu yapmasının nedeni ana sitede iletişim bilgisi olmaması ve bulduğu engineering@a16z.com adresine gönderilen e-postanın geri dönmesiydi” kısmı, şirket parasından tasarruf ettiren akıllı bir hayat hilesi gibi görünüyor.
    Mühendislik ekibiyle özel olarak iletişime geçmenin yolunu ortadan kaldırırsanız tüm bug bounty bildirimleri herkese açık yapılır; böylece hiçbir şey ödemek zorunda kalmazsınız.

    • Birçok açıdan zekice.
      Geliştirmeyi de fiverr tarzı yerlerden insanları ucuza çalıştırarak epey kısmışlardır; bir Rus fidye yazılımı grubu kolayca içeri girerse muhasebe maliyetlerinden de dolaylı olarak çok tasarruf ederler.
    • Ama bu, bir sonraki sefer güvenlik araştırmacısına o bilgiyi bildirmeyip satmayı öğretmek demek.
    • Şirketin para ödememek için ayrı bir “hack” yapmasına gerek yok.
      Kamuya açık bir bug bounty programı yoksa borçlu oldukları bir şey de yok.
      Üstelik https://a16z.com/connect sayfasının altında bir iletişim e-posta adresi var; araştırmacı bunu uygun biçimde gözden kaçırmış.
      Sorumlu açıklamadan çok bilinirlik peşinde gibi görünüyor.
    • Bu tür şeyler tekrarlanırsa bounty vermeyen yer olarak tanınırlar ve insanların buldukları sorunları bildirme olasılığı da azalır.
    • HN’de a16z mühendisliğiyle nasıl iletişime geçileceğini soran bir yazı yayımlasaydı epey sonuç alabilirdi.
  • Şirketler “hacklendik” dediğinde, artık kulağa “önemli kimlik bilgilerini düzgün koruyamadık ama lütfen sorumluluğu ‘hacker’ dediğimiz isimsiz bir aktöre yükleyin” anlamına gelen kurumsal bir ifade gibi geliyor.

    • Ön kapıyı yanlışlıkla ardına kadar açık bırakmış olsanız ve biri içeri girip eşyaları çalsa, yine de “soyuldum” dersiniz.
      “Konut dokunulmazlığını ihlal”, “hırsızlık”, “izinsiz giriş” gibi hukuki ayrımlar var; kapının açık olup olmaması hukuka aykırılığı ya da cezayı etkileyebilir, ama gündelik dilde hâlâ soyulmuş olursunuz.
  • Bu kadar geniş açık bir delik için sembolik bir tutarda bounty bile vermemek oldukça berbat.

    • Bir dahaki sefere biri onların anahtarlarını bulursa bu yazıyı görüp bildirmek yerine herkese açık bir GitHub deposuna koyabilir.
  • Devasa üretken yapay zeka mimarisi whitepaper’ları yazmakla meşguller.
    Biraz rahat bırakalım; yarım yamalak yapılmış sohbet botlarının hareket ettiği geleceğin ajanlar dünyasını hayal ediyorlar.
    Dünya bozuk yazılım güncellemeleriyle yanarken.

    • Dünya zaten iklim değişikliğinin etkileriyle yanıyor.
      Cuma günkü bozuk yazılım güncellemesi bunun üstüne konan son dokunuş oldu.
    • “engineering@a16z.com adresine gönderilen e-posta geri döndü”
      Hiç şaşırtıcı değil.
  • Gerçekten Salesforce instance’ına erişilebildiyse, kurucular açısından çok huzursuz edici olurdu.
    Çünkü Salesforce gibi yerlerde genellikle e-postalar kaydedilir ve bunların içinde portföy şirketi kurucularının dışarıyla paylaşmadığı fon toplama planları ya da M&A planları sürekli kalıyor olabilir.

    • Bir web sayfasının herkese açık kaynak kodundan anahtar toplamak yasaldır ve güvenli biçimde bildirilebilir.
      Ama o anahtarlarla yetkisiz sistemlere erişmek suçtur.
      Bu fark çok büyük.
    • LP bilgileri de içeriyorsa bu da epey büyük bir zarar olabilir.
  • Bu VC şirketinin böylesine büyük bir güvenlik deliği için bug bounty ödememiş olması güven vermiyor.

  • HN yöneticileri başlığı daha az utanç verici bir şeyle değiştirmiş.
    Şaşırtıcı değil.

    • Sanırım benim yorumum da a16z’ye fazla eleştireldi.
      Puan değişimi yok ama en üstten en alta taşınmış.
      Yanıt verme biçimleri de gerçekten çeşit çeşit.