tj-actions/changed-files - CVE-2025-30066 - ਗੁਪਤ ਲੀਕੇਜ

CVE‑2025‑30066: ਜਦੋਂ tj-ਕਾਰਵਾਈਆਂ/ਬਦਲੀਆਂ-ਫਾਈਲਾਂ ਗੁਪਤ ਲੀਕੇਜ ਵੱਲ ਲੈ ਜਾਂਦੀਆਂ ਹਨ

ਵਿਸ਼ਾ - ਸੂਚੀ

ਪੜ੍ਹਨਯੋਗ ਪੋਸਟਾਂ

ਦਿਲਚਸਪੀ ਵਾਲੀਆਂ ਨਵੀਨਤਮ ਪੋਸਟਾਂ

ਗੁਪਤ ਲੀਕੇਜ ਹਮੇਸ਼ਾ ਮਾੜੇ ਕੋਡ ਜਾਂ ਕਮਜ਼ੋਰ ਲਾਇਬ੍ਰੇਰੀਆਂ ਬਾਰੇ ਨਹੀਂ ਹੁੰਦਾ। ਕਈ ਵਾਰ, ਇਹ ਇਸ ਗੱਲ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਅਸੀਂ CI ਰਨ ਦੌਰਾਨ ਗੁਪਤਤਾਵਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਿਵੇਂ ਕਰਦੇ ਹਾਂ, ਅਤੇ CVE‑2025‑30066 ਇੱਕ ਪਾਠ ਪੁਸਤਕ ਉਦਾਹਰਣ ਹੈ ਕਿ ਇਹ ਕਿਵੇਂ ਪਾਸੇ ਵੱਲ ਜਾ ਸਕਦਾ ਹੈ। GitHub ਐਕਸ਼ਨ tj‑ਐਕਸ਼ਨ/ਬਦਲੀਆਂ‑ਫਾਈਲਾਂ, ਜੋ ਕਿ ਬਦਲੀਆਂ ਹੋਈਆਂ ਫਾਈਲਾਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ ਵਿਆਪਕ ਤੌਰ 'ਤੇ ਵਰਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। pull requests, ਗੁਪਤ ਲੀਕੇਜ ਲਈ ਇੱਕ ਚੁੱਪ ਚੈਨਲ ਬਣ ਗਿਆ। ਇੱਥੇ ਕੀ ਹੋਇਆ ਅਤੇ ਤੁਸੀਂ ਆਪਣੇ CI/CD ਭੇਦ pipeline.

CVE‑2025‑30066 ਵਿੱਚ ਕੀ ਹੋਇਆ?

ਮਾਰਚ 2025 ਦੇ ਅੱਧ ਵਿੱਚ, ਕਾਰਵਾਈਆਂ/ਬਦਲੀਆਂ ਗਈਆਂ ਫਾਈਲਾਂ ਨਾਲ ਸਮਝੌਤਾ ਕੀਤਾ ਗਿਆ ਸੀ। ਹਮਲਾਵਰ ਨੇ ਇੱਕ ਖਤਰਨਾਕ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਨ ਲਈ ਮੌਜੂਦਾ ਸੰਸਕਰਣ ਟੈਗ (v45.0.7 ਤੱਕ) ਨੂੰ ਦੁਬਾਰਾ ਲਿਖਿਆ commit. ਇਸਨੇ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਧਿਆਨ ਦਿੱਤੇ ਬਿਨਾਂ ਐਕਸ਼ਨ ਦੇ ਵਿਵਹਾਰ ਨੂੰ ਬਦਲ ਦਿੱਤਾ; ਕੋਈ ਨਵਾਂ ਸੰਸਕਰਣ ਜਾਰੀ ਨਹੀਂ ਕੀਤਾ ਗਿਆ, ਸਿਰਫ਼ ਅਦਿੱਖ ਟੈਗ ਨਾਲ ਛੇੜਛਾੜ ਕੀਤੀ ਗਈ।

