GitHub ਦੇ ਨਵੇਂ released Agentic Workflows ਨੂੰ ਪ੍ਰਾਈਵੇਟ ਰਿਪੋਜ਼ਟਰੀ ਫਾਈਲਾਂ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਨ ਲਈ ਧੋਖਾ ਦਿੱਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ Noma Labs ਦੇ ਖੋਜਕਰਤਾਵਾਂ ਨੇ ਦਿਖਾਇਆ ਹੈ, ਜੋ ਇਹ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਇੱਕ ਸਿੰਗਲ ਪਬਲਿਕ issue comment ਇੱਕ ਅੰਦਰੂਨੀ AI assistant ਨੂੰ ਡਾਟਾ-ਲੀਕ ਕਰਨ ਵਾਲੇ ਮਾਧਿਅਮ (conduit) ਵਿੱਚ ਬਦਲ ਸਕਦਾ ਹੈ।

ਇਹ ਖਾਮੀ ਇਸ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿਉਂਕਿ ਇਹ ਬਿਨਾਂ ਕਿਸੇ ਵਿਸ਼ੇਸ਼ exploit code ਦੇ GitHub ਦੇ ਬਿਲਟ-ਇਨ ਸੁਰੱਖਿਆ ਚੈੱਕਾਂ ਨੂੰ ਬਾਈਪਾਸ ਕਰ ਦਿੰਦੀ ਹੈ; ਇੱਕ ਹਮਲਾਵਰ ਨੂੰ ਸਿਰਫ਼ ਇੱਕ ਅਜਿਹਾ ਮਾਮੂਲੀ ਲੱਗਣ ਵਾਲਾ issue ਤਿਆਰ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਜਿਸ ਨੂੰ AI agent ਪੜ੍ਹੇ ਅਤੇ ਉਸ 'ਤੇ ਕਾਰਵਾਈ ਕਰੇ।

ਇਹ ਕਮਜ਼ੋਰੀ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ

Agentic Workflows ਇੱਕ AI agent ਨੂੰ GitHub events—ਜਿਵੇਂ ਕਿ ਨਵੇਂ issues—ਦਾ ਜਵਾਬ ਦੇਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ—ਇੱਕ workflow ਫਾਈਲ ਵਿੱਚ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤੇ ਗਏ commands ਨੂੰ ਚਲਾ ਕੇ। Noma Labs ਨੇ ਪਾਇਆ ਕਿ agent ਜਾਇਜ਼ workflow instructions ਅਤੇ ਉਪਭੋਗਤਾ ਦੁਆਰਾ ਭੇਜੀ ਗਈ comment ਵਿੱਚ ਦਰਜ ਟੈਕਸਟ ਵਿਚਕਾਰ ਅੰਤਰ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਇੱਕ ਮੈਨੇਜਰ ਦੀ ਬੇਨਤੀ ਦੀ ਨਕਲ ਕਰਨ ਵਾਲਾ ਇੱਕ ਪਬਲਿਕ issue ਪੋਸਟ ਕਰਕੇ ਅਤੇ ਉਸ ਵਿੱਚ ਇੱਕ ਗੁਪਤ ਨਿਰਦੇਸ਼ ਜੋੜ ਕੇ, ਇੱਕ ਹਮਲਾਵਰ agent ਨੂੰ ਇਹ ਕਰਨ ਲਈ ਮੋੜ ਸਕਦਾ ਹੈ:

  1. Issue ਨੂੰ ਖੋਲ੍ਹਣਾ (ਜੋ ਜਨਤਕ ਤੌਰ 'ਤੇ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ)।
  2. ਇੱਕ ਅਜਿਹੀ ਲਾਈਨ ਸ਼ਾਮਲ ਕਰਨਾ ਜੋ ਆਮ ਲੱਗਦੀ ਹੈ ਪਰ ਉਸ ਵਿੱਚ ਇੱਕ ਗੁਪਤ command ਹੁੰਦੀ ਹੈ।
  3. AI ਨੂੰ ਇੱਕ ਪ੍ਰਾਈਵੇਟ ਰਿਪੋਜ਼ਟਰੀ ਤੋਂ ਫਾਈਲਾਂ ਲਿਆਉਣ ਲਈ ਉਤੇਜਿਤ ਕਰਨਾ ਜਿਸ ਨੂੰ ਪੜ੍ਹਨ ਦੀ ਇਜਾਜ਼ਤ workflow ਨੂੰ ਹੈ।
  4. Agent ਨੂੰ ਲਿਆਂਦੀ ਹੋਈ ਸਮੱਗਰੀ ਨੂੰ ਉਸੇ issue ਦੇ ਜਵਾਬ ਵਜੋਂ ਪੋਸਟ ਕਰਨ ਲਈ ਕਹਿਣਾ।

ਖੋਜਕਰਤਾਵਾਂ ਨੇ ਪਾਇਆ ਕਿ ਗੁਪਤ command ਤੋਂ ਪਹਿਲਾਂ ਸਿਰਫ਼ ਇੱਕ ਸ਼ਬਦ “Additionally,” ਲਗਾਉਣਾ GitHub ਦੇ guardrails ਤੋਂ ਬਚਣ ਲਈ ਕਾਫ਼ੀ ਸੀ। ਕਿਸੇ ਵਾਧੂ ਪਰਮਿਸ਼ਨ, tokens, ਜਾਂ ਕਸਟਮ ਕੋਡ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ—ਸਿਰਫ਼ ਸਹੀ ਸ਼ਬਦਾਵਲੀ ਹੀ ਕਾਫ਼ੀ ਹੈ।

ਇਹ ਸਿਰਫ਼ ਇੱਕ bug ਤੋਂ ਵੱਧ ਕਿਉਂ ਹੈ

ਸਮੱਸਿਆ ਬਣੂਟੀ (structural) ਹੈ। AI agent ਕਿਸੇ ਵੀ ਟੈਕਸਟ ਨੂੰ ਜੋ ਉਸਨੂੰ ਰਿਪੋਜ਼ਟਰੀ event ਤੋਂ ਮਿਲਦਾ ਹੈ, ਭਰੋਸੇਯੋਗ ਮੰਨਦਾ ਹੈ, ਜੋ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਰੂਪ ਵਿੱਚ ਉਪਭੋਗਤਾ ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੀ ਗਈ ਸਮੱਗਰੀ ਨੂੰ ਇੱਕ input vector ਬਣਾ ਦਿੰਦਾ ਹੈ, ਜੋ ਕਿ ਇੱਕ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ SQL injection ਦੇ ਸਮਾਨ ਹੈ। ਜੇਕਰ ਕੋਈ workflow agent ਨੂੰ ਪ੍ਰਾਈਵੇਟ ਰਿਪੋਜ਼ਟਰੀਆਂ ਤੱਕ ਪੜ੍ਹਨ ਦੀ ਪਹੁੰਚ ਅਤੇ ਜਨਤਕ ਤੌਰ 'ਤੇ comment ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਇਹ ਸੁਮੇਲ ਡਾਟਾ ਚੋਰੀ (data exfiltration) ਲਈ ਇੱਕ ਸਿੱਧਾ ਰਸਤਾ ਬਣਾ ਦਿੰਦਾ ਹੈ।

GitHub ਕੀ ਕਹਿੰਦਾ ਹੈ

GitHub ਨੂੰ ਇਸ ਖਾਮੀ ਬਾਰੇ ਸੂਚਿਤ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ।

ਟੀਮਾਂ ਲਈ ਰੋਕਥਾਮ ਦੇ ਕਦਮ

  • Agent permissions ਨੂੰ ਸੀਮਤ ਕਰੋ: ਪ੍ਰਾਈਵੇਟ ਰਿਪੋਜ਼ਟਰੀਆਂ ਤੱਕ read/write access ਸਿਰਫ਼ ਉਦੋਂ ਹੀ ਦਿਓ ਜਦੋਂ ਬਹੁਤ ਜ਼ਰੂਰੀ ਹੋਵੇ।
  • Public posting ਨੂੰ ਰੋਕੋ: Workflows ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਕੰਫਿਗਰ ਕਰੋ ਤਾਂ ਜੋ agents ਜਨਤਕ issues 'ਤੇ comments ਜਾਂ ਹੋਰ ਚੀਜ਼ਾਂ ਪ੍ਰਕਾਸ਼ਿਤ ਨਾ ਕਰ ਸਕਣ।
  • ਸਾਰੇ ਬਾਹਰੀ input ਨੂੰ ਅਭਰੋਸੇਯੋਗ ਮੰਨੋ: ਅਜਿਹੇ validation layers ਜੋੜੋ ਜੋ AI ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ user-generated text ਨੂੰ ਸਾਫ਼ (sanitize) ਕਰਦੇ ਹਨ ਜਾਂ ਉਸਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਦੇ ਹਨ।
  • Workflow triggers ਦੀ ਜਾਂਚ ਕਰੋ: ਸਮੀਖਿਆ ਕਰੋ ਕਿ ਕਿਹੜੇ events (issues, pull requests, ਆਦਿ) agents ਨੂੰ ਚਾਲੂ ਕਰਦੇ ਹਨ ਅਤੇ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਸਬੰਧਤ permissions ਦੀ ਵਰਤੋਂ ਲੋੜ ਅਨੁਸਾਰ ਹੀ ਹੋ ਰਹੀ ਹੈ।

ਮੁੱਖ ਗੱਲ (Takeaway): ਇੱਕ AI assistant ਜੋ ਪ੍ਰਾਈਵੇਟ ਕੋਡ ਪੜ੍ਹ ਸਕਦਾ ਹੈ ਅਤੇ ਜਨਤਕ ਤੌਰ 'ਤੇ ਪੋਸਟ ਕਰ ਸਕਦਾ ਹੈ, ਉਨਾ ਹੀ ਸੁਰੱਖਿਅਤ ਹੈ ਜਿੰਨੀਆਂ ਸੀਮਾਵਾਂ ਤੁਸੀਂ ਉਸਦੇ ਆਲੇ-ਦੁਆਲੇ ਸੈੱਟ ਕਰਦੇ ਹੋ। ਸਖ਼ਤ permission limits ਅਤੇ input sanitization ਤੋਂ ਬਿਨਾਂ, ਇੱਕ ਜਨਤਕ comment ਇੱਕ ਉਤਪਾਦਕਤਾ ਫੀਚਰ ਨੂੰ ਡਾਟਾ-ਲੀਕ ਕਰਨ ਵਾਲੇ ਮਾਧਿਅਮ ਵਿੱਚ ਬਦਲ ਸਕਦਾ ਹੈ।