FixVibe
Covered by FixVibehigh

CORS ਗਲਤ ਸੰਰਚਨਾ: ਬਹੁਤ ਜ਼ਿਆਦਾ ਇਜਾਜ਼ਤ ਦੇਣ ਵਾਲੀਆਂ ਨੀਤੀਆਂ ਦੇ ਜੋਖਮ

ਕਰਾਸ-ਓਰੀਜਨ ਰਿਸੋਰਸ ਸ਼ੇਅਰਿੰਗ (CORS) ਇੱਕ ਬ੍ਰਾਊਜ਼ਰ ਵਿਧੀ ਹੈ ਜੋ ਸਮਾਨ-ਮੂਲ ਨੀਤੀ (SOP) ਨੂੰ ਢਿੱਲ ਦੇਣ ਲਈ ਤਿਆਰ ਕੀਤੀ ਗਈ ਹੈ। ਆਧੁਨਿਕ ਵੈੱਬ ਐਪਸ ਲਈ ਜ਼ਰੂਰੀ ਹੋਣ ਦੇ ਬਾਵਜੂਦ, ਗਲਤ ਲਾਗੂ ਕਰਨਾ—ਜਿਵੇਂ ਕਿ ਬੇਨਤੀਕਰਤਾ ਦੇ ਮੂਲ ਸਿਰਲੇਖ ਨੂੰ ਗੂੰਜਣਾ ਜਾਂ 'ਨਲ' ਮੂਲ ਨੂੰ ਵਾਈਟਲਿਸਟ ਕਰਨਾ — ਖ਼ਰਾਬ ਸਾਈਟਾਂ ਨੂੰ ਨਿੱਜੀ ਉਪਭੋਗਤਾ ਡੇਟਾ ਨੂੰ ਬਾਹਰ ਕੱਢਣ ਦੀ ਆਗਿਆ ਦੇ ਸਕਦਾ ਹੈ।

CWE-942

ਪ੍ਰਭਾਵ

ਇੱਕ ਹਮਲਾਵਰ ਇੱਕ ਕਮਜ਼ੋਰ ਐਪਲੀਕੇਸ਼ਨ [S2] ਦੇ ਉਪਭੋਗਤਾਵਾਂ ਤੋਂ ਸੰਵੇਦਨਸ਼ੀਲ, ਪ੍ਰਮਾਣਿਤ ਡੇਟਾ ਚੋਰੀ ਕਰ ਸਕਦਾ ਹੈ। ਜੇਕਰ ਕੋਈ ਵਰਤੋਂਕਾਰ ਕਮਜ਼ੋਰ ਐਪ ਵਿੱਚ ਲੌਗਇਨ ਕਰਦੇ ਹੋਏ ਕਿਸੇ ਖਤਰਨਾਕ ਵੈੱਬਸਾਈਟ 'ਤੇ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਖਤਰਨਾਕ ਸਾਈਟ ਐਪ ਦੇ API ਨੂੰ ਕਰਾਸ-ਓਰਿਜਨ ਬੇਨਤੀਆਂ ਕਰ ਸਕਦੀ ਹੈ ਅਤੇ ਜਵਾਬਾਂ ਨੂੰ ਪੜ੍ਹ ਸਕਦੀ ਹੈ [S1][S2]। ਇਸ ਨਾਲ ਉਪਭੋਗਤਾ ਪ੍ਰੋਫਾਈਲਾਂ, CSRF ਟੋਕਨਾਂ, ਜਾਂ ਨਿੱਜੀ ਸੁਨੇਹਿਆਂ [S2] ਸਮੇਤ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਦੀ ਚੋਰੀ ਹੋ ਸਕਦੀ ਹੈ।

ਮੂਲ ਕਾਰਨ

