1 पॉइंट द्वारा GN⁺ 2024-07-21 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • एक सुरक्षा शोधकर्ता ने a16z से जुड़े सबडोमेन portfolio.a16z.com पर पाया कि Heroku instance का पूरा process.env JavaScript में dynamically शामिल हो रहा था
  • उजागर हुई values में DATABASE_URL, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, SALESFORCE_CLIENT_SECRET, OKTA_CLIENT_SECRET, MAILGUN_API_KEY जैसी कई service credentials शामिल थीं
  • शोधकर्ता ने बताया कि वह lunchcat से JS files में secrets खोजने की सामान्य जांच के दौरान AWS key reference तक पहुँचा, और इसे सिर्फ browser developer tools के Sources tab से देखा जा सकता था
  • प्रभाव के दायरे में PII वाला database, AWS, Salesforce और Mailgun शामिल थे; शोधकर्ता का दावा है कि Mailgun के जरिए a16z domain से मनमाने email भेजना और पुराने emails पढ़ना संभव था
  • a16z ने bug bounty का भुगतान नहीं किया, यह कहते हुए कि शोधकर्ता ने public तरीके से संपर्क करने की कोशिश की थी; शोधकर्ता का कहना है कि main site पर कोई contact नहीं था और जो email मिला वह bounce हो गया

सबडोमेन जांच के दौरान सामने आए environment variables

  • शोधकर्ता ने बताया कि वह Twitter पर कंपनियाँ ढूँढकर उन पर जल्दी penetration testing करता है, और अक्सर Relevant People tab का उपयोग करता है
    • इस बार रास्ता crypto से जुड़ी कंपनी → crypto venture capital → a16z cryptoa16z तक पहुँचा
  • a16z की जांच के दौरान उसने सामान्य subdomain scan किया और lunchcat टूल से domain जांच व JS files में secret detection की
  • portfolio.a16z.com a16z से जुड़ी कंपनियों के लिए एक portfolio management tool जैसा दिख रहा था, और जांच के दौरान वेबसाइट के किसी हिस्से में AWS key reference detect हुआ
  • JS के भीतर Heroku instance के पूरे process.env जैसी values dynamically शामिल थीं
    • इनमें 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 आदि शामिल थे
    • शोधकर्ता ने credentials को जल्दी verify किया और कहा कि वे नकली नहीं बल्कि वास्तविक credentials लग रहे थे
    • उसने समझाया कि access सिर्फ browser developer tools में Sources tab खोलने जितना आसान था

संभावित exposure का दायरा और bug bounty विवाद

  • शोधकर्ता के अनुसार समझौता हो सकने वाली services इस प्रकार थीं
    • Database: उसके अनुसार इसमें PII शामिल था
    • AWS: उजागर keys के जरिए access की संभावना बताई गई
    • Salesforce: उसने सीधे verify नहीं किया, और जोड़ा कि account permissions सीमित हो सकती हैं
    • Mailgun: उसके अनुसार a16z domain से मनमाने email भेजे जा सकते थे और पुराने emails भी पढ़े जा सकते थे
    • इसके अलावा और भी services प्रभावित हो सकती थीं
  • a16z ने bug bounty नहीं दी, क्योंकि उसके अनुसार शोधकर्ता ने निजी तौर पर संपर्क करने के बजाय सार्वजनिक रूप से संपर्क करने की कोशिश की
  • शोधकर्ता ने सार्वजनिक रूप से संपर्क करने के दो कारण बताए
    • a16z की main site पर उसे कोई उपयोगी संपर्क जानकारी नहीं मिली
    • जो email address उसे मिला, उस पर भेजा गया mail bounce ho गया
  • संबंधित लेख के रूप में TechCrunch लेख जोड़ा गया है, और शोधकर्ता ने कहा कि a16z से संपर्क करने के लिए डाले गए उसके tweet को देखकर Lorenzo ने उससे संपर्क किया और article लिखा

