स्वायत्त एजेंट्स की मदद से हमारे कोडबेस को सुरक्षित करना
पिछले नौ महीनों में, हमारे PRs की गति 5 गुना बढ़ गई है। स्टैटिक एनालिसिस या सख्त कोड ओनरशिप पर आधारित सुरक्षा टूलिंग अब भी मददगार है, लेकिन इस स्केल पर वह काफ़ी नहीं है। हमने Cursor Automations का इस्तेमाल करके खुद को अनुकूलित किया है, जिससे हम तेज़ी से सुरक्षा एजेंट्स की एक फ़्लीट बना पाए हैं जो हमारे कोडबेस में लगातार कमजोरियों की पहचान करती है और उन्हें ठीक करती है।


आज, हम चार नए स्वचालन टेम्पलेट्स जारी कर रहे हैं, जिनमें उन सुरक्षा एजेंट्स के वही ब्लूप्रिंट शामिल हैं जिन्हें हमने सबसे उपयोगी पाया है। दूसरी सुरक्षा टीमें इन टेम्पलेट्स को अनुकूलित करके ऐसे एजेंट बना सकती हैं जो स्वचालित रूप से कई तरह की सुरक्षा समस्याओं को सुलझाएँ।
स्वचालन आर्किटेक्चर
सुरक्षा के लिए उपयोगी होने के लिए एजेंट्स को दो सुविधाओं की आवश्यकता होती है, और ये दोनों Cursor Automations प्रदान करता है।
पहली है वेबहुक्स प्राप्त करने, GitHub पुल रिक्वेस्ट्स का जवाब देने, और कोडबेस में होने वाले परिवर्तनों की निगरानी के लिए आउट-ऑफ़-द-बॉक्स इंटीग्रेशन। इससे पृष्ठभूमि में काम करने वाले एजेंट्स को यह समझ में आता है कि उन्हें कब आगे आकर कार्रवाई करनी है।
दूसरी है एक समृद्ध एजेंट हार्नेस और परिवेश। स्वचालन क्लाउड एजेंट्स द्वारा संचालित होते हैं, जिससे उन्हें वे सभी टूल, कौशल और ऑब्ज़र्वेबिलिटी मिलते हैं, जिन तक क्लाउड एजेंट्स की पहुँच होती है।
सुरक्षा-विशिष्ट उपयोग के मामलों के लिए स्वचालन को और अधिक शक्तिशाली बनाने हेतु, हमने एक सुरक्षा MCP टूल बनाया और उसे सर्वरलेस Lambda function के रूप में परिनियोजित किया, जो ज़रूरत पड़ने पर ठीक उसी समय उपलब्ध होता है और बाकी समय नहीं चलता।
MCP, जिसका संदर्भ कोड यहाँ उपलब्ध है, तीन उद्देश्यों की पूर्ति करता है:
-
स्थायी डेटा। एजेंट डेटा संग्रहीत करने के लिए MCP का उपयोग करता है, ताकि हम समय के साथ सुरक्षा प्रभाव को ट्रैक और माप सकें। हम इसी डेटा का उपयोग यह लगातार बेहतर करने के लिए करते हैं कि स्वचालन को कब और कैसे ट्रिगर किया जाए।
-
डुप्लिकेशन हटाना। हम हर परिवर्तन पर कई समीक्षा एजेंट्स चलाते हैं, और क्योंकि उनके निष्कर्ष LLM द्वारा जनरेट किए जाते हैं, अलग-अलग एजेंट्स एक ही मूल समस्या का वर्णन करने के लिए अलग-अलग शब्दों का उपयोग कर सकते हैं। दोहराए गए काम से बचने के लिए, MCP एजेंट को Gemini Flash 2.5 द्वारा संचालित एक classifier डिप्लॉय करने की अनुमति देता है, जो यह तय करता है कि अर्थगत रूप से अलग दिखने वाले दो निष्कर्ष वास्तव में उसी समस्या का वर्णन करते हैं या नहीं।
-
सुसंगत आउटपुट। एजेंट्स MCP के माध्यम से अपनी खोजी गई हर vulnerability की रिपोर्ट करते हैं, जो एकसमान फ़ॉर्मैट में Slack संदेश भेजता है और किसी निष्कर्ष को dismiss या snooze करने जैसी आगे की कार्रवाइयों को संभालता है।
इस आधार के तैयार होने पर, नीचे विस्तार से बताए गए चार सुरक्षा स्वचालन अपने-अपने वर्कफ़्लो और ट्रिगर लॉजिक की परतें जोड़ते हैं। हम यह सुनिश्चित करने के लिए Terraform का उपयोग करते हैं कि सुरक्षा टूलिंग में होने वाले सभी परिवर्तन एक Standard समीक्षा और परिनियोजन प्रक्रिया से होकर गुजरें।
एजेंटिक सुरक्षा समीक्षा
अंदरूनी तौर पर, हम पहले से ही Bugbot का उपयोग PRs की कोड गुणवत्ता और सामान्य समस्याओं की समीक्षा के लिए कर रहे थे, जिसमें कुछ सुरक्षा निष्कर्ष भी शामिल थे। लेकिन सामान्य उद्देश्य वाला समीक्षा टूल सुरक्षा के लिए आदर्श नहीं होता, क्योंकि उसे हमारे विशिष्ट थ्रेट मॉडल के हिसाब से प्रॉम्प्ट-ट्यून नहीं किया जा सकता। साथ ही, हमें खास तौर पर सुरक्षा निष्कर्षों पर CI को ब्लॉक करने की क्षमता चाहिए थी, बिना हर सामान्य कोड गुणवत्ता समस्या पर उसे ब्लॉक किए।
इसीलिए, हमने एक समर्पित स्वचालन बनाया, जिसे हम एजेंटिक सुरक्षा समीक्षा कहते हैं। शुरुआत में, हमने इसके निष्कर्ष हमारी सुरक्षा टीम द्वारा मॉनिटर किए जाने वाले एक निजी Slack चैनल में फ़ॉरवर्ड किए।

