AI குறியீட்டுப் பாதுகாப்பு: உங்கள் திட்டக் கோப்புகளில் (Project Files) ப்ராம்ப்ட் இன்ஜெக்ஷன் (Prompt Injection) ஒளிந்து கொண்டிருக்கிறது
உங்கள் AI குறியீட்டு உதவியாளர் (AI coding assistant) உங்கள் களஞ்சியத்தில் (repository) உள்ள ஒவ்வொரு கோப்பையும் படிக்கிறது. அது உங்கள் README, உங்கள் உள்ளமைவு கோப்புகள் (config files) மற்றும் உங்கள் விதிகளைப் படிக்கிறது. குறியீட்டை எவ்வாறு எழுதுவது என்பதைத் தீர்மானிக்க அது இந்த கோப்புகளைப் பயன்படுத்துகிறது.
ஒரு புதிய பாதுகாப்பு அச்சுறுத்தல் இந்தச் செயல்பாட்டையே சாதகமாகப் பயன்படுத்துகிறது. 28 வெவ்வேறு AI குறியீட்டு கருவிகளில் ஒரு பாதிப்பைக் ஆராய்ச்சியாளர்கள் கண்டறிந்துள்ளனர். இந்தத் தாக்குதல் ஒரு சிக்கலான ஹேக்கிங் அல்ல. இது உங்கள் களஞ்சியத்தில் உள்ள ஒரு சாதாரண உரை கோப்பு (text file) மட்டுமே.
தாக்குதல் எவ்வாறு செயல்படுகிறது:
நீங்கள் ஒரு திறந்த மூலத் திட்டத்தை (open-source project) குளோன் செய்கிறீர்கள். அது சாதாரணமாகத் தெரிகிறது. அதை உங்கள் AI எடிட்டரில் திறந்து ஒரு புதிய அம்சத்தைக் கேட்கிறீர்கள். உள்ளமைவு கோப்புகளில் (configuration files) மறைந்துள்ள யூனிகோட் (Unicode) எழுத்துக்களை நீங்கள் பார்ப்பதில்லை. இந்த எழுத்துக்கள் உங்களிடமிருந்து அறிவுறுத்தல்களை மறைத்து, AI-யிடம் வேறு ஏதோ ஒன்றைச் செய்யச் சொல்கின்றன.
அந்த மறைக்கப்பட்ட அறிவுறுத்தல், உங்கள் AWS சான்றுகளை (credentials) ஒரு வெளிப்புறச் சேவையகத்திற்கு (external server) அனுப்பும்படி AI-யிடம் கூறுகிறது. இது ஒரு முறையான திட்ட அறிவுறுத்தல் என்று AI நினைக்கிறது. அது அந்தக் கட்டளையைச் செயல்படுத்துகிறது. உங்கள் ரகசியத் தகவல்கள் திருடப்படுகின்றன.
இதை தடுப்பது ஏன் கடினம்:
- மறைக்கப்பட்ட எழுத்துக்கள்: நீங்கள் சாதாரண உரையைப் பார்க்கிறீர்கள், ஆனால் AI கண்ணுக்குத் தெரியாத யூனிகோட் எழுத்துக்கள் மூலம் தீய கட்டளைகளைப் பார்க்கிறது.
- ஒவ்வொரு கோப்பும் ஒரு நுழைவாயில்: ஒரு README அல்லது ஒரு லைப்ரரியில் உள்ள கருத்து (comment) கூட இந்தத் தாக்குதலின் ஊடகமாக (payload) இருக்கலாம்.
- அதிகப்படியான அனுமதிகள்: AI ஏஜெண்டுகள் பெரும்பாலும் உங்கள் பயனர் அனுமதிகளுடன் (user permissions) இயங்குகின்றன. அவை உங்கள் SSH சாவிகள் (keys) மற்றும் API டோக்கன்களைப் படிக்க முடியும்.
- டூல் கால்கள் (Tool calls): கட்டளைகளை இயக்க AI 'tool calls'-களைப் பயன்படுத்துகிறது. பாதுகாப்புப் பயிற்சியைத் தவிர்க்க இந்தத் தாக்குதல் அந்த அழைப்புகளை இலக்கு வைக்கிறது.
உங்கள் பணிப்பாய்வை (workflow) எவ்வாறு பாதுகாப்பது:
- கோப்பு உள்ளடக்கங்களைச் சுத்திகரித்தல் (Sanitize): AI அவற்றை வாங்குவதற்கு முன், மறைக்கப்பட்ட எழுத்துக்கள் மற்றும் பொதுவான இன்ஜெக்ஷன் முறைகளை நீக்கவும்.
- சாண்ட்பாக்ஸ்களைப் (sandboxes) பயன்படுத்துங்கள்: நெட்வொர்க் அணுகல் இல்லாத மற்றும் 'read-only' கோப்பு முறைமைகளைக் கொண்ட கன்டெய்னர்களில் (containers) AI ஏஜெண்டுகளை இயக்கவும்.
- கடுமையான கொள்கைகளை வகுக்கவும்: அனுமதிக்கப்பட்ட கட்டளைகளின் பட்டியலை (whitelist) உருவாக்கவும். தரவை நகர்த்தும் அல்லது கோப்புகளை நீக்கும் எந்தவொரு கட்டளைக்கும் மனித ஒப்புதலைக் கட்டாயமாக்கவும்.
உங்கள் குறியீட்டு அமர்வுகளுக்கு முன் ஒரு விரைவான ஸ்கேன் செய்யலாம். உங்கள் கோப்புகளில் "ignore all previous" அல்லது "curl" மற்றும் "exfil" போன்ற சந்தேகத்திற்கிடமான சொற்கள் உள்ளனவா என்று சரிபார்க்கவும்.
AI குறியீட்டு கருவிகள் உற்பத்தித்திறனை அதிகரிக்கின்றன, ஆனால் உங்கள் வட்டில் (disk) உள்ள கோப்புகள் பாதுகாப்பானவை என்று அவை கருதுகின்றன. அவை பாதுகாப்பானவை அல்ல. ஒவ்வொரு கோப்பையும் நம்பகமற்ற உள்ளீடாக (untrusted input) கருதுங்கள்.
உங்கள் AI பணிப்பாய்வில் ப்ராம்ப்ட் இன்ஜெக்ஷன் அபாயங்களை எவ்வாறு கையாளுகிறீர்கள்?
ஆதாரம்: https://dev.to/tyson_cung/ai-coding-security-prompt-injection-is-hiding-in-your-project-files-4be9
