कंटेंट पर जाएँ
फ़ाउंडर प्राइसिंग — शुरुआती ग्राहकों के लिए लॉकशुरू करें →

AI एजेंट ऑडिट लॉग: अपरिवर्तनीय ट्रेल, अनुपालन और फोरेंसिक जांच

AI एजेंट ऑडिट लॉग एजेंट द्वारा किए गए प्रत्येक कार्य का एक अपरिवर्तनीय और केवल-जोड़ने वाला रिकॉर्ड है, जो निष्पादन पूरा होने से पहले लिखा जाता है, क्रिप्टोग्राफिक रूप से एक विशिष्ट एजेंट और टाइमस्टैम्प को जिम्मेदार ठहराया जाता है, और ऑब्जर्वेबिलिटी डेटा से इस मायने में अलग है कि यह ऑडिटर या नियामक को यह साबित करता है कि क्या हुआ बजाय वर्तमान सिस्टम स्वास्थ्य दिखाने के। तीन अनुपालन मानक इसकी आवश्यकता करते हैं: SOC 2 टाइप II CC7.2 (न्यूनतम 1 वर्ष प्रतिधारण), GDPR अनुच्छेद 30 (प्रसंस्करण गतिविधियों के रिकॉर्ड), और OWASP LLM06:2025 (चार आवश्यक शमनों में से एक के रूप में अपरिवर्तनीय ऑडिट ट्रेल)।

AI एजेंट ऑडिट लॉग एजेंट द्वारा किए गए प्रत्येक कार्य का एक अपरिवर्तनीय और केवल-जोड़ने वाला रिकॉर्ड है: प्रत्येक टूल कॉल, प्रत्येक स्थिति परिवर्तन, प्रत्येक क्रेडेंशियल एक्सेस, जो निष्पादन पूरा होने से पहले लिखा जाता है, एक विशिष्ट agent_id और टाइमस्टैम्प को जिम्मेदार ठहराया जाता है, और एजेंट या किसी भी डाउनस्ट्रीम प्रक्रिया द्वारा संशोधन से सुरक्षित होता है, ताकि अनुपालन ऑडिटर, सुरक्षा जांचकर्ता और नियामक एजेंट की अपनी रिपोर्ट पर निर्भर हुए बिना स्वतंत्र रूप से सत्यापित कर सकें कि एजेंट ने क्या किया, कब किया और किन मापदंडों के साथ किया।

ऑडिट लॉग बनाम ऑब्जर्वेबिलिटी: दो अलग साक्ष्य मानक

ऑब्जर्वेबिलिटी डेटा क्या साबित नहीं कर सकता

ऑब्जर्वेबिलिटी "क्या सिस्टम अभी स्वस्थ है?" सवाल का जवाब देती है। ऑडिट लॉग "एजेंट X ने 15 मार्च को 14:32 बजे क्या किया, किन मापदंडों के साथ, और क्या परिणाम था?" सवाल का जवाब देते हैं। ये अलग-अलग साक्ष्य मानक हैं जिनमें अलग-अलग स्टोरेज आवश्यकताएं, प्रतिधारण अवधि और कानूनी स्थिति होती है।

ऑब्जर्वेबिलिटी डेटा आमतौर पर सैंपल किया जाता है (हर इवेंट नहीं), एकत्रित किया जाता है (व्यक्तिगत इवेंट मेट्रिक्स में समूहीकृत होते हैं), और अल्पकालिक रूप से रखा जाता है (मेट्रिक्स और ट्रेस के लिए 30 से 90 दिन मानक है)। यह बता सकता है कि पिछले मंगलवार p99 लेटेंसी 2.3 सेकंड था, लेकिन यह नहीं बता सकता कि एजेंट researcher-01 ने 14:32:07 UTC पर url=https://api.external.com/export?user_id=4821 के साथ http_request कॉल किया।

ऑडिट लॉग व्यक्तिगत इवेंट (एकत्रित नहीं), संपूर्ण (विफल और अस्वीकृत सहित प्रत्येक कॉल), और दीर्घकालिक रूप से संग्रहीत होने चाहिए (SOC 2 न्यूनतम 1 वर्ष की मांग करता है; GDPR रिकॉर्ड आमतौर पर अनुबंध अवधि के साथ-साथ लागू सीमा अवधि के लिए रखे जाते हैं)।

प्रोडक्शन एजेंट तैनाती में सबसे सामान्य ऑडिट विफलता: टीमें SOC 2 ऑडिटर को CC7.2 अनुपालन साक्ष्य के रूप में ऑब्जर्वेबिलिटी डैशबोर्ड (Datadog, Grafana) प्रस्तुत करती हैं। ऑडिटर इन्हें अस्वीकार करते हैं क्योंकि ऑब्जर्वेबिलिटी डैशबोर्ड व्यक्तिगत इवेंट रिकॉर्ड नहीं दिखा सकते, अखंडता साबित नहीं कर सकते, और अपरिवर्तनीयता साबित नहीं कर सकते। SOC 2 CC7.2 व्यक्तिगत इवेंट रिकॉर्ड की मांग करता है जिन्हें एजेंट संशोधित नहीं कर सकता।

ऑडिट-गुणवत्ता लॉग रिकॉर्ड के चार गुण

पूर्व-निष्पादन: लॉग एंट्री कार्य पूरा होने से पहले लिखी जाती है। टाइमस्टैम्प परिणाम से पहले होता है। यह फोरेंसिक रूप से महत्वपूर्ण है: एजेंट जो घटना के बाद लॉग एंट्री लिख सकता है, वह झूठी एंट्री भी लिख सकता है या उन कार्यों की एंट्री छोड़ सकता है जिन्हें वह छुपाना चाहता है। पूर्व-निष्पादन लॉगिंग का मतलब है कि एंट्री मौजूद है चाहे कार्य सफल हो, विफल हो, या बाधित हो।

