AI வசதியுடன் கூடிய GitHub Actions, ஒரே ஒரு கமெண்ட் (comment) மூலம் தவறாகப் பயன்படுத்தப்படலாம்; இது API சாவிகள், கிளவுட் டோக்கன்கள் மற்றும் பிற ரகசியங்களை கசியவிடக்கூடும். ஒரு பாதுகாப்பு ஆராய்ச்சியாளர் 22 திறந்த மூல களஞ்சியங்களைக் (open-source repositories) கண்டறிந்தார். அங்கு ஒரு பொதுவான தூண்டுதல் (public trigger), "skip prompts" flag பயன்படுத்தப்பட்ட ஒரு AI கருவி மற்றும் வெளிப்படையாகத் தெரியும் ரகசியங்கள் ஆகியவை இணைந்து, தரவுகளைத் திருடுவதற்கான ஒரு நேரடி வழிமுறையை உருவாக்குகின்றன.
இந்த குறைபாடு எவ்வாறு செயல்படுகிறது
தற்போது திட்டங்கள் (projects) AI ஏஜெண்டுகளை—Claude Code, GitHub Copilot CLI மற்றும் அது போன்ற கருவிகளை—நேரடியாக CI பைப்லைன்களில் இணைக்கின்றன. ஒரு workflow படி (step) ஒரு shell command-ஐ இயக்குகிறது மற்றும் பெரும்பாலும் அந்த கருவி ஊடாடும் அனுமதி கோரிக்கைகளை (interactive permission requests) புறக்கணிக்க வேண்டும் என்று கூறும் ஒரு flag-ஐச் சேர்க்கிறது. ஒரு பொதுவான உள்ளீடு—ஒரு issue, ஒரு comment அல்லது ஒரு pull-request தலைப்பு—மூலம் workflow தொடங்கப்படும்போது, தாக்குபவர் AI ஒரு கட்டளையாகக் கருதும் ஒரு வரியைத் தட்டச்சு செய்தால் போதுமானது.
"skip prompts" flag மூலம் ஏற்கனவே கட்டுப்பாடற்ற shell அணுகல் வழங்கப்பட்டுள்ள AI, workflow வெளிப்படுத்தும் எந்தவொரு environment variable அல்லது கோப்பையும் வாசிக்கும். அந்த வேலையில் (job) API சாவிகள், கிளவுட் சேவை டோக்கன்கள் அல்லது முழு சேவை கணக்குத் தரவுகள் (service-account credentials) போன்ற ரகசியங்களும் ஏற்றப்பட்டால், AI அந்த மதிப்புகளைத் தாக்குபவர் கட்டுப்பாட்டில் உள்ள ஒரு சர்வருக்கு அனுப்பும். இதில் குறியீடு மாற்றம் (code change) தேவையில்லை, புதிய சார்பு (dependency) தேவையில்லை, வெறும் சாதாரணமான ஒரு கமெண்ட் மட்டுமே போதுமானது.
நிஜ உலக உதாரணங்கள்
ஆராய்ச்சியாளர் ஏற்கனவே சரிசெய்யப்பட்ட (patched) மூன்று பாதிப்புக்குள்ளான களஞ்சியங்களை உறுதிப்படுத்தியுள்ளார்:
- pymc-labs/pymc-marketing – prompt injection மூலம் ஒரு Anthropic API சாவியைப் பெற ஒரு பொதுவான issue பயன்படுத்தப்படலாம்.
- MadAppGang/dingo – இந்த workflow Claude Code-க்கு முழுமையான Bash அணுகலை வழங்கியது மற்றும் ஒரே வேலையில் இரண்டு ரகசியங்களை வெளிப்படுத்தியது.
- MadAppGang/claudish – dingo திட்டத்தைப் போலவே அதே பாதிப்புள்ள டெம்ப்ளேட்டைப் பயன்படுத்தியது.
ஒரு கண்டுபிடிப்பில் நேரடி கிளவுட்-சேவை கணக்கு சாவி (live cloud-service account key) இருந்தது, அதை ஆராய்ச்சியாளர் ஒரு முக்கிய AI வழங்குநரின் பாதுகாப்புத் குழுவிடம் நேரடியாகத் தெரிவித்தார். மேலும் பன்னிரண்டு அறிக்கைகள் பராமரிப்பாளர்களிடம் (maintainers) நிலுவையில் உள்ளன; சரிசெய்தல் பணிகள் செயல்பாட்டிற்கு வரும் வரை அவர்களின் பெயர்கள் வெளியிடப்படாமல் உள்ளன.
இதில் உள்ள ஆபத்து என்ன
ஒரு தாக்குபவர் ரகசியத்தைத் திருடும்போது, அதன் பாதிப்பு உடனடியானது மற்றும் செலவுமிக்கதாக இருக்கலாம். ஒரு கிளவுட்-சேவை கணக்கு சாவி, கணினி வளங்கள் (compute resources), ஸ்டோரேஜ் பக்கெட்டுகள் (storage buckets) மற்றும் பிற கட்டணச் சேவைகளைத் தடையின்றி அணுக வழிவகை செய்கிறது. ஒரு பெரிய மொழி மாதிரி (large-language-model) வழங்குநருக்கான API சாவி, வரம்பற்ற வினவல்களை (queries) இயக்கலாம், இது ஆயிரக்கணக்கான டாலர் கட்டணங்களை உருவாக்கக்கூடும். இந்தத் தாக்குதல் CI சூழலுக்குள்ளேயே நடப்பதால், பாதிப்பு அடுத்தடுத்த நிலைகளுக்கும் பரவலாம்: பாதிக்கப்பட்ட runner மூலம் உருவாக்கப்படும் எந்தவொரு artifact-லும் தீங்கிழைக்கும் குறியீடு இருக்கலாம், இது ஒரு தனி களஞ்சியத்தையே சப்ளை-செயின் வெக்டராக (supply-chain vector) மாற்றக்கூடும்.
AI உதவியுடன் கூடிய CI-ஐ நம்பியிருக்கும் குழுக்களுக்கு, இது ஒரு கடுமையான சவாலாகும். தானாக உருவாக்கப்பட்ட குறியீடு, linting அல்லது ஆவணமாக்கல் ஆகியவற்றின் வசதியானது, ஒரு பொதுவான கமெண்ட் மறைமுகமான பேக் டோர் (covert backdoor) ஆக மாறும் அபாயத்துடன் ஒப்பிடப்பட வேண்டும்.
இந்த பாதிப்பைக் கண்டறிவது ஏன் கடினம்
ஆராய்ச்சியாளர் ஆரம்பத்தில் ஆறு அறிக்கைகளைத் தாக்கல் செய்தார், அவை பின்னர் திரும்பப் பெறப்பட்டன. அந்தத் திரும்பப் பெறுதல்கள் GitHub Actions-ன் அனுமதிச் சோதனைகள் (permission checks) பற்றிய அனுமானங்களால் ஏற்பட்டதே தவிர, Action-ன் மூலக் குறியீட்டை (source code) வரி வரியாக ஆய்வு செய்ததால் அல்ல. ஆவணங்கள் மற்றும் உள்ளுணர்வு தவறாக வழிநடத்தலாம்; ஒரு AI வசதியுடன் கூடிய படிநிலையின் பாதுகாப்பு நிலையை (security posture) உறுதிப்படுத்த ஒரே நம்பகமான வழி, அந்த கருவியை இயக்கும் குறியீடு மற்றும் அதை இணைக்கும் workflow YAML ஆகியவற்றை ஆய்வு செய்வதே ஆகும்.
தணிப்புப் பட்டியல் (Mitigation checklist)
நீங்கள் ஒரு GitHub Actions workflow-க்குள் ஒரு AI CLI அல்லது அது போன்ற கருவியைப் பயன்படுத்தினால், இணைப்பதற்கு (merging) முன் இந்த இரண்டு கேள்விகளுக்குப் பதிலளியுங்கள்:
workflow-ஐ யார் தூண்ட முடியும்? தூண்டுதல்களை நம்பகமான நிகழ்வுகளுக்கு (எ.கா. பாதுகாக்கப்பட்ட கிளைகளுக்கு (protected branches) செய்யப்படும் புஷ்கள்) மட்டுப்படுத்தவும் அல்லது வெளிப்படையான பங்களிப்பாளர்களால் தொடங்கப்படும் இயக்கங்களுக்குத் தெளிவான அனுமதியைக் கோரவும். கூடுதல் கட்டுப்பாடுகள் இன்றி
on: issue_commentஅல்லதுon: issuesஆகியவற்றைத் தவிர்க்கவும்.ஒரே வேலையில் (job) என்ன ரகசியங்கள் ஏற்றப்படுகின்றன? கட்டுப்பாடற்ற shell அணுகல் கொண்ட ஒரு AI ஏஜெண்ட்டை இயக்கும் அதே வேலையில், API சாவிகள், கிளவுட் டோக்கன்கள் அல்லது சேவை கணக்குத் தரவுகளை ஒருபோதும் வெளிப்படுத்த வேண்டாம். ரகசியங்கள் அதிகம் உள்ள படிகளை, AI கருவிகளை அழைக்காத தனிமைப்படுத்தப்பட்ட jobs அல்லது runners-களாகப் பிரிக்கவும்.
கூடுதல் பாதுகாப்பு நடவடிக்கைகள்:
- அனுமதி கோரும் (permission prompts) flag-ஐ நீக்கவும், இதன் மூலம் shell கட்டளைகளைச் செயல்படுத்தும் முன் AI கருவி தெளிவான உறுதிப்படுத்தலைக் கோருவதை உறுதி செய்யலாம்.
- AI கருவி வாசிக்கக்கூடிய எந்தவொரு environment variable-ஐயும் சுத்திகரிக்க அல்லது மறைக்க (sanitizes or redacts) ஒரு படிநிலையைச் சேர்க்கவும்.
- தன்னிச்சையான முனையங்களுக்குத் (arbitrary endpoints) தரவுகள் திருடப்படுவதைத் தடுக்க, நெட்வொர்க் எக்ரெஸ் கட்டுப்பாடுகள் (network egress controls) கொண்ட self-hosted runners-களைப் பயன்படுத்தவும்.
எதிர் கருத்து: CI-இல் AI-இன் பயன்பாடு
உற்பத்தித்திறன் அதிகரிப்பு, இதில் உள்ள அபாயத்தை விட மேலானது என்று ஆதரவாளர்கள் வாதிடுகின்றனர். தானியங்கி குறியீடு பரிந்துரைகள் மதிப்பாய்வு நேரத்தைக் குறைக்கின்றன, மேலும் AI மூலம் இயக்கப்படும் சோதனைகள் பிழைகளை முன்கூட்டியே கண்டறிய உதவுகின்றன. இருப்பினும், அதே வசதி தாக்குதல் பரப்பையும் (attack surface) விரிவுபடுத்துகிறது. முக்கியமானது AI-ஐ கைவிடுவது அல்ல, மாறாக shell-நிலை அதிகாரங்களைக் கொண்ட எந்தவொரு கருவியையும் ஒரு சாத்தியமான தாக்குதல் காரணியாகக் கருதுவதே ஆகும்.
அடுத்து கவனிக்க வேண்டியவை
இந்தக் கண்டுபிடிப்புகள் AI-ஆல் இயங்கும் Actions-களுக்குக் கடுமையான இயல்புநிலை அனுமதிகளை வழங்குவது குறித்து GitHub-ன் பாதுகாப்பு மன்றங்களில் ஏற்கனவே விவாதங்களைத் தூண்டியுள்ளன. எதிர்காலத் தள மேம்படுத்தல்களில் பின்வருவன இருக்கலாம்:
- AI கருவிகள் நேரடி shell அணுகல் இன்றி ஒரு sandboxed சூழலில் இயங்குவதை உறுதி செய்யும் ஒரு flag.
- issue விவரங்கள் அல்லது கருத்துகளில் prompt-injection முறைகளைக் கண்டறியும் உள்ளமைக்கப்பட்ட வசதி.
- ஒரு workflow பொதுவான தூண்டுதல்களையும் (public triggers), ரகசியத் தகவல்கள் கொண்ட வேலைகளையும் (secret-laden jobs) ஒன்றாக இணைக்கும்போது தானியங்கி எச்சரிக்கைகள்.
தற்போதைக்கு, இதற்கான பொறுப்பு repository பராமரிப்பாளர்களிடமே உள்ளது. கண்டறியப்பட்ட 22 repositories-கள் இந்தச் சிக்கல் தனித்தானது அல்ல என்பதைக் காட்டுகின்றன; இதே போன்ற workflow முறையைப் பின்பற்றும் எந்தவொரு திட்டமும் பாதிப்புக்குள்ளாகக்கூடியது. ஒரு தாக்குதல் நடத்துபவர் சிக்கலைக் கண்டறிவதற்கு முன்பே, CI அமைப்புகளை (configurations) விரைவாகத் தணிக்கை செய்வதன் மூலம் இந்தப் பிரச்சனையைத் தெரிந்துகொள்ள முடியும்.
சுருக்கமாக: ஒரு பொதுவான GitHub issue-வில் உள்ள ஒரே ஒரு வரி உரை, உங்கள் CI சூழலின் மீது ஒரு AI agent-க்கு முழுமையான கட்டுப்பாட்டை வழங்கக்கூடும் மற்றும் அங்கு நீங்கள் சேமித்து வைத்துள்ள ரகசியங்களைத் திருடவும் வழிவகுக்கும். உங்கள் workflows-களை யார் தொடங்க முடியும் என்பதைச் சரிபார்க்கவும், AI-ஆல் இயக்கப்படும் நிலைகளில் இருந்து ரகசியங்களைத் தள்ளி வைக்கவும், மற்றும் கட்டுப்பாடற்ற அனுமதிகளை வழங்கும் ஒவ்வொரு flag-ஐயும் கூர்ந்து கவனிக்கவும். ஒரு பாதுகாப்பு மீறலால் ஏற்படும் பாதிப்பு, ஒரு முறையான ஆய்விற்கான முயற்சியை விடப் பல மடங்கு அதிகமாக இருக்கும்.
