DVMCP ਦੇ ਵਿਰੁੱਧ Capgate ਦੀ ਟੈਸਟਿੰਗ
ਮੈਂ Damn Vulnerable MCP (DVMCP) ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਦਸ ਖਰਾਬ MCP ਸਰਵਰਾਂ ਦੇ ਵਿਰੁੱਧ ਆਪਣੇ ਟੂਲ, capgate, ਦੀ ਟੈਸਟਿੰਗ ਕੀਤੀ।
DVMCP ਇੱਕ ਸਿਖਲਾਈ ਦੇਣ ਵਾਲਾ ਟੂਲ ਹੈ। ਹਰੇਕ ਸਰਵਰ prompt injection, token theft, ਜਾਂ command injection ਵਰਗੇ ਖਾਸ ਹਮਲੇ ਦਾ ਪ੍ਰਦਰਸ਼ਨ ਕਰਦਾ ਹੈ।
ਮਕਸਦ ਸਧਾਰਨ ਸੀ। ਮੈਂ ਹਰੇਕ ਟੂਲ ਲਈ ਇੱਕ ਇਮਾਨਦਾਰ manifest ਲਿਖਿਆ। ਫਿਰ ਮੈਂ ਪੁੱਛਿਆ: ਕੀ capgate ਦੁਆਰਾ ਬਣਾਈ ਗਈ ਸੀਮਾ (boundary) ਅਸਲ ਵਿੱਚ ਹਮਲੇ ਨੂੰ ਰੋਕਦੀ ਹੈ?
ਨਤੀਜੇ ਸਹੀ ਤਰ੍ਹਾਂ ਦੱਸਦੇ ਹਨ ਕਿ ਇੱਕ capability compiler ਕੀ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਕੀ ਨਹੀਂ।
ਇਹ ਕੀ ਰੋਕਦਾ ਹੈ (ਸਹੀ ਨਿਸ਼ਾਨਾ) ਚੈਲੇਂਜ 3 ਵਿੱਚ, ਇੱਕ ਟੂਲ ਕੋਲ ਬਹੁਤ ਜ਼ਿਆਦਾ ਇਜਾਜ਼ਤਾਂ (permissions) ਹਨ। ਇਹ ਇੱਕ ਫੋਲਡਰ ਪੜ੍ਹਨ ਦਾ ਦਾਅਵਾ ਕਰਦਾ ਹੈ ਪਰ ਅਸਲ ਵਿੱਚ ਪੂਰੀ ਡਿਸਕ ਪੜ੍ਹ ਸਕਦਾ ਹੈ। ਹਮਲਾ ਇੱਕ ਪ੍ਰਾਈਵੇਟ ਫੋਲਡਰ ਤੋਂ ਸਿਸਟਮ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ (credentials) ਚੋਰੀ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ। capgate ਇਸ ਨੂੰ ਰੋਕਦਾ ਹੈ। ਇਹ manifest ਨੂੰ ਇੱਕ Docker ਕੰਟੇਨਰ ਵਿੱਚ ਕੰਪਾਈਲ ਕਰਦਾ ਹੈ ਜੋ ਸਿਰਫ਼ ਇਜਾਜ਼ਤ ਕੀਤੇ ਗਏ ਫੋਲਡਰ ਨੂੰ ਹੀ ਮਾਊਂਟ (mount) ਕਰਦਾ ਹੈ। ਸੈਂਡਬਾਕਸ (sandbox) ਦੇ ਅੰਦਰ ਪ੍ਰਾਈਵੇਟ ਫਾਈਲਾਂ ਮੌਜੂਦ ਨਹੀਂ ਹੁੰਦੀਆਂ। ਹਮਲਾ ਅਸਫਲ ਰਹਿੰਦਾ ਹੈ।
ਇਹ ਕੀ ਕੰਟਰੋਲ ਵਿੱਚ ਰੱਖਦਾ ਹੈ (ਦਰਮਿਆਨਾ ਨਤੀਜਾ) ਚੈਲੇਂਜ 7 ਵਿੱਚ, ਇੱਕ ਟੂਲ API key ਲੀਕ ਕਰਦਾ ਹੈ। capgate ਟੂਲ ਨੂੰ ਕੀ (key) ਪੜ੍ਹਨ ਤੋਂ ਨਹੀਂ ਰੋਕ ਸਕਦਾ, ਪਰ ਇਹ ਡੇਟਾ ਦੀ ਚੋਰੀ (exfiltration) ਨੂੰ ਰੋਕ ਦਿੰਦਾ ਹੈ। ਇਹ ਇੱਕ egress proxy ਬਣਾਉਂਦਾ ਹੈ ਜੋ ਸਿਰਫ਼ ਇੱਕ ਖਾਸ ਹੋਸਟ (host) ਨੂੰ ਹੀ ਕਨੈਕਸ਼ਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ। ਹਮਲਾਵਰ ਚੋਰੀ ਕੀਤੀ ਗਈ ਕੀ ਨੂੰ ਆਪਣੇ ਸਰਵਰ 'ਤੇ ਨਹੀਂ ਭੇਜ ਸਕਦਾ।
ਚੈਲੇਂਜ 8 ਵਿੱਚ, ਇੱਕ ਟੂਲ任意 (arbitrary) shell commands ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ। capgate ਆਪਣੀ ਗ੍ਰਾਮਰ ਵਿੱਚ "ਕੋਈ ਵੀ shell ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ" ਨੂੰ ਦਰਸਾ ਨਹੀਂ ਸਕਦਾ। ਇਸ ਦੀ ਬਜਾਏ, ਇਹ ਟੂਲ ਨੂੰ ਇੱਕ ਬਾਕਸ ਵਿੱਚ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ। ਭਾਵੇਂ ਕੋਈ ਹਮਲਾਵਰ ਕੋਈ ਕਮਾਂਡ ਚਲਾਵੇ, ਪ੍ਰੋਸੈਸ ਕੋਲ ਕੋਈ ਨੈੱਟਵਰਕ, ਕੋਈ ਵਾਧੂ ਅਧਿਕਾਰ (privileges) ਨਹੀਂ ਹੁੰਦੇ, ਅਤੇ ਫਾਈਲਸਿਸਟਮ ਸਿਰਫ਼ ਪੜ੍ਹਨਯੋਗ (read-only) ਹੁੰਦਾ ਹੈ। ਨੁਕਸਾਨ ਸੀਮਤ ਹੁੰਦਾ ਹੈ।
ਇਹ ਕੀ ਨਹੀਂ ਰੋਕ ਸਕਦਾ (ਸੀਮਾਵਾਂ) ਚੈਲੇਂਜ 1 ਵਿੱਚ, ਹਮਲਾ prompt injection ਹੈ। ਹਮਲਾਵਰ ਮਾਡਲ ਨੂੰ ਹਦਾਇਤਾਂ ਨੂੰ ਅਣਦੇਖਾ ਕਰਨ ਲਈ ਧੋਖਾ ਦਿੰਦਾ ਹੈ। capgate ਇੱਥੇ ਕੁਝ ਨਹੀਂ ਕਰਦਾ। ਇੱਕ sandbox compiler ਇਸ ਗੱਲ ਨੂੰ ਸੀਮਤ ਕਰਦਾ ਹੈ ਕਿ ਇੱਕ ਟੂਲ ਕਿਸ ਚੀਜ਼ ਨੂੰ ਛੂਹ ਸਕਦਾ ਹੈ, ਪਰ ਇਹ LLM ਕੀ ਕਹਿੰਦਾ ਹੈ, ਉਸ ਨੂੰ ਕੰਟਰੋਲ ਨਹੀਂ ਕਰ ਸਕਦਾ।
ਜੇਕਰ ਤੁਹਾਨੂੰ ਲੱਗਦਾ ਹੈ ਕਿ sandbox prompt injection ਨੂੰ ਰੋਕਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਗਲਤ ਹੋ। ਇਹ ਸਿਰਫ਼ ਨੁਕਸਾਨ ਨੂੰ ਸੀਮਤ ਕਰਕੇ prompt injection ਨੂੰ ਘੱਟ ਉਪਯੋਗੀ ਬਣਾਉਂਦਾ ਹੈ।
ਸਾਰ (Summary) • ਇੱਕ ਸਪੱਸ਼ਟ ਰੋਕਥਾਮ। • ਚਾਰ ਅਰਥਪੂਰਨ ਕੰਟੇਨਮੈਂਟਸ। • ਤਿੰਨ ਇਮਾਨਦਾਰ ਕਮੀਆਂ।
capgate ਕੋਈ ਜਾਦੂਈ ਹੱਲ (silver bullet) ਨਹੀਂ ਹੈ। ਇਹ ਰੱਖਿਆ ਦੀ ਇੱਕ ਪਰਤ ਹੈ। ਇਹ "ਇਹ ਸਰਵਰ ਹਰ ਚੀਜ਼ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ" ਨੂੰ "ਇਹ ਸਰਵਰ ਸਿਰਫ਼ ਇੱਕ ਖਾਸ ਪਾਥ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ" ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ।
ਵਿਕਲਪਿਕ ਲਰਨਿੰਗ ਕਮਿਊਨਿਟੀ: https://t.me/GyaanSetuAi