अपरिवर्तनीयता: रिकॉर्ड को एजेंट, ऑपरेटर, या किसी स्वचालित प्रक्रिया द्वारा संशोधित या हटाया नहीं जा सकता। WORM स्टोरेज (एक बार लिखें, कई बार पढ़ें) या क्रिप्टोग्राफिक हैश चेन इंफ्रास्ट्रक्चर लेयर पर अपरिवर्तनीयता प्रदान करते हैं। एप्लिकेशन लेयर पर अपरिवर्तनीयता ("एजेंट को लॉग न हटाने के लिए निर्देश दिया गया है") अनुपालन उद्देश्यों के लिए अपर्याप्त है; ऑडिटर इंफ्रास्ट्रक्चर लेयर पर अपरिवर्तनीयता की मांग करते हैं।

संपूर्णता: विफल, अस्वीकृत, दर-सीमित और त्रुटियां लौटाने वाले सहित सभी कॉल रिकॉर्ड होने चाहिए। केवल सफल कार्यों को रिकॉर्ड करने वाला लॉग फोरेंसिक उद्देश्यों के लिए अधूरा है; घटना के बाद फोरेंसिक प्रश्न अक्सर यह होता है कि "एजेंट ने क्या करने की कोशिश की और विफल हुआ?" अस्वीकृत कॉल का लॉग प्रॉम्प्ट इंजेक्शन प्रयासों का प्राथमिक साक्ष्य है।

एट्रिब्यूशन: agent_id, session_id, tool_call_id, और अनुरोध टाइमस्टैम्प लेखन के समय क्रिप्टोग्राफिक रूप से बाध्य होने चाहिए, न कि परिवर्तनीय मेटाडेटा जिसे बाद में बदला जा सकता है। बाद में एट्रिब्यूशन GDPR अनुच्छेद 30 की आवश्यकता को पूरा नहीं करता कि प्रत्येक प्रसंस्करण गतिविधि के लिए जिम्मेदार नियंत्रक और प्रोसेसर की पहचान की जाए।

अनुपालन आवश्यकताएं: SOC 2, GDPR, और OWASP LLM06

SOC 2 टाइप II CC7.2: न्यूनतम 1 वर्ष प्रतिधारण

SOC 2 टाइप II सामान्य मानदंड 7.2 (सिस्टम निगरानी) यह मांग करता है कि सिस्टम गतिविधि लॉग की जाए और ऑडिट अवधि के दौरान लॉग समीक्षा के लिए उपलब्ध हों। AI एजेंट सिस्टम के लिए:

व्यक्तिगत इवेंट रिकॉर्ड आवश्यक: प्रत्येक टूल कॉल agent_id, टाइमस्टैम्प, टूल नाम, पूर्ण मापदंड, और परिणाम के साथ एक अलग लॉग एंट्री होनी चाहिए। एकत्रित मेट्रिक्स (पिछले घंटे में 100 टूल कॉल) CC7.2 को संतुष्ट नहीं करते; ऑडिटर को विशिष्ट इवेंट की जांच करने में सक्षम बनाने के लिए व्यक्तिगत इवेंट रिकॉर्ड आवश्यक हैं।

न्यूनतम 1 वर्ष प्रतिधारण: SOC 2 टाइप II की ऑडिट अवधि आमतौर पर 6 या 12 महीने होती है। लॉग को पूरी ऑडिट अवधि को कवर करना होगा। सर्वोत्तम अभ्यास 1 वर्ष के साथ बफर (13 से 14 महीने) रखना है।

एजेंट अपने रिकॉर्ड संशोधित नहीं कर सकते: SOC 2 ऑडिटर विशेष रूप से यह सत्यापित करते हैं कि ऑडिट की जा रही संस्थाएं अपने ऑडिट रिकॉर्ड संशोधित नहीं कर सकतीं। लॉग डिलीट API कॉल करने में सक्षम एजेंट इस नियंत्रण पर विफल होता है। OpenLegion की Zone 2 ऑडिट ट्रेल एजेंट कोड से नहीं बल्कि मेश इंफ्रास्ट्रक्चर द्वारा लिखी जाती है; एजेंट लॉग राइट पाथ तक नहीं पहुंच सकता।

नियमित समीक्षा का साक्ष्य आवश्यक: CC7.2 यह भी आवश्यक करता है कि लॉग की समीक्षा का साक्ष्य हो: स्वचालित विसंगति पहचान परत के साथ-साथ समीक्षा लॉग में प्रलेखित आवधिक मानव समीक्षा।

GDPR अनुच्छेद 30: व्यक्तिगत डेटा पर एजेंट कार्य

GDPR अनुच्छेद 30 यह मांग करता है कि डेटा नियंत्रक और प्रोसेसर प्रसंस्करण गतिविधियों के रिकॉर्ड बनाए रखें। AI एजेंट सिस्टम के लिए, व्यक्तिगत डेटा को छूने वाली प्रत्येक एजेंट ऑपरेशन एक प्रसंस्करण गतिविधि है जिसे प्रलेखित किया जाना चाहिए।

