GitHub ਨੇ Copilot desktop app ਵਿੱਚ ਇੱਕ slash-command scanner ਲਾਂਚ ਕੀਤਾ ਹੈ ਜੋ commit ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ uncommitted code ਵਿੱਚ ਪੰਜ ਆਮ ਸੁਰੱਖਿਆ ਖਾਮੀਆਂ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ। ਇਹ ਫੀਚਰ ਮੁਫ਼ਤ ਵਰਤੋਂ ਵਾਲੇ (free tier) ਯੂਜ਼ਰਾਂ ਸਮੇਤ ਸਾਰੇ Copilot ਯੂਜ਼ਰਾਂ ਲਈ ਉਪਲਬਧ ਹੈ, ਅਤੇ ਇਸ ਲਈ ਸਿਰਫ਼ ਐਪ ਦੇ 14 ਜੁਲਾਈ ਵਾਲੇ ਅੱਪਡੇਟ ਦੀ ਲੋੜ ਹੈ।
AI ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੇ ਗਏ snippets ਬੱਗਸ (bugs) ਦਾ ਇੱਕ ਲੁਕਿਆ ਹੋਇਆ ਸਰੋਤ ਹਨ। ਇੱਕ ਤਾਜ਼ਾ ਅਧਿਐਨ ਵਿੱਚ ਪਾਇਆ ਗਿਆ ਹੈ ਕਿ generative models ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੇ ਗਏ 45% ਕੋਡ ਵਿੱਚ ਘੱਟੋ-ਘੱਟ ਇੱਕ vulnerability ਹੁੰਦੀ ਹੈ, ਜਿਸ ਵਿੱਚ ਸਧਾਰਨ injection bugs ਤੋਂ ਲੈ ਕੇ ਕਮਜ਼ੋਰ cryptography ਤੱਕ ਸ਼ਾਮਲ ਹਨ। ਇਹਨਾਂ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਸਥਾਨਕ ਤੌਰ 'ਤੇ (locally) ਸਾਹਮਣੇ ਲਿਆ ਕੇ, GitHub ਨੂੰ ਉਮੀਦ ਹੈ ਕਿ ਡਿਵੈਲਪਰ ਇਹਨਾਂ ਨੂੰ CI pipelines ਵਿੱਚ ਜਾਂ ਹੋਰ ਮਾੜਾ, production ਵਿੱਚ ਪਤਾ ਲੱਗਣ ਦੀ ਬਜਾਏ ਕੁਝ ਹੀ ਸਕਿੰਟਾਂ ਵਿੱਚ ਠੀਕ ਕਰ ਸਕਦੇ ਹਨ।
ਇਹ ਹੁਣ ਕਿਉਂ ਮਹੱਤਵਪੂਰਨ ਹੈ
ਡਿਵੈਲਪਰ ਲੰਬੇ ਸਮੇਂ ਤੋਂ ਇੱਕ ਲੇਅਰਡ ਸੁਰੱਖਿਆ ਸਟੈਕ (layered security stack) 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਆ ਰਹੇ ਹਨ: Dependabot ਕਮਜ਼ੋਰ dependencies 'ਤੇ ਚੇਤਾਵਨੀ ਦਿੰਦਾ ਹੈ, CodeQL CI/CD ਵਿੱਚ ਡੂੰਘੀ static analysis ਕਰਦਾ ਹੈ, ਅਤੇ ਮੈਨੂਅਲ ਕੋਡ ਰਿਵਿਊ ਲੌਜਿਕ ਗਲਤੀਆਂ ਨੂੰ ਫੜਦੇ ਹਨ। Copilot ਦਾ ਨਵਾਂ scanner ਸੁਰੱਖਿਆ ਦੀ ਇੱਕ ਪਹਿਲੀ ਲਾਈਨ ਜੋੜਦਾ ਹੈ ਜੋ ਡਿਵੈਲਪਰ ਦੀ ਮਸ਼ੀਨ 'ਤੇ ਚੱਲਦਾ ਹੈ, ਅਤੇ ਕੋਡ ਦੇ ਐਡੀਟਰ ਤੋਂ ਬਾਹਰ ਜਾਣ ਤੋਂ ਪਹਿਲਾਂ ਹੀ "low-hanging fruit" (ਸੌਖੀਆਂ ਖਾਮੀਆਂ) ਨੂੰ ਫੜ ਲੈਂਦਾ ਹੈ।
ਇਸ ਟੂਲ ਦਾ ਦਾਇਰਾ ਜਾਣਬੁੱਝ ਕੇ ਸੀਮਤ ਰੱਖਿਆ ਗਿਆ ਹੈ। ਇਹ ਇਹਨਾਂ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ:
- Injection – SQL, shell, ਜਾਂ ਇਸ ਤਰ੍ਹਾਂ ਦੇ command-injection ਪੈਟਰਨ।
- Cross-site scripting (XSS) – ਵੈੱਬ ਸੰਦਰਭਾਂ ਵਿੱਚ ਯੂਜ਼ਰ ਦੁਆਰਾ ਦਿੱਤੇ ਗਏ ਡੇਟਾ ਦੀ ਅਸੁਰੱਖਿਅਤ ਵਰਤੋਂ।
- Insecure data handling – ਗਲਤੀ ਨਾਲ secrets ਦੀ logging ਜਾਂ ਉਹਨਾਂ ਦਾ ਪ੍ਰਗਟ ਹੋਣਾ।
- Path traversal – ਨਿਰਧਾਰਤ ਡਾਇਰੈਕਟਰੀ ਤੋਂ ਬਾਹਰ ਦੀਆਂ ਫਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚਣ ਦੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ।
- Weak cryptography – ਪੁਰਾਣੇ ਐਲਗੋਰਿਦਮ ਜਾਂ hard-coded keys ਦੀ ਵਰਤੋਂ।
GitHub ਦੇ ਅੰਦਰੂਨੀ ਵਿਸ਼ਲੇਸ਼ਣ ਅਨੁਸਾਰ AI-assisted coding ਇਹਨਾਂ ਗਲਤੀਆਂ ਨੂੰ ਦੁਹਰਾਉਂਦੀ ਹੈ। ਇਹਨਾਂ ਨੂੰ ਜਲਦੀ ਫਲੈਗ ਕਰਕੇ, scanner ਇੱਕ ਤੇਜ਼ ਫਿਲਟਰ ਵਜੋਂ ਕੰਮ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਡਿਵੈਲਪਰ ਸਪੱਸ਼ਟ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰ ਸਕਦੇ ਹਨ ਅਤੇ ਡੂੰਘੇ ਆਰਕੀਟੈਕਚਰਲ ਰਿਵਿਊ ਨੂੰ ਮੌਜੂਦਾ ਟੂਲਸ 'ਤੇ ਛੱਡ ਸਕਦੇ ਹਨ।
ਇਹ ਮੌਜੂਦਾ ਸੁਰੱਖਿਆ ਵਰਕਫਲੋ ਵਿੱਚ ਕਿਵੇਂ ਫਿੱਟ ਹੁੰਦਾ ਹੈ
ਸੁਰੱਖਿਆ ਸਟੈਕ ਨੂੰ ਇੱਕ ਲੜੀਵਾਰ (hierarchy) ਵਜੋਂ ਸਮਝੋ:
- Copilot slash command – ਸਪੱਸ਼ਟ ਪੈਟਰਨਾਂ ਲਈ ਇੱਕ ਸਥਾਨਕ, ਤੁਰੰਤ ਜਾਂਚ।
- CodeQL – ਇੱਕ ਵਿਆਪਕ static analysis ਜੋ CI/CD ਵਿੱਚ ਪੂਰੇ ਰਿਪੋਜ਼ੀਟਰੀ 'ਤੇ ਚੱਲਦਾ ਹੈ।
- Dependabot – ਇੱਕ dependency-focused scanner ਜੋ ਜਾਣੇ-ਪਛਾਣੇ ਲਾਇਬ੍ਰੇਰੀ vulnerabilities 'ਤੇ ਨਜ਼ਰ ਰੱਖਦਾ ਹੈ।
ਨਵਾਂ Copilot command CodeQL ਜਾਂ Dependabot ਦੀ ਜਗ੍ਹਾ ਨਹੀਂ ਲੈਂਦਾ; ਇਹ ਡਿਟੈਕਸ਼ਨ ਦੇ ਕੰਮ ਦੇ ਕੁਝ ਹਿੱਸੇ ਨੂੰ ਪਹਿਲਾਂ ਹੀ (upstream) ਖਿਸਕਾ ਦਿੰਦਾ ਹੈ। ਜਦੋਂ ਕੋਈ ਡਿਵੈਲਪਰ command ਚਲਾਉਂਦਾ ਹੈ, ਤਾਂ ਐਪ ਮੌਜੂਦਾ diff ਨੂੰ ਪੈਕੇਜ ਕਰਦੀ ਹੈ, ਵਿਸ਼ਲੇਸ਼ਣ ਲਈ ਇਸਨੂੰ ਇੱਕ ਰਿਮੋਟ ਮਾਡਲ ਨੂੰ ਭੇਜਦੀ ਹੈ, ਅਤੇ ਨਤੀਜਿਆਂ ਦੀ ਇੱਕ ਸੰਖੇਪ ਸੂਚੀ ਵਾਪਸ ਕਰਦੀ ਹੈ। ਇਹ ਪ੍ਰਕਿਰਿਆ ਕੁਝ ਹੀ ਸਕਿੰਟਾਂ ਵਿੱਚ ਪੂਰੀ ਹੋ ਜਾਂਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਡਿਵੈਲਪਰ ਤੁਰੰਤ ਐਡਿਟ ਅਤੇ recommit ਕਰ ਸਕਦਾ ਹੈ।
ਫੀਚਰ ਦੀ ਵਰਤੋਂ ਕਰਨਾ
- Copilot desktop client ਨੂੰ 14 ਜੁਲਾਈ ਵਾਲੇ ਰੀਲੀਜ਼ ਤੱਕ ਅੱਪਡੇਟ ਕਰੋ।
- ਆਮ ਤੌਰ 'ਤੇ ਕੋਡ ਵਿੱਚ ਬਦਲਾਅ ਕਰੋ।
- Copilot chat pane ਖੋਲ੍ਹੋ ਅਤੇ slash command ਟਾਈਪ ਕਰੋ (ਸਹੀ syntax UI ਵਿੱਚ ਦਿਖਾਈ ਦੇਵੇਗਾ)।
- ਸੰਭਾਵੀ vulnerabilities ਦੀ ਵਾਪਸ ਆਈ ਸੂਚੀ ਦੀ ਸਮੀਖਿਆ ਕਰੋ।
- ਕੋਡ ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ ਅਤੇ commit ਕਰੋ।
ਇਹ ਵਰਕਫਲੋ ਇੱਕ ਤੇਜ਼ lint run ਵਾਂਗ ਹੈ: ਕੋਈ ਵੱਖਰਾ ਸੁਰੱਖਿਆ ਡੈਸ਼ਬੋਰਡ ਨਹੀਂ, ਕੋਈ CI job ਲਈ ਇੰਤਜ਼ਾਰ ਨਹੀਂ।
ਸੀਮਾਵਾਂ ਅਤੇ ਵਿਰੋਧੀ ਦਲੀਲ
GitHub ਇਸ ਗੱਲ 'ਤੇ ਜ਼ੋਰ ਦਿੰਦਾ ਹੈ ਕਿ scanner ਇੱਕ ਸਹਾਇਕ ਹੈ, ਮਨੁੱਖੀ ਫੈਸਲੇ ਜਾਂ ਡੂੰਘੀ ਟੈਸਟਿੰਗ ਦਾ ਬਦਲ ਨਹੀਂ ਹੈ। ਇਹ ਡਿਜ਼ਾਈਨ-ਪੱਧਰ ਦੀਆਂ ਖਾਮੀਆਂ, ਗੁੰਮ ਹੋਈਆਂ ਪਰਮਿਸ਼ਨਾਂ, ਜਾਂ ਗੁੰਝਲਦਾਰ ਲੌਜਿਕ ਗਲਤੀਆਂ ਦਾ ਪਤਾ ਨਹੀਂ ਲਗਾਉਂਦਾ ਜਿਨ੍ਹਾਂ ਲਈ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਵਿਆਪਕ ਦ੍ਰਿਸ਼ਟੀਕੋਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
ਅੱਗੇ ਕੀ ਦੇਖਣਾ ਹੈ
Takeaway: GitHub ਦਾ Copilot slash-command scanner ਹਰ ਡਿਵੈਲਪਰ ਲਈ ਇੱਕ ਤੇਜ਼, ਮੁਫ਼ਤ, ਸਥਾਨਕ ਸੁਰੱਖਿਆ ਫਿਲਟਰ ਜੋੜਦਾ ਹੈ, ਜੋ ਸਭ ਤੋਂ ਆਮ AI-ਪ੍ਰੇਰਿਤ ਬੱਗਸ ਨੂੰ commit-ਸਮੇਂ ਦੀਆਂ ਮੁਸ਼ਕਲਾਂ ਬਣਨ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਫੜ ਲੈਂਦਾ ਹੈ। ਇਹ ਡੂੰਘੇ ਵਿਸ਼ਲੇਸ਼ਣ ਦੀ ਜਗ੍ਹਾ ਨਹੀਂ ਲਵੇਗਾ, ਪਰ ਇਹ ਟੀਮਾਂ ਨੂੰ ਸੌਖੀਆਂ ਗਲਤੀਆਂ ਨੂੰ ਸੁਧਾਰਨ ਦਾ ਇੱਕ ਤੇਜ਼ ਤਰੀਕਾ ਦਿੰਦਾ ਹੈ ਅਤੇ ਵਧੇਰੇ ਗੰਭੀਰ ਸੁਰੱਖਿਆ ਕੰਮ ਨੂੰ ਉੱਥੇ ਹੀ ਰੱਖਦਾ ਹੈ ਜਿੱਥੇ ਉਹ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ—ਡਿਜ਼ਾਈਨ ਅਤੇ ਰਿਵਿਊ ਦੇ ਪੜਾਅ 'ਤੇ।
