Claude Code, Cursor ਅਤੇ Grok Build ਵਰਗੇ AI ਕੋਡਿੰਗ ਸਹਾਇਕ (assistants) ਕਿਸੇ ਡਿਵੈਲਪਰ ਦੁਆਰਾ ਅਣਭਰੋਸੇਯੋਗ ਰਿਪੋਜ਼ਟਰੀ (untrusted repository) ਖੋਲ੍ਹਦੇ ਹੀ, ਬਿਨਾਂ ਕਿਸੇ ਕਲਿੱਕ ਜਾਂ ਪ੍ਰੋਂਪਟ ਦੇ, ਮਨਮਾਨਾ ਕਮਾਂਡ (arbitrary commands) ਚਲਾ ਸਕਦੇ ਹਨ। ਇਹ ਖਾਮੀ (flaw) ਉਹਨਾਂ ਸਾਧਨਾਂ ਦੁਆਰਾ ਪ੍ਰੋਜੈਕਟ ਦੀਆਂ ਫਾਈਲਾਂ ਨੂੰ ਸਕੈਨ ਕਰਨ ਲਈ Git ਦੇ core.fsmonitor ਫੀਚਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਤਰੀਕੇ ਤੋਂ ਪੈਦਾ ਹੁੰਦੀ ਹੈ।

ਇਹ ਮੁੱਦਾ ਹੁਣ ਕਿਉਂ ਮਹੱਤਵਪੂਰਨ ਹੈ

ਡਿਵੈਲਪਰ ਕੋਡ ਸੁਝਾਅ ਦੇਣ, ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਰੀਫੈਕਟਰ ਕਰਨ, ਜਾਂ ਪੂਰੇ ਮੋਡਿਊਲ ਲਿਖਣ ਲਈ AI ਏਜੰਟਾਂ 'ਤੇ ਵੱਧ ਤੋਂ ਵੱਧ ਨਿਰਭਰ ਕਰ ਰਹੇ ਹਨ। ਉਹਨਾਂ ਏਜੰਟਾਂ ਨੂੰ ਵਰਕਸਪੇਸ (workspace) ਦੀ ਇੱਕ ਤੇਜ਼ ਸਨੈਪਸ਼ਾਟ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਇਸ ਲਈ ਉਹ ਪਿਛੋਕੜ ਵਿੱਚ git status ਚਲਾਉਂਦੇ ਹਨ। ਜਦੋਂ Git ਕਿਸੇ ਰਿਪੋਜ਼ਟਰੀ ਦੀ .git/config ਫਾਈਲ ਨੂੰ ਪੜ੍ਹਦਾ ਹੈ, ਤਾਂ core.fsmonitor ਨੂੰ ਦਿੱਤੀ ਗਈ ਕਿਸੇ ਵੀ ਕੀਮਤ (value) ਨੂੰ ਇੱਕ ਸ਼ੈੱਲ ਕਮਾਂਡ (shell command) ਵਜੋਂ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ ਜਿਸ ਨੂੰ Git ਚਲਾਏਗਾ। ਇੱਕ ਹਮਲਾਵਰ ਉਸ ਕਨਫਿਗ ਐਂਟਰੀ ਵਿੱਚ ਇੱਕ ਤਿਆਰ ਕੀਤੀ ਗਈ ਕਮਾਂਡ ਰੱਖ ਸਕਦਾ ਹੈ, ਅਤੇ AI ਦੀ ਬੈਕਗ੍ਰਾਊਂਡ Git ਕਾਲ ਯੂਜ਼ਰ ਦੁਆਰਾ ਕੋਡ ਦੀ ਇੱਕ ਲਾਈਨ ਵੀ ਟਾਈਪ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਇਸਨੂੰ ਟ੍ਰਿਗਰ ਕਰ ਦੇਵੇਗੀ।