GDPR अनुच्छेद 30 अनुपालन के लिए क्या रिकॉर्ड करें:

  • Agent_id और नियंत्रक पहचान: इस प्रसंस्करण गतिविधि के लिए कौन जिम्मेदार है?
  • प्रसंस्करण का उद्देश्य: एजेंट ने इस व्यक्तिगत डेटा तक क्यों पहुंचा?
  • व्यक्तिगत डेटा की श्रेणियां: एजेंट ने किस प्रकार के डेटा तक पहुंचा?
  • प्राप्तकर्ता: किस बाहरी सिस्टम या एजेंट को डेटा मिला?
  • कानूनी आधार: कौन सा GDPR कानूनी आधार लागू होता है?
  • प्रतिधारण अवधि या मानदंड: डेटा कब हटाया जाएगा?

रिकॉर्ड अनुरोध पर पर्यवेक्षी अधिकारियों को उपलब्ध होने चाहिए। अनुच्छेद 30 रिकॉर्ड बनाए न रखने का जुर्माना 10 मिलियन यूरो या वैश्विक वार्षिक कारोबार का 2%, जो भी अधिक हो, तक है।

सबसे बार आने वाला अनुपालन अंतर: एजेंट ऑडिट लॉग टूल नाम और कच्चे मापदंड रिकॉर्ड करते हैं, लेकिन यह नहीं पहचानते कि कौन से मापदंडों में व्यक्तिगत डेटा है। अनुच्छेद 30 रिकॉर्ड को उद्देश्य और कानूनी आधार के साथ उस पहचान की आवश्यकता है।

OWASP LLM06:2025: अनिवार्य अपरिवर्तनीय ऑडिट ट्रेल

OWASP LLM06:2025 (अत्यधिक एजेंसी) स्वायत्त एजेंटों के लिए चार अनिवार्य शमनों में से एक के रूप में अपरिवर्तनीय ऑडिट ट्रेल को सूचीबद्ध करता है:

अस्वीकृत सहित सभी टूल कॉल: टूल अनुमति सूची, HITL गेट, या खुले सर्किट ब्रेकर द्वारा ब्लॉक किए गए अस्वीकृत कॉल ऑडिट ट्रेल में दिखने चाहिए। अस्वीकृत कॉल प्रॉम्प्ट इंजेक्शन प्रयासों और सुरक्षा नियंत्रण प्रभावशीलता का प्राथमिक साक्ष्य हैं।

निष्पादन पूरा होने से पहले लिखा गया: पूर्व-निष्पादन। पोस्ट-एक्जीक्यूशन लॉगिंग एजेंट को उन कार्यों की लॉगिंग छोड़ने की अनुमति देता है जो वह निष्पादित करता है और फिर लॉग लिखने से पहले समाप्त हो जाता है।

पूर्ण तर्क रिकॉर्ड किए गए: ऑडिट एंट्री में केवल टूल नाम नहीं बल्कि पूर्ण टूल कॉल तर्क शामिल होने चाहिए। यह वह फील्ड है जिसका उपयोग सुरक्षा फोरेंसिक टीमें "एजेंट ने किस URL को कॉल किया?" और "बाहरी API को कौन सा डेटा पास किया गया?" का उत्तर देने के लिए करती हैं।

अपरिवर्तनीयता: एजेंट अपने रिकॉर्ड हटाने या संशोधित करने में सक्षम नहीं होने चाहिए। यह वह नियंत्रण है जो ऑडिट ट्रेल को फोरेंसिक जांच के लिए उपयोगी बनाता है; यदि एजेंट ट्रेल संशोधित कर सकता तो घटना के बाद की जांच इस पर भरोसा नहीं कर सकती।

ऑडिट ट्रेल एक पहचान नियंत्रण है, रोकथाम नियंत्रण नहीं। यह अनधिकृत कार्यों को नहीं रोकता। यह सुनिश्चित करता है कि अनधिकृत कार्य बाद में खोजे जा सकें, जिससे घटना प्रतिक्रिया और नियामक रिपोर्टिंग संभव हो।

ऑडिट लॉग स्कीमा: क्या और कब रिकॉर्ड करें

एजेंट ऑडिट रिकॉर्ड के लिए OpenTelemetry OTLP लॉग स्कीमा

OpenTelemetry OTLP proto v1.0 (जुलाई 2023) एजेंट ऑडिट रिकॉर्ड के लिए मानकीकृत संरचना प्रदान करता है। OTLP का उपयोग कस्टम पार्सर के बिना SIEM एकीकरण और TraceId और SpanId के माध्यम से वितरित ट्रेस सहसंबंध को सक्षम करता है।

एजेंट ऑडिट रिकॉर्ड के लिए आवश्यक OTLP फील्ड:

{
  "TimeUnixNano": "1719100800000000000",
  "ObservedTimeUnixNano": "1719100800050000000",
  "SeverityNumber": 9,
  "SeverityText": "INFO",
  "Body": {
    "event_type": "tool_call",
    "agent_id": "researcher-01",
    "session_id": "sess_a3f9b2c1",
    "tool_call_id": "tc_7e8d4f12",
    "tool_name": "http_request",
    "arguments": {
      "url": "https://api.example.com/data",
      "method": "POST",
      "headers": {"Authorization": "$CRED{api_key}"},
      "body_hash": "sha256:a4f3b2c1..."
    },
    "result_summary": "HTTP 200, 1842 bytes",
    "execution_status": "success",
    "rejection_reason": null,
    "duration_ms": 312,
    "cost_usd": 0.0042,
    "personal_data_fields": [],
    "credential_handles_used": ["api_key"]
  },
  "Attributes": {
    "agent_id": "researcher-01",
    "session_id": "sess_a3f9b2c1",
    "tool_call_id": "tc_7e8d4f12",
    "tool_name": "http_request",
    "authorization_level": "L2",
    "deployment_env": "prod"
  },
  "TraceId": "4bf92f3577b34da6a3ce929d0e0e4736",
  "SpanId": "00f067aa0ba902b7",
  "Resource": {
    "agent_type": "researcher",
    "agent_version": "0.4.2",
    "deployment_env": "prod"
  }
}

