𝗟𝗟𝗠 𝗣𝗿𝗼𝗺𝗽𝘁 𝗜𝗻𝗷𝗲𝗰𝘁𝗶𝗼𝗻 𝗮𝗻𝗱 𝗚𝘂𝗮𝗿𝗱𝗿𝗮𝗶𝗹 𝗦𝗲𝗰𝘂𝗿𝗶𝘁𝘆
LLMಗಳಲ್ಲಿ ಸೂಚನೆಗಳು (instructions) ಮತ್ತು ದತ್ತಾಂಶದ (data) ನಡುವೆ ಯಾವುದೇ ಕಠಿಣ ಗಡಿಗಳಿಲ್ಲ. ಕಾಂಟೆಕ್ಸ್ಟ್ ವಿಂಡೋದಲ್ಲಿರುವ (context window) ಎಲ್ಲವೂ ಟೋಕನ್ಗಳ ಒಂದು ಹರಿವು. ದಾಳಿಕೋರರ ದತ್ತಾಂಶವು ಸೂಚನೆಗಳಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸಿದಾಗ 'ಪ್ರಾಂಪ್ಟ್ ಇಂಜೆಕ್ಷನ್' ಸಂಭವಿಸುತ್ತದೆ. ಕೇವಲ ಫಿಲ್ಟರಿಂಗ್ ಮಾಡುವ ಮೂಲಕ ನೀವು ಸುರಕ್ಷಿತರಾಗಲು ಸಾಧ್ಯವಿಲ್ಲ. ನೀವು ಇದನ್ನು 'ಡಿಫೆನ್ಸ್-ಇನ್-ಡೆಪ್ತ್' (defense-in-depth) ಮೂಲಕ ನಿರ್ವಹಿಸಬೇಕು.
ಸಾಮಾನ್ಯ ರಕ್ಷಣಾ ಕ್ರಮಗಳ ವೈಫಲ್ಯಗಳು:
- ಕೀವರ್ಡ್ ಬ್ಲಾಕ್ಲಿಸ್ಟ್ಗಳು (Keyword Blocklists): ದಾಳಿಕೋರರು ಇವುಗಳನ್ನು ಬೈಪಾಸ್ ಮಾಡಲು ಸಮಾನಾರ್ಥಕ ಪದಗಳು, ತಪ್ಪಾದ ಕಾಗುಣಿತಗಳು ಅಥವಾ ವಿವಿಧ ಭಾಷೆಗಳನ್ನು ಬಳಸುತ್ತಾರೆ. ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು (strings) ಫಿಲ್ಟರ್ ಮಾಡುವುದು ಉದ್ದೇಶವನ್ನು (intent) ಫಿಲ್ಟರ್ ಮಾಡುವುದಿಲ್ಲ.
- ಔಟ್ಪುಟ್ ರಿಡಾಕ್ಷನ್ (Output Redaction): ದಾಳಿಕೋರರು ರಹಸ್ಯಗಳನ್ನು ತುಂಡರಿಸಬಹುದು ಅಥವಾ ಎನ್ಕೋಡ್ ಮಾಡಬಹುದು, ಇದರಿಂದಾಗಿ ಸಾಕ್ಷಾತ್ ಸ್ಟ್ರಿಂಗ್ ಮ್ಯಾಚ್ (literal string match) ವಿಫಲವಾಗುತ್ತದೆ.
- LLM ಜಡ್ಜಸ್ (LLM Judges): ಒಂದು ಪ್ರತ್ಯೇಕ ಮಾಡೆಲ್ ಅನ್ನು ಸಾಮಾಜಿಕ ಇಂಜಿನಿಯರಿಂಗ್ ಮೂಲಕ ರಹಸ್ಯವು ಹಾನಿಕಾರಕವಲ್ಲ ಎಂದು ನಂಬುವಂತೆ ಮಾಡಬಹುದು.
- ಮಾನವ ವಿಮರ್ಶೆ (Human Review): ಮನುಷ್ಯರು ರಂಡರ್ ಮಾಡಲಾದ ಪಠ್ಯವನ್ನು ನೋಡುತ್ತಾರೆ, ರಾ (raw) ಬೈಟ್ಗಳನ್ನು ಅಲ್ಲ. ASCII ಸ್ಮಗ್ಲಿಂಗ್ನಲ್ಲಿ ಬಳಸಲಾಗುವ ಅಡಗಿದ ಅಕ್ಷರಗಳನ್ನು ಅವರು ನೋಡಲು ಸಾಧ್ಯವಿಲ್ಲ.
ASCII ಸ್ಮಗ್ಲಿಂಗ್ (ASCII Smuggling) ಒಂದು ದೊಡ್ಡ ಬೆದರಿಕೆಯಾಗಿದೆ. ಇದು ಸೂಚನೆಗಳನ್ನು ಮರೆಮಾಡಲು ಯುನಿಕೋಡ್ ಟ್ಯಾಗ್ಗಳು (Unicode Tags) ಅಥವಾ ಜೀರೋ-ವಿಡ್ತ್ ಸ್ಪೇಸ್ಗಳಂತಹ (zero-width spaces) ಅದೃಶ್ಯ ಅಕ್ಷರಗಳನ್ನು ಬಳಸುತ್ತದೆ. ಮಾಡೆಲ್ ಅವುಗಳನ್ನು ಓದುತ್ತದೆ, ಆದರೆ ಮನುಷ್ಯನಿಗೆ ಏನೂ ಕಾಣಿಸುವುದಿಲ್ಲ. ಇದು ಇಮೇಲ್ ಅಥವಾ ಕ್ಯಾಲೆಂಡರ್ಗಳ ಮೂಲಕ ಗುರುತಿನ ವಂಚನೆ (identity spoofing) ಮತ್ತು ದತ್ತಾಂಶ ಸೋರಿಕೆಗೆ (data exfiltration) ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ.
ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ರಕ್ಷಿಸುವುದು ಹೇಗೆ:
- ರಾ ಪೇಲೋಡ್ಗಳನ್ನು (raw payloads) ಶುದ್ಧೀಕರಿಸಿ: ಅವು ಮಾಡೆಲ್ಗೆ ತಲುಪುವ ಮೊದಲು ಕಂಟ್ರೋಲ್ ಅಕ್ಷರಗಳು ಮತ್ತು ಜೀರೋ-ವಿಡ್ತ್ ಅಕ್ಷರಗಳನ್ನು ತೆಗೆದುಹಾಕಿ.
- ಅಲೋಲಿಸ್ಟ್ಗಳನ್ನು (allowlists) ಬಳಸಿ: ಕೆಟ್ಟವುಗಳನ್ನು ಹುಡುಕುವ ಬದಲು ನಿಮಗೆ ಬೇಕಾದ ನಿರ್ದಿಷ್ಟ ಯುನಿಕೋಡ್ ವರ್ಗಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ.
- ದತ್ತಾಂಶವನ್ನು ನಾರ್ಮಲೈಸ್ ಮಾಡಿ: ಎಲ್ಲಾ ಇನ್ಪುಟ್ಗಳ ಮೇಲೆ NFKC-ನಾರ್ಮಲೈಸೇಶನ್ ಬಳಸಿ.
- ರಹಸ್ಯಗಳನ್ನು ಕನಿಷ್ಠಗೊಳಿಸಿ: ಮಾಡೆಲ್ಗೆ ಅಗತ್ಯವಿಲ್ಲದಿದ್ದರೆ ಸಂವೇದನಾಶೀಲ ದತ್ತಾಂಶವನ್ನು ಕಾಂಟೆಕ್ಸ್ಟ್ ವಿಂಡೋದಲ್ಲಿ ಇಡಬೇಡಿ.
- RAG ಅನ್ನು ನಂಬಲಾರದಂತೆ ಪರಿಗಣಿಸಿ: ಮಾಡೆಲ್ಗಾಗಿ ನೀವು ಪಡೆಯುವ ಯಾವುದೇ ದಾಖಲೆಯು ಸಂಭಾವ್ಯ ಇಂಜೆಕ್ಷನ್ ವೆಕ್ಟರ್ ಆಗಿರಬಹುದು ಎಂದು ಭಾವಿಸಿ.
- ಅಸಹಜತೆಗಳಿಗಾಗಿ ಗಮನಿಸಿ: ದೃಶ್ಯಮಾನವಾದ ಉದ್ದವು (visible length) ರಾ ಕೋಡ್-ಪಾಯಿಂಟ್ ಸಂಖ್ಯೆಯಿಂದ (raw code-point count) ಭಿನ್ನವಾಗಿರುವ ಇನ್ಪುಟ್ಗಳನ್ನು ಗುರುತಿಸಿ.
ಭದ್ರತೆಯು ಕೇವಲ ಮಾಡೆಲ್ ದೋಷವಲ್ಲ, ಅದು ಪೈಪ್ಲೈನ್ ದೋಷವಾಗಿದೆ. ಇದರ ಪರಿಹಾರವು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ನಲ್ಲಿದೆ.
Source: https://dev.to/geekaara/llm-prompt-injection-guardrail-security-glm
Optional learning community: https://t.me/GyaanSetuAi