GitHub ತನ್ನ Copilot ડેಸ್ಕ್‌ಟಾಪ್ ಆ್ಯಪ್‌ನಲ್ಲಿ 'slash-command scanner' ಅನ್ನು ಪರಿಚಯಿಸಿದೆ. ಇದು ನೀವು ಕೋಡ್ ಅನ್ನು ಕಮಿಟ್ (commit) ಮಾಡುವ ಮೊದಲು, ಕಮಿಟ್ ಮಾಡದ ಕೋಡ್‌ನಲ್ಲಿರುವ ಐದು ಸಾಮಾನ್ಯ ಭದ್ರತಾ ದೋಷಗಳನ್ನು ಪರೀಕ್ಷಿಸುತ್ತದೆ. ಈ ವೈಶಿಷ್ಟ್ಯವು ಉಚಿತ ಬಳಕೆದಾರರು ಸೇರಿದಂತೆ ಎಲ್ಲಾ Copilot ಬಳಕೆದಾರರಿಗೆ ಲಭ್ಯವಿದ್ದು, ಕೇವಲ ಜುಲೈ 14 ರ ಆ್ಯಪ್ ಅಪ್‌ಡೇಟ್ ಅಗತ್ಯವಿದೆ.

AI-ಸೃಷ್ಟಿತ ಸ್ನಿಪ್ಪೆಟ್‌ಗಳು (snippets) ಬಗ್‌ಗಳ ಗುಪ್ತ ಮೂಲಗಳಾಗಿವೆ. ಇತ್ತೀಚಿನ ಅಧ್ಯಯನದ ಪ್ರಕಾರ, ಜನರೇಟಿವ್ ಮಾಡೆಲ್‌ಗಳಿಂದ ಉತ್ಪತ್ತಿಯಾಗುವ ಕೋಡ್‌ನ ಶೇ. 45 ರಷ್ಟು ಭಾಗದಲ್ಲಿ ಕನಿಷ್ಠ ಒಂದು ಭದ್ರತಾ ದೋಷವಿರುತ್ತದೆ; ಇದು ಸರಳ ಇಂಜೆಕ್ಷನ್ ಬಗ್‌ಗಳಿಂದ ಹಿಡಿದು ದುರ್ಬಲ ಕ್ರಿಪ್ಟೋಗ್ರಫಿಯವರೆಗೆ ಇರಬಹುದು. ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿಯೇ (locally) ಎತ್ತಿ ತೋರಿಸುವ ಮೂಲಕ, CI ಪೈಪ್‌ಲೈನ್‌ಗಳಲ್ಲಿ ಅಥವಾ ಇನ್ನೂ ಕೆಟ್ಟದಾಗಿ, ಪ್ರೊಡಕ್ಷನ್ ಹಂತದಲ್ಲಿ ಪತ್ತೆಯಾಗುವ ಬದಲು, ಡೆವಲಪರ್‌ಗಳು ಅವುಗಳನ್ನು ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಸರಿಪಡಿಸಬಹುದು ಎಂದು GitHub ಆಶಿಸುತ್ತದೆ.

ಇದು ಈಗ ಏಕೆ ಮುಖ್ಯವಾಗಿದೆ

ಡೆವಲಪರ್‌ಗಳು ದೀರ್ಘಕಾಲದಿಂದ ಪದರಗಳ ಭದ್ರತಾ ವ್ಯವಸ್ಥೆಯನ್ನು (layered security stack) ಅವಲಂಬಿಸಿದ್ದಾರೆ: Dependabot ದುರ್ಬಲ ಅವಲಂಬನೆಗಳ ಬಗ್ಗೆ ಎಚ್ಚರಿಸುತ್ತದೆ, CodeQL ஆனது CI/CD ನಲ್ಲಿ ಆಳವಾದ ಸ್ಟ್ಯಾಟಿಕ್ ಅನಾಲಿಸಿಸ್ ಅನ್ನು ನಡೆಸುತ್ತದೆ ಮತ್ತು ಮ್ಯಾನುಯಲ್ ಕೋಡ್ ರಿವ್ಯೂಗಳು ಲಾಜಿಕ್ ದೋಷಗಳನ್ನು ಪತ್ತೆಹಚ್ಚುತ್ತವೆ. Copilot ನ ಹೊಸ ಸ್ಕ್ಯಾನರ್ ಡೆವಲಪರ್‌ನ ಯಂತ್ರದಲ್ಲೇ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಮೊದಲ ರಕ್ಷಣಾ ಕವಚವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಇದರಿಂದ ಕೋಡ್ ಎಡಿಟರ್‌ನಿಂದ ಹೊರಬರುವ ಮೊದಲೇ ಸುಲಭವಾಗಿ ಪತ್ತೆಹಚ್ಚಬಹುದಾದ ದೋಷಗಳನ್ನು (low-hanging fruit) ಹಿಡಿಯಬಹುದು.