ਪੇਲੋਡ ਸਿੱਧਾ ਪਰ ਖ਼ਤਰਨਾਕ ਸੀ: ਇਸਨੇ ਇੱਕ ਰਿਮੋਟ ਬੇਸ64-ਏਨਕੋਡਡ ਪਾਈਥਨ ਸਕ੍ਰਿਪਟ ਖਿੱਚੀ ਜੋ ਰਨਰ ਮੈਮੋਰੀ ਨੂੰ ਪ੍ਰਮਾਣ ਪੱਤਰਾਂ ਲਈ ਸਕੈਨ ਕਰਦੀ ਸੀ, ਉਹਨਾਂ ਨੂੰ ਲੌਗਸ ਵਿੱਚ ਡੰਪ ਕਰਦੀ ਸੀ ਜਾਂ ਉਹਨਾਂ ਨੂੰ ਬਾਹਰ ਕੱਢਦੀ ਸੀ। ਇਹ tj-ਐਕਸ਼ਨ/ਬਦਲੀਆਂ-ਫਾਈਲਾਂ ਵਿੱਚ ਇੱਕ ਲਾਜ਼ੀਕਲ ਕੋਡ ਨੁਕਸ ਨਹੀਂ ਸੀ; ਇਹ ਇਸ ਗੱਲ ਦੀ ਦੁਰਵਰਤੋਂ ਸੀ ਕਿ ਉਸ ਮੁੜ ਵਰਤੋਂ ਯੋਗ ਐਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ CI ਵਰਕਫਲੋ ਦੇ ਅੰਦਰ ਗੁਪਤ ਲੀਕੇਜ ਕਿਵੇਂ ਹੋ ਸਕਦਾ ਹੈ। CVE-2025-30066 ਬਫਰ ਓਵਰਫਲੋ ਬਾਰੇ ਨਹੀਂ ਸੀ; ਇਹ ਇੱਕ CI ਡਿਜ਼ਾਈਨ ਅਸਫਲਤਾ ਬਾਰੇ ਸੀ ਜਿਸਨੇ ਰਾਜ਼ਾਂ ਨੂੰ ਲੀਕ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਇਆ।

ਪ੍ਰਭਾਵ: tj-ਕਾਰਵਾਈਆਂ/ਬਦਲੀਆਂ-ਫਾਈਲਾਂ ਦੇ ਪ੍ਰਭਾਵਿਤ ਸੰਸਕਰਣਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੇ ਕਿਸੇ ਵੀ ਰੈਪੋ ਵਿੱਚ ਗੁਪਤ ਲੀਕੇਜ ਦਾ ਖ਼ਤਰਾ ਹੁੰਦਾ ਹੈ, ਖਾਸ ਕਰਕੇ ਜੇਕਰ ਸੰਵੇਦਨਸ਼ੀਲ ਟੋਕਨ ਜਾਂ ਫਾਈਲਾਂ ਨੂੰ ਫਾਈਲ ਪੈਟਰਨਾਂ ਜਾਂ CI ਆਉਟਪੁੱਟ ਵਿੱਚ ਅਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਸੰਭਾਲਿਆ ਗਿਆ ਹੋਵੇ।

ਇਹ ਮੁੜ ਵਰਤੋਂ ਯੋਗ ਕਾਰਵਾਈਆਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹੋਏ ਵਰਕਫਲੋ ਨੂੰ ਕਿਉਂ ਪ੍ਰਭਾਵਿਤ ਕਰਦਾ ਹੈ

DevSecOps ਵਰਕਫਲੋ ਇਹਨਾਂ ਲਈ tj-ਕਾਰਵਾਈਆਂ/ਬਦਲੀਆਂ ਗਈਆਂ ਫਾਈਲਾਂ 'ਤੇ ਬਹੁਤ ਜ਼ਿਆਦਾ ਨਿਰਭਰ ਕਰਦਾ ਹੈ:

  • ਸਵੈਚਾਲਤ pull request ਚੈਕ
  • ਖਾਸ ਮਾਰਗਾਂ ਵਿੱਚ ਬਦਲੀਆਂ ਹੋਈਆਂ ਫਾਈਲਾਂ ਦੀ ਪਛਾਣ ਕਰੋ
  • ਬੇਲੋੜੀਆਂ CI ਨੌਕਰੀਆਂ ਤੋਂ ਬਚੋ

