𝗟𝗟𝗠 𝗣𝗿𝗼𝗺𝗽𝘁 𝗜𝗻𝗷𝗲𝗰𝘁𝗶𝗼𝗻 𝗮𝗻𝗱 𝗚𝘂𝗮𝗿𝗱𝗿𝗮𝗶𝗹 𝗦𝗲𝗰𝘂𝗿𝗶𝘁𝘆
LLM-களில் அறிவுறுத்தல்களுக்கும் (instructions) தரவுகளுக்கும் (data) இடையே தெளிவான எல்லை இல்லை. கான்டெக்ஸ்ட் விண்டோவில் (context window) உள்ள அனைத்தும் டோக்கன்களின் (tokens) ஒரு தொடராகவே இருக்கும். தாக்குபவரின் தரவு அறிவுறுத்தல்களாகச் செயல்படும்போது 'ப்ராம்ப்ட் இன்ஜெக்ஷன்' (Prompt injection) நிகழ்கிறது. வெறும் வடிகட்டுதல் (filtering) மூலம் மட்டும் பாதுகாப்பைப் பெற முடியாது. நீங்கள் 'டிஃபன்ஸ்-இன்-டெப்த்' (defense-in-depth) எனப்படும் ஆழமான பாதுகாப்பு முறையைப் பயன்படுத்தி இதை நிர்வகிக்க வேண்டும்.
பொதுவான பாதுகாப்பு முறைகளின் தோல்வி:
- கீவேர்ட் பிளாக்லிஸ்ட்கள் (Keyword Blocklists): தாக்குபவர்கள் இவற்றைத் தவிர்க்கப் पर्यायवाचीச் சொற்கள், எழுத்துப் பிழைகள் அல்லது வேறு மொழிகளைப் பயன்படுத்துகின்றனர். சரங்களை (strings) வடிகட்டுவது நோக்கத்தை (intent) வடிகட்டாது.
- அவுட்புட் ரெடாக்ஷன் (Output Redaction): தாக்குபவர்கள் ரகசியத் தகவல்களைத் துண்டுகளாகவோ அல்லது குறியீடுகளாகவோ (encode) மாற்ற முடியும், இதனால் நேரடித் தேடல் (literal string match) தோல்வியடையும்.
- LLM ஜட்ஜ்கள் (LLM Judges): ஒரு தனி மாடலை சமூகப் பொறியியல் (social engineering) மூலம் ஏமாற்றி, ஒரு ரகசியத் தகவல் பாதிப்பற்றது என்று நம்ப வைக்க முடியும்.
- மனித ஆய்வு (Human Review): மனிதர்கள் திரையில் காட்டப்படும் உரையை மட்டுமே பார்க்கிறார்கள், மூல பைட்களை (raw bytes) அல்ல. ASCII ஸ்மக்லிங்கில் (ASCII smuggling) பயன்படுத்தப்படும் மறைக்கப்பட்ட எழுத்துக்களை அவர்களால் பார்க்க முடியாது.
ASCII ஸ்மக்லிங் (ASCII Smuggling) ஒரு பெரிய அச்சுறுத்தலாகும். இது அறிவுறுத்தல்களை மறைக்க யூனிகோட் டேக்ஸ் (Unicode Tags) அல்லது ஜீரோ-வித் ஸ்பேஸ்கள் (zero-width spaces) போன்ற கண்ணுக்குத் தெரியாத எழுத்துக்களைப் பயன்படுத்துகிறது. மாடல் இவற்றை வாசிக்கும், ஆனால் மனிதர்களுக்கு எதுவும் தெரியாது. இது மின்னஞ்சல் அல்லது காலண்டர்கள் மூலம் அடையாளத் திருட்டு (identity spoofing) மற்றும் தரவுத் திருட்டை (data exfiltration) சாத்தியமாக்குகிறது.
உங்கள் செயலியை எவ்வாறு பாதுகாப்பது:
- மூல பேலோட்களைச் (raw payloads) சுத்திகரிக்கவும்: கட்டுப்பாட்டு எழுத்துக்கள் (control characters) மற்றும் ஜீரோ-வித் எழுத்துக்களை மாடலைச் சென்றடைவதற்கு முன்பே நீக்கிவிடவும்.
- அலோலிஸ்ட்களைப் (allowlists) பயன்படுத்தவும்: தேவையற்றவற்றைத் தேடித் தேடித் தடுப்பதற்குப் பதிலாக, உங்களுக்குத் தேவையான குறிப்பிட்ட யூனிகோட் வகைகளை மட்டும் வரையறுக்கவும்.
- தரவை இயல்பாக்கவும் (Normalize data): அனைத்து உள்ளீடுகளுக்கும் NFKC-normalization முறையைப் பயன்படுத்தவும்.
- ரகசியங்களைக் குறைக்கவும்: மாடலுக்குத் தேவையில்லை என்றால், முக்கியமான தரவுகளை கான்டெக்ஸ்ட் விண்டோவில் வைக்க வேண்டாம்.
- RAG-ஐ நம்பகமற்றதாகக் கருதவும்: மாடலுக்காக நீங்கள் எடுக்கும் எந்த ஆவணமும் ஒரு சாத்தியமான இன்ஜெக்ஷன் காரணியாக (injection vector) இருக்கலாம் என்று கருதுங்கள்.
- முரண்பாடுகளைக் கவனிக்கவும்: திரையில் தெரியும் நீளத்திற்கும், மூல கோட்-பாயிண்ட் (raw code-point) எண்ணிக்கையிற்கும் இடையே வித்தியாசம் இருக்கும் உள்ளீடுகளைக் கண்டறியவும்.
பாதுகாப்பு என்பது ஒரு குழாய்வழிப் பிழை (pipeline flaw), அது மாடலில் உள்ள பிழை மட்டுமல்ல. இதற்கான தீர்வு உங்கள் செயலி குறியீட்டில் (application code) உள்ளது.
Source: https://dev.to/geekaara/llm-prompt-injection-guardrail-security-glm
Optional learning community: https://t.me/GyaanSetuAi