ಈ ಪರಿಕರದ ವ್ಯಾಪ್ತಿಯನ್ನು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಸೀಮಿತವಾಗಿರಿಸಲಾಗಿದೆ. ಇದು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಹುಡುಕುತ್ತದೆ:

  • Injection – SQL, shell, ಅಥವಾ ಅಂತಹ ಕಮಾಂಡ್-ಇಂಜೆಕ್ಷನ್ ಮಾದರಿಗಳು.
  • Cross-site scripting (XSS) – ವೆಬ್ ಸಂದರ್ಭಗಳಲ್ಲಿ ಬಳಕೆದಾರರು ನೀಡಿದ ಡೇಟಾವನ್ನು ಅಸುರಕ್ಷಿತವಾಗಿ ನಿರ್ವಹಿಸುವುದು.
  • Insecure data handling – ಅಕಸ್ಮಾತ್ ಲಾಗಿಂಗ್ ಅಥವಾ ರಹಸ್ಯ ಮಾಹಿತಿ (secrets) ಬಹಿರಂಗಗೊಳ್ಳುವುದು.
  • Path traversal – ಉದ್ದೇಶಿತ ಡೈರೆಕ್ಟರಿಯ ಹೊರಗಿನ ಫೈಲ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸುವುದು.
  • Weak cryptography – ಹಳೆಯದಾದ ಅಲ್ಗಾರಿದಮ್‌ಗಳು ಅಥವಾ ಹಾರ್ಡ್-ಕೋಡ್ ಮಾಡಲಾದ ಕೀಲಿಗಳನ್ನು (keys) ಬಳಸುವುದು.

AI-ಸಹಾಯದ ಕೋಡಿಂಗ್ ಈ ತಪ್ಪುಗಳನ್ನು ಪುನರಾವರ್ತಿಸುತ್ತದೆ ಎಂದು GitHub ನ ಆಂತರಿಕ ವಿಶ್ಲೇಷಣೆಯು ಹೇಳುತ್ತದೆ. ಇವುಗಳನ್ನು ಮೊದಲೇ ಗುರುತಿಸುವ ಮೂಲಕ, ಸ್ಕ್ಯಾನರ್ ಒಂದು ವೇಗದ ಫಿಲ್ಟರ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ; ಇದು ಡೆವಲಪರ್‌ಗಳು ಸ್ಪಷ್ಟವಾದ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು way ಮಾಡುತ್ತದೆ ಮತ್ತು ಆಳವಾದ ಆರ್ಕಿಟೆಕ್ಚರಲ್ ವಿಮರ್ಶೆಗಳನ್ನು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಇತರ ಪರಿಕರಗಳಿಗೆ ಬಿಡುತ್ತದೆ.

ಇದು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಭದ್ರತಾ ವರ್ಕ್‌ಫ್ಲೋಗೆ ಹೇಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ

ಭದ್ರತಾ ವ್ಯವಸ್ಥೆಯನ್ನು (security stack) ಒಂದು ಶ್ರೇಣಿಯಂತೆ ಭಾವಿಸಿ:

  • Copilot slash command – ಸ್ಪಷ್ಟವಾದ ಮಾದರಿಗಳಿಗಾಗಿ ಸ್ಥಳೀಯ ಮತ್ತು ತಕ್ಷಣದ ತಪಾಸಣೆ.
  • CodeQL – CI/CD ನಲ್ಲಿ ಸಂಪೂರ್ಣ ರೆಪೊಸಿಟರಿಯ ಮೇಲೆ ನಡೆಯುವ ಸಮಗ್ರ ಸ್ಟ್ಯಾಟಿಕ್ ಅನಾಲಿಸಿಸ್.
  • Dependabot – ತಿಳಿದಿರುವ ಲೈಬ್ರರಿ ದೋಷಗಳಿಗಾಗಿ ಗಮನಿಸುವ ಡಿಪೆಂಡೆನ್ಸಿ-ಫೋಕಸ್ಡ್ ಸ್ಕ್ಯಾನರ್.