अनुपालन के लिए महत्वपूर्ण तीन फील्ड नोट:

ObservedTimeUnixNano: वह समय जब लॉग पाइपलाइन ने लॉग प्राप्त किया, TimeUnixNano से अलग। यह अंतर क्लॉक स्क्यू और पूर्वव्यापी लॉग इंजेक्शन का पता लगाता है; TimeUnixNano से पहले ObservedTimeUnixNano वाली लॉग एंट्री उस इवेंट से पहले लिखी गई जिसे वह वर्णन करती है, जो भौतिक रूप से असंभव है और छेड़छाड़ का संकेत देता है।

$CRED{} हैंडल के साथ arguments.headers: ऑडिट लॉग क्रेडेंशियल हैंडल ($CRED{api_key}) रिकॉर्ड करता है, न कि हल किया गया क्रेडेंशियल मान। कच्ची API कुंजी लॉग में दिखाई नहीं देती।

personal_data_fields: GDPR अनुच्छेद 30 अनुपालन के लिए कौन से तर्क फील्ड में व्यक्तिगत डेटा है, यह पहचानने वाली सरणी। लॉग पाइपलाइन इस फील्ड की जांच करती है ताकि उचित प्रतिधारण नियम लागू हो सकें और अनुच्छेद 30 रिकॉर्ड उत्पन्न हो सकें।

लॉग लिखने से पहले PII हटाना

GDPR अनुच्छेद 17 (मिटाने का अधिकार) अनुपालन तनाव पैदा करता है: ऑडिट लॉग 1 वर्ष या अधिक समय तक रखे जाने चाहिए (SOC 2), लेकिन व्यक्तिगत डेटा डेटा विषय के अनुरोध पर हटाया जाना चाहिए। समाधान स्यूडोनिमाइजेशन है: अपरिवर्तनीय लॉग में लिखने से पहले लॉग रिकॉर्ड में व्यक्तिगत डेटा को नियतात्मक हैश से बदलें।

import hashlib

PSEUDONYMIZATION_SALT = "$CRED{pii_salt}"  # vault से हल किया गया; कभी कोड में न डालें

def pseudonymize_args(args: dict, pii_fields: list[str]) -> dict:
    """लॉग लिखने से पहले PII फील्ड को HMAC-SHA256 उपनाम से बदलें।"""
    sanitized = dict(args)
    for field in pii_fields:
        if field in sanitized:
            value = str(sanitized[field])
            pseudonym = hashlib.sha256(
                f"{PSEUDONYMIZATION_SALT}:{value}".encode()
            ).hexdigest()[:16]
            sanitized[field] = f"pii:{pseudonym}"
    return sanitized

नियतात्मक उपनाम फोरेंसिक सहसंबंध को बनाए रखता है: एक ही उपयोगकर्ता से संबंधित सभी लॉग एंट्री समान उपनाम उत्पन्न करती हैं, जिससे कच्चे पहचानकर्ताओं के बिना फोरेंसिक क्वेरी संभव होती है। GDPR मिटाने के अनुरोध पर, salt घुमाएं; सभी मौजूदा उपनाम मूल डेटा विषय से स्थायी रूप से अलिंक हो जाते हैं, ऑडिट रिकॉर्ड हटाए बिना अनुच्छेद 17 को पूरा करते हैं।

सुरक्षित डिफ़ॉल्ट प्रतिधारण: 3 वर्ष। यह SOC 2 के 12-महीने ऑडिट अवधि (बफर के साथ), विशिष्ट GDPR सीमा अवधि, और अधिकांश संविदात्मक प्रतिधारण आवश्यकताओं को कवर करता है।

छेड़छाड़ प्रमाण और अपरिवर्तनीय भंडारण

क्रिप्टोग्राफिक हैश चेन

हैश चेन लॉग अनुक्रम स्तर पर छेड़छाड़ प्रमाण प्रदान करती है: यदि कोई रिकॉर्ड संशोधित या हटाया जाता है, तो चेन टूट जाती है और संशोधन पहचानने योग्य हो जाता है।

import hashlib, json

class AuditLogChain:
    def __init__(self, previous_hash: str = "genesis"):
        self.previous_hash = previous_hash

    def append(self, record: dict) -> dict:
        """चेन में रिकॉर्ड जोड़ें, सीलबंद एंट्री लौटाएं।"""
        record_with_prev = {**record, "previous_hash": self.previous_hash}
        serialized = json.dumps(record_with_prev, sort_keys=True).encode()
        current_hash = hashlib.sha256(serialized).hexdigest()
        sealed = {**record_with_prev, "record_hash": current_hash}
        self.previous_hash = current_hash
        return sealed

प्रत्येक रिकॉर्ड में पिछले रिकॉर्ड का हैश शामिल होता है। किसी भी रिकॉर्ड को संशोधित करने से उसका हैश बदल जाता है, जो सभी बाद के हैश को अनुक्रमिक रूप से अमान्य कर देता है। ऑडिटर रिकॉर्ड 1 से आगे हैश की पुनर्गणना करके चेन की पुष्टि करता है; कोई भी टूटना संशोधन और उसकी स्थिति को इंगित करता है।

हैश चेन संशोधन का पता लगाती है लेकिन उसे रोकती नहीं है। लॉग स्टोरेज को नियंत्रित करने वाला हमलावर संशोधन बिंदु से सभी हैश की पुनर्गणना करके संशोधित रिकॉर्ड पर एक वैध चेन पुनर्निर्माण कर सकता है। इसे WORM स्टोरेज से रोकें।

