ਤੁਹਾਡਾ AI ਕੋਡਿੰਗ ਸਹਾਇਕ ਤੁਹਾਡੇ ਦੇਖੇ ਬਿਨਾਂ ਹੀ ਤੁਹਾਡੀਆਂ SSH keys ਨੂੰ ਦੁਬਾਰਾ ਲਿਖ ਰਿਹਾ ਹੋ ਸਕਦਾ ਹੈ। Wiz Research ਨੇ ਇੱਕ “GhostApproval” ਖ਼ਾਮੀ ਦਾ ਖੁਲਾਸਾ ਕੀਤਾ ਹੈ ਜੋ ਇੱਕ ਮਾਲੀਸ਼ੀਅਸ project_settings.json symlink ਨੂੰ ਪ੍ਰਾਈਵੇਟ ਕੀਜ਼ (private keys) ਵੱਲ ਮੋੜ ਦਿੰਦੀ ਹੈ, ਅਤੇ ਪ੍ਰਤੀ-ਕਾਰਵਾਈ (per-action) ਮਨਜ਼ੂਰੀ ਡਾਇਲਾਗ ਜੋ ਪੌਪ-ਅੱਪ ਹੁੰਦਾ ਹੈ, ਉਹ ਸਿਰਫ਼ symlink ਦਾ ਨਾਮ ਹੀ ਦਿਖਾਉਂਦਾ ਹੈ। ਡਾਇਲਾਗ ਨੂੰ ਮਨਜ਼ੂਰੀ ਦੇਣ ਨਾਲ, ਤੁਸੀਂ ਸਹਾਇਕ ਨੂੰ ਆਪਣੇ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲਜ਼ ਤੱਕ ਬਿਨਾਂ ਕਿਸੇ ਰੋਕ-ਟੋਕ ਦੇ ਪਹੁੰਚ ਦੇ ਦਿੱਤੀ ਹੈ।

ਇਹ ਐਕਸਪਲੋਇਟ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ

  • ਇੱਕ ਹਮਲਾਵਰ ਰੈਪੋਜ਼ੀਟਰੀ ਵਿੱਚ project_settings.json ਨਾਮ ਦੀ ਇੱਕ ਫਾਈਲ ਜੋੜਦਾ ਹੈ।
  • ਉਹ ਫਾਈਲ ਕੋਈ ਆਮ JSON ਫਾਈਲ ਨਹੀਂ ਹੈ; ਇਹ ਇੱਕ ਸਿੰਬੋਲਿਕ ਲਿੰਕ (symlink) ਹੈ ਜੋ ਯੂਜ਼ਰ ਦੀ ~/.ssh/id_rsa (ਜਾਂ ਇਸ ਦੇ ਬਰਾਬਰ) ਪ੍ਰਾਈਵੇਟ ਕੀਅ (private key) ਵੱਲ ਰੀਡਾਇਰੈਕਟ ਕਰਦੀ ਹੈ।
  • ਜਦੋਂ ਡਿਵੈਲਪਰ AI ਸਹਾਇਕ ਨੂੰ “set up the workspace” ਕਰਨ ਲਈ ਕਹਿੰਦਾ ਹੈ, ਤਾਂ ਸਹਾਇਕ symlink ਦਾ ਪਿੱਛਾ ਕਰਦਾ ਹੈ ਅਤੇ ਅਸਲ SSH key ਫਾਈਲ ਵਿੱਚ ਲਿਖਣ ਲਈ ਤਿਆਰ ਹੁੰਦਾ ਹੈ।
  • ਦਿਖਾਈ ਦੇਣ ਵਾਲਾ ਮਨਜ਼ੂਰੀ ਡਾਇਲਾਗ ਸਿਰਫ਼ project_settings.json ਦੀ ਸੂਚੀ ਦਿੰਦਾ ਹੈ। ਇਹ ਡਿਸਕ 'ਤੇ ਅਸਲ ਪਾਥ ਦਿਖਾਉਣ ਲਈ symlink ਨੂੰ ਰੈਜ਼ੋਲਵ (resolve) ਨਹੀਂ ਕਰਦਾ।
  • “Approve” 'ਤੇ ਕਲਿੱਕ ਕਰਨ ਨਾਲ ਸਹਾਇਕ ਨੂੰ ਪ੍ਰਾਈਵੇਟ ਕੀਅ ਨੂੰ ਸੋਧਣ ਦੀ ਇਜਾਜ਼ਤ ਮਿਲ ਜਾਂਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਅਸਰਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਹਰ ਉਸ ਸਰਵਿਸ 'ਤੇ ਯੂਜ਼ਰ ਦੀ ਪਛਾਣ ਨਾਲ ਖ਼ਤਰਾ ਪੈਦਾ ਹੋ ਜਾਂਦਾ ਹੈ ਜੋ ਉਸ ਕੀਅ 'ਤੇ ਭਰੋਸਾ ਕਰਦੀ ਹੈ।