ਪਰ ਇਹ ਵਰਕਫਲੋ ਅਕਸਰ ਇੱਕ ਗੱਲ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਦੇ ਹਨ: ਗਲੋਬਲ ਪੈਟਰਨਾਂ ਵਿੱਚ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਕਿਵੇਂ ਸ਼ਾਮਲ ਹੋ ਸਕਦਾ ਹੈ। ਡਿਵੈਲਪਰ ਮੰਨਦੇ ਹਨ ਕਿ tj-ਐਕਸ਼ਨ/ਬਦਲੀਆਂ-ਫਾਈਲਾਂ ਡਿਫੌਲਟ ਰੂਪ ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਵਿਵਹਾਰ ਕਰਦੀਆਂ ਹਨ। ਹਾਲਾਂਕਿ, ਜੇਕਰ ਤੁਸੀਂ ਗਲੋਬਲ ਸੰਰਚਨਾਵਾਂ/** ਅਤੇ ਭੇਦ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ configs/secrets.env, ਤੁਸੀਂ ਹੁਣੇ ਹੀ CI ਆਉਟਪੁੱਟ ਜਾਂ ਲੌਗਸ ਵਿੱਚ ਇੱਕ ਗੁਪਤ ਫਾਈਲ ਜੋੜੀ ਹੈ। ਇਹ ਐਕਸ਼ਨ ਵਿੱਚ ਕੋਈ ਬੱਗ ਨਹੀਂ ਹੈ; ਇਹ ਇੱਕ CI/CD ਡਿਜ਼ਾਈਨ ਅਸਫਲਤਾ ਜੋ ਗੁਪਤ ਲੀਕੇਜ ਵੱਲ ਲੈ ਜਾਂਦੀ ਹੈ। CVE‑2025‑30066 ਇਸਦੀ ਇੱਕ ਸਪੱਸ਼ਟ ਉਦਾਹਰਣ ਹੈ।

ਗੁਪਤ ਲੀਕੇਜ ਕਿਵੇਂ ਹੋਇਆ (ਕਮਜ਼ੋਰਤਾ ਦਾ ਟੁੱਟਣਾ)

ਆਓ CVE‑2025‑30066 ਦੇ ਪਿੱਛੇ ਮੁੱਖ ਅਸਫਲਤਾ ਨੂੰ ਖੋਲ੍ਹੀਏ:

  • ਗਲੋਬਿੰਗ ਪੈਟਰਨ ਜਿਵੇਂ ਕਿ **/*.env ਗੁਪਤ ਫਾਈਲਾਂ ਅਣਜਾਣੇ ਵਿੱਚ ਮੇਲ ਖਾਂਦੀਆਂ ਹਨ
  • tj-ਕਾਰਵਾਈਆਂ/ਬਦਲੀਆਂ-ਫਾਈਲਾਂ ਨੇ ਉਹਨਾਂ ਭੇਦਾਂ ਨੂੰ ਬਦਲੀਆਂ ਹੋਈਆਂ ਫਾਈਲਾਂ ਵਜੋਂ ਮੰਨਿਆ
  • ਰਾਜ਼ ਸਟੈਪ ਆਉਟਪੁੱਟ, ਲੌਗ, ਜਾਂ ਡਾਊਨਸਟ੍ਰੀਮ ਜੌਬਸ ਵਿੱਚ ਖਤਮ ਹੋਏ।

ਇਹ ਇਸ ਲਈ ਹੋਇਆ ਕਿਉਂਕਿ ਭੇਦ ਵਰਜਨ-ਨਿਯੰਤਰਿਤ ਮਾਰਗਾਂ ਵਿੱਚ ਸਟੋਰ ਕੀਤੇ ਗਏ ਸਨ (ਮਾੜਾ ਵਿਚਾਰ), ਅਤੇ CI ਸੰਰਚਨਾ ਨੇ ਉਹਨਾਂ ਨੂੰ ਗਲੋਬਿੰਗ ਤੋਂ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਬਾਹਰ ਨਹੀਂ ਰੱਖਿਆ (ਇਹ ਵੀ ਮਾੜਾ)। ਇਸ ਲਈ ਇਹ ਕੋਈ ਕੋਡ ਬੱਗ ਨਹੀਂ ਹੈ, ਇਹ ਮਾੜੀ CI ਡਿਜ਼ਾਈਨ ਸਫਾਈ ਹੈ ਜਿਸ ਨਾਲ tj-ਐਕਸ਼ਨ/ਬਦਲੀਆਂ-ਫਾਈਲਾਂ ਆਉਟਪੁੱਟ ਨਾਲ ਗੁਪਤ ਲੀਕੇਜ ਹੁੰਦਾ ਹੈ।

ਵਿਹਾਰਕ ਸ਼ੋਸ਼ਣ ਮਾਰਗ: ਸੀਆਈ ਨੌਕਰੀ ਤੋਂ ਪ੍ਰਮਾਣ ਪੱਤਰ ਐਕਸਪੋਜ਼ਰ ਤੱਕ

