ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਲਗਾਉਣਾ ਇੱਕ ਹੈ standard ਆਧੁਨਿਕਤਾ ਵਿੱਚ ਅਭਿਆਸ CI/CD pipelines. ਟੀਮਾਂ ਹਾਰਡਕੋਡਿੰਗ ਮੁੱਲਾਂ ਤੋਂ ਬਿਨਾਂ ਬਿਲਡਾਂ ਵਿੱਚ ਸੀਕਰੇਟ, ਟੋਕਨ ਅਤੇ ਰਨਟਾਈਮ ਕੌਂਫਿਗਰੇਸ਼ਨ ਪਾਸ ਕਰਨ ਲਈ ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਇੰਜੈਕਟ ਕਰਦੀਆਂ ਹਨ। ਸਤ੍ਹਾ 'ਤੇ, ਇਹ ਇੱਕ ਸਧਾਰਨ ਅਤੇ ਸੁਰੱਖਿਅਤ ਪੈਟਰਨ ਵਰਗਾ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ।
ਹਾਲਾਂਕਿ, ਅਭਿਆਸ ਵਿੱਚ, ਇਹ ਅਕਸਰ ਸਾਫਟਵੇਅਰ ਸਪਲਾਈ ਲੜੀ ਵਿੱਚ ਸਭ ਤੋਂ ਘੱਟ ਅੰਦਾਜ਼ੇ ਵਾਲੇ ਜੋਖਮਾਂ ਵਿੱਚੋਂ ਇੱਕ ਬਣ ਜਾਂਦਾ ਹੈ।
ਕਿਉਂਕਿ ਇੱਕ ਵਾਰ ਜਦੋਂ ਟੀਮਾਂ ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਇੰਜੈਕਟ ਕਰਦੀਆਂ ਹਨ, ਤਾਂ ਉਹ ਮੁੱਲ ਅਲੱਗ ਹੋਣੇ ਬੰਦ ਹੋ ਜਾਂਦੇ ਹਨ। ਉਹ ਉਸ ਹਰ ਚੀਜ਼ ਲਈ ਪਹੁੰਚਯੋਗ ਹੋ ਜਾਂਦੇ ਹਨ ਜੋ ਉਸ ਦੇ ਅੰਦਰ ਚੱਲਦੀ ਹੈ pipeline. ਬਿਲਡ ਸਕ੍ਰਿਪਟਾਂ, CLI ਟੂਲ, ਤੀਜੀ-ਧਿਰ ਦੀਆਂ ਕਾਰਵਾਈਆਂ, ਅਤੇ ਇੱਥੋਂ ਤੱਕ ਕਿ ਨਿਰਭਰਤਾਵਾਂ ਵੀ ਉਹਨਾਂ ਨੂੰ ਪੜ੍ਹ ਸਕਦੀਆਂ ਹਨ।
ਇਹੀ ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇ ਚੀਜ਼ਾਂ ਟੁੱਟਣੀਆਂ ਸ਼ੁਰੂ ਹੋ ਜਾਂਦੀਆਂ ਹਨ।
ਇਸ ਗਾਈਡ ਵਿੱਚ, ਅਸੀਂ ਦੇਖਦੇ ਹਾਂ ਕਿ ਟੀਮਾਂ ਅਸਲ ਵਿੱਚ ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਕਿਵੇਂ ਇੰਜੈਕਟ ਕਰਦੀਆਂ ਹਨ pipelines, ਜਿੱਥੇ ਲੀਕ ਅਸਲ ਵਿੱਚ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਵਿਕਾਸ ਨੂੰ ਹੌਲੀ ਕੀਤੇ ਬਿਨਾਂ ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਕਿਵੇਂ ਸੁਰੱਖਿਅਤ ਕਰਨਾ ਹੈ।
ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਲਗਾਉਣ ਦਾ ਕੀ ਅਰਥ ਹੈ?
ਇਸਦੇ ਮੂਲ ਰੂਪ ਵਿੱਚ, ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਇੰਜੈਕਟ ਕਰਨ ਦਾ ਮਤਲਬ ਹੈ ਮੁੱਲਾਂ ਨੂੰ ਇੱਕ ਵਿੱਚ ਪਾਸ ਕਰਨਾ pipeline ਰਨਟਾਈਮ 'ਤੇ ਤਾਂ ਜੋ ਨੌਕਰੀਆਂ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੌਰਾਨ ਉਹਨਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਣ।
ਇਹਨਾਂ ਮੁੱਲਾਂ ਵਿੱਚ ਆਮ ਤੌਰ 'ਤੇ API ਕੁੰਜੀਆਂ, ਡੇਟਾਬੇਸ ਪ੍ਰਮਾਣ ਪੱਤਰ, ਟੋਕਨ, ਜਾਂ ਵਾਤਾਵਰਣ-ਵਿਸ਼ੇਸ਼ ਸੰਰਚਨਾ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ। ਉਹਨਾਂ ਨੂੰ ਸਿੱਧੇ ਕੋਡ ਵਿੱਚ ਸਟੋਰ ਕਰਨ ਦੀ ਬਜਾਏ, CI/CD ਜਦੋਂ ਬਿਲਡ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ ਤਾਂ ਸਿਸਟਮ ਉਹਨਾਂ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਲੋਡ ਕਰਦਾ ਹੈ।
ਇਹ ਇੱਕ ਅਸਲੀ ਸਮੱਸਿਆ ਦਾ ਹੱਲ ਕਰਦਾ ਹੈ। ਇਹ ਕੋਡ ਨੂੰ ਸਾਫ਼ ਰੱਖਦਾ ਹੈ, ਡੁਪਲੀਕੇਸ਼ਨ ਤੋਂ ਬਚਦਾ ਹੈ, ਅਤੇ ਇਸਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ pipeline ਸਟੇਜਿੰਗ, ਟੈਸਟਿੰਗ, ਅਤੇ ਉਤਪਾਦਨ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਚਲਾਉਣ ਲਈ।
ਹਾਲਾਂਕਿ, ਇਹ ਮਾਡਲ ਇੱਕ ਅਜਿਹੀ ਧਾਰਨਾ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਜੋ ਹੁਣ ਕਾਇਮ ਨਹੀਂ ਹੈ: ਕਿ ਨਿਰਮਾਣ ਵਾਤਾਵਰਣ ਨਿਯੰਤਰਿਤ ਅਤੇ ਅਨੁਮਾਨਯੋਗ ਹੈ।
ਆਧੁਨਿਕ pipelines ਦੋਵੇਂ ਨਹੀਂ ਹਨ। ਇਹਨਾਂ ਵਿੱਚ ਕਈ ਕਦਮ, ਬਾਹਰੀ ਏਕੀਕਰਨ, ਅਤੇ ਨਿਰਭਰਤਾਵਾਂ ਸ਼ਾਮਲ ਹਨ ਜੋ ਕੋਡ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਚਲਾਉਂਦੀਆਂ ਹਨ। ਨਤੀਜੇ ਵਜੋਂ, ਇੱਕ ਵਾਰ ਇੱਕ ਵੇਰੀਏਬਲ ਇੰਜੈਕਟ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਇਹ ਸਿਰਫ਼ ਸੰਰਚਨਾ ਨਹੀਂ ਰਹਿੰਦੀ। ਇਹ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸੰਦਰਭ ਦਾ ਹਿੱਸਾ ਬਣ ਜਾਂਦੀ ਹੈ।
ਜਿੱਥੇ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਲੀਕ ਹੁੰਦੇ ਹਨ
ਜ਼ਿਆਦਾਤਰ ਲੀਕ ਇਸ ਲਈ ਨਹੀਂ ਹੁੰਦੇ ਕਿਉਂਕਿ ਕੋਈ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਕਿਸੇ ਭੇਤ ਦਾ ਪਰਦਾਫਾਸ਼ ਕਰਦਾ ਹੈ। ਇਹ ਇਸ ਲਈ ਹੁੰਦੇ ਹਨ ਕਿਉਂਕਿ pipelineਉਪਭੋਗਤਾ ਅਜਿਹੇ ਤਰੀਕਿਆਂ ਨਾਲ ਵਿਵਹਾਰ ਕਰਦੇ ਹਨ ਜਿਸਦੀ ਡਿਵੈਲਪਰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਉਮੀਦ ਨਹੀਂ ਕਰਦੇ।
ਉਦਾਹਰਨ ਲਈ, ਇੱਕ ਡਿਵੈਲਪਰ ਇੱਕ ਅਸਫਲ ਬਿਲਡ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਲਈ ਵਰਬੋਸ ਲੌਗਿੰਗ ਨੂੰ ਸਮਰੱਥ ਬਣਾ ਸਕਦਾ ਹੈ। ਇੱਕ CLI ਟੂਲ ਆਪਣੇ ਆਉਟਪੁੱਟ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਪ੍ਰਿੰਟ ਕਰ ਸਕਦਾ ਹੈ। ਇੱਕ ਨਿਰਭਰਤਾ ਆਪਣੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਚੁੱਪਚਾਪ ਪ੍ਰਕਿਰਿਆ ਵੇਰੀਏਬਲ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ।
ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਕਾਰਵਾਈ ਆਪਣੇ ਆਪ ਵਿੱਚ ਸ਼ੱਕੀ ਨਹੀਂ ਜਾਪਦੀ। ਹਾਲਾਂਕਿ, ਇਹ ਇਕੱਠੇ ਕਈ ਲੀਕ ਰਸਤੇ ਬਣਾਉਂਦੇ ਹਨ।
ਭੇਦ ਇਸ ਵਿੱਚ ਖਤਮ ਹੋ ਸਕਦੇ ਹਨ:
- ਲੌਗ ਬਣਾਓ ਜੋ ਸਟੋਰ ਅਤੇ ਇੰਡੈਕਸ ਕੀਤੇ ਜਾਂਦੇ ਹਨ
- ਟੀਮਾਂ ਵਿੱਚ ਸਾਂਝਾ ਕੀਤਾ ਗਿਆ ਡੀਬੱਗ ਆਉਟਪੁੱਟ
- ਤੀਜੀ-ਧਿਰ CI ਕਾਰਵਾਈਆਂ ਜੋ ਬਾਹਰੀ ਕੋਡ ਚਲਾਉਂਦੀਆਂ ਹਨ
- ਨਿਰਭਰਤਾਵਾਂ ਜੋ ਇੰਸਟਾਲੇਸ਼ਨ ਜਾਂ ਰਨਟਾਈਮ ਦੌਰਾਨ ਚੱਲਦੀਆਂ ਹਨ
- ਨਿਰਮਾਣ ਦੌਰਾਨ ਤਿਆਰ ਕੀਤੀਆਂ ਅਸਥਾਈ ਕਲਾਕ੍ਰਿਤੀਆਂ
ਇੱਕ ਵਾਰ ਜਦੋਂ ਲੌਗਸ ਵਿੱਚ ਕੋਈ ਰਾਜ਼ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਇਹ ਘੱਟ ਹੀ ਛੁਪਿਆ ਰਹਿੰਦਾ ਹੈ। ਲੌਗਸ ਨੂੰ ਕਈ ਸਿਸਟਮਾਂ ਵਿੱਚ ਕਾਪੀ, ਸਟੋਰ ਅਤੇ ਬਰਕਰਾਰ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ। ਉਸ ਸਮੇਂ, ਐਕਸਪੋਜ਼ਰ ਅਸਲ ਤੋਂ ਬਹੁਤ ਦੂਰ ਤੱਕ ਫੈਲ ਜਾਂਦਾ ਹੈ। pipeline.
ਇਹੀ ਕਾਰਨ ਹੈ ਕਿ ਵਾਤਾਵਰਣ ਪਰਿਵਰਤਨਸ਼ੀਲ ਲੀਕ ਅਕਸਰ ਦੇਰ ਨਾਲ ਅਤੇ ਨੁਕਸਾਨ ਹੋ ਜਾਣ ਤੋਂ ਬਾਅਦ ਖੋਜੇ ਜਾਂਦੇ ਹਨ।
ਟੀਮਾਂ ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਕਿਉਂ ਲਗਾਉਂਦੀਆਂ ਹਨ
ਇਹਨਾਂ ਜੋਖਮਾਂ ਦੇ ਬਾਵਜੂਦ, ਟੀਮਾਂ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਟੀਕੇ 'ਤੇ ਬਹੁਤ ਜ਼ਿਆਦਾ ਨਿਰਭਰ ਕਰਦੀਆਂ ਹਨ। ਅਤੇ ਚੰਗੇ ਕਾਰਨ ਕਰਕੇ।
ਇਹ ਯੋਗ ਕਰਦਾ ਹੈ pipelineਲਚਕਦਾਰ ਰਹਿਣ ਲਈ। ਇੱਕ ਸਿੰਗਲ ਵਰਕਫਲੋ ਵੱਖ-ਵੱਖ ਵਾਤਾਵਰਣਾਂ ਦੇ ਅਨੁਕੂਲ ਹੋ ਸਕਦਾ ਹੈ, ਕਈ ਸੇਵਾਵਾਂ ਦੇ ਵਿਰੁੱਧ ਪ੍ਰਮਾਣਿਤ ਹੋ ਸਕਦਾ ਹੈ, ਅਤੇ ਕੋਡ ਨੂੰ ਸੋਧੇ ਬਿਨਾਂ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਵਿਵਹਾਰ ਨੂੰ ਬਦਲ ਸਕਦਾ ਹੈ।
ਤੇਜ਼ੀ ਨਾਲ ਵਧਦੇ DevOps ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ, ਇਹ ਲਚਕਤਾ ਜ਼ਰੂਰੀ ਹੈ। ਹਾਲਾਂਕਿ, ਲਚਕਤਾ ਹਮੇਸ਼ਾ ਵਪਾਰ-ਬੰਦਾਂ ਦੇ ਨਾਲ ਆਉਂਦੀ ਹੈ। ਜਿੰਨਾ ਜ਼ਿਆਦਾ ਗਤੀਸ਼ੀਲ ਏ pipeline ਬਣ ਜਾਂਦਾ ਹੈ, ਇਸਦੇ ਅੰਦਰ ਕੀ ਵਾਪਰਦਾ ਹੈ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨਾ ਓਨਾ ਹੀ ਔਖਾ ਹੁੰਦਾ ਹੈ। ਹਰ ਵਾਧੂ ਕਦਮ, ਏਕੀਕਰਨ, ਜਾਂ ਨਿਰਭਰਤਾ ਉਹਨਾਂ ਥਾਵਾਂ ਦੀ ਗਿਣਤੀ ਵਧਾਉਂਦੀ ਹੈ ਜਿੱਥੇ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਤੱਕ ਪਹੁੰਚ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।
ਨਤੀਜੇ ਵਜੋਂ, ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਇੰਜੈਕਸ਼ਨ ਇੱਕ ਸੰਰਚਨਾ ਵੇਰਵੇ ਤੋਂ ਇੱਕ ਸੁਰੱਖਿਆ ਚਿੰਤਾ ਵਿੱਚ ਬਦਲ ਜਾਂਦਾ ਹੈ।
ਜਦੋਂ ਤੁਸੀਂ ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਲਗਾਉਂਦੇ ਹੋ ਤਾਂ ਆਮ ਜੋਖਮ
ਜੋਖਮ ਸਿਧਾਂਤਕ ਨਹੀਂ ਹਨ। ਉਹ ਅਸਲ ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ pipelineਹਰ ਰੋਜ਼।
ਲੌਗਾਂ ਵਿੱਚ ਭੇਤ ਲੀਕ ਹੋ ਰਹੇ ਹਨ
ਲੌਗ ਇਹਨਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹਨ ਐਕਸਪੋਜਰ ਦੇ ਸਭ ਤੋਂ ਆਮ ਸਰੋਤ. ਡੀਬੱਗ ਫਲੈਗ, CLI ਟੂਲ, ਅਤੇ ਸਟੈਕ ਟਰੇਸ ਅਕਸਰ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਧਿਆਨ ਦਿੱਤੇ ਬਿਨਾਂ ਸੰਵੇਦਨਸ਼ੀਲ ਮੁੱਲਾਂ ਨੂੰ ਪ੍ਰਗਟ ਕਰਦੇ ਹਨ।
ਇੱਕ ਵਾਰ ਸਾਹਮਣੇ ਆਉਣ ਤੋਂ ਬਾਅਦ, ਉਹ ਮੁੱਲ ਸਿਸਟਮਾਂ ਵਿੱਚ ਤੇਜ਼ੀ ਨਾਲ ਫੈਲਦੇ ਹਨ।
ਬਹੁਤ ਜ਼ਿਆਦਾ ਇਜਾਜ਼ਤੀ ਪਹੁੰਚ
ਕਈ pipelines ਸਾਰੇ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਸਾਰੀਆਂ ਨੌਕਰੀਆਂ ਵਿੱਚ ਉਜਾਗਰ ਕਰਦਾ ਹੈ। ਇਹ ਬੇਲੋੜਾ ਜੋਖਮ ਪੈਦਾ ਕਰਦਾ ਹੈ।
ਜੇਕਰ ਇੱਕ ਕਦਮ ਨਾਲ ਸਮਝੌਤਾ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਇਹ ਉਹਨਾਂ ਪ੍ਰਮਾਣ ਪੱਤਰਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਦੀ ਇਸਨੂੰ ਅਸਲ ਵਿੱਚ ਲੋੜ ਨਹੀਂ ਹੈ।
ਨਿਰਭਰਤਾ ਅਤੇ ਕਾਰਵਾਈ ਦੁਰਵਰਤੋਂ
ਆਧੁਨਿਕ pipelineਉਪਭੋਗਤਾ ਥਰਡ-ਪਾਰਟੀ ਟੂਲਸ ਅਤੇ ਏਕੀਕਰਣ 'ਤੇ ਬਹੁਤ ਜ਼ਿਆਦਾ ਨਿਰਭਰ ਕਰਦੇ ਹਨ। ਇਹ ਹਿੱਸੇ ਤੁਹਾਡੇ ਰਾਜ਼ਾਂ ਵਾਂਗ ਹੀ ਵਾਤਾਵਰਣ ਵਿੱਚ ਚੱਲਦੇ ਹਨ।
ਜੇਕਰ ਉਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਇੱਕ ਦੁਰਭਾਵਨਾਪੂਰਨ ਵਿਵਹਾਰ ਕਰਦਾ ਹੈ, ਤਾਂ ਇਹ ਇੰਜੈਕਟ ਕੀਤੇ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਚੁੱਪਚਾਪ ਐਕਸੈਸ ਕਰ ਸਕਦਾ ਹੈ।
ਇਸਦੇ ਅਨੁਸਾਰ OWASP, ਸਪਲਾਈ ਚੇਨ ਹਮਲੇ ਅਕਸਰ ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਭਰੋਸੇਯੋਗ ਹਿੱਸਿਆਂ ਦਾ ਸ਼ੋਸ਼ਣ ਕਰਦੇ ਹਨ। ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਅਕਸਰ ਸਭ ਤੋਂ ਆਸਾਨ ਨਿਸ਼ਾਨਾ ਬਣ ਜਾਂਦੇ ਹਨ।
ਕੋਡ ਵਿੱਚ ਫਾਲਬੈਕ ਰਾਜ਼
ਜਦੋਂ ਗੁੰਮ ਵੇਰੀਏਬਲਾਂ ਕਾਰਨ ਬਿਲਡ ਅਸਫਲ ਹੋ ਜਾਂਦੇ ਹਨ, ਤਾਂ ਟੀਮਾਂ ਕਈ ਵਾਰ ਫਾਲਬੈਕ ਮੁੱਲ ਜੋੜਦੀਆਂ ਹਨ pipelineਚੱਲ ਰਿਹਾ ਹੈ।
ਸਮੇਂ ਦੇ ਨਾਲ, ਇਹ ਮੁੱਲ ਪ੍ਰਾਪਤ ਹੁੰਦੇ ਹਨ commitਟੈੱਡ ਜਾਂ ਤੈਨਾਤ, ਲੰਬੇ ਸਮੇਂ ਲਈ ਐਕਸਪੋਜਰ ਪੈਦਾ ਕਰਨਾ।
ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਇੰਜੈਕਟ ਕਰਨ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਅਭਿਆਸ
| ਸ਼੍ਰੇਣੀ | ਵਧੀਆ ਅਭਿਆਸ | ਇਹ ਕਿਉਂ ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ |
|---|---|---|
| ਭੇਤ ਸਟੋਰੇਜ | ਵਾਲਟ ਜਾਂ CI ਸੀਕਰੇਟ ਮੈਨੇਜਰ ਦੀ ਵਰਤੋਂ ਕਰੋ | ਕੋਡ ਵਿੱਚ ਐਕਸਪੋਜਰ ਨੂੰ ਰੋਕਦਾ ਹੈ |
| ਪਹੁੰਚ ਨਿਯੰਤਰਣ | ਪ੍ਰਤੀ ਕੰਮ ਪਹੁੰਚ ਸੀਮਤ ਕਰੋ | ਹਮਲੇ ਦੀ ਸਤ੍ਹਾ ਨੂੰ ਘਟਾਉਂਦਾ ਹੈ |
| ਲਾਗ | ਸੰਵੇਦਨਸ਼ੀਲ ਮੁੱਲਾਂ ਨੂੰ ਮਾਸਕ ਕਰੋ | ਲੀਕ ਨੂੰ ਰੋਕਦਾ ਹੈ |
| ਸਕੋਪ ਅਤੇ ਲਾਈਫਟਾਈਮ | ਥੋੜ੍ਹੇ ਸਮੇਂ ਦੇ ਪ੍ਰਮਾਣ ਪੱਤਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ | ਧਮਾਕੇ ਦੇ ਘੇਰੇ ਨੂੰ ਸੀਮਤ ਕਰਦਾ ਹੈ |
| ਪ੍ਰਮਾਣਿਕਤਾ | ਜੇਕਰ ਵੇਰੀਏਬਲ ਗੁੰਮ ਹਨ ਤਾਂ ਬਿਲਡ ਫੇਲ ਹੋ ਜਾਂਦੇ ਹਨ। | ਅਸੁਰੱਖਿਅਤ ਫਾਲਬੈਕਾਂ ਤੋਂ ਬਚਦਾ ਹੈ |
ਕਿਉਂ ਬਹੁਤ ਸਾਰੇ CI/CD ਸੁਰੱਖਿਆ ਟੂਲ ਮਿਸ ਐਨਵ ਵਾਰ ਲੀਕ
ਜ਼ਿਆਦਾਤਰ ਸੁਰੱਖਿਆ ਟੂਲ ਬਿਲਡ ਪੂਰਾ ਹੋਣ ਤੋਂ ਬਾਅਦ ਸਕੈਨਿੰਗ ਕੋਡ ਜਾਂ ਨਿਰਭਰਤਾਵਾਂ 'ਤੇ ਕੇਂਦ੍ਰਤ ਕਰਦੇ ਹਨ।
ਹਾਲਾਂਕਿ, ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੌਰਾਨ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਲੀਕ ਹੁੰਦੇ ਹਨ।
A pipeline ਰਾਜ਼ਾਂ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਇੰਜੈਕਟ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਫਿਰ ਵੀ ਉਹਨਾਂ ਨੂੰ ਲੌਗਸ ਜਾਂ ਰਨਟਾਈਮ ਵਿਵਹਾਰ ਰਾਹੀਂ ਪ੍ਰਗਟ ਕਰ ਸਕਦਾ ਹੈ। ਜਦੋਂ ਤੱਕ ਸਕੈਨਰ ਸਮੱਸਿਆ ਦਾ ਪਤਾ ਲਗਾਉਂਦਾ ਹੈ, ਰਾਜ਼ ਪਹਿਲਾਂ ਹੀ ਸਮਝੌਤਾ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਇਹ ਖੋਜ ਅਤੇ ਰੋਕਥਾਮ ਵਿਚਕਾਰ ਇੱਕ ਪਾੜਾ ਪੈਦਾ ਕਰਦਾ ਹੈ।
ਟੀਮਾਂ ਨੂੰ ਅਜਿਹੇ ਨਿਯੰਤਰਣਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਜੋ ਕੰਮ ਕਰਦੇ ਹਨ ਜਦੋਂ ਕਿ pipeline ਚੱਲਦਾ ਹੈ, ਖਤਮ ਹੋਣ ਤੋਂ ਬਾਅਦ ਨਹੀਂ।
ਅਸੀਂ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਇੰਜੈਕਸ਼ਨ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨ ਦੀ ਸਿਫਾਰਸ਼ ਕਿਵੇਂ ਕਰਦੇ ਹਾਂ
ਅਭਿਆਸ ਵਿੱਚ, ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਸੁਰੱਖਿਆ ਕੁਝ ਇਕਸਾਰ ਸਿਧਾਂਤਾਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ।
ਬਾਹਰ ਭੇਦ ਸਟੋਰ ਕਰੋ pipeline. ਉਹਨਾਂ ਨੂੰ ਸਿਰਫ਼ ਰਨਟਾਈਮ 'ਤੇ ਹੀ ਇੰਜੈਕਟ ਕਰੋ। ਘੱਟੋ-ਘੱਟ ਲੋੜੀਂਦੇ ਦਾਇਰੇ ਤੱਕ ਪਹੁੰਚ ਨੂੰ ਸੀਮਤ ਕਰੋ। ਜਦੋਂ ਵੀ ਸੰਭਵ ਹੋਵੇ ਥੋੜ੍ਹੇ ਸਮੇਂ ਦੇ ਪ੍ਰਮਾਣ ਪੱਤਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ।
ਉਸੇ ਸਮੇਂ, ਨਿਗਰਾਨੀ ਕਰੋ ਕਿ ਕਿਵੇਂ pipelines ਪਹੁੰਚ ਸੰਵੇਦਨਸ਼ੀਲ ਮੁੱਲ। ਅਣਕਿਆਸੇ ਪਹੁੰਚ ਪੈਟਰਨ ਅਕਸਰ ਲੀਕ ਦਿਖਾਈ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਜੋਖਮ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ।
ਇਹ ਪਹੁੰਚ ਸੁਰੱਖਿਆ ਨੂੰ ਪ੍ਰਤੀਕਿਰਿਆਸ਼ੀਲ ਖੋਜ ਤੋਂ ਕਿਰਿਆਸ਼ੀਲ ਨਿਯੰਤਰਣ ਵਿੱਚ ਬਦਲਦੀ ਹੈ।
ਜ਼ਾਇਜੇਨੀ ਕਿਵੇਂ ਰੱਖਿਆ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ CI/CD ਗੁਪਤ ਟੀਕਾ
ਸਿਰਫ਼ ਪੋਸਟ-ਬਿਲਡ ਸਕੈਨਿੰਗ 'ਤੇ ਨਿਰਭਰ ਕਰਨ ਦੀ ਬਜਾਏ, ਜ਼ਾਇਗੇਨੀ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਦਾ ਹੈ ਕਿ ਕਿਵੇਂ pipelines ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ ਜਿਵੇਂ ਉਹ ਚੱਲਦੇ ਹਨ। ਇਸ ਵਿੱਚ ਇਹ ਸ਼ਾਮਲ ਹੈ ਕਿ ਕਿਵੇਂ ਸੀਕਰੇਟ ਨੌਕਰੀਆਂ ਵਿੱਚ ਜਾਂਦੇ ਹਨ, ਬਿਲਡ ਸਟੈਪਸ ਉਹਨਾਂ ਤੱਕ ਕਿਵੇਂ ਪਹੁੰਚ ਕਰਦੇ ਹਨ, ਅਤੇ ਨਿਰਭਰਤਾਵਾਂ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਵਾਤਾਵਰਣ ਨਾਲ ਕਿਵੇਂ ਪਰਸਪਰ ਪ੍ਰਭਾਵ ਪਾਉਂਦੀਆਂ ਹਨ।
ਉਦਾਹਰਨ ਲਈ, Xygeni ਪਤਾ ਲਗਾ ਸਕਦਾ ਹੈ ਕਿ ਕਦੋਂ ਇੱਕ pipeline ਜਦੋਂ ਇੱਕ ਕਦਮ ਸੰਵੇਦਨਸ਼ੀਲ ਮੁੱਲਾਂ ਨੂੰ ਲੌਗਾਂ ਵਿੱਚ ਪ੍ਰਿੰਟ ਕਰਨ ਦਾ ਜੋਖਮ ਲੈਂਦਾ ਹੈ, ਜਾਂ ਜਦੋਂ ਕੋਈ ਨਿਰਭਰਤਾ ਅਚਾਨਕ ਪ੍ਰਮਾਣ ਪੱਤਰਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੀ ਹੈ, ਤਾਂ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵਿਆਪਕ ਰੂਪ ਵਿੱਚ ਪ੍ਰਗਟ ਕਰਦਾ ਹੈ।
ਇੱਕੋ ਹੀ ਸਮੇਂ ਵਿੱਚ, guardrails ਵਿੱਚ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਨੀਤੀ ਲਾਗੂ ਕਰੋ pipeline. ਟੀਮਾਂ ਅਸੁਰੱਖਿਅਤ ਬਿਲਡਾਂ ਨੂੰ ਰੋਕ ਸਕਦੀਆਂ ਹਨ, ਖਾਸ ਕੰਮਾਂ ਤੱਕ ਗੁਪਤ ਪਹੁੰਚ ਨੂੰ ਸੀਮਤ ਕਰ ਸਕਦੀਆਂ ਹਨ, ਅਤੇ ਜੋਖਮ ਭਰੀਆਂ ਸੰਰਚਨਾਵਾਂ ਨੂੰ ਉਤਪਾਦਨ ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ ਰੋਕ ਸਕਦੀਆਂ ਹਨ।
ਕਿਉਂਕਿ ਇਹ ਅੰਦਰ ਵਾਪਰਦਾ ਹੈ CI/CD ਵਰਕਫਲੋ, ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਉਹਨਾਂ ਦੇ ਕੰਮ ਕਰਨ ਦੇ ਤਰੀਕੇ ਨੂੰ ਬਦਲਣ ਦੀ ਜ਼ਰੂਰਤ ਨਹੀਂ ਹੈ। ਸੁਰੱਖਿਆ ਦਾ ਹਿੱਸਾ ਬਣ ਜਾਂਦੀ ਹੈ pipeline, ਕੋਈ ਵੱਖਰਾ ਕਦਮ ਨਹੀਂ।
ਨਤੀਜੇ ਵਜੋਂ, ਟੀਮਾਂ ਨੂੰ ਇਸ ਗੱਲ ਦੀ ਦ੍ਰਿਸ਼ਟੀ ਮਿਲਦੀ ਹੈ ਕਿ ਰਾਜ਼ ਕਿਵੇਂ ਵਰਤੇ ਜਾਂਦੇ ਹਨ, ਉਹਨਾਂ ਨੂੰ ਕਿਵੇਂ ਉਜਾਗਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਦੇ ਹਨ, ਅਤੇ ਡਿਲੀਵਰੀ ਨੂੰ ਹੌਲੀ ਕੀਤੇ ਬਿਨਾਂ ਲੀਕ ਹੋਣ ਦੇ ਜੋਖਮ ਨੂੰ ਘਟਾਉਂਦੇ ਹਨ।
ਅੰਤਿਮ ਵਿਚਾਰ
ਹਾਲਾਂਕਿ, ਇਹ ਜੋਖਮ ਦੀ ਇੱਕ ਪਰਤ ਵੀ ਪੇਸ਼ ਕਰਦਾ ਹੈ ਜੋ ਅਕਸਰ ਅਣਦੇਖੀ ਜਾਂਦੀ ਹੈ।
ਚੁਣੌਤੀ ਇਹ ਨਹੀਂ ਹੈ ਕਿ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਵੇ, ਸਗੋਂ ਇਹ ਹੈ ਕਿ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੌਰਾਨ ਉਨ੍ਹਾਂ ਦੇ ਐਕਸਪੋਜ਼ਰ ਨੂੰ ਕਿਵੇਂ ਕੰਟਰੋਲ ਕੀਤਾ ਜਾਵੇ।
ਆਧੁਨਿਕ DevOps ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ, ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਦੌਰਾਨ ਲੀਕ ਨੂੰ ਰੋਕਣਾ ਬਾਅਦ ਵਿੱਚ ਉਹਨਾਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਨਾਲੋਂ ਕਿਤੇ ਜ਼ਿਆਦਾ ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ।