ਕੋਡ ਡਿਵੈਲਪਰ ਦੇ ਆਪਣੇ ਅਧਿਕਾਰਾਂ (privileges) ਨਾਲ ਚੱਲਦਾ ਹੈ, ਜੋ ਉਸ ਸੈਂਡਬਾਕਸ (sandbox) ਨੂੰ ਬਾਈਪਾਸ ਕਰ ਦਿੰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ AI ਏਜੰਟ ਆਮ ਤੌਰ 'ਤੇ ਕੰਮ ਕਰਦਾ ਹੈ। ਅਸਲ ਵਿੱਚ, ਇੱਕ ਨਾਲ਼ compromising ਰਿਪੋਜ਼ਟਰੀ ਮਾਲਵੇਅਰ ਇੰਸਟਾਲ ਕਰ ਸਕਦੀ ਹੈ, ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਚੋਰੀ ਕਰ ਸਕਦੀ ਹੈ, ਜਾਂ ਸੋਰਸ ਫਾਈਲਾਂ ਨੂੰ ਬਦਲ ਸਕਦੀ ਹੈ, ਅਤੇ ਇਹ ਸਭ ਉਦੋਂ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਡਿਵੈਲਪਰ ਨੂੰ ਲੱਗਦਾ ਹੈ ਕਿ ਸਹਾਇਕ ਸਿਰਫ਼ ਸੁਝਾਅ ਦੇ ਰਿਹਾ ਹੈ।

ਹਮਲਾ ਕਿਵੇਂ ਹੁੰਦਾ ਹੈ

  1. ਤਿਆਰੀ (Preparation) – ਇੱਕ ਹਮਲਾਵਰ ਅਜਿਹੀ ਰਿਪੋਜ਼ਟਰੀ ਬਣਾਉਂਦਾ ਹੈ ਜਿਸਦੀ .git/config ਵਿੱਚ core.fsmonitor = /path/to/malicious/script ਵਰਗੀ ਲਾਈਨ ਹੁੰਦੀ ਹੈ।
  2. ਡਿਲੀਵਰੀ (Delivery) – ਰਿਪੋਜ਼ਟਰੀ ਨੂੰ ਇੱਕ zip ਫਾਈਲ ਵਜੋਂ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, USB ਸਟਿਕ ਤੋਂ ਕਾਪੀ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਸਾਂਝੇ ਡਰਾਈਵ ਰਾਹੀਂ ਸਿੰਕ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜਾਂ ਕਿਸੇ ਹੋਰ ਤਰੀਕੇ ਨਾਲ ਪੀੜਤ ਦੀ ਮਸ਼ੀਨ 'ਤੇ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ ਜਿਸ ਵਿੱਚ .git ਫੋਲਡਰ ਪਹਿਲਾਂ ਤੋਂ ਮੌਜੂਦ ਹੁੰਦਾ ਹੈ।
  3. ਟ੍ਰਿਗਰ (Trigger) – ਡਿਵੈਲਪਰ AI-ਸਮਰੱਥ IDE ਵਿੱਚ ਫੋਲਡਰ ਖੋਲ੍ਹਦਾ ਹੈ। ਸਹਾਇਕ ਸੰਦਰਭ (context) ਇਕੱਠਾ ਕਰਨ ਲਈ git status ਚਲਾਉਂਦਾ ਹੈ। Git ਸਥਾਨਕ ਕਨਫਿਗ ਨੂੰ ਪੜ੍ਹਦਾ ਹੈ, core.fsmonitor ਕਮਾਂਡ ਨੂੰ ਚਲਾਉਂਦਾ ਹੈ, ਅਤੇ ਮਾਲੀਸ਼ੀਅਸ ਸਕ੍ਰਿਪਟ ਤੁਰੰਤ ਚੱਲ ਜਾਂਦੀ ਹੈ।