ਉਦਾਹਰਨ CI ਸੈੱਟਅੱਪ ਜਿਸਨੇ tj-ਕਾਰਵਾਈਆਂ/ਬਦਲੀਆਂ-ਫਾਈਲਾਂ ਰਾਹੀਂ ਗੁਪਤ ਲੀਕੇਜ ਦਾ ਕਾਰਨ ਬਣਾਇਆ:

yaml jobs:   detect_changes:     runs‑on: ubuntu‑latest     steps:       ‑ uses: actions/checkout@v3       ‑ name: Check changed files         id: changed         uses: tj‑actions/changed‑files@v45         with:           files: configs/** 

If configs/secrets.env ਬਦਲਿਆ:

  • ਇਸਨੂੰ tj-ਕਾਰਵਾਈਆਂ/ਬਦਲੀਆਂ-ਫਾਈਲਾਂ ਦੁਆਰਾ ਫਲੈਗ ਕੀਤਾ ਗਿਆ ਸੀ।
  • ਇਸ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋ ਗਿਆ ਕਦਮ.ਬਦਲਿਆ.ਆਉਟਪੁੱਟ.ਸਾਰੀਆਂ_ਬਦਲੀਆਂ_ਫਾਈਲਾਂ
  • ਬਾਅਦ ਦੇ ਕਦਮਾਂ ਨੇ ਇਸਨੂੰ ਲੌਗ ਕੀਤਾ ਜਾਂ ਸਕ੍ਰਿਪਟਾਂ ਵਿੱਚ ਪਾਸ ਕੀਤਾ, ਭੇਦ ਲੀਕ ਕੀਤੇ।

ਇਹ ਲੀਕ ਇਸ ਲਈ ਹੋਇਆ ਕਿਉਂਕਿ CI ਲਾਜਿਕ ਨੇ ਗੁਪਤ ਫਾਈਲਾਂ ਨੂੰ ਨਿਯਮਤ ਫਾਈਲਾਂ ਵਾਂਗ ਮੰਨਿਆ। ਇਹੀ ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇ ਗੁਪਤ ਲੀਕੇਜ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਬਫਰ ਓਵਰਫਲੋ ਕਾਰਨ ਨਹੀਂ, ਸਗੋਂ ਇੱਕ ਨੁਕਸਦਾਰ CI ਡਿਜ਼ਾਈਨ ਵਿੱਚ tj-ਐਕਸ਼ਨ/ਬਦਲੀਆਂ-ਫਾਈਲਾਂ ਦੀ ਦੁਰਵਰਤੋਂ ਕਰਕੇ।

ਪ੍ਰਸਾਰ ਇਸ ਤਰ੍ਹਾਂ ਦੇ ਆਉਟਪੁੱਟ ਨਾਲ ਹੁੰਦਾ ਹੈ:

yaml ‑ name: Use changed file list   run: echo "Changed files: ${{ steps.changed.outputs.all_changed_files }}" 

If ਸੀਕ੍ਰੇਟਸ.ਐਨਵੀ ਉਸ ਸੂਚੀ ਵਿੱਚ ਹੈ, ਇਸਦਾ ਫਾਈਲ ਨਾਮ ਅਤੇ ਸੰਭਵ ਤੌਰ 'ਤੇ ਸਮੱਗਰੀ ਬਿਲਡ ਲੌਗ ਵਿੱਚ ਸਾਹਮਣੇ ਆ ਸਕਦੀ ਹੈ। ਇੱਥੋਂ ਤੱਕ ਕਿ ਸ਼ਰਤੀਆ ਤਰਕ ਜਿਵੇਂ ਕਿ:

yaml if: contains(steps.changed.outputs.all_changed_files, 'secrets.env') 

ਸੰਵੇਦਨਸ਼ੀਲ ਕਲਾਕ੍ਰਿਤੀਆਂ ਦਾ ਪਰਦਾਫਾਸ਼ ਕਰ ਸਕਦਾ ਹੈ। ਇਹ ਇੱਕ CI/CD ਡਿਜ਼ਾਈਨ ਅਸਫਲਤਾ ਜੋ ਗੁਪਤ ਲੀਕ ਹੋਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ, ਐਕਸ਼ਨ ਕੋਡ ਵਿੱਚ ਕੋਈ ਨੁਕਸ ਨਹੀਂ।

ਮੁੜ ਵਰਤੋਂ ਯੋਗ ਵਰਕਫਲੋ ਨੂੰ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਕਿਵੇਂ ਵਰਤਣਾ ਹੈ ਅਤੇ ਲੀਕੇਜ ਨੂੰ ਕਿਵੇਂ ਰੋਕਣਾ ਹੈ

ਤੁਹਾਨੂੰ tj-ਕਾਰਵਾਈਆਂ/ਬਦਲੀਆਂ ਹੋਈਆਂ-ਫਾਈਲਾਂ ਨੂੰ ਛੱਡਣ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। ਤੁਹਾਨੂੰ ਗੁਪਤ-ਪਹਿਲਾਂ ਮਾਨਸਿਕਤਾ ਨਾਲ ਮੁੜ ਵਰਤੋਂ ਯੋਗ ਕਾਰਵਾਈਆਂ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ:

ਰਾਜ਼ - ਵਧੀਆ ਅਭਿਆਸਾਂ ਨੂੰ ਸੰਭਾਲਣਾ

  • ਕਦੇ ਵੀ ਵਰਜਨ ਕੰਟਰੋਲ ਦੇ ਭੇਦ ਨਾ ਖੋਲ੍ਹੋ
  • ਸੰਵੇਦਨਸ਼ੀਲ ਮਾਰਗਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਗਲੋਬ ਪੈਟਰਨਾਂ ਤੋਂ ਬਚੋ
  • ਵਾਤਾਵਰਣ-ਅਧਾਰਤ ਰਾਜ਼ਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ (GITHUB_ENV, ਵਾਲਟਸ, GitHub ਰਾਜ਼)

CI/CD ਸੰਰਚਨਾ Guardrails

  • ਹਮੇਸ਼ਾ ਐਕਸ਼ਨਾਂ ਨੂੰ ਅਟੱਲ SHAs ਨਾਲ ਪਿੰਨ ਕਰੋ, ਟੈਗਾਂ ਨਾਲ ਨਹੀਂ (ਕਦੇ ਵੀ ਵਰਤੋਂ ਨਾ ਕਰੋ @v45)
  • ਟੀਜੇ-ਐਕਸ਼ਨ/ਬਦਲੀਆਂ-ਫਾਈਲਾਂ ਦੇ ਆਉਟਪੁੱਟ ਨੂੰ ਦੂਸ਼ਿਤ ਮੰਨੋ, ਇਸਨੂੰ ਸੈਨੀਟਾਈਜ਼ ਕਰੋ ਜਾਂ ਫਿਲਟਰ ਕਰੋ।
  • ਸਿਰਫ਼ ਤਾਂ ਹੀ ਆਊਟਪੁੱਟ ਸੈੱਟ ਕਰੋ ਜੇਕਰ ਸੈਨੇਟਾਈਜ਼ ਕੀਤਾ ਗਿਆ ਹੋਵੇ

⚠️ ਅਸੁਰੱਖਿਅਤ ਉਦਾਹਰਣ:

yaml jobs:   detect_changes:     runs‑on: ubuntu‑latest     steps:       ‑ uses: actions/checkout@v3       ‑ name: Detect all changes         id: changed         uses: tj‑actions/changed‑files@v45         with:           files: '**/*'  # ⚠️ This glob includes secrets.env, which may leak credentials 