ਇਹ ਬੱਗ ਛੇ ਵਿਆਪਕ ਤੌਰ 'ਤੇ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਟੂਲਜ਼ ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ: Amazon Q Developer, Claude Code, Augment, Cursor, Google Antigravity ਅਤੇ Windsurf। ਉਹ ਸਾਰੇ ਇੱਕੋ ਜਿਹਾ ਗੁੰਮਰਾਹਕੁੰਨ ਡਾਇਲਾਗ ਦਿਖਾਉਂਦੇ ਹਨ ਕਿਉਂਕਿ UI ਉਹ ਨਾਮ ਦਿਖਾਉਂਦਾ ਹੈ ਜੋ ਇਸਨੂੰ ਪ੍ਰਾਪਤ ਹੁੰਦਾ ਹੈ, ਨਾ ਕਿ ਰੈਜ਼ੋਲਵਡ ਟਾਰਗੇਟ।

ਪ੍ਰਤੀ-ਕਾਰਵਾਈ ਡਾਇਲਾਗ ਕਿਉਂ ਕਾਫ਼ੀ ਨਹੀਂ ਹਨ

ਪ੍ਰਤੀ-ਕਾਰਵਾਈ ਮਨਜ਼ੂਰੀ ਇਹ ਮੰਨ ਕੇ ਚੱਲਦੀ ਹੈ ਕਿ ਇੱਕ ਇਨਸਾਨ AI ਦੁਆਰਾ ਕੀਤੀ ਗਈ ਹਰ ਕਾਰਵਾਈ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦਾ ਹੈ। ਅਸਲ ਵਿੱਚ, ਇਹ ਤੁਹਾਨੂੰ ਹਰ ਕੁਝ ਸਕਿੰਟਾਂ ਵਿੱਚ ਸਹੀ ਫੈਸਲੇ ਲੈਣ ਲਈ ਮਜਬੂਰ ਕਰਦਾ ਹੈ—ਅਜਿਹਾ ਕੁਝ ਜੋ ਕੋਈ ਵੀ ਏਜੰਟ ਦੇ ਕੰਮ ਕਰਨ ਦੀ ਗਤੀ ਤੋਂ ਤੇਜ਼ ਨਹੀਂ ਕਰ ਸਕਦਾ।

