𝗬𝗼𝘂𝗿 𝗥𝗲𝗽𝗼 𝗖𝗼𝗻𝘁𝗲𝘅𝘁 𝗜𝘀 𝗔𝗻 𝗔𝘁𝘁𝗮𝗰𝗸 𝗦𝘂𝗿𝗳𝗮𝗰𝗲 𝗡𝗼𝘄
AI ಕೋಡಿಂಗ್ ಸುರಕ್ಷತೆಯು ಕೇವಲ ಒಂದು ಮಾಡೆಲ್ ಕೆಟ್ಟ ಕೋಡ್ ಬರೆಯುವುದನ್ನು ತಡೆಯುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಿನದಾಗಿದೆ.
ನಿಜವಾದ ಅಪಾಯವು ಏಜೆಂಟ್ ಬರೆಯುವ ಮೊದಲು ಏನನ್ನು ಓದುತ್ತದೆ ಎಂಬುದರಲ್ಲಿದೆ. ನಿಮ್ಮ ರೆಪೊಸಿಟರಿಯು ಕೇವಲ ಕೋಡ್ಗಾಗಿ ಇರುವ ಸ್ಥಳವಲ್ಲ. ಇದು ಈಗ AI ಏಜೆಂಟ್ಗಳಿಗಾಗಿ ಒಂದು ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಆಗಿದೆ.
ನಿಮ್ಮ ರೆಪೋದಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದೂ ಏಜೆಂಟ್ಗೆ ಮಾರ್ಗದರ್ಶನ ನೀಡುವ ಸಾಮಗ್ರಿಯಾಗಿ ಬದಲಾಗಬಹುದು:
- ಹಳೆಯ README ಫೈಲ್ಗಳು
- ಹಳೆಯದಾದ ಮೈಗ್ರೇಷನ್ ನೋಟ್ಸ್
- ಹಳೆಯದಾದ ಡಾಕ್ಯುಮೆಂಟೇಶನ್
- ಗುಪ್ತ ಪ್ರಾಜೆಕ್ಟ್ ನಿಯಮಗಳು (conventions)
- ಲೋಕಲ್ ಇನ್ಸ್ಟ್ರಕ್ಷನ್ ಫೈಲ್ಗಳು
- ಡಿಪೆಂಡೆನ್ಸಿ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು ಮತ್ತು ಶೆಲ್ ಹುಕ್ಸ್ (shell hooks)
ಡೆವಲಪರ್ಗಳು ಹೆಚ್ಚಾಗಿ ಈ ಫೈಲ್ಗಳನ್ನು ಹಾನಿಕಾರಕವಲ್ಲದ ಕಸ ಎಂದು ಪರಿಗಣಿಸುತ್ತಾರೆ. AI ಏಜೆಂಟ್ ಸಾಮಾಜಿಕ ಸಂದರ್ಭವನ್ನು (social context) ನೋಡುವುದಿಲ್ಲ. ಅದು ಪಠ್ಯ, ಪರಿಕರಗಳು ಮತ್ತು ಮಾದರಿಗಳನ್ನು ಮಾತ್ರ ನೋಡುತ್ತದೆ. ನಿಮ್ಮ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಹಳೆಯದಾಗಿದ್ದರೆ ಅಥವಾ ಅಸ್ತವ್ಯಸ್ತವಾಗಿದ್ದರೆ, ಏಜೆಂಟ್ ಆ ಅಸ್ತವ್ಯಸ್ತತೆಯನ್ನು ಮಾನದಂಡವೆಂದು ಪರಿಗಣಿಸುತ್ತದೆ.
ಕೆಟ್ಟ ಕಾಂಟೆಕ್ಸ್ಟ್ ಎರಡು ರೂಪಗಳಲ್ಲಿ ಬರುತ್ತದೆ:
- ಬೇಸರ ತರಿಸುವ ದೋಷಗಳು (Boring errors):
- ಹಳೆಯದಾದ ಸೆಟಪ್ ಸೂಚನೆಗಳು
- ಬಳಕೆಯಲ್ಲಿಲ್ಲದ (deprecated) APIs ಬಳಸುವ ಉದಾಹರಣೆಗಳು
- ಹಳೆಯ ಆರ್ಕಿಟೆಕ್ಚರ್ ನೋಟ್ಸ್
- ಪ್ರತಿಕೂಲ ದಾಳಿಗಳು (Adversarial attacks):
- ಫೈಲ್ಗಳ ಒಳಗಿರುವ ಪ್ರಾಂಪ್ಟ್ ಇಂಜೆಕ್ಷನ್ (Prompt injection)
- ದುರುದ್ದೇಶಪೂರಿತ ಡಿಪೆಂಡೆನ್ಸಿ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು
- ಕೋಡ್ ಅನ್ನು ಅಸುರಕ್ಷಿತ ಮಾದರಿಗಳತ್ತ ತಳ್ಳುವ ವಿಷಪೂರಿತ (poisoned) ಉದಾಹರಣೆಗಳು
ನೀವು ಏಜೆಂಟ್ಗೆ ಟೆಸ್ಟ್ಗಳನ್ನು ರನ್ ಮಾಡಲು, ಫೈಲ್ಗಳನ್ನು ಹುಡುಕಲು ಅಥವಾ ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್ಗಳನ್ನು (pull requests) ತೆರೆಯಲು ಅಧಿಕಾರ ನೀಡಿದಾಗ, ನೀವು ಅಪಾಯದ ವ್ಯಾಪ್ತಿಯನ್ನು (blast radius) ಹೆಚ್ಚಿಸುತ್ತೀರಿ. ಹುಕ್ ಸಿಸ್ಟಮ್ (hook system) ಎಂಬುದು ಕೇವಲ ಉತ್ಪಾದಕತೆಯ ಸಾಧನವಲ್ಲ. ಅದು ಆಟೊಮೇಷನ್ ಆಗಿದೆ. ನೀವು ಅದನ್ನು ಆಟೊಮೇಷನ್ನಂತೆ ಪರಿಗಣಿಸಬೇಕು.
ನಿಮ್ಮ ವರ್ಕ್ಫ್ಲೋ ಬಗ್ಗೆ ಈ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳಿ:
- ಹುಕ್ ಅನ್ನು ಯಾರು ಎಡಿಟ್ ಮಾಡಬಹುದು?
- ಏಜೆಂಟ್ ಯಾವ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ಗಳನ್ನು ನೋಡಬಹುದು?
- ಏಜೆಂಟ್ ಡೆವಲಪರ್ ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳನ್ನು (credentials) ಪಡೆದುಕೊಳ್ಳುತ್ತದೆಯೇ?
- ಆ ಟೂಲ್ ರೆಪೋ ಹೊರಗೆ ಬರೆಯುತ್ತದೆಯೇ?
ಏಜೆಂಟ್ಗಳನ್ನು ಮ್ಯಾಜಿಕ್ ಟೆಕ್ಸ್ಟ್ ಬಾಕ್ಸ್ಗಳೆಂದು ಪರಿಗಣಿಸಬೇಡಿ. ಅವುಗಳನ್ನು ಡೆವಲಪರ್ ಇನ್ಫ್ರಾಸ್ಟ್ರಕ್ಚರ್ (infrastructure) ಎಂದು ಪರಿಗಣಿಸಿ.
ನಿಮ್ಮ ಏಜೆಂಟಿಕ್ ವರ್ಕ್ಫ್ಲೋವನ್ನು ಹೇಗೆ ಸುರಕ್ಷಿತಗೊಳಿಸುವುದು:
- ವ್ಯಾಪ್ತಿಯನ್ನು ಸೀಮಿತಗೊಳಿಸಿ: ಏಜೆಂಟ್ಗೆ ಕೇವಲ ಮೂರು ಫೈಲ್ಗಳ ಅಗತ್ಯವಿದ್ದರೆ, ಇಡೀ ಪ್ರಾಜೆಕ್ಟ್ಗೆ ಅದನ್ನು ಬಳಸಬೇಡಿ.
- ಕಾಂಟೆಕ್ಸ್ಟ್ ಅನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಿ: ಹಳೆಯದಾದ ಡಾಕ್ಸ್ ಮತ್ತು ಹಳೆಯ ಸೂಚನೆಗಳನ್ನು ಅಳಿಸಿ ಅಥವಾ ಸರಿಪಡಿಸಿ.
- ಎಕ್ಸಿಕ್ಯೂಶನ್ ಅನ್ನು ಬಲಪಡಿಸಿ: ಅಪಾಯಕಾರಿ ಕೆಲಸಗಳನ್ನು ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ನಲ್ಲಿ (sandbox) ರನ್ ಮಾಡಿ. ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳನ್ನು ಸೀಮಿತ ವ್ಯಾಪ್ತಿಯಲ್ಲಿಡಿ.
- ದೃಶ್ಯತೆಯನ್ನು (visibility) ಬಯಸಿ: ಏಜೆಂಟ್ ನಿಖರವಾಗಿ ಏನನ್ನು ಓದಿತು, ಯಾವ ಟೂಲ್ಗಳನ್ನು ಬಳಸಿತು ಮತ್ತು ಯಾವ ಕಮಾಂಡ್ಗಳನ್ನು ರನ್ ಮಾಡಿತು ಎಂಬುದನ್ನು ತಿಳಿಯಿರಿ.
AI ಏಜೆಂಟ್ ಎಂಬುದು ಶೆಲ್ ಅಕ್ಸೆಸ್ (shell access) ಮತ್ತು ಹೆಚ್ಚಿನ ಟೈಪಿಂಗ್ ವೇಗ ಹೊಂದಿರುವ ಜೂನಿಯರ್ ಡೆವಲಪರ್ನಂತೆ. ನೀವು ಹೊಸ ಜೂನಿಯರ್ ಡೆವಲಪರ್ಗೆ ಮೊದಲ ದಿನವೇ ಪೂರ್ಣ ಪ್ರೊಡಕ್ಷನ್ ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳನ್ನು ನೀಡುವುದಿಲ್ಲ. ನೀವು ಅವರಿಗೆ ಸಣ್ಣ ಕೆಲಸಗಳು, ಸ್ವಚ್ಛವಾದ ಕಾಂಟೆಕ್ಸ್ಟ್ ಮತ್ತು ಸೀಮಿತ ಅನುಮತಿಗಳನ್ನು ನೀಡುತ್ತೀರಿ.
ನಿಮ್ಮ ಏಜೆಂಟ್ಗಳನ್ನೂ ಅದೇ ರೀತಿ ಪರಿಗಣಿಸಿ.
Source: https://dev.to/hefty_69a4c2d631c9dd70724/your-repo-context-is-an-attack-surface-now-5dhj
Optional learning community: https://t.me/GyaanSetuAi