WORM स्टोरेज: AWS S3 Object Lock

Compliance mode में AWS S3 Object Lock प्रतिधारण अवधि के दौरान किसी के भी, यहां तक कि root account या AWS support द्वारा, ऑब्जेक्ट को संशोधित या हटाने से रोकता है। यह वह इंफ्रास्ट्रक्चर-लेयर अपरिवर्तनीयता है जो SOC 2 ऑडिटर और फोरेंसिक जांचकर्ता मांगते हैं।

लागत अनुमान: एक मध्यम रूप से सक्रिय एजेंट प्रति वर्ष लगभग 55 GB लॉग डेटा उत्पन्न करता है। S3 Standard पर $0.023/GB/माह पर:

  • 1 वर्ष प्रतिधारण: 55 GB x 12 माह x $0.023 = प्रति एजेंट ~$15/वर्ष
  • 3 वर्ष प्रतिधारण: 55 GB x 36 माह x $0.023 = प्रति एजेंट ~$46/वर्ष

अपरिवर्तनीय लॉग स्टोरेज कॉन्फिगरेशन:

# Object Lock सक्षम के साथ bucket बनाएं (बनाने के बाद अक्षम नहीं किया जा सकता)
aws s3api create-bucket \
  --bucket agent-audit-logs-prod \
  --object-lock-enabled-for-bucket \
  --region us-east-1

# डिफ़ॉल्ट प्रतिधारण सेट करें: Compliance mode, 3 वर्ष
aws s3api put-object-lock-configuration \
  --bucket agent-audit-logs-prod \
  --object-lock-configuration '{
    "ObjectLockEnabled": "Enabled",
    "Rule": {
      "DefaultRetention": {
        "Mode": "COMPLIANCE",
        "Years": 3
      }
    }
  }'

SIEM एकीकरण और वास्तविक समय विश्लेषण

एजेंट ऑडिट लॉग को SIEM पर रूट करना

SIEM एकीकरण दो उद्देश्यों की पूर्ति करता है: वास्तविक समय असामान्यता पहचान (चल रहे प्रॉम्प्ट इंजेक्शन प्रयासों का पता लगाना) और फोरेंसिक जांच (घटना के बाद ऐतिहासिक रिकॉर्ड क्वेरी करना)। OTLP स्कीमा दोनों को सक्षम करता है।

SIEMअंतर्ग्रहण विधिएजेंट लॉग वॉल्यूम लागत अनुमान
SplunkOTLP Collector -> Splunk HEC$1.5 से 3/GB अंतर्ग्रहण
Elastic SIEMOTLP Collector -> Logstash$0.10 से 0.50/GB (स्व-होस्टेड)
Microsoft SentinelOTLP Collector -> Log Analytics$2.46/GB अंतर्ग्रहण
DatadogOTLP Collector -> Datadog Agent$0.10/GB (मानक)
OpenSearchOTLP Collector -> OpenSearchनिःशुल्क (स्व-होस्टेड)

SIEM अंतर्ग्रहण पर कॉन्फिगर करने के लिए तीन वास्तविक समय पहचान नियम:

नियम 1: अनुमति सूची के बाहर टूल कॉल: जब ऑडिट रिकॉर्ड में tool_name एजेंट भूमिका की पंजीकृत टूल सूची में दिखाई नहीं देता, तब अलर्ट करें। अस्वीकृत कॉल पर भी ट्रिगर होता है; अनुमति सूची के बाहर अस्वीकृत कॉल का अर्थ है कि इंजेक्शन ब्लॉक हो गया, लेकिन हमलावर का इरादा दिखता है।

नियम 2: क्रेडेंशियल हैंडल असामान्यता: जब credential_handles_used में एजेंट भूमिका की अनुमोदित सूची में न हो ऐसा हैंडल हो, तब अलर्ट करें। क्रेडेंशियल पिवट हमलों के लिए प्राथमिक पहचान संकेत।

नियम 3: अस्वीकृति दर में वृद्धि: जब 5 मिनट की विंडो में 20% से अधिक टूल कॉल में execution_status: rejected हो, तब अलर्ट करें। सुरक्षा नियंत्रणों द्वारा ब्लॉक किए जा रहे सक्रिय प्रॉम्प्ट इंजेक्शन अभियान को इंगित करता है।

कानूनी होल्ड और eDiscovery

जब एजेंट-संबंधित घटना कानूनी कार्यवाही या नियामक जांच को ट्रिगर करती है, तो कानूनी होल्ड उस मामले की अवधि के दौरान लॉग के विलोपन या संशोधन को रोकता है।

S3 Object Lock में स्पष्ट प्रतिधारण विस्तार लागू करें:

import boto3
from datetime import datetime, timedelta

s3 = boto3.client('s3')

def apply_legal_hold(bucket: str, prefix: str, hold_until: datetime):
    paginator = s3.get_paginator('list_objects_v2')
    for page in paginator.paginate(Bucket=bucket, Prefix=prefix):
        for obj in page.get('Contents', []):
            s3.put_object_retention(
                Bucket=bucket,
                Key=obj['Key'],
                Retention={
                    'Mode': 'COMPLIANCE',
                    'RetainUntilDate': hold_until
                }
            )

# घटना की तारीख के लॉग पर 5 वर्ष का होल्ड लागू करें
apply_legal_hold(
    bucket='agent-audit-logs-prod',
    prefix='2026/03/15/',
    hold_until=datetime.now() + timedelta(days=1825)
)

eDiscovery उत्पादन: स्रोत साक्ष्य के रूप में S3 Object Lock प्रतिधारण मेटाडेटा वाली मैनिफेस्ट फ़ाइल के साथ दिनांक सीमा और agent_id दायरे के भीतर लॉग रिकॉर्ड को JSON-L के रूप में निर्यात करें।

एजेंट घटनाओं के बाद फोरेंसिक जांच

फोरेंसिक टाइमलाइन: एजेंट ने क्या किया, इसका पुनर्निर्माण

सुरक्षा घटना के बाद, फोरेंसिक जांच एजेंट कार्यों के सटीक क्रम का पुनर्निर्माण करती है। मानक फोरेंसिक टाइमलाइन क्वेरी पैटर्न:

from datetime import datetime

def build_forensic_timeline(
    agent_id: str,
    session_id: str,
    start_time: datetime,
    end_time: datetime,
    log_store
) -> list[dict]:
    timeline = []
    for record in log_store.query(
        filter={
            "agent_id": agent_id,
            "session_id": session_id,
            "time_range": (start_time, end_time)
        }
    ):
        timeline.append({
            "timestamp": record["TimeUnixNano"],
            "tool": record["Body"]["tool_name"],
            "status": record["Body"]["execution_status"],
            "args_summary": record["Body"]["arguments"],
            "cost_usd": record["Body"]["cost_usd"],
            "rejection_reason": record["Body"].get("rejection_reason"),
            "record_hash": record.get("record_hash"),
        })
    return sorted(timeline, key=lambda r: r["timestamp"])

चार प्रश्न जो फोरेंसिक टाइमलाइन को उत्तर देने चाहिए:

एजेंट ने क्या किया? tool_name अनुक्रम, अस्वीकृत कॉल सहित। अस्वीकृत कॉल दिखाते हैं कि एजेंट ने क्या करने की कोशिश की जिसे सुरक्षा नियंत्रणों ने ब्लॉक किया।

किस डेटा तक पहुंचा? arguments फील्ड। बाहरी सेवाओं से जुड़े प्रत्येक टूल कॉल के लिए, कौन से मापदंड पास किए गए? यदि personal_data_fields भरा हुआ है, तो कौन सा व्यक्तिगत डेटा शामिल था?

कौन से क्रेडेंशियल उपयोग किए गए? credential_handles_used फील्ड। यदि हैंडल एक अप्रत्याशित संदर्भ में दिखाई देता है, जैसे शोधकर्ता एजेंट प्रकाशक के GitHub टोकन का उपयोग करना, तो यह फोरेंसिक खोज है।

बाहरी सिस्टम ने क्या लौटाया? result_summary फील्ड। यदि एजेंट ने डेटा एक्सफिल्ट्रेट किया, तो HTTP 200, N bytes received सफल एक्सफिल्ट्रेशन का साक्ष्य है।

अभिरक्षा श्रृंखला दस्तावेज़ीकरण

फोरेंसिक साक्ष्य को कानूनी कार्यवाही में स्वीकार्य होने के लिए, अभिरक्षा श्रृंखला दस्तावेज़ीकरण बनाए रखना होगा। S3 में, ऑडिट लॉग bucket के लिए S3 एक्सेस लॉगिंग सक्षम करें; प्रत्येक GET अनुरोध एक एक्सेस लॉग एंट्री बनाता है जिसमें अनुरोधकर्ता की IAM पहचान और टाइमस्टैम्प होता है। यह ऑडिट लॉग के लिए ही अभिरक्षा श्रृंखला रिकॉर्ड है।

बाहरी पक्षों (नियामक, ऑडिटर, विरोधी वकील) को लॉग निर्यात करते समय, IAM क्रेडेंशियल साझा करने के बजाय सीमित समाप्ति (24 से 48 घंटे) वाले S3 pre-signed URLs का उपयोग करें। Pre-signed URL एक्सेस किए गए विशिष्ट ऑब्जेक्ट और कब एक्सेस किया, इसका समय-सीमित रिकॉर्ड बनाता है।

OpenLegion का दृष्टिकोण

ऑडिट लॉग प्रोडक्शन एजेंट सिस्टम में सबसे कम निवेशित अनुपालन नियंत्रण है। टीमें ट्रेसिंग, मेट्रिक्स और डैशबोर्ड में निवेश करती हैं, जो संचालन के लिए मूल्यवान है, लेकिन ऑडिट लॉग को "बाद में जोड़ने वाली चीज़" के रूप में स्थगित करती हैं। "बाद में" तब आता है जब SOC 2 ऑडिटर 12 महीनों के व्यक्तिगत इवेंट रिकॉर्ड का अनुरोध करता है, या नियामक छह महीने पहले ग्राहक डेटा संसाधित करने वाले एजेंट के अनुच्छेद 30 दस्तावेज़ीकरण का अनुरोध करता है।

OpenLegion का ब्लैकबोर्ड डिज़ाइन द्वारा केवल-जोड़ने वाला है: प्रत्येक राइट संस्करणित है, टाइमस्टैम्प के साथ है, और लेखक के agent_id को जिम्मेदार ठहराया गया है। Zone 2 निष्पादन पूरा होने से पहले प्रत्येक टूल कॉल रिकॉर्ड करता है। दोनों में से किसी को भी एजेंट कोड संशोधित नहीं कर सकता। OpenLegion तैनातियों में पहले दिन से ही पूर्व-निष्पादन, अपरिवर्तनीय, एट्रिब्यूटेड लॉग संरचना होती है जो अनुपालन मांगता है।

