# प्रति-User Authorisation और Audit Logging — LLM Application Security

Source: https://www.geekswithgeeks.com/hi/llm-security/a-audit

> Tools को user के रूप में चलाएँ, super-account के रूप में नहीं, और हर निर्णय दर्ज करें।

## Confused deputy और प्रमाण

यदि सहायक हर user के लिए एक शक्तिशाली service account उपयोग करता है, तो user A उससे user B का डेटा मँगवा सकता है, और सहायक, एक **confused deputy**, ख़ुशी से मान लेगा। **अंतिम user की पहचान और अनुमतियाँ** हर tool तक भेजें (उस user तक सीमित delegated tokens उपयोग करें, या डेटा परत में user की ID से जाँचें लागू करें) ताकि tool वही कर सके जो user सीधे कर सकता। साथ में **audit log** रखें: किसने माँगा, कौन-सा tool, कौन-से arguments (secrets और व्यक्तिगत डेटा redact करके), नीति निर्णय, अनुमोदक और परिणाम। Audit logs घटना-प्रतिक्रिया में मदद करते हैं, दिखाते हैं कि अनुमोदन काम करते हैं या नहीं, और दुरुपयोग की कोशिशें उजागर करते हैं। Logs को ख़ुद भी छेड़छाड़ और नए डेटा लीक बनने से बचाएँ।

## Redaction के साथ संरचित audit events, चलाकर

मैंने यह सादे Python 3 (सिर्फ़ standard library) से चलाया। यहाँ सारे हमले स्थानीय डेटा पर हानिरहित प्रदर्शन हैं, कोई असली system उपयोग नहीं हुआ। हर tool call user, tool, arguments और नीति निर्णय वाला JSON event बनती है। Argument में आया token logging से पहले `[REDACTED]` से बदल दिया जाता है।

```python
import json, re

KEY = re.compile(r"sk-[A-Za-z0-9_-]{8,}")
def audit_event(user, tool, args, decision):
    safe_args = {k: (KEY.sub("[REDACTED]", v) if isinstance(v, str) else v) for k, v in args.items()}
    return json.dumps({"user": user, "tool": tool, "args": safe_args, "decision": decision}, sort_keys=True)

print(audit_event("asha", "send_email", {"to": "ravi@example.com", "note": "token sk-live-abc12345 attached"}, "ASK"))
print(audit_event("asha", "refund", {"order": "481516", "amount": 300}, "ALLOW"))

```

Output:

```
{"args": {"note": "token [REDACTED] attached", "to": "ravi@example.com"}, "decision": "ASK", "tool": "send_email", "user": "asha"}
{"args": {"amount": 300, "order": "481516"}, "decision": "ALLOW", "tool": "refund", "user": "asha"}
```

## Logs की भी रक्षा करें

Audit logs में संवेदनशील ब्योरे होते हैं। पहुँच सीमित करें और retention सीमाएँ रखें।

**Quiz:** LLM app में "confused deputy" क्या है?

- [ ] ग़ायब comma
- [ ] धीमा मॉडल
- [x] विशेषाधिकार वाला सहायक जिसे वह करने के लिए फुसलाया गया जो माँगने वाले user को करने की अनुमति नहीं
- [ ] GPU का प्रकार

*Answer:* विशेषाधिकार वाला सहायक जिसे वह करने के लिए फुसलाया गया जो माँगने वाले user को करने की अनुमति नहीं. अंतिम user के रूप में authorise करें ताकि सहायक user के अधिकारों से आगे न जा सके।
