Title: ਇੱਕ AI ਕੋਡਿੰਗ ਅਸਿਸਟੈਂਟ ਸੈਸ਼ਨ ਸਪਲਾਈ ਚੇਨ ਅਟੈਕ ਬਣ ਗਿਆ

Mandiant ਦਾ ਤਾਜ਼ਾ ਕੇਸ ਅਧਿਐਨ (case study) ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਇੱਕ ਹਾਈਜੈਕ ਕੀਤੇ ਗਏ AI ਕੋਡਿੰਗ-ਅਸਿਸਟੈਂਟ ਸੈਸ਼ਨ ਨੇ ਹਮਲਾਵਰ ਨੂੰ ਇੱਕ ਸਾਫਟਵੇਅਰ ਕੰਪਨੀ ਦੇ ਕੋਡਬੇਸ ਵਿੱਚ ਇੱਕ ਜ਼ਹਿਰੀਲਾ (poisoned) ਪੈਕੇਜ ਇੰਜੈਕਟ ਕਰਨ ਦਿੱਤਾ, ਜਿਸ ਨਾਲ 100 ਅੰਦਰੂਨੀ ਰੈਪੋਜ਼ਟਰੀਆਂ (repositories) ਨਾਲ ਖ਼ਤਰਾ ਪੈਦਾ ਹੋ ਗਿਆ, GitHub OAuth ਟੋਕਨ ਚੋਰੀ ਹੋ ਗਏ ਅਤੇ ਸੋਰਸ ਕੋਡ ਤੇ ਸੀਕਰੇਟਸ (secrets) ਬਾਹਰ ਕੱਢ ਲਏ ਗਏ। ਇਹ ਉਲੰਘਣਾ ਸਾਬਤ ਕਰਦੀ ਹੈ ਕਿ ਡਿਵੈਲਪਰ AI ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੇ ਗਏ ਸੁਝਾਵਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕੋਡ ਵਜੋਂ ਨਹੀਂ ਮੰਨ ਸਕਦੇ।

ਕੀ ਹੋਇਆ

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

ਜ਼ਹਿਰੀਲੇ ਪੈਕੇਜ ਨੇ ਇੱਕ ਇਨਫੋਸਟੀਲਰ (infostealer) ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਿਸਨੇ ਵਰਕਸਟੇਸ਼ਨ 'ਤੇ ਸਟੋਰ ਕੀਤੇ GitHub OAuth ਟੋਕਨ ਇਕੱਠੇ ਕਰ ਲਏ। ਉਹਨਾਂ ਟੋਕਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਹਮਲਾਵਰ ਨੇ “Shai-Hulud” ਵਰਮ (worm) ਤਾਇਨਾਤ ਕੀਤਾ, ਜਿਸਨੇ ਆਪਣੇ ਆਪ ਨੂੰ 100 ਅੰਦਰੂਨੀ ਰੈਪੋਜ਼ਟਰੀਆਂ ਵਿੱਚ ਕਾਪੀ ਕਰ ਲਿਆ। ਕਿਉਂਕਿ ਮਾਲੀਸ਼ੀਅਸ ਕੋਡ ਵਿੱਚ ਕੰਪਨੀ ਦਾ ਆਪਣਾ ਨਾਮਸਪੇਸ (namespace) ਸੀ, ਇਸ ਲਈ ਹੋਰ ਡਿਵੈਲਪਰ ਜਿਨ੍ਹਾਂ ਨੇ ਬਾਅਦ ਵਿੱਚ ਉਹੀ ਪੈਕੇਜ ਪੁੱਲ (pull) ਕੀਤੇ, ਉਹ ਵੀ ਸੰਕਰਮਿਤ ਹੋ ਗਏ।

ਇਹ ਕਿਉਂ ਮਹੱਤਵਪੂਰਨ ਹੈ