CORS ਇੱਕ HTTP-ਸਿਰਲੇਖ ਅਧਾਰਤ ਵਿਧੀ ਹੈ ਜੋ ਸਰਵਰਾਂ ਨੂੰ ਇਹ ਨਿਰਧਾਰਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ ਕਿ ਕਿਹੜੇ ਮੂਲ (ਡੋਮੇਨ, ਸਕੀਮ, ਜਾਂ ਪੋਰਟ) ਨੂੰ ਸਰੋਤ [S1] ਲੋਡ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਹੈ। ਕਮਜ਼ੋਰੀਆਂ ਆਮ ਤੌਰ 'ਤੇ ਉਦੋਂ ਪੈਦਾ ਹੁੰਦੀਆਂ ਹਨ ਜਦੋਂ ਸਰਵਰ ਦੀ CORS ਨੀਤੀ ਬਹੁਤ ਲਚਕਦਾਰ ਜਾਂ ਮਾੜੀ ਢੰਗ ਨਾਲ ਲਾਗੂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ [S2]:

  • ਪ੍ਰਤੀਬਿੰਬਿਤ ਮੂਲ ਸਿਰਲੇਖ: ਕੁਝ ਸਰਵਰ ਇੱਕ ਕਲਾਇੰਟ ਬੇਨਤੀ ਤੋਂ Origin ਸਿਰਲੇਖ ਨੂੰ ਪੜ੍ਹਦੇ ਹਨ ਅਤੇ ਇਸਨੂੰ Access-Control-Allow-Origin (ACAO) ਜਵਾਬ ਸਿਰਲੇਖ [S2] ਵਿੱਚ ਵਾਪਸ ਈਕੋ ਕਰਦੇ ਹਨ। ਇਹ ਕਿਸੇ ਵੀ ਵੈਬਸਾਈਟ ਨੂੰ [S2] ਸਰੋਤ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।
  • ਗਲਤ ਵਾਈਲਡਕਾਰਡਸ: ਜਦੋਂ ਕਿ * ਵਾਈਲਡਕਾਰਡ ਕਿਸੇ ਵੀ ਮੂਲ ਨੂੰ ਸਰੋਤ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਇਸਦੀ ਵਰਤੋਂ ਉਹਨਾਂ ਬੇਨਤੀਆਂ ਲਈ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਜਿਹਨਾਂ ਲਈ ਕ੍ਰੇਡੇੰਸ਼ਿਅਲ (ਜਿਵੇਂ ਕਿ ਕੂਕੀਜ਼ ਜਾਂ ਅਧਿਕਾਰ ਸਿਰਲੇਖ) [S3] ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਡਿਵੈਲਪਰ ਅਕਸਰ ਬੇਨਤੀ [S2] ਦੇ ਆਧਾਰ 'ਤੇ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ACAO ਸਿਰਲੇਖ ਤਿਆਰ ਕਰਕੇ ਇਸ ਨੂੰ ਬਾਈਪਾਸ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਨ।
  • ਵ੍ਹਾਈਟਲਿਸਟਿੰਗ 'ਨਲ': ਕੁਝ ਐਪਲੀਕੇਸ਼ਨਾਂ null ਮੂਲ ਨੂੰ ਵਾਈਟਲਿਸਟ ਕਰਦੀਆਂ ਹਨ, ਜੋ ਕਿ ਰੀਡਾਇਰੈਕਟ ਕੀਤੀਆਂ ਬੇਨਤੀਆਂ ਜਾਂ ਸਥਾਨਕ ਫਾਈਲਾਂ ਦੁਆਰਾ ਸ਼ੁਰੂ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ, ਜਿਸ ਨਾਲ ਖਤਰਨਾਕ ਸਾਈਟਾਂ ਨੂੰ null ਮੂਲ ਦੇ ਰੂਪ ਵਿੱਚ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ। [S2][S3].
  • ਪਾਰਸਿੰਗ ਤਰੁੱਟੀਆਂ: Origin ਸਿਰਲੇਖ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਦੇ ਸਮੇਂ regex ਜਾਂ ਸਟ੍ਰਿੰਗ ਮੈਚਿੰਗ ਵਿੱਚ ਗਲਤੀਆਂ ਹਮਲਾਵਰਾਂ ਨੂੰ trusted-domain.com.attacker.com [S2] ਵਰਗੇ ਡੋਮੇਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇ ਸਕਦੀਆਂ ਹਨ।

ਇਹ ਨੋਟ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ CORS ਕ੍ਰਾਸ-ਸਾਈਟ ਬੇਨਤੀ ਜਾਅਲਸਾਜ਼ੀ (CSRF) [S2] ਦੇ ਵਿਰੁੱਧ ਸੁਰੱਖਿਆ ਨਹੀਂ ਹੈ।