प्रारंभिक निवेश के लिए लागत तर्क: एक प्रोडक्शन एजेंट सिस्टम में अपरिवर्तनीय ऑडिट लॉग को पूर्वव्यापी रूप से जोड़ने के लिए टूल कॉल पाइपलाइन, स्टोरेज इंफ्रास्ट्रक्चर, और लॉग फॉर्मेट में बदलाव की आवश्यकता होती है, आमतौर पर 2 से 4 सप्ताह का इंजीनियरिंग कार्य। तैनाती पर सही तरीके से निर्मित करना एक से दो दिन लगता है। 3 वर्ष प्रतिधारण के साथ S3 Object Lock प्रति एजेंट लगभग $46/वर्ष लागत आता है। अपर्याप्त लॉगिंग के कारण SOC 2 ऑडिट की विफलता की लागत ऑडिट प्रमाणन की हानि है, जो आमतौर पर 6 से 12 महीनों के लिए एंटरप्राइज़ ग्राहक बिक्री को ब्लॉक कर देती है।

PII स्यूडोनिमाइजेशन पैटर्न कम जटिलता लागत पर GDPR/SOC 2 प्रतिधारण तनाव को हल करता है। व्यक्तिगत डेटा को छूने वाले पहले एजेंट से इसे लागू करना उचित है; कच्ची PII के साथ मौजूदा लॉग में स्यूडोनिमाइजेशन को पूर्वव्यापी रूप से जोड़ना पहले से ही सही तरीके से निर्माण करने से अधिक जटिल है।

इस लॉग द्वारा कैप्चर किए गए ऑडिट इवेंट उत्पन्न करने वाले AI एजेंट सुरक्षा नियंत्रणों के लिए, अस्वीकृत टूल कॉल और प्रॉम्प्ट इंजेक्शन प्रयास फोरेंसिक रूप से सबसे मूल्यवान प्रविष्टियां हैं। प्रतिधारण नीतियों और समीक्षा लय निर्धारित करने वाले AI एजेंट शासन ढांचे के लिए, ऑडिट लॉग साक्ष्य का आधार है।

शुरू करें

अंतर्निर्मित केवल-जोड़ने वाले ऑडिट ट्रेल, OTLP संरचित रिकॉर्ड, और S3 Object Lock अपरिवर्तनीयता के साथ AI एजेंट तैनात करें।

अक्सर पूछे जाने वाले प्रश्न

AI एजेंट ऑडिट लॉग क्या है और यह ऑब्जर्वेबिलिटी डेटा से कैसे अलग है?

AI एजेंट ऑडिट लॉग निष्पादन पूरा होने से पहले लिखे गए और संशोधन से सुरक्षित एजेंट के सभी कार्यों का एक अपरिवर्तनीय केवल-जोड़ने वाला रिकॉर्ड है। ऑब्जर्वेबिलिटी डेटा (मेट्रिक्स, ट्रेस, डैशबोर्ड) "क्या सिस्टम अभी स्वस्थ है?" का उत्तर देते हैं और आमतौर पर सैंपल किए गए, एकत्रित और 30 से 90 दिनों के लिए रखे जाते हैं। ऑडिट लॉग "इस एजेंट ने 15 मार्च को 14:32 बजे वास्तव में क्या किया?" का उत्तर देते हैं और 1 वर्ष या उससे अधिक समय के लिए रखे गए पूर्ण व्यक्तिगत इवेंट रिकॉर्ड होने चाहिए। SOC 2 CC7.2 और GDPR अनुच्छेद 30 ऑडिट-गुणवत्ता रिकॉर्ड की मांग करते हैं; ऑब्जर्वेबिलिटी डैशबोर्ड किसी भी मानक को पूरा नहीं करते।

SOC 2 टाइप II CC7.2 AI एजेंट ऑडिट लॉग से क्या मांगता है?

SOC 2 CC7.2 (सिस्टम निगरानी) प्रत्येक टूल कॉल के लिए व्यक्तिगत इवेंट रिकॉर्ड (एकत्रित मेट्रिक्स नहीं) की मांग करता है जिसमें agent_id, टाइमस्टैम्प, पूर्ण मापदंड और परिणाम शामिल हों। पूरी ऑडिट अवधि को कवर करने के लिए न्यूनतम 1 वर्ष प्रतिधारण अनिवार्य है। ऑडिट की जाने वाली संस्थाएं अपने रिकॉर्ड संशोधित नहीं कर सकतीं; ऑडिटर इसकी विशेष जांच करते हैं। स्वचालित असामान्यता पहचान और आवधिक समीक्षा दस्तावेज़ीकरण का साक्ष्य भी आवश्यक है। ऑब्जर्वेबिलिटी डैशबोर्ड इस नियंत्रण पर विफल होते हैं क्योंकि वे व्यक्तिगत इवेंट नहीं दिखा सकते, अखंडता या अपरिवर्तनीयता साबित नहीं कर सकते।

GDPR अनुच्छेद 30 व्यक्तिगत डेटा संसाधित करने वाले एजेंटों से क्या मांगता है?

GDPR अनुच्छेद 30 व्यक्तिगत डेटा पर प्रत्येक एजेंट ऑपरेशन के लिए प्रसंस्करण गतिविधि रिकॉर्ड की मांग करता है: agent_id, उद्देश्य, एक्सेस किए गए व्यक्तिगत डेटा की श्रेणियां, प्राप्तकर्ता, कानूनी आधार, प्रतिधारण अवधि। रिकॉर्ड अनुरोध पर पर्यवेक्षी अधिकारियों को उपलब्ध होने चाहिए। अनुपालन न करने पर जुर्माना 10 मिलियन यूरो या वैश्विक वार्षिक राजस्व का 2% है। मापदंडों में उपयोगकर्ता ईमेल, ग्राहक आईडी, या वित्तीय रिकॉर्ड जैसे व्यक्तिगत डेटा वाले प्रत्येक टूल कॉल के लिए अनुच्छेद 30 रिकॉर्ड की आवश्यकता है जो उन फील्ड की पहचान उद्देश्य और कानूनी आधार के साथ व्यक्तिगत डेटा के रूप में करे।