AI ਕੋਡਿੰਗ ਅਸਿਸਟੈਂਟ ਪ੍ਰੋਜੈਕਟ ਫਾਈਲਾਂ ਪੜ੍ਹ ਸਕਦੇ ਹਨ, ਇੰਸਟਾਲ ਕਮਾਂਡਾਂ ਤਿਆਰ ਕਰ ਸਕਦੇ ਹਨ, ਡਿਪੈਂਡੈਂਸੀ ਮੈਨੀਫੈਸਟ (dependency manifests) ਨੂੰ ਐਡਿਟ ਕਰ ਸਕਦੇ ਹਨ ਅਤੇ ਇੱਥੋਂ ਤੱਕ ਕਿ ਟਰਮੀਨਲ ਕਮਾਂਡਾਂ ਵੀ ਚਲਾ ਸਕਦੇ ਹਨ। ਪਹੁੰਚ ਦੀ ਇਹ ਵਿਸ਼ਾਲਤਾ ਉਹਨਾਂ ਨੂੰ ਸਪਲਾਈ-ਚੇਨ ਅਟੈਕ ਲਈ ਆਕਰਸ਼ਕ ਵੈਕਟਰ ਬਣਾਉਂਦੀ ਹੈ। ਜਦੋਂ ਇੱਕ ਡਿਵੈਲਪਰ ਕਿਸੇ ਅਣਜਾਣ ਵਿਅਕਤੀ ਦੀ ਸਲਾਹ ਨਾਲੋਂ AI ਦੇ ਸੁਝਾਅ 'ਤੇ ਜ਼ਿਆਦਾ ਭਰੋਸਾ ਕਰਦਾ ਹੈ, ਤਾਂ ਹਮਲਾਵਰ ਦਾ ਕੰਮ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ: ਅਸਿਸਟੈਂਟ ਚੁੱਪਚਾਪ ਅਜਿਹਾ ਮਾਲੀਸ਼ੀਅਸ ਕੋਡ ਪਾ ਸਕਦਾ ਹੈ ਜੋ ਜਾਇਜ਼ ਲੱਗਦਾ ਹੈ।

ਸਪਲਾਈ-ਚੇਨ ਅਟੈਕ ਹਮਲਾਵਰ ਨੂੰ ਕਿਸੇ ਸੰਸਥਾ ਦੇ ਕੋਡਬੇਸ ਵਿੱਚ ਲੇਟਰਲ ਮੂਵਮੈਂਟ (move laterally) ਕਰਨ, ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਚੋਰੀ ਕਰਨ ਅਤੇ ਮਲਕੀਅਤ ਵਾਲੀਆਂ ਸੰਪਤੀਆਂ ਨੂੰ ਬਾਹਰ ਕੱਢਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ—ਇਹ ਸਭ ਪੀੜਤ ਦੇ ਨੋਟਿਸ ਕੀਤੇ ਜਾਣ ਤੋਂ ਪਹਿਲਾਂ ਹੋ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਨੁਕਸਾਨ ਪਹਿਲਾਂ ਹੀ ਹੋ ਚੁੱਕਾ ਹੁੰਦਾ ਹੈ।