ਵੈਂਡਰ ਕੀ ਕਰ ਰਹੇ ਹਨ – ਅਤੇ ਇਹ ਕਿਉਂ ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ

  • Amazon, Google ਅਤੇ Cursor ਨੇ ਇਸਨੂੰ ਪਹਿਲਾਂ ਹੀ ਠੀਕ ਕਰ ਦਿੱਤਾ ਹੈ।
  • Anthropic (Claude Code ਦਾ ਨਿਰਮਾਤਾ) ਕਹਿੰਦਾ ਹੈ ਕਿ ਯੂਜ਼ਰਾਂ ਨੂੰ ਸਿਰਫ਼ ਉਹੀ ਮਨਜ਼ੂਰ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਜੋ ਉਹ ਸਮਝਦੇ ਹਨ। ਇਹ symlinks ਨੂੰ ਪਛਾਣਨ ਦੇ ਮਾਨਸਿਕ ਬੋਝ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਦਾ ਹੈ ਅਤੇ ਇਹ ਮੰਨ ਲੈਂਦਾ ਹੈ ਕਿ ਯੂਜ਼ਰ ਹਰ ਫਾਈਲ ਪਾਥ ਦੀ ਤੁਰੰਤ ਜਾਂਚ ਕਰ ਸਕਦੇ ਹਨ—ਜੋ ਕਿ ਇੱਕ ਅਸੰਭਵ ਉਮੀਦ ਹੈ।
  • Cursor ਨੇ ਇੱਕ ਵੱਖਰੀ ਸਮੱਸਿਆ ਵੀ ਸਾਹਮਣੇ ਲਿਆਂਦੀ ਹੈ, ਜਿਸ ਨੂੰ DuneSlide ਦਾ ਨਾਮ ਦਿੱਤਾ ਗਿਆ ਹੈ, ਜੋ ਹਮਲਾਵਰਾਂ ਨੂੰ ਬਿਨਾਂ ਕਿਸੇ ਮਨਜ਼ੂਰੀ ਪ੍ਰੋਂਪਟ ਦੇ ਮਸ਼ੀਨ 'ਤੇ ਕੋਡ ਚਲਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਸੀ। ਕੰਪਨੀ ਨੇ ਉਸ ਬੱਗ ਨੂੰ ਪੈਚ ਕਰ ਦਿੱਤਾ ਹੈ, ਜੋ ਇਹ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਜਦੋਂ ਇਜਾਜ਼ਤ ਦੀ ਜਾਂਚ ਕਮਜ਼ੋਰ ਹੁੰਦੀ ਹੈ ਤਾਂ ਇਹ ਸਹਾਇਕ ਕਿੰਨੀ ਤੇਜ਼ੀ ਨਾਲ ਅਟੈਕ ਵੈਕਟਰ ਬਣ ਸਕਦੇ ਹਨ।

ਪ੍ਰਤੀਕਿਰਿਆਵਾਂ ਵਿੱਚ ਇਹ ਵੱਖਰੇਵੇਂ ਇੱਕ ਡੂੰਘਾ ਸਵਾਲ ਉਠਾਉਂਦੇ ਹਨ: ਕੀ ਸੁਰੱਖਿਆ ਨੂੰ ਕਾਰਵਾਈ ਤੋਂ ਬਾਅਦ ਦਾ ਡਾਇਲਾਗ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਜਾਂ ਇੱਕ ਪਹਿਲਾਂ ਤੋਂ ਨਿਰਧਾਰਤ ਸੀਮਾ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ ਜਿਸ ਨੂੰ ਸਹਾਇਕ ਕਦੇ ਵੀ ਪਾਰ ਨਾ ਕਰੇ?

ਸਕੋਪਡ ਪਰਮਿਸ਼ਨਜ਼: ਇੱਕ ਵਿਹਾਰਕ ਵਿਕਲਪ

ਹਰ ਫਾਈਲ ਕਾਰਵਾਈ ਲਈ ਪ੍ਰੋਂਪਟ ਕਰਨ ਦੀ ਬਜਾਏ, ਡਿਵੈਲਪਰ ਸਹਾਇਕ ਦੇ ਚੱਲਣ ਤੋਂ ਪਹਿਲਾਂ ਉਸ ਲਈ ਇੱਕ scope ਸੈੱਟ ਕਰ ਸਕਦੇ ਹਨ:

  • ਇੱਕ ਡਾਇਰੈਕਟਰੀ ਟ੍ਰੀ (ਜਿਵੇਂ ਕਿ /src) ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ ਜਿਸ ਨੂੰ AI ਪੜ੍ਹ ਸਕਦਾ ਹੈ ਜਾਂ ਲਿਖ ਸਕਦਾ ਹੈ।
  • ਉਸ ਟ੍ਰੀ ਤੋਂ ਬਾਹਰ ਦੀਆਂ ਫਾਈਲਾਂ ਨੂੰ ਛੂਹਣ ਦੀ ਕੋਈ ਵੀ ਕੋਸ਼ਿਸ਼—ਜਿਵੇਂ ਕਿ ~/.ssh/id_rsa—ਆਪਰੇਟਿੰਗ ਸਿਸਟਮ ਜਾਂ ਸੈਂਡਬਾਕਸ ਲੇਅਰ ਦੁਆਰਾ ਰੋਕ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ।
  • ਸਕੋਪ ਇੱਕ ਵਾਰ ਸਥਾਪਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਇਨਸਾਨ ਨੂੰ ਲੈਣੇ ਪੈਣ ਵਾਲੇ ਫੈਸਲਿਆਂ ਦੀ ਗਿਣਤੀ ਘਟ ਜਾਂਦੀ ਹੈ ਅਤੇ ਨਾਲ ਹੀ ਸਹਾਇਕ ਦੇ ਪ੍ਰਭਾਵ ਨੂੰ ਸੀਮਤ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ।