ਉਪਰੋਕਤ ਬਿਲਕੁਲ ਗੁਪਤ ਲੀਕੇਜ ਅਤੇ CVE‑2025‑30066 ਪਿੱਛੇ ਦੁਰਵਰਤੋਂ ਹੈ।

ਸੁਰੱਖਿਅਤ ਵਿਕਲਪ:

yaml jobs:   detect_changes:     runs‑on: ubuntu‑latest     steps:       ‑ uses: actions/checkout@v3       ‑ name: Detect non‑sensitive file changes         id: changed         uses: tj‑actions/changed‑files@<SHA>  # pinned to SHA         with:           files: 'src/**'           files‑ignore: '**/secrets.env'  # ⚠️ Excludes secret file 

ਅਜਿਹਾ ਕਰਨ ਨਾਲ, ਤੁਸੀਂ ਇਸ ਤੋਂ ਬਚਦੇ ਹੋ CI/CD ਡਿਜ਼ਾਈਨ ਅਸਫਲਤਾ ਜੋ tj-ਕਾਰਵਾਈਆਂ/ਬਦਲੀਆਂ-ਫਾਈਲਾਂ ਰਾਹੀਂ ਗੁਪਤ ਲੀਕੇਜ ਵੱਲ ਲੈ ਜਾਂਦੀ ਹੈ।