1 टिप्पणियां

 
GN⁺ 2024-07-21
Hacker News की टिप्पणियां
  • जब हमने अपना open-source project(https://github.com/heyPuter/puter/) सार्वजनिक किया, Eva ने काफी व्यापक penetration testing की और vulnerability reports को भी बहुत पेशेवर तरीके से संभाला
    उस समय कोई bug bounty program भी नहीं था, फिर भी उन्होंने कोई reward नहीं मांगा। Eva एक बेहतरीन और जिम्मेदार hacker हैं, इसलिए a16z को उनके साथ बेहतर व्यवहार करना चाहिए

  • मैंने भी ऐसी ही गलती की थी
    हमने apostrophecms नाम का Node.js CMS इस्तेमाल किया था, और global settings नाम के admin panel को authentication server API keys manage करने के लिए इस्तेमाल किया। कुछ महीनों बाद ही पता चला कि वे values HTML source code में output हो रही थीं
    यह JavaScript में इस्तेमाल के लिए ऐसा बनाया गया था और documentation में भी था, इसलिए मैं उन्हें दोष नहीं देता, लेकिन हमने इसे बस सरसरी तौर पर लिया
    और ज्यादा झुंझलाहट की बात यह थी कि हमने एक बड़ी consulting firm को penetration test के लिए काफी पैसे दिए थे, फिर भी वे इसे पकड़ नहीं पाए। आखिरकार हमने खुद इसे खोजा और logs check किए, तो abuse के संकेत नहीं दिखे, लेकिन यह काफी चौंकाने वाला leak था

    • उस penetration test के लिए तो कम से कम मैं refund मांगता
      अब तक मैंने जितने penetration tests देखे हैं, वे checkbox भरने से ज्यादा कुछ नहीं रहे
    • ApostropheCMS इस्तेमाल करते हुए ऐसा unexpected exposure हुआ, यह सुनकर सच में अफसोस है
      जैसा आपने कहा, data share करने का यह तरीका documentation में लिखा था, लेकिन फिर भी यह चौंका सकता है
      आगे जांच करने वालों के लिए जोड़ दूं कि Apostrophe का currently supported major version अब इस तरह behave नहीं करता
      logged-out frontend में data inject करना अब developer को जानबूझकर opt in करना पड़ता है, और ऐसी surprises से बचने के लिए ही यह बदलाव किया गया
      हालांकि कुछ use cases अभी भी हैं जहां किसी specific widget की settings और content के हिस्से के रूप में API key शामिल करनी पड़ सकती है
      संदर्भ के लिए, मैं Apostrophe का design lead हूं और engineering role भी निभाता हूं
    • समझ नहीं आता कि secrets manage करने के लिए web-based content management system क्यों इस्तेमाल किया गया
    • सुधार: मेरा मतलब apostrophe cms को दोष देना नहीं है
      यह situation हमारी multi-tenant configuration और apostrophe की कम समझ के कारण बनी
    • आपने कहा “documentation में था, इसलिए दोष नहीं देता। हमने इसे सरसरी तौर पर लिया”, लेकिन फिर भी उन्हें दोष देना चाहिए
      किसी खतरनाक behavior को document कर देने से जिम्मेदारी खत्म नहीं हो जाती, और मुझे लगता है यह lesson अब तक व्यापक रूप से समझा जा चुका होना चाहिए
  • जब कोई नई service बनाकर ACME से server पर LetsEncrypt certificate लगाते हैं, तो logs तुरंत junk requests से भर जाते हैं
    ऐसे bots साफ दिखते हैं जो developers द्वारा खुले छोड़े गए कमजोर defaults ढूंढते हैं, और मैंने तो process environment file request होते हुए भी देखा है
    समझ नहीं आता कि ऐसी vulnerability कैसे discover या exploit नहीं हुई। a16z बहुत lucky रहा होगा, या शायद यह पहले ही exploit हो चुका हो लेकिन publicly सामने न आया हो
    कोई नेकनीयत researcher या whitehat mindset वाला कोई bored व्यक्ति पहले संपर्क कर गया। अफसोस है कि ऐसी लापरवाही के लिए कोई legal framework नहीं है, लेकिन मेरा मानना है कि a16z पर भारी fine लगना चाहिए

    • “ऐसी vulnerability कैसे discover या exploit नहीं हुई होगी?”
      शायद हो चुकी हो
      इसे तोड़ देने की बजाय open छोड़ देना ज्यादा valuable रहा होगा
    • निष्पक्ष रूप से देखें तो main site खुद इतनी interesting नहीं लगती
      लेकिन OKTA जैसी credentials में से कुछ काफी dangerous लगती हैं
  • “उन्होंने सार्वजनिक रूप से संपर्क किया, इसलिए हमने bug bounty नहीं दी। ऐसा इसलिए हुआ क्योंकि main site पर contact info नहीं था और मिला हुआ engineering@a16z.com bounce हो गया” वाला हिस्सा कंपनी के पैसे बचाने वाले clever life hack जैसा लगता है
    engineering team से privately contact करने का रास्ता ही न रखो, तो सारी bug bounty reports सार्वजनिक रूप से होंगी, और फिर कुछ भी देने की जरूरत नहीं

    • कई मायनों में clever है
      development में भी शायद fiverr जैसी जगहों से लोगों को बहुत कम पैसे देकर काफी बचत की होगी, और अगर कोई Russian ransomware group आसानी से सब उड़ा ले जाए तो accounting costs में भी indirectly खूब बचत हो जाएगी
    • लेकिन इससे अगली बार security researcher को वह जानकारी report करने के बजाय बेचने की सीख मिलेगी
    • कंपनी को पैसे न देने के लिए अलग से कोई “hack” करने की जरूरत नहीं है
      अगर public bug bounty program नहीं है, तो कोई बकाया भी नहीं है
      ऊपर से https://a16z.com/connect के bottom में contact email address है, जिसे researcher ने conveniently miss कर दिया
      यह responsible disclosure से ज्यादा visibility पाने की कोशिश लगता है
    • ऐसी बातें दोहराई गईं तो वे bounty न देने वाली जगह के तौर पर जाने जाएंगे, और लोग मिली हुई issues report करने की संभावना भी कम कर देंगे
    • अगर HN पर a16z engineering से contact करने का तरीका पूछते हुए पोस्ट डाली होती, तो शायद काफी result मिल जाता
  • जब companies कहती हैं कि उन्हें “hack” कर लिया गया, तो अब यह ऐसा corporate phrase लगता है: “हम important credentials ठीक से protect नहीं कर पाए, लेकिन कृपया जिम्मेदारी किसी unknown entity पर डाल दें जिसे हम ‘hacker’ कहते हैं”

    • अगर आपने गलती से front door पूरा खुला छोड़ दिया और कोई सारा सामान चुरा ले गया, तब भी आप कहेंगे कि “चोरी हो गई”
      “घर में घुसपैठ”, “theft”, “trespassing” जैसी legal categories होती हैं, और दरवाजा खुला था या नहीं इससे illegality या punishment पर असर पड़ सकता है, लेकिन रोजमर्रा की भाषा में यह फिर भी चोरी ही है
  • इतने बड़े खुले hole के लिए symbolic amount की bounty भी न देना काफी घटिया है

    • अगली बार अगर किसी को उनकी keys मिलें, तो वह यह पोस्ट देखकर report करने के बजाय उन्हें किसी public GitHub repository में डाल सकता है
  • वे विशाल generative AI architecture whitepapers लिखने में व्यस्त हैं
    उन्हें थोड़ा आराम करने दें, वे आधे-अधूरे chatbots से चलने वाली future agent world के सपने देख रहे हैं
    जबकि दुनिया broken software update से जल रही है

    • दुनिया तो पहले से ही climate change के असर से जल रही है
      शुक्रवार का broken software update बस उसके ऊपर icing on the cake है
    • “engineering@a16z.com bounce हो गया”
      बिल्कुल surprise नहीं हुआ
  • अगर सच में Salesforce instance तक access मिल सकता था, तो founders के लिए यह बहुत बेचैन करने वाली बात होती
    आम तौर पर Salesforce जैसी जगहों पर emails record होते हैं, और उनमें portfolio companies के founders की fundraising plans या M&A plans जैसी चीजें लगातार बची रह सकती हैं जिन्हें उन्होंने बाहर share नहीं किया होता

    • web page के public source code से keys collect करना legal है और safely report किया जा सकता है
      लेकिन उन keys से unauthorized systems में access करना crime है
      यह फर्क बहुत बड़ा है
    • अगर LP information शामिल है, तो वह भी काफी बड़ा नुकसान हो सकता है
  • यह बात भरोसा नहीं जगाती कि इस VC firm ने इतने बड़े security hole पर bug bounty नहीं दी

    • founders अब Trump supporters हैं, यह देखते हुए surprise नहीं है: https://siliconangle.com/2024/07/17/co-founders-andreessen-h...
    • अगर वे web development भी ठीक से नहीं कर सकते, तो यह capital allocation की उनकी ability के बारे में क्या बताता है?
  • HN admins ने title को कम शर्मनाक में बदल दिया
    surprise नहीं है

    • लगता है मेरी comment भी a16z के लिए बहुत critical थी
      score में कोई बदलाव नहीं है, लेकिन इसे top से bottom पर move कर दिया गया
      response देने के तरीके भी क्या-क्या हैं