ਸਕੋਪਿੰਗ ਸੁਰੱਖਿਆ ਮਾਡਲ ਨੂੰ “ਹਰ ਵਾਰ ਪੁੱਛੋ” ਤੋਂ ਬਦਲ ਕੇ “ਸਿਰਫ਼ ਲੋੜੀਂਦੀ ਚੀਜ਼ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ” ਵਿੱਚ ਬਦਲ ਦਿੰਦੀ ਹੈ। ਇਹ ਇਸ ਗੱਲ ਦੀ ਨਕਲ ਕਰਦਾ ਹੈ ਕਿ ਕਿਵੇਂ ਕੰਟੇਨਰ ਰਨਟਾਈਮ ਅਤੇ ਮੋਬਾਈਲ OS ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਸੈਂਡਬਾਕਸ ਕਰਦੇ ਹਨ, ਜਿਸ ਨਾਲ ਕੁਝ ਗਲਤ ਹੋਣ 'ਤੇ ਨੁਕਸਾਨ ਨੂੰ ਸੀਮਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।

ਅੱਗੇ ਕੀ ਦੇਖਣਾ ਹੈ

  • ਵੈਂਡਰ ਰੋਲ-ਆਊਟਸ: ਪ੍ਰਭਾਵਿਤ ਛੇ ਟੂਲਜ਼ ਦੇ ਅੱਪਡੇਟ ਨੋਟਸ 'ਤੇ ਨਜ਼ਰ ਰੱਖੋ।

ਨਿਚੋੜ

GhostApproval ਐਕਸਪਲੋਇਟ ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਇੱਕ ਪੌਪ-ਅੱਪ ਡਾਇਲਾਗ 'ਤੇ ਭਰੋਸਾ ਕਰਨਾ ਸੁਰੱਖਿਆ ਦਾ ਇੱਕ ਝੂਠਾ ਅਹਿਸਾਸ ਦਿੰਦਾ ਹੈ। ਜਦੋਂ ਤੱਕ ਹਰ AI ਕੋਡਿੰਗ ਸਹਾਇਕ symlinks ਨੂੰ ਰੈਜ਼ੋਲਵ ਨਹੀਂ ਕਰਦਾ ਅਤੇ ਪੂਰੇ ਪਾਥ ਨਹੀਂ ਦਿਖਾਉਂਦਾ, ਉਦੋਂ ਤੱਕ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਸਕੋਪਡ ਰਾਈਟ ਪਰਮਿਸ਼ਨਜ਼ ਲਾਗੂ ਕਰਨੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ—ਸਹਾਇਕ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਬਿਲਕੁਲ ਦੱਸਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਉਹ ਕਿੱਥੇ ਕੰਮ ਕਰ ਸਕਦਾ ਹੈ। ਉਹ ਸਧਾਰਨ ਤਬਦੀਲੀ ਕਲਿੱਕ-ਥਕਾਵਟ ਵਧਾਏ ਬਿਨਾਂ ਹਮਲਿਆਂ ਦੀ ਸਭ ਤੋਂ ਖ਼ਤਰਨਾਕ ਸ਼੍ਰੇਣੀ ਨੂੰ ਰੋਕ ਦਿੰਦੀ ਹੈ।

ਸਰੋਤ: dev.to/girish_r/your-coding-agents-approval-dialog-is-lying-to-you-ih1