ਇਸ ਤੋਂ ਇਲਾਵਾ:

  • ਜਿੱਥੇ ਗੁਪਤ ਜਾਣਕਾਰੀ ਦਿਖਾਈ ਦੇ ਸਕਦੀ ਹੈ, ਉੱਥੇ ਲੌਗਿੰਗ ਨੂੰ ਅਯੋਗ ਜਾਂ ਸੀਮਤ ਕਰੋ
  • GitHub ਦੀਆਂ ਗੁਪਤ ਮਾਸਕਿੰਗ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ
  • ਬਿਲਡ ਲੌਗ ਅਤੇ ਕਲਾਕ੍ਰਿਤੀਆਂ ਤੱਕ ਪਹੁੰਚ ਸੀਮਤ ਕਰੋ

ਤੇਜ਼ ਰਾਜ਼ - ਸੁਰੱਖਿਅਤ CI ਵਰਤੋਂ ਚੈੱਕਲਿਸਟ

ਵਧੀਆ ਅਭਿਆਸ
ਵਰਜਨ-ਨਿਯੰਤਰਿਤ ਫਾਈਲਾਂ ਵਿੱਚ ਭੇਦ ਸਟੋਰ ਨਾ ਕਰੋ
ਪ੍ਰਮਾਣ ਪੱਤਰਾਂ ਲਈ ਵਾਲਟਸ ਜਾਂ GitHub ਸੀਕਰੇਟਸ ਦੀ ਵਰਤੋਂ ਕਰੋ
ਹਮੇਸ਼ਾ tj-actions/ਬਦਲੀਆਂ ਹੋਈਆਂ ਫਾਈਲਾਂ ਨੂੰ ਅਟੱਲ SHAs ਵਿੱਚ ਪਿੰਨ ਕਰੋ।
ਟੀਜੇ-ਐਕਸ਼ਨ/ਬਦਲੀਆਂ-ਫਾਈਲਾਂ ਤੋਂ ਆਉਟਪੁੱਟ ਫਿਲਟਰ ਜਾਂ ਸੈਨੀਟਾਈਜ਼ ਕਰੋ
ਕਦੇ ਵੀ ਗਲੋਬ ਪੈਟਰਨਾਂ ਵਿੱਚ ਗੁਪਤ ਰਸਤੇ ਸ਼ਾਮਲ ਨਾ ਕਰੋ
ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਨੂੰ ਪ੍ਰਗਟ ਕਰਨ ਵਾਲੇ ਲੌਗਾਂ ਨੂੰ ਮਾਸਕ ਜਾਂ ਸੀਮਤ ਕਰੋ
ਅਕਸਰ ਵਿਰਾਸਤ ਵਿੱਚ ਪ੍ਰਾਪਤ CI ਸੰਰਚਨਾਵਾਂ ਦਾ ਆਡਿਟ ਕਰੋ

ਜ਼ਾਇਗੇਨੀ ਦੀ ਭੂਮਿਕਾ: ਸੀਆਈ ਭੇਦ ਵੱਡੇ ਪੱਧਰ 'ਤੇ ਲਾਗੂ ਕਰਦਾ ਹੈ

ਜ਼ਾਇਗੇਨੀ secures CI/CD pipeline'ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਕੇ ਅਸਲ ਦੁਨੀਆਂ ਵਿੱਚ ਭੇਦ ਕਿਵੇਂ ਸੰਭਾਲੇ ਜਾਂਦੇ ਹਨ, ਵਰਤੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਉਜਾਗਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ DevOps ਵਰਕਫਲੋ। ਇਹ ਸਿਰਫ਼ ਕੋਡ ਸਕੈਨ ਕਰਨ ਬਾਰੇ ਨਹੀਂ ਹੈ; ਇਹ ਲਾਈਵ ਰਾਹੀਂ ਗੁਪਤ ਪ੍ਰਬੰਧਨ ਦੇ ਸਭ ਤੋਂ ਵਧੀਆ ਅਭਿਆਸਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਬਾਰੇ ਹੈ pipeline ਵਿਸ਼ਲੇਸ਼ਣ