ಹೊಸ Copilot ಕಮಾಂಡ್ CodeQL ಅಥವಾ Dependabot ಅನ್ನು ಬದಲಿಸುವುದಿಲ್ಲ; ಬದಲಾಗಿ ಇದು ಪತ್ತೆಹಚ್ಚುವ ಕೆಲಸದ ಒಂದು ಭಾಗವನ್ನು ಮೊದಲೇ (upstream) ಮಾಡುತ್ತದೆ. ಡೆವಲಪರ್ ಕಮಾಂಡ್ ರನ್ ಮಾಡಿದಾಗ, ಆ್ಯಪ್ ಪ್ರಸ್ತುತ 'diff' ಅನ್ನು ಪ್ಯಾಕೇಜ್ ಮಾಡಿ, ವಿಶ್ಲೇಷಣೆಗಾಗಿ ರಿಮೋಟ್ ಮಾಡೆಲ್‌ಗೆ ಕಳುಹಿಸುತ್ತದೆ ಮತ್ತು ಸಂಕ್ಷಿಪ್ತವಾದ ಫಲಿತಾಂಶಗಳ ಪಟ್ಟಿಯನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಇದು ಸೆಕೆಂಡುಗಳಲ್ಲೇ ಪೂರ್ಣಗೊಳ್ಳುವುದರಿಂದ, ಡೆವಲಪರ್‌ಗಳು ತಕ್ಷಣವೇ ಎಡಿಟ್ ಮಾಡಿ ಮರು-ಕಮಿಟ್ (recommit) ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.

ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸುವುದು ಹೇಗೆ

  1. Copilot ડેಸ್ಕ್‌ಟಾಪ್ ಕ್ಲೈಂಟ್ ಅನ್ನು ಜುಲೈ 14 ರ ಬಿಡುಗಡೆಗೆ ಅಪ್‌ಡೇಟ್ ಮಾಡಿ.
  2. ಎಂದಿನಂತೆ ಕೋಡ್ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಿ.
  3. Copilot ಚಾಟ್ ಪೇನ್ ತೆರೆಯಿರಿ ಮತ್ತು slash command ಟೈಪ್ ಮಾಡಿ (ನಿಖರವಾದ ಸಿಂಟ್ಯಾಕ್ಸ್ UI ನಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ).
  4. ಲಭ್ಯವಾದ ಸಂಭಾವ್ಯ ಭದ್ರತಾ ದೋಷಗಳ ಪಟ್ಟಿಯನ್ನು ಪರಿಶೀಲಿಸಿ.
  5. ಕೋಡ್ ಅನ್ನು ತಿದ್ದಿ ಕಮಿಟ್ ಮಾಡಿ.

ಈ ವರ್ಕ್‌ಫ್ಲೋ ಒಂದು ವೇಗದ 'lint run' ಅನ್ನು ಹೋಲುತ್ತದೆ: ಯಾವುದೇ ಪ್ರತ್ಯೇಕ ಭದ್ರತಾ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಇಲ್ಲ, CI ಕೆಲಸಕ್ಕಾಗಿ ಕಾಯುವ ಅವಶ್ಯಕತೆಯೂ ಇಲ್ಲ.

ಮಿತಿಗಳು ಮತ್ತು ವಿರೋಧಾತ್ಮಕ ವಾದ

ಸ್ಕ್ಯಾನರ್ ಎಂಬುದು ಕೇವಲ ಒಂದು ಸಹಾಯಕ ಎಂಬ ಅಂಶವನ್ನು GitHub ಒತ್ತಿ ಹೇಳುತ್ತದೆ; ಇದು ಮಾನವ ನಿರ್ಧಾರ ಅಥವಾ ಆಳವಾದ ಪರೀಕ್ಷೆಗೆ ಪರ್ಯಾಯವಲ್ಲ. ಇದು ಡಿಸೈನ್-ಮಟ್ಟದ ದೋಷಗಳು, ಮಿಸ್ಸಿಂಗ್ ಪರ್ಮಿಷನ್‌ಗಳು ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್‌ನ ವಿಶಾಲ ದೃಷ್ಟಿಕೋ