ਹਮਲਾ ਕਿਵੇਂ ਵਾਪਰਿਆ

  1. ਸੈਸ਼ਨ ਹਾਈਜੈਕ (Session hijack) – ਹਮਲਾਵਰ ਨੇ ਚੱਲ ਰਹੇ AI-ਅਸਿਸਟੈਂਟ ਸੈਸ਼ਨ ਦਾ ਕੰਟਰੋਲ ਲੈ ਲਿਆ।
  2. ਜ਼ਹਿਰੀਲਾ ਸੁਝਾਅ (Poisoned recommendation) – ਕੰਪ੍ਰੋਮਾਈਜ਼ਡ ਅਸਿਸਟੈਂਟ ਨੂੰ ਇੱਕ ਮਾਲੀਸ਼ੀਅਸ ਪੈਕੇਜ ਦਾ ਸੁਝਾਅ ਦੇਣ ਲਈ ਮਜਬੂਰ ਕੀਤਾ ਗਿਆ।
  3. ਡਿਵੈਲਪਰ ਦੁਆਰਾ ਸਵੀਕ੍ਰਿਤੀ (Developer acceptance) – AI ਦੀ ਸਿਫਾਰਸ਼ 'ਤੇ ਵਿਸ਼ਵਾਸ ਕਰਦੇ ਹੋਏ, ਡਿਵੈਲਪਰ ਨੇ ਪੈਕੇਜ ਜੋੜਿਆ ਅਤੇ ਤਿਆਰ ਕੀਤੀ ਗਈ ਇੰਸਟਾਲ ਕਮਾਂਡ ਚਲਾਈ।
  4. ਪੇਲੋਡ ਐਗਜ਼ੀਕਿਊਸ਼ਨ (Payload execution) – ਪੈਕੇਜ ਨੇ ਇੱਕ ਇਨਫੋਸਟੀਲਰ ਇੰਸਟਾਲ ਕੀਤਾ ਜਿਸਨੇ ਸਥਾਨਕ GitHub OAuth ਟੋਕਨ ਅਤੇ ਹੋਰ ਸੀਕਰੇਟਸ ਪੜ੍ਹੇ।
  5. ਵਰਮ ਪ੍ਰੋਪਗੇਸ਼ਨ (Worm propagation) – ਚੋਰੀ ਕੀਤੇ ਗਏ ਟੋਕਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਹਮਲਾਵਰ ਨੇ Shai-Hulud ਵਰਮ ਤਾਇਨਾਤ ਕੀਤਾ, ਜੋ 100 ਅੰਦਰੂਨੀ ਰੈਪੋਜ਼ਟਰੀਆਂ ਵਿੱਚ ਫੈਲ ਗਿਆ।
  6. ਐਕਸਫਿਲਟਰੇਸ਼ਨ (Exfiltration) – ਸੋਰਸ ਕੋਡ, ਅੰਦਰੂਨੀ ਲਾਇਬ੍ਰੇਰੀਆਂ ਅਤੇ ਸੀਕਰੇਟ ਕੀਜ਼ (secret keys) ਨੂੰ ਹਮਲਾਵਰ ਦੇ ਇਨਫਰਾਸਟ੍ਰਕਚਰ ਵਿੱਚ ਭੇਜ ਦਿੱਤਾ ਗਿਆ।

ਡਿਵੈਲਪਰ ਹੁਣ ਕੀ ਕਰ ਸਕਦੇ ਹਨ

ਹਰ AI ਸੁਝਾਅ ਨੂੰ ਅਣਵਿਸ਼ਵਾਸਯੋਗ ਕੋਡ ਵਜੋਂ ਮੰਨੋ। ਉਹੀ ਵੈਰੀਫਿਕੇਸ਼ਨ ਕਦਮ ਅਪਣਾਓ ਜੋ ਤੁਸੀਂ ਕਿਸੇ ਵੀ Third-party ਡਿਪੈਂਡੈਂਸੀ ਲਈ ਵਰਤਦੇ ਹੋ।

  • ਪੈਕੇਜ ਦੀ ਪੁਸ਼ਟੀ (Validate the package) ਕਰੋ
    • ਅਧਿਕਾਰਤ ਦਸਤਾਵੇਜ਼ਾਂ (documentation) ਅਤੇ ਵਰਜ਼ਨ ਇਤਿਹਾਸ ਦੀ ਜਾਂਚ ਕਰੋ।
    • ਪ੍ਰਕਾਸ਼ਕ ਦੀ ਪਛਾਣ ਅਤੇ ਸਾਖ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।
    • ਸੋਰਸ ਰੈਪੋਜ਼ਟਰੀ ਅਤੇ ਹਾਲੀਆ ਕਮਿਟਸ (commits) ਦੀ ਸਮੀਖਿਆ ਕਰੋ।
    • ਅਣਚਾਹੇ ਲਿੰਕਾਂ ਲਈ ਪੂਰੇ ਡਿਪੈਂਡੈਂਸੀ ਟ੍ਰੀ (dependency tree) ਦੀ ਜਾਂਚ ਕਰੋ।
    • ਕਿਸੇ ਵੀ ਇੰਸਟਾਲ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਲੁਕੇ ਹੋਏ