ਅਸੁਰੱਖਿਅਤ ਆਉਟਪੁੱਟ ਵਰਤੋਂ ਖੋਜ

  • GitHub ਐਕਸ਼ਨਾਂ ਨੂੰ ਸਕੈਨ ਕਰਦਾ ਹੈ ਦੇ ਉਪਯੋਗਾਂ ਲਈ ਈਕੋ, ਰਨ, ਅਤੇ ਆਉਟਪੁੱਟ ਜਿੱਥੇ ${{ ਕਦਮ.*.ਆਉਟਪੁੱਟ.* }} ਸੰਵੇਦਨਸ਼ੀਲ ਮੁੱਲ ਸ਼ਾਮਲ ਹੋ ਸਕਦੇ ਹਨ
  • ਪਛਾਣ ਕਰਦਾ ਹੈ ਕਿ ਕਦੋਂ ਰਾਜ਼ ਸਿੱਧੇ ਤੌਰ 'ਤੇ, ਜਾਣਬੁੱਝ ਕੇ, ਜਾਂ ਗਲਤੀ ਨਾਲ ਹਵਾਲਾ ਦਿੱਤੇ ਜਾਂ ਛਾਪੇ ਜਾਂਦੇ ਹਨ

ਲੀਕ ਹੋਏ ਰਾਜ਼ਾਂ ਦੀ ਨਿਗਰਾਨੀ

  • ਲੌਗਸ ਅਤੇ ਸਟੈਪ ਆਉਟਪੁੱਟ ਦੇ ਅੰਦਰ ਉੱਚ-ਐਂਟਰੋਪੀ ਮੁੱਲ (API ਕੁੰਜੀਆਂ, ਟੋਕਨ) ਦਾ ਪਤਾ ਲਗਾਉਂਦਾ ਹੈ।
  • ਜਦੋਂ ਭੇਦ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ ਤਾਂ ਚੇਤਾਵਨੀਆਂ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ pipeline ਲੌਗਸ, ਭਾਵੇਂ ਹੇਠਾਂ ਵੱਲ ਨੂੰ ਢੱਕੇ ਹੋਏ ਹੋਣ