जब हमें भरोसा हो गया कि यह वास्तविक समस्याओं की पहचान कर रहा है, तो हमने PR टिप्पणियाँ चालू कीं और फिर एक ब्लॉकिंग गेट जाँच लागू की। पिछले दो महीनों में, एजेंटिक सुरक्षा समीक्षा हज़ारों PRs पर चला है और सैकड़ों समस्याओं को उत्पादन तक पहुँचने से रोका है।
Vuln Hunter
नए कोड पर एजेंटिक सुरक्षा समीक्षा की सफलता के बाद, हमने एजेंट्स को मौजूदा कोडबेस पर लगाया। Vuln Hunter एक स्वचालन है, जो कोड को तार्किक खंडों में विभाजित करता है और हर खंड में कमजोरियों की खोज करता है। हमारी टीम निष्कर्षों की जांच करती है और आमतौर पर उन्हें ठीक भी करती है, अक्सर PRs जनरेट करने के लिए Slack में @Cursor का इस्तेमाल करके।
Anybump
निर्भरताओं पर पैच लागू करना इतना समय लेने वाला काम है कि ज़्यादातर सुरक्षा टीमें आखिरकार हार मानकर इसे इंजीनियरिंग के हवाले कर देती हैं, जहाँ यह बैकलॉग में पड़ा रह जाता है। हमने Anybump नाम का एक स्वचालन बनाया, जिसने इस काम के लगभग पूरे हिस्से को पूरी तरह स्वचालित कर दिया है।
Anybump रीचेबिलिटी विश्लेषण चलाकर कमज़ोरियों को केवल उन मामलों तक सीमित करता है जिनका वास्तव में प्रभाव पड़ता है, फिर प्रासंगिक कोड पाथ को ट्रेस करता है, परीक्षण चलाता है, टूट-फूट की जाँच करता है, और परीक्षण सफल होने पर एक PR खोलता है। PR के मर्ज होने के बाद, Cursor का कैनरी परिनियोजन पाइपलाइन किसी भी चीज़ के उत्पादन में पहुँचने से पहले एक अंतिम सुरक्षा जाँच प्रदान करता है।

Invariant Sentinel
Invariant Sentinel सुरक्षा और अनुपालन गुणों के एक सेट के मुकाबले विचलन की निगरानी के लिए प्रतिदिन चलता है। यह रेपो को तार्किक खंडों में विभाजित करता है और इनवेरिएंट्स की सूची के आधार पर कोड को सत्यापित करने के लिए उप-एजेंट तैनात करता है।
विश्लेषण के बाद, एजेंट स्वचालन की मेमरी सुविधा का उपयोग करके मौजूदा स्थिति की तुलना पिछले रनों से करता है। अगर इसे कोई विचलन मिलता है, तो यह शुद्धता सुनिश्चित करने के लिए दोबारा सत्यापित करता है, फिर अपनी मेमरी अपडेट करता है और परिवर्तन के विवरण तथा प्रमाण के रूप में विशिष्ट कोड स्थानों के साथ सुरक्षा टीम को Slack पर एक रिपोर्ट भेजता है।
क्योंकि यह स्वचालन एक पूर्ण विकास परिवेश में चलता है, एजेंट अपनी धारणाओं को सत्यापित करने के लिए कोड लिख और चला सकता है, जो पारंपरिक फ़ंक्शनल, यूनिट और इंटीग्रेशन परीक्षणों का पूरक बनता है।
आगे और भी स्वचालन आने वाले हैं
सुरक्षा में स्वचालन लागू करने के कई अवसर हैं, और ये चार तो बस उस काम की शुरुआत हैं जो हम करने की योजना बना रहे हैं। हम पहले से ही इनका विस्तार भेद्यता रिपोर्ट प्राप्ति, गोपनीयता अनुपालन की निगरानी, ऑन-कॉल अलर्ट ट्रायेज, और पहुँच प्रोविजनिंग तक कर रहे हैं।
हर मामले में, एजेंट हमें उस स्केल पर कवरेज और एकरूपता देते हैं, जिसे हम मैन्युअल रूप से हासिल नहीं कर सकते थे।