प्रत्येक एजेंट ऑडिट लॉग एंट्री में कौन से फील्ड होने चाहिए?

न्यूनतम: agent_id, session_id, tool_call_id, टाइमस्टैम्प (पूर्व-निष्पादन), टूल नाम, पूर्ण तर्क (क्रेडेंशियल हैंडल अपारदर्शी $CRED{} टोकन के रूप में और PII स्यूडोनिमाइज़ किया गया), निष्पादन स्थिति (सफल/विफल/अस्वीकृत), यदि अस्वीकृत तो अस्वीकृति कारण, अवधि, लागत, उपयोग किए गए क्रेडेंशियल हैंडल और व्यक्तिगत डेटा फील्ड। स्थिर OTLP लॉग विनिर्देश TimeUnixNano, ObservedTimeUnixNano (छेड़छाड़ पहचान के लिए), TraceId और SpanId (वितरित ट्रेस सहसंबंध के लिए) और एक संरचित Body ऑब्जेक्ट के साथ मानक संरचना प्रदान करता है।

वैध संचालन में बाधा डाले बिना ऑडिट लॉग को अपरिवर्तनीय कैसे बनाएं?

दो तंत्रों का संयोजन: क्रिप्टोग्राफिक हैश चेन (प्रत्येक रिकॉर्ड में पिछले रिकॉर्ड का हैश शामिल है जो कैस्केडिंग हैश अमान्यकरण के माध्यम से संशोधन पहचानने योग्य बनाता है) और इंफ्रास्ट्रक्चर लेयर पर WORM स्टोरेज (Compliance mode में AWS S3 Object Lock प्रतिधारण अवधि के दौरान root account द्वारा भी हटाने या संशोधन को रोकता है)। सामान्य लॉग पढ़ना और नई एंट्री जोड़ना अनुमत है; मौजूदा रिकॉर्ड संशोधित करना अनुमत नहीं है। Object Lock सक्षम के साथ S3 bucket बनाएं (बनाने के बाद अक्षम नहीं किया जा सकता) और डिफ़ॉल्ट प्रतिधारण को Compliance mode 3 वर्ष पर सेट करें।

जब ऑडिट लॉग अपरिवर्तनीय होने चाहिए तो GDPR मिटाने के अनुरोधों को कैसे संभालें?

स्यूडोनिमाइजेशन का उपयोग करें: अपरिवर्तनीय लॉग में लिखने से पहले क्रेडेंशियल vault में संग्रहीत salt का उपयोग करके नियतात्मक HMAC-SHA256 हैश के साथ व्यक्तिगत डेटा फील्ड बदलें। उपनाम स्थिर है जो एक ही डेटा विषय के लॉग प्रविष्टियों के बीच फोरेंसिक सहसंबंध की अनुमति देता है। मिटाने के अनुरोध पर, salt घुमाएं; सभी मौजूदा उपनाम मूल डेटा विषय से स्थायी रूप से अलिंक हो जाते हैं, ऑडिट रिकॉर्ड हटाए बिना अनुच्छेद 17 को पूरा करते हैं। ऑडिट लॉग बरकरार रहता है; केवल उपनामों को वास्तविक पहचान से जोड़ने की क्षमता नष्ट होती है।

एजेंट ऑडिट लॉग के लिए कौन सा S3 Object Lock कॉन्फिगरेशन उपयोग करें?

Compliance mode (Governance mode नहीं) का उपयोग करें। Compliance mode किसी भी account द्वारा संशोधन या हटाने को रोकता है, root सहित; Governance mode अधिकृत IAM उपयोगकर्ताओं को लॉक ओवरराइड करने की अनुमति देता है। एक मध्यम सक्रिय एजेंट लगभग 55 GB/वर्ष लॉग डेटा उत्पन्न करता है, S3 Standard पर $0.023/GB/माह पर 1 वर्ष प्रतिधारण के लिए लगभग $15/वर्ष या 3 वर्ष के लिए $46/वर्ष। ऑडिट bucket पर S3 एक्सेस लॉगिंग सक्षम करें ताकि जांचकर्ताओं की पहुंच स्वयं अभिरक्षा श्रृंखला दस्तावेज़ के रूप में लॉग हो।

एजेंट घटना के बाद ऑडिट लॉग से फोरेंसिक टाइमलाइन कैसे बनाएं?

agent_id, session_id, और समय सीमा से ऑडिट लॉग स्टोर क्वेरी करें। TimeUnixNano द्वारा रिकॉर्ड सॉर्ट करें। प्रत्येक रिकॉर्ड से निकालें: टूल नाम, निष्पादन स्थिति (अस्वीकृति सहित), तर्क सारांश, उपयोग किए गए क्रेडेंशियल, परिणाम सारांश। रिकॉर्ड 1 से आगे हैश की पुनर्गणना करके हैश चेन अखंडता सत्यापित करें; कोई भी टूटना छेड़छाड़ और उसकी स्थिति इंगित करता है। चार प्रश्न जो टाइमलाइन को उत्तर देने चाहिए: एजेंट ने कौन से टूल कॉल किए (अस्वीकृत सहित)? किस डेटा तक पहुंचा? कौन से क्रेडेंशियल हैंडल अप्रत्याशित संदर्भों में दिखाई दिए? बाहरी सिस्टम ने क्या लौटाया? नियामक प्रस्तुतियों के लिए स्रोत के रूप में S3 Object Lock मेटाडेटा के साथ JSON-L के रूप में निर्यात करें।