ਗਲਤ ਸੰਰਚਿਤ ਕਾਰਵਾਈ ਵਰਤੋਂ

  • ਸਾਰੀਆਂ GitHub ਕਾਰਵਾਈਆਂ ਨੂੰ ਟਰੈਕ ਕਰਦਾ ਹੈ pipelineਸਮਝੌਤਾ ਕੀਤੇ ਸੰਸਕਰਣਾਂ ਦੀ ਵਰਤੋਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ (ਜਿਵੇਂ ਕਿ, (tj-actions/changed-files@v45)
  • ਫਾਈਲ-ਮੇਲ ਖਾਂਦੇ ਪੈਟਰਨਾਂ ਦਾ ਆਡਿਟ ਕਰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਸੰਭਾਵੀ ਰਾਜ਼ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ ਜਿਵੇਂ ਕਿ **/*.env, *.key, ਜਾਂ .env.*

ਨੀਤੀ-ਅਧਾਰਤ CI Guardrails

  • ਤੀਜੀ-ਧਿਰ ਦੀਆਂ ਕਾਰਵਾਈਆਂ ਲਈ SHA-ਪਿੰਨਿੰਗ ਨੂੰ ਲਾਗੂ ਕਰਦਾ ਹੈ।
  • ਅਸੁਰੱਖਿਅਤ ਫਾਈਲ ਗਲੋਬਸ ਦੀ ਵਰਤੋਂ ਨੂੰ ਰੋਕਦਾ ਹੈ ਜੋ ਗੁਪਤ ਜਾਣਕਾਰੀ ਨੂੰ ਲੌਗਸ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹਨ।
  • ਰੋਕਦਾ ਹੈ pipelineਵਰਕਫਲੋ ਆਉਟਪੁੱਟ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਸੰਵੇਦਨਸ਼ੀਲ ਮੁੱਲਾਂ ਨੂੰ ਛੱਡਣ ਤੋਂ

ਵਰਕਫਲੋ ਨੂੰ ਤੁਹਾਡੀ ਧਮਕੀ ਵਾਲੀ ਸਤ੍ਹਾ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਮੰਨ ਕੇ, ਜ਼ਾਇਗੇਨੀ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਗੁਪਤ ਸਫਾਈ ਸਿਰਫ਼ ਇੱਕ ਵਧੀਆ ਅਭਿਆਸ ਹੀ ਨਹੀਂ ਹੈ, ਇਹ ਇੱਕ ਅੰਦਰੂਨੀ ਬਚਾਅ ਵੀ ਹੈ।

ਸਿੱਟਾ: ਗੁਪਤ ਲੀਕੇਜ ਇੱਕ ਸਧਾਰਨ ਕਾਰਵਾਈ ਦੀ ਦੁਰਵਰਤੋਂ ਨਾਲ ਸ਼ੁਰੂ ਹੋ ਸਕਦਾ ਹੈ।

CVE‑2025‑30066 ਇੱਕ ਲਾਇਬ੍ਰੇਰੀ ਬੱਗ ਨਹੀਂ ਸੀ; ਇਹ ਇੱਕ ਸੀ CI/CD ਡਿਜ਼ਾਈਨ ਅਸਫਲਤਾ tj-ਕਾਰਵਾਈਆਂ/ਬਦਲੀਆਂ-ਫਾਈਲਾਂ ਦੀ ਗਲਤ ਵਰਤੋਂ ਕਾਰਨ ਪੈਦਾ ਹੋਈ। DevSecOps ਟੀਮਾਂ ਨੂੰ ਕੀ ਲੈਣਾ ਚਾਹੀਦਾ ਹੈ:

  • CI ਵਿੱਚ ਹਰੇਕ ਗਲੋਬ/ਫਾਈਲ ਹਵਾਲੇ ਨੂੰ ਇੱਕ ਸੰਭਾਵੀ ਲੀਕ ਪੁਆਇੰਟ ਵਜੋਂ ਮੰਨੋ।
  • ਰਾਜ਼ਾਂ ਦੇ ਗਲਤੀ ਨਾਲ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਨਿਯਮਿਤ ਤੌਰ 'ਤੇ ਆਡਿਟ ਵਰਕਫਲੋ
  • ਸੁਰੱਖਿਅਤ ਵਾਲਟ ਜਾਂ ਵਾਤਾਵਰਣ ਦੇ ਰਾਜ਼ ਵਰਤੋ, ਕਦੇ ਵੀ ਵਰਜਨ ਕੰਟਰੋਲ ਵਿੱਚ ਰਾਜ਼ਾਂ ਦੀ ਜਾਂਚ ਨਾ ਕਰੋ।
  • ਸਾਰੇ ਵਰਕਫਲੋ ਆਉਟਪੁੱਟ ਨੂੰ ਸੈਨੀਟਾਈਜ਼ ਜਾਂ ਫਿਲਟਰ ਕਰੋ
  • ਆਡਿਟਯੋਗਤਾ ਬਣਾਈ ਰੱਖਣ ਲਈ ਸੰਵੇਦਨਸ਼ੀਲ ਵਰਕਫਲੋ ਗਤੀਵਿਧੀ ਨੂੰ ਲੌਗ ਕਰੋ

CI ਕੋਡ ਹੈ। ਵਰਕਫਲੋ ਕੋਡ ਹਨ। ਲੌਗ ਅਤੇ ਆਉਟਪੁੱਟ ਕੋਡ ਹਨ। ਹਰ ਕਦਮ 'ਤੇ ਆਪਣੇ ਰਾਜ਼ਾਂ ਦੀ ਰੱਖਿਆ ਕਰੋ, ਨਹੀਂ ਤਾਂ ਇੱਕ ਗੁਪਤ ਲੀਕ ਹੋਣ ਵਾਲੇ ਦ੍ਰਿਸ਼ ਦਾ ਜੋਖਮ ਲਓ ਜਿਸ ਨੂੰ ਹੈਕਰ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ, ਸਿਰਫ਼ ਇੱਕ ਬੁਰਾ CI/CD ਡਿਜ਼ਾਈਨ ਦੀ ਚੋਣ।

sca-ਟੂਲਜ਼-ਸਾਫਟਵੇਅਰ-ਰਚਨਾ-ਵਿਸ਼ਲੇਸ਼ਣ-ਟੂਲਜ਼
ਆਪਣੇ ਸਾਫਟਵੇਅਰ ਜੋਖਮਾਂ ਨੂੰ ਤਰਜੀਹ ਦਿਓ, ਸੁਧਾਰੋ ਅਤੇ ਸੁਰੱਖਿਅਤ ਕਰੋ
ਆਪਣਾ ਮੁਫ਼ਤ ਖਾਤਾ ਪ੍ਰਾਪਤ ਕਰੋ।
ਕੋਈ ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ

ਆਪਣੇ ਸਾਫਟਵੇਅਰ ਵਿਕਾਸ ਅਤੇ ਡਿਲੀਵਰੀ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰੋ

ਜ਼ਾਇਜੇਨੀ ਪ੍ਰੋਡਕਟ ਸੂਟ ਦੇ ਨਾਲ