ਇੱਕ ਸਾਧਾਰਨ git clone ਇਸ ਖਤਰੇ ਨੂੰ ਪ੍ਰਗਟ ਨਹੀਂ ਕਰਦਾ ਕਿਉਂਕਿ ਕਲੋਨ ਇੱਕ ਨਵਾਂ .git ਡਾਇਰੈਕਟਰੀ ਬਣਾਉਂਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਛੇੜਛਾੜ ਕੀਤੀ ਹੋਈ ਕਨਫਿਗ ਨਹੀਂ ਹੁੰਦੀ। ਇਹ ਹਮਲਾ ਉਦੋਂ ਹੀ ਕੰਮ ਕਰਦਾ ਹੈ ਜਦੋਂ ਹਮਲਾਵਰ ਪਹਿਲਾਂ ਤੋਂ ਮੌਜੂਦ .git ਫੋਲਡਰ ਪ੍ਰਦਾਨ ਕਰ ਸਕਦਾ ਹੈ।

ਕੀ ਖਤਰੇ ਵਿੱਚ ਹੈ

  • ਵਿਅਕਤੀਗਤ ਡਿਵੈਲਪਰ ਆਪਣੀਆਂ ਮਸ਼ੀਨਾਂ ਨੂੰ ਬਿਨਾਂ ਜਾਣ ਖਤਰੇ ਵਿੱਚ ਪਾ ਸਕਦੇ ਹਨ, ਅਤੇ ਉਹ ਸਾਰਾ ਡਾਟਾ ਗੁਆ ਸਕਦੇ ਹਨ ਜਿਸ ਤੱਕ AI ਏਜੰਟ ਪਹੁੰਚ ਸਕਦਾ ਹੈ।
  • ਟੀਮਾਂ ਜੋ ਅੰਦਰੂਨੀ ਡਰਾਈਵਾਂ ਜਾਂ ਕੰਟਰੈਕਟਰ zip ਫਾਈਲਾਂ ਰਾਹੀਂ ਕੋਡ ਸਾਂਝਾ ਕਰਦੀਆਂ ਹਨ, ਉਹ ਕਈ ਵਰਕਸਟੇਸ਼ਨਾਂ ਵਿੱਚ ਪੇਲੋਡ (payload) ਫੈਲਾ ਸਕਦੀਆਂ ਹਨ।
  • ਟੂਲ ਵੈਂਡਰਜ਼ ਨੂੰ ਆਪਣੀ ਸਾਖ ਨੂੰ ਨੁਕਸਾਨ ਹੋਣ ਦਾ ਖਤਰਾ ਹੈ ਜੇਕਰ ਉਪਭੋਗਤਾ ਇਸ ਉਲੰਘਣਾ ਦਾ ਕਾਰਨ ਅੰਡਰਲਾਇੰਗ Git ਇੰਟਰੈਕਸ਼ਨ ਦੀ ਬਜਾਏ AI ਸਹਾਇਕ ਨੂੰ ਮੰਨਦੇ ਹਨ।

ਕਿਉਂਕਿ ਮਾਲੀਸ਼ੀਅਸ ਕਮਾਂਡ ਉਪਭੋਗਤਾ ਦੇ ਅਧਿਕਾਰਾਂ ਨੂੰ ਵਿਰਾਸਤ ਵਿੱਚ ਲੈਂਦੀ ਹੈ, ਇਹ ਕਿਸੇ ਵੀ ਫਾਈਲ ਨੂੰ ਸੋਧ ਸਕਦੀ ਹੈ ਜਿਸਨੂੰ ਡਿਵੈਲਪਰ ਸੋਧ ਸਕਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ SSH keys, ਬਿਲਡ ਸਕ੍ਰਿਪਟਾਂ, ਜਾਂ ਡਿਪਲਾਈਮੈਂਟ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਸ਼ਾਮਲ ਹਨ।

ਰੋਕਥਾਮ ਦੇ ਕਦਮ ਜੋ ਡਿਵੈਲਪਰ ਅੱਜ ਚੁੱਕ ਸਕਦੇ ਹਨ

  • ਸਥਾਨਕ Git ਸੈਟਿੰਗਾਂ 'ਤੇ ਭਰੋਸਾ ਨਾ ਕਰੋ। ਹਰ ਵਾਰ ਜਦੋਂ ਕੋਈ AI ਸਹਾਇਕ