थ्रेट मॉडल
क्रेडेंशियल के मान एजेंट की पहुँच से बाहर रखें
डेवलपर टूल तीसरे पक्ष के कोड को उच्च-भरोसे वाले संदर्भ में चलाते हैं। बिल्ट-इन HTTP और SSH के लिए, Sallyport संग्रहीत पुन:प्रयोज्य क्रेडेंशियल को उस परिवेशी संदर्भ से बाहर रखता है और हर इनवोकेशन को लोकल स्तर पर नियंत्रित करता है।
क्रेडेंशियल का मान
Sallyport जानबूझकर रिज़ॉल्व किए गए क्रेडेंशियल को एजेंट के परिणामों, अनुमोदनों, ऑडिट इवेंट, लॉग या त्रुटियों में नहीं जोड़ता। यह एक्ज़ीक्यूटर की प्रतिक्रियाओं का निरीक्षण या पुनर्लेखन नहीं करता, जिनमें टारगेट से आया संवेदनशील डेटा हो सकता है।
प्राधिकरण
वॉल्ट की स्थिति, प्रति-कॉल नियंत्रण और चालू प्रोसेस की पहचान तय करते हैं कि कोई टूल इनवोकेशन शुरू हो सकता है या नहीं।
साक्ष्य
हर स्वीकृत टूल इनवोकेशन के लिए पहले एक स्थायी एन्क्रिप्टेड इंटेंट पंक्ति ज़रूरी है। कैटलॉग डिस्कवरी के लिए नहीं।
एक कॉम्प्रोमाइज़्ड डिपेंडेंसी क्रेडेंशियल तक कैसे पहुँचती है
एक भरोसेमंद पैकेज या वर्कफ़्लो पहले से ही वहाँ चलता है जहाँ डेवलपर और CI पुन:प्रयोज्य क्रेडेंशियल रखते हैं। जैसे ही वह कोड दुर्भावनापूर्ण बनता है, उन क्रेडेंशियल को पढ़ना और बाहर भेजना एक ही एक्ज़ीक्यूशन पथ हो सकता है।
हाल की घटनाओं ने यही पथ अपनाया
विवरण हर अभियान में अलग होते हैं। हर मामले में, दुर्भावनापूर्ण कोड ऐसे क्रेडेंशियल के पास चला जिन्हें अन्य सिस्टम बाद में स्वीकार कर लेते।
मई 2026
दुर्भावनापूर्ण TanStack पैकेज
42 @tanstack पैकेजों में फैले 84 दुर्भावनापूर्ण वर्शन ने इंस्टॉल के समय एक पेलोड चलाया जिसने क्लाउड क्रेडेंशियल, GitHub टोकन और SSH कीज़ जुटाईं, फिर हर पीड़ित द्वारा मेंटेन किए गए पैकेजों के ज़रिए फैलने की कोशिश की।
TanStack सुरक्षा एडवाइज़री2025 के अंत में
Shai-Hulud npm अभियान
कॉम्प्रोमाइज़्ड पैकेजों ने सीक्रेट चुराने और चुराए गए क्रेडेंशियल के साथ फैलने के लिए इंस्टॉल-समय एक्ज़ीक्यूशन का इस्तेमाल किया। बाद के वेरिएंट ने CI-विशिष्ट व्यवहार और सेल्फ़-होस्टेड रनर के दुरुपयोग को जोड़ा।
GitHub सप्लाई चेन समीक्षाअगस्त 2025
Nx S1ngularity
दुर्भावनापूर्ण Nx पैकेज वर्शन ने एक post-install स्क्रिप्ट चलाई जिसने डेवलपर सिस्टम में संवेदनशील डेटा की तलाश की, लोकल AI टूल का इस्तेमाल करने की कोशिश की और GitHub CLI के ज़रिए परिणाम अपलोड किए।
Nx घटना पोस्टमॉर्टम
पुन:प्रयोज्य क्रेडेंशियल को प्रोसेस से हटाएँ
एनवायरनमेंट वेरिएबल या फ़ाइल में मौजूद कोई सीक्रेट ऐसा डेटा है जिसे प्रोसेस कॉपी कर सकती है। इसके बजाय Sallyport द्वारा प्रबंधित क्रेडेंशियल एक लोकल ऑपरेशन का इनपुट होता है, जो वॉल्ट की स्थिति, अनुमोदन, टारगेट बाइंडिंग और ऑडिट के अधीन है।
परिवेशी क्रेडेंशियल
बिल्ट-इन HTTP / SSH
बिल्ट-इन HTTP और SSH के लिए, कोई पैकेज एजेंट के एनवायरनमेंट से संग्रहीत क्रेडेंशियल नहीं पढ़ सकता। उसे एक ऐसे ऑपरेशन का अनुरोध करना पड़ता है जिसे अस्वीकार किया जा सके, प्रति कॉल नियंत्रित किया जा सके, अनुरोधित या कॉन्फ़िगर किए गए टारगेट तक सीमित रखा जा सके और जर्नल में दर्ज किया जा सके। टारगेट की प्रतिक्रिया बिना सामग्री निरीक्षण या पुनर्लेखन के लौटाई जाती है।
यह न तो दुर्भावनापूर्ण कोड को चलने से रोकता है और न ही यह साबित करता है कि कोई अनुमोदित अनुरोध हानिरहित है। HTTP और SSH टारगेट संवेदनशील डेटा लौटा सकते हैं। रिमोट MCP सर्वर को कॉन्फ़िगर किया गया प्रमाणीकरण मिलता है; लोकल stdio सर्वर को उनके एनवायरनमेंट में बाउंड क्रेडेंशियल मिलते हैं। हर टारगेट और अपस्ट्रीम को एक भरोसेमंद क्रेडेंशियल प्राप्तकर्ता मानें।
हर स्वीकृत इनवोकेशन पर वही जाँचें चलती हैं
संकलित सीढ़ी टूल इनवोकेशन पर लागू होती है। अपस्ट्रीम initialize और tools/list ट्रैफ़िक इस पथ के बाहर कैटलॉग को प्रबंधित करता है और इसे कोई इनवोकेशन इंटेंट पंक्ति नहीं मिलती।
- 01
वॉल्ट तैयार
किसी भी अन्य स्थिति में एजेंट की कार्रवाइयाँ अस्वीकृत हो जाती हैं।
इनकार | अगला
- 02
टारगेट रिज़ॉल्व होता है
आवश्यक टारगेट और क्रेडेंशियल मेटाडेटा मौजूद होना चाहिए।
इनकार | अगला
- 03
प्रति-कॉल जाँच
फ़्लैग किए गए कीज़ या अपस्ट्रीम हर बार पूछते हैं।
पूछें | अगला
- 04
प्रोसेस स्वीकृति
चालू प्रोसेस को सेशन, allowlist, सेशन कार्ड या ऑब्ज़र्व मोड के आधार पर स्वीकृत करें। यह यह पहचान नहीं करता कि किस लोड किए गए पैकेज या विरासत में मिले बाइट स्रोत ने अनुरोध किया।
पूछें | अगला
- 05
ऑडिट इंटेंट
एक्ज़ीक्यूशन से पहले एन्क्रिप्टेड इंटेंट स्थायी होना चाहिए।
इनकार | चलाएँ
- 06
एक्ज़ीक्यूट करें और परिणाम लौटाएँ
चैनल चलाएँ, परिणाम जोड़ें, और सीमित एक्ज़ीक्यूटर परिणाम को बिना सामग्री निरीक्षण या पुनर्लेखन के लौटाएँ। परिणामों में संवेदनशील डेटा हो सकता है।
परिणाम
एक exact-cdhash allowlist किसी बाइनरी अपडेट के बाद मिलान करना बंद कर देती है। एक पब्लिशर एंट्री समान-पहचान वाले अपडेट का मिलान करती रह सकती है, इसलिए एक कॉम्प्रोमाइज़्ड पब्लिशर या साइनिंग पथ भरोसेमंद बना रहता है। दोनों में से कोई भी एंट्री केवल सेशन कार्ड को छोड़ती है।
नियंत्रण और अवशिष्ट जोखिम
मॉडल की एक स्पष्ट सीमा है। अवशिष्ट जोखिम उसका हिस्सा है।
| खतरा | Sallyport क्या बदलता है | क्या बना रहता है |
|---|---|---|
| दुर्भावनापूर्ण डिपेंडेंसी फ़ाइलों या एनवायरनमेंट को पढ़ती है | बिल्ट-इन HTTP और SSH के लिए, Sallyport संग्रहीत क्रेडेंशियल को एजेंट के एनवायरनमेंट में नहीं रखता और न ही जानबूझकर उसे परिणामों, लॉग, अनुमोदनों या ऑडिट इवेंट में जोड़ता है। एक्ज़ीक्यूटर परिणाम बिना सामग्री निरीक्षण या पुनर्लेखन के लौटाए जाते हैं। | Sallyport के बाहर के क्रेडेंशियल जोखिम में बने रहते हैं। लोकल stdio MCP सर्वर बाउंड क्रेडेंशियल पाते हैं और Sallyport का एनवायरनमेंट विरासत में लेते हैं। |
| प्रॉम्प्ट-इंजेक्टेड या कॉम्प्रोमाइज़्ड अनुमोदित एजेंट | प्रति-कॉल कीज़ के लिए फिर भी एक क्लिक या Touch ID ज़रूरी है। बाद के इनवोकेशन पर Sallyport चालू प्रोसेस की पहचान दोबारा जाँचता है। | स्वीकृति प्रोसेस को कवर करती है, हर पैकेज या बाइट को नहीं। लोड किया गया कोड और विरासत में मिले सॉकेट या पाइप में लिखने वाले वही स्वीकृति विरासत में पाते हैं। |
| क्रेडेंशियल किसी दूसरे होस्ट पर रीडायरेक्ट हुआ | HTTP क्रेडेंशियल केवल मिलान करने वाले होस्ट और पथ के लिए जुड़ते हैं। क्रेडेंशियल वाले अनुरोध रीडायरेक्ट का पालन नहीं करते; बिना क्रेडेंशियल वाले रीडायरेक्ट उसी होस्ट और पोर्ट पर रहते हैं और HTTPS को डाउनग्रेड नहीं कर सकते। | मौजूदा DNS सत्यापन जाँचे गए पते को कनेक्शन तक पिन नहीं करता, इसलिए एक रीबाइंडिंग गैप बना रहता है। |
| लोकल ऑडिट इतिहास में बदलाव किया गया | एन्क्रिप्टेड पंक्तियाँ और हस्ताक्षरित सायफरटेक्स्ट चेन बदलाव, पुनर्क्रमण, आंतरिक अंतराल और हस्ताक्षरकर्ता के प्रतिस्थापन का पता लगाती हैं। एक अलग हस्ताक्षरित लोकल चेकपॉइंट उसके पीछे के रोलबैक का पता लगाता है। | अनुचित शटडाउन के बाद चेकपॉइंट के बाद वाला हिस्सा खो सकता है। पूर्ण, सुसंगत लोकल रोलबैक को पुनर्स्थापना से अलग करने के लिए एक ऑफ़-डिवाइस साक्षी की ज़रूरत होती है। |
| कोई अपस्ट्रीम MCP कैटलॉग मेटाडेटा में सीक्रेट डालता है | अपस्ट्रीम सर्वर के कोड को भरोसे की सीमा के हिस्से के रूप में चुनें और उसकी समीक्षा करें। Sallyport टूल परिणाम, त्रुटियाँ और प्रमाणित कैटलॉग मेटाडेटा को क्रेडेंशियल-सामग्री फ़िल्टरिंग के बिना लौटाता है, जो प्रलेखित आकार और विवरण सीमाओं के अधीन है। | Initialize और tools/list इनवोकेशन ऑडिट के बाहर हैं। उनके नाम, विवरण और स्कीमा अपस्ट्रीम-नियंत्रित मनमानी सामग्री हैं और इनमें क्रेडेंशियल या अन्य संवेदनशील डेटा हो सकता है। |
| Sallyport के अंदर root या कोड एक्ज़ीक्यूशन | Secure Enclave प्राइवेट की के उपयोग को नियंत्रित करता है और वॉल्ट डिस्क पर एन्क्रिप्टेड बना रहता है। | root, अक्षम SIP, या इन-प्रोसेस कोड एक्ज़ीक्यूशन एक अनलॉक किए गए वॉल्ट को नियंत्रित कर सकते हैं। Sallyport कोई होस्ट सैंडबॉक्स या एंटीवायरस नहीं है। |
यह मॉडल क्या दावा नहीं करता
Sallyport क्रेडेंशियल के जोखिम को कम करता है और उनके उपयोग पर नियंत्रण जोड़ता है। यह शत्रुतापूर्ण लोकल कोड को भरोसेमंद कोड में नहीं बदलता।
अनुमोदन इंटेंट का विश्लेषण नहीं है
एक सेशन कार्ड प्रोसेस और उसकी उत्पत्ति की पहचान करता है। यह तय नहीं करता कि उस सेशन के भीतर हर अनुरोध सुरक्षित है या नहीं।
प्रोसेस स्वीकृति कंपोनेंट आइसोलेशन नहीं है
एक सेशन चालू प्रोसेस की पहचान करता है। उसमें लोड किया गया कोड, या विरासत में मिले सॉकेट या पाइप के ज़रिए लिखने वाला कंपोनेंट, वही स्वीकृति पाता है।
ऑपरेटर नुकसान को अनुमोदित कर सकता है
एक क्लिक या Touch ID यह साबित करता है कि प्रक्रिया पूरी हुई। यह किसी लापरवाही से समीक्षा किए गए ऑपरेशन को हानिरहित नहीं बना सकता।
MCP अपस्ट्रीम भरोसेमंद प्राप्तकर्ता हैं
एक रिमोट सर्वर को उसकी कॉन्फ़िगर की गई API की या OAuth टोकन मिलता है। एक लोकल stdio चाइल्ड को बाउंड क्रेडेंशियल और ऐप का एनवायरनमेंट मिलता है। Sallyport इनमें से किसी भी सर्वर को सैंडबॉक्स नहीं करता।
कैटलॉग मेटाडेटा अविश्वसनीय सामग्री है
इनिशियलाइज़ेशन और tools/list इनवोकेशन सीढ़ी और इंटेंट ऑडिट को बायपास करते हैं। टूल के नाम, विवरण और स्कीमा क्रेडेंशियल-सामग्री फ़िल्टरिंग के बिना अपस्ट्रीम-नियंत्रित मनमानी सामग्री बने रहते हैं; प्रलेखित आकार और विवरण सीमाएँ लागू होती हैं।
Sallyport के बाहर का ट्रैफ़िक दायरे से बाहर है
ऐप सीधे नेटवर्क कॉल, shell कमांड, अन्य क्रेडेंशियल स्टोर, या ऐसे टूल को नियंत्रित नहीं कर सकता जो इसकी MCP सतह को बायपास करते हैं।
एक्ज़ीक्यूटर परिणामों में संवेदनशील डेटा हो सकता है
HTTP, MCP और SSH के परिणामों और त्रुटियों का निरीक्षण या पुनर्लेखन नहीं किया जाता। एक टारगेट क्रेडेंशियल या अन्य संवेदनशील डेटा लौटा सकता है, और SSH रिकॉर्डिंग टारगेट के आउटपुट को संरक्षित रखती हैं।
ऑडिट प्रीव्यू में कॉलर का डेटा हो सकता है
Sallyport रिज़ॉल्व किए गए क्रेडेंशियल को अनुमोदनों या ऑडिट पंक्तियों में नहीं जोड़ता, लेकिन कॉलर द्वारा दिए गए कमांड और आर्ग्युमेंट सारांशों और सीमित प्रीव्यू में दिखाई देते हैं। डिक्रिप्ट किए गए ऑडिट डेटा को संवेदनशील मानें।
यह एक इंटरैक्टिव Mac उत्पाद है
समर्थित परिनियोजन Apple Silicon macOS पर एक हस्ताक्षरित ऐप है, जिसमें लोकल UI और Touch ID होता है। कोई Linux, कंटेनर, सर्वर, क्लाउड-रनर या हेडलेस CI मोड नहीं है।
कार्यान्वयन का निरीक्षण करें
कोर Apache-2.0 के तहत ओपन सोर्स है। कार्यान्वयन और ट्रस्ट मॉडल को पढ़ें, या इसे लोकल स्तर पर बिल्ड करें।
GitHub पर सोर्स देखें