वर्गीकरण प्रणाली
डेटा वर्गीकरण प्रणाली Triggerfish के सुरक्षा मॉडल की नींव है। सिस्टम में प्रवेश करने वाला, उसमें गुज़रने वाला, या बाहर जाने वाला प्रत्येक डेटा एक वर्गीकरण लेबल रखता है। ये लेबल निर्धारित करते हैं कि डेटा कहाँ प्रवाहित हो सकता है -- और इससे भी महत्वपूर्ण, कहाँ नहीं हो सकता।
वर्गीकरण स्तर
Triggerfish सभी deployments के लिए एकल चार-स्तरीय क्रमबद्ध पदानुक्रम का उपयोग करता है।
| स्तर | रैंक | विवरण | उदाहरण |
|---|---|---|---|
RESTRICTED | 4 (उच्चतम) | अधिकतम सुरक्षा की आवश्यकता वाला सबसे संवेदनशील डेटा | M&A दस्तावेज़, बोर्ड सामग्री, PII, बैंक खाते, चिकित्सा रिकॉर्ड |
CONFIDENTIAL | 3 | व्यापार-संवेदनशील या व्यक्ति-संवेदनशील जानकारी | CRM डेटा, वित्तीय, HR रिकॉर्ड, अनुबंध, कर रिकॉर्ड |
INTERNAL | 2 | बाहरी साझाकरण के लिए नहीं | आंतरिक विकी, टीम दस्तावेज़, व्यक्तिगत नोट्स, संपर्क |
PUBLIC | 1 (न्यूनतम) | किसी के लिए भी देखना सुरक्षित | मार्केटिंग सामग्री, सार्वजनिक प्रलेखन, सामान्य वेब सामग्री |
No Write-Down नियम
Triggerfish में सबसे महत्वपूर्ण सुरक्षा अपरिवर्तनीय:
डेटा केवल समान या उच्चतर वर्गीकरण वाले चैनलों या प्राप्तकर्ताओं
तक प्रवाहित हो सकता है। यह एक निश्चित नियम है -- इसे कॉन्फ़िगर, ओवरराइड, या अक्षम नहीं किया जा सकता। LLM इस निर्णय को प्रभावित नहीं कर सकता। :::
इसका अर्थ है:
CONFIDENTIALडेटा वाला उत्तरPUBLICचैनल पर नहीं भेजा जा सकताRESTRICTEDपर tainted sessionRESTRICTEDसे नीचे किसी भी चैनल पर आउटपुट नहीं कर सकता- कोई admin ओवरराइड नहीं, कोई एंटरप्राइज़ escape hatch नहीं, और कोई LLM workaround नहीं
प्रभावी वर्गीकरण
चैनल और प्राप्तकर्ता दोनों वर्गीकरण स्तर रखते हैं। जब डेटा सिस्टम से बाहर जाने वाला होता है, तो गंतव्य का प्रभावी वर्गीकरण निर्धारित करता है कि क्या भेजा जा सकता है:
EFFECTIVE_CLASSIFICATION = min(channel_classification, recipient_classification)प्रभावी वर्गीकरण दोनों में से निचला है। इसका अर्थ है कि उच्च-वर्गीकरण चैनल के साथ निम्न-वर्गीकरण प्राप्तकर्ता को अभी भी निम्न-वर्गीकरण माना जाता है।
| चैनल | प्राप्तकर्ता | प्रभावी | CONFIDENTIAL डेटा प्राप्त कर सकता है? |
|---|---|---|---|
INTERNAL | INTERNAL | INTERNAL | नहीं (CONFIDENTIAL > INTERNAL) |
INTERNAL | EXTERNAL | PUBLIC | नहीं |
CONFIDENTIAL | INTERNAL | INTERNAL | नहीं (CONFIDENTIAL > INTERNAL) |
CONFIDENTIAL | EXTERNAL | PUBLIC | नहीं |
RESTRICTED | INTERNAL | INTERNAL | नहीं (CONFIDENTIAL > INTERNAL) |
चैनल वर्गीकरण नियम
प्रत्येक चैनल प्रकार के लिए अपने वर्गीकरण स्तर को निर्धारित करने के विशिष्ट नियम हैं।
Email
- डोमेन मिलान:
@company.comसंदेशINTERNALके रूप में वर्गीकृत हैं - Admin कॉन्फ़िगर करता है कि कौन से डोमेन आंतरिक हैं
- अज्ञात या बाहरी डोमेन
EXTERNALपर डिफ़ॉल्ट होते हैं - बाहरी प्राप्तकर्ता प्रभावी वर्गीकरण को
PUBLICतक कम कर देते हैं
Slack / Teams
- कार्यक्षेत्र सदस्यता: समान कार्यक्षेत्र/tenant के सदस्य
INTERNALहैं - Slack Connect बाहरी उपयोगकर्ता
EXTERNALके रूप में वर्गीकृत हैं - अतिथि उपयोगकर्ता
EXTERNALके रूप में वर्गीकृत हैं - वर्गीकरण प्लेटफ़ॉर्म API से प्राप्त होता है, LLM व्याख्या से नहीं
WhatsApp / Telegram / iMessage
- एंटरप्राइज़: HR निर्देशिका सिंक के विरुद्ध मिलाए गए फ़ोन नंबर आंतरिक बनाम बाहरी निर्धारित करते हैं
- व्यक्तिगत: सभी प्राप्तकर्ता
EXTERNALपर डिफ़ॉल्ट होते हैं - उपयोगकर्ता विश्वसनीय संपर्कों को चिह्नित कर सकते हैं, लेकिन इससे वर्गीकरण गणित नहीं बदलता -- यह प्राप्तकर्ता वर्गीकरण बदलता है
WebChat
- WebChat आगंतुक हमेशा
PUBLICके रूप में वर्गीकृत होते हैं (आगंतुक कभी owner के रूप में सत्यापित नहीं होते) - WebChat सार्वजनिक-उन्मुख इंटरैक्शन के लिए है
CLI
- CLI चैनल स्थानीय रूप से चलता है और प्रमाणित उपयोगकर्ता के आधार पर वर्गीकृत होता है
- प्रत्यक्ष टर्मिनल एक्सेस आमतौर पर
INTERNALया उच्चतर होता है
प्राप्तकर्ता वर्गीकरण स्रोत
एंटरप्राइज़
- निर्देशिका सिंक (Okta, Azure AD, Google Workspace) स्वचालित रूप से प्राप्तकर्ता वर्गीकरण भरता है
- सभी निर्देशिका सदस्य
INTERNALके रूप में वर्गीकृत हैं - बाहरी अतिथि और विक्रेता
EXTERNALके रूप में वर्गीकृत हैं - Admin प्रति-संपर्क या प्रति-डोमेन ओवरराइड कर सकते हैं
व्यक्तिगत
- डिफ़ॉल्ट: सभी प्राप्तकर्ता
EXTERNALहैं - उपयोगकर्ता इन-फ्लो प्रॉम्प्ट या सहचर ऐप के माध्यम से विश्वसनीय संपर्कों को पुनर्वर्गीकृत करते हैं
- पुनर्वर्गीकरण स्पष्ट और लॉग किया गया है
चैनल स्थितियाँ
प्रत्येक चैनल डेटा ले जाने से पहले एक स्थिति मशीन से गुज़रता है:
| स्थिति | डेटा प्राप्त कर सकता है? | agent संदर्भ में डेटा भेज सकता है? | विवरण |
|---|---|---|---|
UNTRUSTED | नहीं | नहीं | नए/अज्ञात चैनलों के लिए डिफ़ॉल्ट। पूरी तरह से अलग। |
CLASSIFIED | हाँ (policy के अंतर्गत) | हाँ (वर्गीकरण के साथ) | समीक्षित और वर्गीकरण स्तर दिया गया। |
BLOCKED | नहीं | नहीं | admin या उपयोगकर्ता द्वारा स्पष्ट रूप से प्रतिबंधित। |
सुरक्षा नए चैनल हमेशा UNTRUSTED स्थिति में आते हैं। वे agent से कोई
डेटा प्राप्त नहीं कर सकते और agent संदर्भ में डेटा नहीं भेज सकते। चैनल पूरी तरह से अलग रहता है जब तक admin (एंटरप्राइज़) या उपयोगकर्ता (व्यक्तिगत) स्पष्ट रूप से इसे वर्गीकृत नहीं करता। :::
वर्गीकरण अन्य प्रणालियों के साथ कैसे इंटरैक्ट करता है
वर्गीकरण एक स्वतंत्र सुविधा नहीं है -- यह पूरे प्लेटफ़ॉर्म पर निर्णयों को संचालित करता है:
| प्रणाली | वर्गीकरण कैसे उपयोग किया जाता है |
|---|---|
| Session taint | वर्गीकृत डेटा तक पहुँचने से session उस स्तर तक बढ़ जाता है |
| Policy hooks | PRE_OUTPUT session taint की तुलना गंतव्य वर्गीकरण से करता है |
| MCP Gateway | MCP server उत्तर वर्गीकरण रखते हैं जो session को taint करता है |
| डेटा lineage | प्रत्येक lineage रिकॉर्ड में वर्गीकरण स्तर और कारण शामिल है |
| Notifications | Notification सामग्री समान वर्गीकरण नियमों के अधीन है |
| Agent delegation | Callee agent की वर्गीकरण सीमा caller की taint को पूरा करनी चाहिए |
| Plugin sandbox | Plugin SDK सभी उत्सर्जित डेटा को स्वचालित रूप से वर्गीकृत करता है |