ਕੰਕਰੀਟ ਫਿਕਸ

  • ਇੱਕ ਸਥਿਰ ਵ੍ਹਾਈਟਲਿਸਟ ਦੀ ਵਰਤੋਂ ਕਰੋ: ਬੇਨਤੀ ਦੇ Origin ਸਿਰਲੇਖ ਤੋਂ Access-Control-Allow-Origin ਸਿਰਲੇਖ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਬਣਾਉਣ ਤੋਂ ਬਚੋ। ਇਸਦੀ ਬਜਾਏ, ਭਰੋਸੇਯੋਗ ਡੋਮੇਨਾਂ [S3] ਦੀ ਇੱਕ ਹਾਰਡਕੋਡਡ ਸੂਚੀ ਨਾਲ ਬੇਨਤੀ ਦੇ ਮੂਲ ਦੀ ਤੁਲਨਾ ਕਰੋ।
  • 'ਨਲ' ਮੂਲ ਤੋਂ ਬਚੋ: ਆਪਣੀ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਮੂਲ [S2] ਦੀ ਵਾਈਟਲਿਸਟ ਵਿੱਚ ਕਦੇ ਵੀ null ਸ਼ਾਮਲ ਨਾ ਕਰੋ।
  • ਪ੍ਰਤੀਬੰਧਿਤ ਪ੍ਰਮਾਣ ਪੱਤਰ: ਸਿਰਫ਼ Access-Control-Allow-Credentials: true ਸੈੱਟ ਕਰੋ ਜੇਕਰ ਖਾਸ ਕਰਾਸ-ਓਰੀਜਨ ਇੰਟਰੈਕਸ਼ਨ [S3] ਲਈ ਬਿਲਕੁਲ ਜ਼ਰੂਰੀ ਹੋਵੇ।
  • ਉਚਿਤ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਵਰਤੋਂ ਕਰੋ: ਜੇਕਰ ਤੁਹਾਨੂੰ ਮਲਟੀਪਲ ਮੂਲਾਂ ਦਾ ਸਮਰਥਨ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਤਾਂ ਯਕੀਨੀ ਬਣਾਓ ਕਿ Origin ਸਿਰਲੇਖ ਲਈ ਪ੍ਰਮਾਣਿਕਤਾ ਤਰਕ ਮਜ਼ਬੂਤ ਹੈ ਅਤੇ ਉਪ-ਡੋਮੇਨਾਂ ਜਾਂ ਸਮਾਨ ਦਿੱਖ ਵਾਲੇ ਡੋਮੇਨਾਂ [S2] ਦੁਆਰਾ ਬਾਈਪਾਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।

FixVibe ਇਸਦੇ ਲਈ ਕਿਵੇਂ ਟੈਸਟ ਕਰਦਾ ਹੈ

FixVibe ਵਿੱਚ ਹੁਣ ਇਸ ਨੂੰ ਗੇਟਡ ਐਕਟਿਵ ਜਾਂਚ ਦੇ ਰੂਪ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ। ਡੋਮੇਨ ਤਸਦੀਕ ਤੋਂ ਬਾਅਦ, active.cors ਇੱਕ ਸਿੰਥੈਟਿਕ ਹਮਲਾਵਰ ਮੂਲ ਦੇ ਨਾਲ ਸਮਾਨ-ਮੂਲ API ਬੇਨਤੀਆਂ ਭੇਜਦਾ ਹੈ ਅਤੇ CORS ਜਵਾਬ ਸਿਰਲੇਖਾਂ ਦੀ ਸਮੀਖਿਆ ਕਰਦਾ ਹੈ। ਇਹ ਜਨਤਕ ਸੰਪੱਤੀ ਦੇ ਰੌਲੇ ਤੋਂ ਬਚਦੇ ਹੋਏ ਗੈਰ-ਜਨਤਕ API ਅੰਤਮ ਬਿੰਦੂਆਂ 'ਤੇ ਮਨਮਾਨੇ ਮੂਲ, ਵਾਈਲਡਕਾਰਡ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ CORS, ਅਤੇ ਵਿਆਪਕ-ਖੁੱਲ੍ਹੇ CORS ਦੀ ਰਿਪੋਰਟ ਕਰਦਾ ਹੈ।