- एक सुरक्षा शोधकर्ता ने a16z से जुड़े सबडोमेन
portfolio.a16z.comपर पाया कि Heroku instance का पूराprocess.envJavaScript में 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 Peopletab का उपयोग करता है- इस बार रास्ता
cryptoसे जुड़ी कंपनी → crypto venture capital →a16z crypto→a16zतक पहुँचा
- इस बार रास्ता
- a16z की जांच के दौरान उसने सामान्य subdomain scan किया और lunchcat टूल से domain जांच व JS files में secret detection की
portfolio.a16z.coma16z से जुड़ी कंपनियों के लिए एक 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 टिप्पणियां
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 tests देखे हैं, वे checkbox भरने से ज्यादा कुछ नहीं रहे
जैसा आपने कहा, 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 भी निभाता हूं
यह situation हमारी multi-tenant configuration और apostrophe की कम समझ के कारण बनी
किसी खतरनाक 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 लगना चाहिए
शायद हो चुकी हो
इसे तोड़ देने की बजाय open छोड़ देना ज्यादा valuable रहा होगा
लेकिन OKTA जैसी credentials में से कुछ काफी dangerous लगती हैं
“उन्होंने सार्वजनिक रूप से संपर्क किया, इसलिए हमने bug bounty नहीं दी। ऐसा इसलिए हुआ क्योंकि main site पर contact info नहीं था और मिला हुआ engineering@a16z.com bounce हो गया” वाला हिस्सा कंपनी के पैसे बचाने वाले clever life hack जैसा लगता है
engineering team से privately contact करने का रास्ता ही न रखो, तो सारी bug bounty reports सार्वजनिक रूप से होंगी, और फिर कुछ भी देने की जरूरत नहीं
development में भी शायद fiverr जैसी जगहों से लोगों को बहुत कम पैसे देकर काफी बचत की होगी, और अगर कोई Russian ransomware group आसानी से सब उड़ा ले जाए तो accounting costs में भी indirectly खूब बचत हो जाएगी
अगर public bug bounty program नहीं है, तो कोई बकाया भी नहीं है
ऊपर से https://a16z.com/connect के bottom में contact email address है, जिसे researcher ने conveniently miss कर दिया
यह responsible disclosure से ज्यादा visibility पाने की कोशिश लगता है
जब companies कहती हैं कि उन्हें “hack” कर लिया गया, तो अब यह ऐसा corporate phrase लगता है: “हम important credentials ठीक से protect नहीं कर पाए, लेकिन कृपया जिम्मेदारी किसी unknown entity पर डाल दें जिसे हम ‘hacker’ कहते हैं”
“घर में घुसपैठ”, “theft”, “trespassing” जैसी legal categories होती हैं, और दरवाजा खुला था या नहीं इससे illegality या punishment पर असर पड़ सकता है, लेकिन रोजमर्रा की भाषा में यह फिर भी चोरी ही है
इतने बड़े खुले hole के लिए symbolic amount की bounty भी न देना काफी घटिया है
वे विशाल generative AI architecture whitepapers लिखने में व्यस्त हैं
उन्हें थोड़ा आराम करने दें, वे आधे-अधूरे chatbots से चलने वाली future agent world के सपने देख रहे हैं
जबकि दुनिया broken software update से जल रही है
शुक्रवार का broken software update बस उसके ऊपर icing on the cake है
बिल्कुल surprise नहीं हुआ
अगर सच में Salesforce instance तक access मिल सकता था, तो founders के लिए यह बहुत बेचैन करने वाली बात होती
आम तौर पर Salesforce जैसी जगहों पर emails record होते हैं, और उनमें portfolio companies के founders की fundraising plans या M&A plans जैसी चीजें लगातार बची रह सकती हैं जिन्हें उन्होंने बाहर share नहीं किया होता
लेकिन उन keys से unauthorized systems में access करना crime है
यह फर्क बहुत बड़ा है
यह बात भरोसा नहीं जगाती कि इस VC firm ने इतने बड़े security hole पर bug bounty नहीं दी
HN admins ने title को कम शर्मनाक में बदल दिया
surprise नहीं है
score में कोई बदलाव नहीं है, लेकिन इसे top से bottom पर move कर दिया गया
response देने के तरीके भी क्या-क्या हैं