Secret Gate
ਇੱਕ ਰਿਲੀਜ਼ ਗੇਟ ਜੋ ਤੁਹਾਡੇ ਅਸਲੀ ਸੀਕ੍ਰੇਟਸ ਬਾਰੇ ਜਾਣਦਾ ਹੈ: ਜਦੋਂ ਤੱਕ ਇਹ ਕੁਝ ਨਹੀਂ ਲੱਭਦਾ, ਕੁਝ ਵੀ ਸ਼ਿਪ ਨਹੀਂ ਹੁੰਦਾ।
- Linux or macOS
- Python 3.9+
- Git hooks
- CI

ਇਹ ਕੀ ਕਰਦਾ ਹੈ
ਸੀਕ੍ਰੇਟ ਗੇਟ ਤੁਹਾਡੇ ਹੱਥਾਂ ਤੋਂ ਕੁਝ ਵੀ ਨਿਕਲਣ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਸਵਾਲ ਦਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ, ਭਾਵੇਂ ਇਹ ਰਿਲੀਜ਼ ਜ਼ਿਪ ਹੋਵੇ, ਗਾਹਕ ਦੀ ਕਾਪੀ ਹੋਵੇ, ਓਪਨ-ਸੋਰਸ ਪੁਸ਼ ਹੋਵੇ ਜਾਂ ਅਗਲਾ ਕਮਿਟ ਹੋਵੇ: ਕੀ ਇਸ ਵਿੱਚ ਮੇਰਾ ਕੋਈ ਸੀਕ੍ਰੇਟ ਹੈ? ਇਹ ਜਾਣਦਾ ਹੈ ਕਿ ਤੁਹਾਡੇ ਸੀਕ੍ਰੇਟ ਕੀ ਹਨ, ਕਿਉਂਕਿ ਇਹ ਉਹਨਾਂ ਫਾਈਲਾਂ ਨੂੰ ਪੜ੍ਹਦਾ ਹੈ ਜਿੱਥੇ ਉਹ ਰਹਿੰਦੇ ਹਨ, ਅਤੇ ਇਹ ਕਦੇ ਵੀ ਇੱਕ ਨੂੰ ਦਿਖਾਉਂਦਾ ਨਹੀਂ: ਕੋਈ ਖੋਜ ਫਾਈਲ, ਲਾਈਨ ਅਤੇ ਮੁੱਲ ਕਿੱਥੋਂ ਆਇਆ, ਇਹ ਦੱਸਦੀ ਹੈ।
- ਤੁਹਾਡੇ ਬਿਲਕੁਲ ਸਹੀ ਮੁੱਲ। ਤੁਹਾਡੀਆਂ env ਫਾਈਲਾਂ, JSON ਅਤੇ YAML ਕੌਨਫਿਗਾਂ,
.netrcਅਤੇ ਕੀ ਫਾਈਲਾਂ ਵਿੱਚ ਹਰ ਮੁੱਲ, ਜਿਵੇਂ ਲਿਖਿਆ ਹੈ, base64-ਇਨਕੋਡਡ ਅਤੇ URL-ਇਨਕੋਡਡ ਰੂਪ ਵਿੱਚ ਲੱਭਿਆ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਪਾਸਵਰਡ ਜੋ ਇੱਕ ਆਮ ਸ਼ਬਦ ਵਰਗਾ ਲੱਗਦਾ ਹੈ, ਜਾਂ ਇੱਕ ਅੰਦਰੂਨੀ ਟੋਕਨ ਜਿਸਦਾ ਕੋਈ ਜਾਣਿਆ-ਪਛਾਣਿਆ ਪ੍ਰੀਫਿਕਸ ਨਹੀਂ ਹੈ, ਬਾਕੀ ਸਾਰਿਆਂ ਵਾਂਗ ਫੜਿਆ ਜਾਂਦਾ ਹੈ। - ਉਹਨਾਂ ਮਸ਼ੀਨਾਂ ਦੇ ਸੀਕ੍ਰੇਟ ਜਿੱਥੇ ਇਹ ਚੱਲਦੀ ਨਹੀਂ। ਆਪਣੇ ਲੈਪਟਾਪ ਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਬਣਾਓ; ਬਿਲਡ ਸਰਵਰ ਉਹਨਾਂ ਮੁੱਲਾਂ ਨੂੰ ਬਿਨਾਂ ਉਹਨਾਂ ਨੂੰ ਫੜੇ ਲੱਭ ਲੈਂਦਾ ਹੈ।
- ਹੋਰ ਮਸ਼ੀਨਾਂ ਆਪਣੇ ਸੀਕ੍ਰੇਟਾਂ ਨਾਲ ਮੇਲ ਕਰਦੀਆਂ ਹਨ। ਫਾਈਲਾਂ SSH ਰਾਹੀਂ ਹਰ ਮਸ਼ੀਨ ਤੇ ਜਾਂਦੀਆਂ ਹਨ, ਉੱਥੇ ਸਕੈਨ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ ਅਤੇ ਮਿਟਾ ਦਿੱਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਸੀਕ੍ਰੇਟ ਕਦੇ ਵੀ ਨਹੀਂ ਜਾਂਦੇ, ਅਤੇ ਇੱਕ ਮਸ਼ੀਨ ਜੋ ਜਵਾਬ ਨਹੀਂ ਦੇ ਸਕਦੀ, ਰਿਲੀਜ਼ ਨੂੰ ਰੋਕ ਦਿੰਦੀ ਹੈ।
- ਸ਼ਕਲਾਂ, ਨਾਮ ਅਤੇ ਸ਼ੋਰ ਵੀ। 25 ਟੋਕਨ ਫਾਰਮੈਟ, ਤੁਹਾਡੇ ਨਾਮ, ਹੋਸਟ, ਡੋਮੇਨ ਅਤੇ ਅਕਾਊਂਟ ਆਈਡੀ, ਪ੍ਰਾਈਵੇਟ IP ਪਤੇ, ਨਿੱਜੀ ਮੇਲ ਪਤੇ, ਫੋਨ ਨੰਬਰ, IBAN, ਹੋਮ-ਫੋਲਡਰ ਪਾਥ, ਅਤੇ ਸੀਕ੍ਰੇਟ-ਵਰਗੇ ਨਾਮਾਂ ਦੇ ਨਾਲ ਰੈਂਡਮ ਸਟ੍ਰਿੰਗਜ਼।
- ਇਹ ਹਰ ਵਾਰ ਆਪਣੇ ਆਪ ਨੂੰ ਸਾਬਤ ਕਰਦਾ ਹੈ। ਹਰ ਸਕੈਨ ਹਰ ਕਿਸਮ ਦੇ ਕੈਨੇਰੀ ਲਾ ਕੇ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ; ਜੇ ਕੋਈ ਚੈੱਕ ਆਪਣਾ ਕੈਨੇਰੀ ਛੱਡ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਸਕੈਨ ਨਹੀਂ ਚੱਲਦਾ।
- ਜਿੱਥੇ ਤੁਸੀਂ ਪਹਿਲਾਂ ਹੀ ਕੰਮ ਕਰਦੇ ਹੋ। ਫੋਲਡਰ, ਜ਼ਿਪ ਅਤੇ ਤਾਰ ਆਰਕਾਈਵ, ਇੱਕ git pre-commit ਜਾਂ pre-push ਹੁੱਕ, CI ਲਈ exit ਕੋਡ, ਇੱਕ JSON ਰਿਪੋਰਟ।
ਜੋ ਅਸੀਂ ਭੇਜਦੇ ਹਾਂ ਉਸ ਤੇ ਟੈਸਟ ਕੀਤਾ ਗਿਆ
- ਹਰ ਕਿੱਟ ਜੋ ਅਸੀਂ ਵੇਚਦੇ ਹਾਂ: 8 ਰਿਲੀਜ਼ ਕੀਤੇ ਆਰਕਾਈਵ ਸਾਡੀ ਬਿਲਡ ਮਸ਼ੀਨ ਤੇ 133 ਸੀਕ੍ਰੇਟ ਮੁੱਲਾਂ ਅਤੇ ਸਾਡੇ ਲੈਪਟਾਪ ਤੋਂ 16,259 ਫਿੰਗਰਪ੍ਰਿੰਟਾਂ ਦੇ ਖਿਲਾਫ ਸਕੈਨ ਕੀਤੇ ਗਏ। ਸਾਰੇ ਪਾਸ ਹੋਏ, ਕੁੱਲ 5.4 ਸਕਿੰਟ ਵਿੱਚ।
- ਇੱਕ ਰਿਲੀਜ਼ ਕਾਪੀ ਵਿੱਚ ਲਾਇਆ ਗਿਆ ਅਸਲੀ ਸੀਕ੍ਰੇਟ ਸਾਫ ਅਤੇ base64-ਇਨਕੋਡਡ ਰੂਪ ਵਿੱਚ ਫੜਿਆ ਗਿਆ, ਹਰ ਵਾਰ ਉਸ ਫਾਈਲ ਦੁਆਰਾ ਨਾਮ ਦਿੱਤਾ ਗਿਆ ਜਿੱਥੋਂ ਇਹ ਆਇਆ ਸੀ। ਮੁੱਲ ਆਉਟਪੁੱਟ ਜਾਂ ਰਿਪੋਰਟ ਵਿੱਚ ਕਿਤੇ ਵੀ ਨਹੀਂ ਦਿਖਾਈ ਦਿੱਤਾ।
- SSH ਰਾਹੀਂ ਇੱਕ ਰਿਮੋਟ ਸਕੈਨ ਨੇ ਦੂਜੀ ਮਸ਼ੀਨ ਦੇ 499 ਸੀਕ੍ਰੇਟ ਮੁੱਲਾਂ ਦੇ ਖਿਲਾਫ ਇੱਕ ਰਿਲੀਜ਼ ਨੂੰ 1.4 ਸਕਿੰਟ ਵਿੱਚ ਚੈੱਕ ਕੀਤਾ, ਅਤੇ ਉਸ ਕਾਪੀ ਵਿੱਚ ਲਾਏ ਗਏ ਇੱਕ ਟੋਕਨ ਨੂੰ ਫੜ ਲਿਆ ਜੋ ਸਿਰਫ਼ ਉਸ ਮਸ਼ੀਨ ਤੇ ਮੌਜੂਦ ਸੀ।
ਅੰਦਰ ਕੀ ਹੈ
ਗੇਟ
ਚਾਰ ਚੈੱਕ, ਸੈਲਫ-ਟੈਸਟ, ਆਰਕਾਈਵ ਅਤੇ git-staged ਸਕੈਨਿੰਗ, ਇੱਕ ਪੜ੍ਹਨਯੋਗ ਰਿਪੋਰਟ ਅਤੇ ਇੱਕ JSON ਵਾਲੀ।
ਫਿੰਗਰਪ੍ਰਿੰਟ
ਇੱਕ ਮਸ਼ੀਨ ਦੇ ਸੀਕ੍ਰੇਟਾਂ ਦੇ ਫਿੰਗਰਪ੍ਰਿੰਟ, ਦੂਜੀ ਮਸ਼ੀਨ ਤੇ ਸਕੈਨ ਲਈ, ਬਿਨਾਂ ਮੁੱਲਾਂ ਦੇ।
ਰਿਮੋਟ ਸਕੈਨ
ਉਹੀ ਫਾਈਲਾਂ ਹਰ ਉਸ ਮਸ਼ੀਨ 'ਤੇ ਚੈੱਕ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ ਜਿੱਥੇ ਸੀਕ੍ਰੇਟਸ ਹਨ, ਤੁਹਾਡੇ ਪ੍ਰੋਜੈਕਟ ਦੇ ਨਿਯਮਾਂ ਦੇ ਨਾਲ।
ਸੈੱਟਅੱਪ ਅਤੇ CI
ਤੁਹਾਡੀਆਂ ਸੀਕ੍ਰੇਟ ਫਾਈਲਾਂ ਲਈ ਇੱਕ ਫਾਈਂਡਰ, git hooks, ਅਤੇ ਰਿਲੀਜ਼ ਆਰਕਾਈਵਜ਼ ਲਈ ਇੱਕ GitHub Actions ਵਰਕਫਲੋ।
ਲੋੜੀਂਦੀਆਂ ਚੀਜ਼ਾਂ
- Linux ਜਾਂ macOS ਜਿੱਥੇ Python 3.9 ਜਾਂ ਇਸ ਤੋਂ ਨਵਾਂ ਹੋਵੇ; pip ਤੋਂ ਕੁਝ ਵੀ ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ।
- Hooks ਲਈ Git, ਅਤੇ ਰਿਮੋਟ ਸਕੈਨਾਂ ਲਈ SSH।
ਜਾਣਨ ਲਈ ਵਧੀਆ
- ਇਹ ਫਾਈਲਾਂ ਨੂੰ ਉਵੇਂ ਹੀ ਪੜ੍ਹਦਾ ਹੈ ਜਿਵੇਂ ਉਹ ਹੁਣ ਹਨ। ਤੁਹਾਡੇ git ਇਤਿਹਾਸ ਵਿੱਚ ਪਹਿਲਾਂ ਤੋਂ ਮੌਜੂਦ ਕੋਈ ਸੀਕ੍ਰੇਟ ਉੱਥੇ ਹੀ ਰਹਿੰਦਾ ਹੈ: ਉਸਨੂੰ ਰੋਟੇਟ ਕਰੋ।
- ਸਕੈਨ ਕੀਤੇ ਗਏ ਫੋਲਡਰ ਦੇ ਅੰਦਰਲੇ ਆਰਕਾਈਵ ਖੋਲ੍ਹੇ ਨਹੀਂ ਜਾਂਦੇ; ਹਰ ਆਰਕਾਈਵ ਨੂੰ ਵੱਖਰਾ ਸਕੈਨ ਕਰੋ।
- ਫਿੰਗਰਪ੍ਰਿੰਟ ਫਾਈਲਾਂ ਨੂੰ ਉਨੀ ਹੀ ਪ੍ਰਾਈਵੇਟ ਰੱਖੋ ਜਿੰਨੇ ਸੀਕ੍ਰੇਟਸ ਹਨ: ਉਹ 16 ਜਾਂ ਇਸ ਤੋਂ ਵੱਧ ਅੱਖਰਾਂ ਵਾਲੇ ਹਰ ਮੁੱਲ ਦੇ ਪਹਿਲੇ 4 ਅੱਖਰ ਰੱਖਦੀਆਂ ਹਨ।
ਸਵਾਲ
ਇਹ gitleaks ਜਾਂ TruffleHog ਤੋਂ ਕਿਵੇਂ ਵੱਖਰਾ ਹੈ?
ਉਹ ਇਹ ਦੇਖਦੇ ਹਨ ਕਿ ਸੀਕ੍ਰੇਟਸ ਆਮ ਤੌਰ 'ਤੇ ਕਿਵੇਂ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ, ਅਤੇ ਉਹ ਇਸ ਵਿੱਚ ਚੰਗੇ ਹਨ। Secret Gate ਇਹ ਵੀ ਜਾਣਦਾ ਹੈ ਕਿ ਤੁਹਾਡੇ ਸੀਕ੍ਰੇਟਸ ਅਸਲ ਵਿੱਚ ਕੀ ਹਨ: ਇਹ ਤੁਹਾਡੀਆਂ ਆਪਣੀਆਂ ਸੀਕ੍ਰੇਟ ਫਾਈਲਾਂ ਪੜ੍ਹਦਾ ਹੈ ਅਤੇ ਉਨ੍ਹਾਂ ਹੀ ਖਾਸ ਮੁੱਲਾਂ ਨੂੰ ਲੱਭਦਾ ਹੈ, ਇਸ ਲਈ ਇੱਕ ਡਾਟਾਬੇਸ ਪਾਸਵਰਡ ਜਾਂ ਇੱਕ ਅੰਦਰੂਨੀ ਟੋਕਨ ਜਿਸਦਾ ਕੋਈ ਪਛਾਣਯੋਗ ਰੂਪ ਨਹੀਂ ਹੈ, ਵੀ ਫੜਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਇੱਕ ਪਲ ਲਈ ਬਣਾਇਆ ਗਿਆ ਹੈ, ਕਿਸੇ ਚੀਜ਼ ਦੇ ਸ਼ਿਪ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ, ਅਤੇ ਇਹ ਬੰਦ ਹੋ ਕੇ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ।
ਕੀ ਇਹ ਮੇਰੇ ਸੀਕ੍ਰੇਟਸ ਕਿਤੇ ਭੇਜਦਾ ਹੈ?
ਨਹੀਂ। ਮੁੱਲ ਸਕੈਨ ਲਈ ਤੁਹਾਡੀਆਂ ਫਾਈਲਾਂ ਤੋਂ ਮੈਮੋਰੀ ਵਿੱਚ ਪੜ੍ਹੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਕਦੇ ਵੀ ਪ੍ਰਿੰਟ, ਲਿਖੇ ਜਾਂ ਭੇਜੇ ਨਹੀਂ ਜਾਂਦੇ; ਇੱਕ ਫਿੰਗਰਪ੍ਰਿੰਟ ਫਾਈਲ, ਜੇ ਤੁਸੀਂ ਇੱਕ ਬਣਾਉਂਦੇ ਹੋ, ਵਿੱਚ ਇੱਕ ਹੈਸ਼ ਅਤੇ ਹਰੇਕ ਦੇ ਪਹਿਲੇ 4 ਅੱਖਰ ਹੁੰਦੇ ਹਨ। ਰਿਮੋਟ ਸਕੈਨ ਤੁਹਾਡੇ ਆਪਣੇ ਮਸ਼ੀਨ 'ਤੇ ਉਹ ਫਾਈਲਾਂ ਭੇਜਦੇ ਹਨ ਜੋ ਤੁਸੀਂ ਸ਼ਿਪ ਕਰਨ ਵਾਲੇ ਹੋ; ਉਸ ਮਸ਼ੀਨ ਦੇ ਸੀਕ੍ਰੇਟ ਉੱਥੇ ਹੀ ਰਹਿੰਦੇ ਹਨ।
ਫਾਲਸ ਅਲਾਰਮਾਂ ਦਾ ਕੀ?
ਇੱਕ ਫਾਈਂਡਿੰਗ ਦਾ ਮਤਲਬ ਹੈ "ਇਸ ਨੂੰ ਦੇਖੋ"। ਜੇ ਇਹ ਠੀਕ ਹੈ, ਤਾਂ ਪ੍ਰੋਜੈਕਟ ਦੀ ਕਨਫਿਗਰੇਸ਼ਨ ਵਿੱਚ ਉਸ ਕਿਸਮ ਦੀ ਫਾਈਂਡਿੰਗ ਲਈ ਇੱਕ ਤੰਗ allow rule ਸ਼ਾਮਲ ਕਰੋ, ਉਦਾਹਰਣ ਵਜੋਂ ਤੁਹਾਡਾ ਆਪਣਾ ਸਪੋਰਟ ਐਡਰੈਸ। ਕੋਈ ਅਜਿਹਾ ਸਵਿੱਚ ਨਹੀਂ ਹੈ ਜੋ ਇੱਕ ਚੈੱਕ ਨੂੰ ਬੰਦ ਕਰ ਦੇਵੇ।
ਕੀ ਇਹ ਮੇਰੇ git ਇਤਿਹਾਸ ਨੂੰ ਸਕੈਨ ਕਰ ਸਕਦਾ ਹੈ?
ਨਹੀਂ। ਇਹ ਉਸ ਚੀਜ਼ ਨੂੰ ਚੈੱਕ ਕਰਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਸ਼ਿਪ ਕਰਨ ਵਾਲੇ ਹੋ: ਇੱਕ ਫੋਲਡਰ, ਇੱਕ ਆਰਕਾਈਵ, ਜਾਂ ਅਗਲਾ ਕਮਿਟ। ਇਤਿਹਾਸ ਵਿੱਚ ਪਹਿਲਾਂ ਤੋਂ ਮੌਜੂਦ ਸੀਕ੍ਰੇਟ ਲਈ, ਸੀਕ੍ਰੇਟ ਨੂੰ ਰੋਟੇਟ ਕਰੋ।
ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ: