TL; ਡਾ
ਇੱਕ ਸਿੰਗਲ npm ਪ੍ਰਕਾਸ਼ਕ ਨੇ ਅੱਠ ਛੋਟੇ ਪੈਕੇਜ ਭੇਜੇ ਜਿਨ੍ਹਾਂ ਦੇ ਨਾਮ ਬਲਾਕਚੈਨ ਅਤੇ ਵਾਲਿਟ ਵਿਕਾਸ ਲਈ ਰੋਜ਼ਾਨਾ ਬਿਲਡਿੰਗ ਬਲਾਕਾਂ ਵਾਂਗ ਪੜ੍ਹੇ ਜਾਂਦੇ ਹਨ, base58-utils, abi-encode, eth-dev, arb-kit, layer2-sdk, solana-key-utils, eth-wallet-helpersਹੈ, ਅਤੇ crypto-validate-lib. ਹਰੇਕ ਵਿੱਚ ਇੱਕ ਕਾਰਜਸ਼ੀਲ ਉਪਯੋਗਤਾ ਹੁੰਦੀ ਹੈ। ਹਾਲਾਂਕਿ, ਉਸ ਉਪਯੋਗਤਾ ਤੋਂ ਬਾਅਦ ਜੋੜਿਆ ਗਿਆ ਕੋਡ ਦਾ ਇੱਕ ਸਵੈ-ਇਨਵੋਕਿੰਗ ਬਲਾਕ ਹੈ ਜੋ ਮੋਡੀਊਲ ਦੇ ਆਯਾਤ ਹੋਣ ਦੇ ਸਮੇਂ ਚੱਲਦਾ ਹੈ।
ਆਯਾਤ ਤੋਂ ਲਗਭਗ 37 ਸਕਿੰਟ ਬਾਅਦ, ਉਹ ਬਲਾਕ ਇੱਕ ਪੇਲੋਡ ਨੂੰ ਡੀਕੋਡ ਕਰਦਾ ਹੈ ਜੋ ਪੈਕੇਜ ਦੇ ਅੰਦਰ ਇੱਕ ਟੈਸਟ ਫਿਕਸਚਰ ਦੇ ਭੇਸ ਵਿੱਚ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ, ਇਸਨੂੰ ਉਪਭੋਗਤਾ ਦੀ ਹੋਮ ਡਾਇਰੈਕਟਰੀ ਦੇ ਹੇਠਾਂ ਇੱਕ ਲੁਕਵੀਂ ਫਾਈਲ ਵਿੱਚ ਲਿਖਦਾ ਹੈ, ਹਰ ਵਾਰ ਰੀਸਟਾਰਟ ਕਰਨ ਲਈ ਆਪਣੇ ਆਪ ਨੂੰ ਰਜਿਸਟਰ ਕਰਦਾ ਹੈ। login Windows, macOS, ਅਤੇ Linux ਵਿੱਚ, ਅਤੇ ਡੀਕੋਡ ਕੀਤੀ ਸਕ੍ਰਿਪਟ ਨੂੰ ਇੱਕ ਵੱਖਰੇ ਪ੍ਰਕਿਰਿਆ ਦੇ ਤੌਰ 'ਤੇ ਲਾਂਚ ਕਰਦਾ ਹੈ। npm ਇੰਸਟਾਲੇਸ਼ਨ ਦੌਰਾਨ ਇਸ ਬਾਰੇ ਕੁਝ ਵੀ ਨਹੀਂ ਚੱਲਦਾ; ਇਹ ਕੋਡ ਦੇ ਆਯਾਤ ਅਤੇ ਚੱਲਣ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਇੰਸਟਾਲੇਸ਼ਨ ਨਾਲੋਂ ਇੱਕ ਸ਼ਾਂਤ ਪਲ ਹੈ।
ਪੇਲੋਡ ਅਪਾਰਦਰਸ਼ੀ ਨਹੀਂ ਹੈ। ਇਹ ਪਲੇਨ ਬੇਸ64 ਦੇ ਤੌਰ 'ਤੇ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ "ਟੈਸਟ ਫਿਕਸਚਰ" ਨੂੰ ਡੀਕੋਡ ਕਰਨ ਨਾਲ ਦੂਜੇ ਪੜਾਅ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਰਿਕਵਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ: a ਕ੍ਰਿਪਟੋ-ਵਾਲਿਟ ਅਤੇ ਭੇਦ ਚੋਰੀ ਕਰਨ ਵਾਲਾ ਜੋ ਮਸ਼ੀਨ ਦੇ ਵਿਹਲੇ ਰਹਿਣ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ, ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀਆਂ ਅਤੇ ਸੀਡ ਵਾਕਾਂਸ਼ਾਂ ਦੀ ਕਟਾਈ ਕਰਦਾ ਹੈ, ਹਰੇਕ ਖੋਜ ਨੂੰ ਇੱਕ ਹਾਰਡਕੋਡਡ RSA-4096 ਕੁੰਜੀ ਨਾਲ ਏਨਕ੍ਰਿਪਟ ਕਰਦਾ ਹੈ, ਅਤੇ ਇਸਨੂੰ ਜਨਤਕ IPFS ਸਟੋਰੇਜ ਵਿੱਚ ਪਿੰਨ ਕਰਕੇ, ਹਰ 12 ਘੰਟਿਆਂ ਬਾਅਦ ਬੀਕਨਿੰਗ ਕਰਕੇ ਐਕਸਫਿਲਟ੍ਰੇਟ ਕਰਦਾ ਹੈ।
ਅਸੀਂ ਕਲੱਸਟਰ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਟਰੈਕ ਕਰਦੇ ਹਾਂ ਫੈਂਟਮਸਿੰਕ. ਸਾਰੇ ਅੱਠ ਪੈਕੇਜ ਵਿਸ਼ਲੇਸ਼ਣ ਦੇ ਸਮੇਂ npm ਰਜਿਸਟਰੀ ਵਿੱਚ ਲਾਈਵ ਸਨ, ਇੱਕ ਸਿੰਗਲ ਖਾਤੇ ਦੇ ਅਧੀਨ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤੇ ਗਏ ਸਨ।
| ਜਾਲ | npm |
| ਪੈਕੇਜ | base58-utils, abi-encode, eth-dev, arb-kit, layer2-sdk, solana-key-utils, eth-wallet-helpers, crypto-validate-lib |
| ਨਿਸ਼ਾਨਾ ਬਣਾਏ ਗਏ ਪਲੇਟਫਾਰਮ | ਵਿੰਡੋਜ਼, ਮੈਕੋਸ, ਲੀਨਕਸ |
| ਮੁੱਖ ਵਿਵਹਾਰ | ਦੇਰੀ ਨਾਲ, ਆਯਾਤ-ਸਮਾਂ ਡਰਾਪਰ ਇੱਕ ਟੈਸਟ ਫਿਕਸਚਰ ਦੇ ਤੌਰ 'ਤੇ ਲੁਕਿਆ ਹੋਇਆ ਹੈ; ਕਰਾਸ-ਪਲੇਟਫਾਰਮ ਸਥਿਰਤਾ ਸਥਾਪਤ ਕਰਦਾ ਹੈ |
| ਪੇਜਲੋਡ | ਕ੍ਰਿਪਟੋ-ਵਾਲਿਟ ਅਤੇ ਭੇਦ ਚੋਰੀ ਕਰਨ ਵਾਲਾ, RSA-4096 ਇਨਕ੍ਰਿਪਸ਼ਨ, ਜਨਤਕ IPFS ਪਿੰਨਿੰਗ ਰਾਹੀਂ ਐਕਸਫਿਲਟਰੇਸ਼ਨ |
ਹਮਲੇ ਦੀ ਸਰੀਰ ਵਿਗਿਆਨ
ਹਰੇਕ ਪੈਕੇਜ ਪਹਿਲੀ ਵਾਰ ਪੜ੍ਹਨ 'ਤੇ ਹੀ ਬੇਮਿਸਾਲ ਲੱਗਦਾ ਹੈ। ਬੇਸ58-ਯੂਟਿਲਸ, ਉਦਾਹਰਣ ਵਜੋਂ, ਕੁਝ ਕਿਲੋਬਾਈਟ ਜ਼ੀਰੋ-ਨਿਰਭਰਤਾ Base58 / Bitcoin-WIF ਸਹਾਇਕ ਕੋਡ ਹੈ — ਬਿਲਕੁਲ ਉਹੀ ਜੋ ਨਾਮ ਵਾਅਦਾ ਕਰਦਾ ਹੈ। ਸੰਬੰਧਿਤ ਕੋਡ ਬੈਠਦਾ ਹੈ ਦੇ ਬਾਅਦ ਮੋਡੀਊਲ ਦਾ ਮੋਡੀਊਲ.ਐਕਸਪੋਰਟ, ਜਿੱਥੇ ਫਾਈਲ ਦੇ ਉੱਪਰਲੇ ਹਿੱਸੇ ਨੂੰ ਸਕਿਮ ਕਰਨ ਵਾਲਾ ਪਾਠਕ ਦੇਖਣ ਦੀ ਸੰਭਾਵਨਾ ਨਹੀਂ ਹੈ: ਇੱਕ ਸਵੈ-ਇਨਵੋਕਿੰਗ ਫੰਕਸ਼ਨ ਜੋ ਆਪਣੇ ਆਪ ਨੂੰ ਟਾਈਮਰ ਨਾਲ ਸ਼ਡਿਊਲ ਕਰਦਾ ਹੈ।
ਪੈਕੇਜ ਸਰੋਤ ਤੋਂ ਮੁੜ-ਨਿਰਮਿਤ ਕਾਰਜਾਂ ਦੀ ਲੜੀ, ਇਸ ਤਰ੍ਹਾਂ ਚੱਲਦੀ ਹੈ:
1. Package is required() by the host project
2. A self-invoking function schedules a callback ~37,000 ms later (setTimeout)
3. On fire, the callback reads test/fixtures/keypairs.dat (a base64 blob)
4. It base64-decodes that blob into a Node.js script
5. It writes the script to ~/.cache-db/.node-sync/syncd.js (mode 0o700)
6. It installs login-persistence for that script (see below)
7. It spawns "node syncd.js" as a detached processਦੋ ਡਿਜ਼ਾਈਨ ਵਿਕਲਪ ਵੱਖਰੇ ਹਨ।
ਪੇਲੋਡ ਇੱਕ ਟੈਸਟ ਫਿਕਸਚਰ ਦੇ ਤੌਰ 'ਤੇ ਯਾਤਰਾ ਕਰਦਾ ਹੈ। ਦੂਜਾ ਪੜਾਅ ਸਪੱਸ਼ਟ ਕੋਡ ਦੇ ਰੂਪ ਵਿੱਚ ਨਹੀਂ ਲਿਖਿਆ ਗਿਆ ਹੈ। ਇਹ ਅੰਦਰ ਰਹਿੰਦਾ ਹੈ ਟੈਸਟ/ਫਿਕਸਚਰ/ਕੀਪੇਅਰਸ.ਡਾਟ, ਇੱਕ ਬੇਸ64 ਫਾਈਲ ਜਿਸਦਾ ਨਾਮ ਇੱਕ ਪੈਕੇਜ ਵਿੱਚ ਮਿਲ ਜਾਂਦਾ ਹੈ ਜੋ ਕੁੰਜੀ ਜੋੜਿਆਂ ਨੂੰ ਸੰਭਾਲਣ ਦਾ ਦਾਅਵਾ ਕਰਦਾ ਹੈ। ਟਾਰਬਾਲ ਨੂੰ ਸਕਿਮ ਕਰਨ ਵਾਲੇ ਮਨੁੱਖ ਲਈ, ਇਹ ਨਮੂਨਾ ਡੇਟਾ ਵਰਗਾ ਲੱਗਦਾ ਹੈ; ਜੋੜੀ ਗਈ ਕੋਡ ਲਈ, ਇਹ ਡੀਕੋਡ ਕਰਨ ਅਤੇ ਚਲਾਉਣ ਲਈ ਇੱਕ ਸਕ੍ਰਿਪਟ ਹੈ। ਡਰਾਪਰ ਵਿੱਚ ਆਪਣੇ ਆਪ ਵਿੱਚ ਕੋਈ ਨੈੱਟਵਰਕ ਪਤਾ ਨਹੀਂ ਹੁੰਦਾ - ਉਹ ਦੂਜੇ ਪੜਾਅ ਵਿੱਚ ਰਹਿੰਦੇ ਹਨ - ਪਰ ਕੋਈ ਵਾਧੂ ਉਲਝਣ ਨਹੀਂ ਹੈ: ਫਿਕਸਚਰ ਬੇਸ64 ਦੀ ਇੱਕ ਸਿੰਗਲ ਪਰਤ ਹੈ, ਇਸ ਲਈ ਇਸਨੂੰ ਡੀਕੋਡ ਕਰਨਾ (ਬੇਸ64 -ਡੀ) ਪੂਰੀ ਤਰ੍ਹਾਂ ਠੀਕ ਹੋ ਜਾਂਦਾ ਹੈ ਸਿੰਕਡ.ਜੇਐਸ ਅਤੇ ਇਸਦਾ ਨੈੱਟਵਰਕ ਵਿਵਹਾਰ। ਅਗਲਾ ਭਾਗ ਉਸ ਰਿਕਵਰਡ ਸਟੇਜ ਦੇ ਕੰਮਾਂ ਬਾਰੇ ਦੱਸਦਾ ਹੈ।
ਧਮਾਕਾ ਦੇਰੀ ਨਾਲ ਹੁੰਦਾ ਹੈ ਅਤੇ ਇਹ ਇੰਪੋਰਟ ਨਾਲ ਜੁੜਿਆ ਹੁੰਦਾ ਹੈ, ਇੰਸਟਾਲ ਨਾਲ ਨਹੀਂ। ਕਿਉਂਕਿ ਟਰਿੱਗਰ ਹੈ ਲੋੜ () ਨਾਲ ਹੀ ਇੰਸਟਾਲ ਹੁੱਕ ਦੀ ਬਜਾਏ ~37-ਸਕਿੰਟ ਦਾ ਟਾਈਮਰ, ਵਿਵਹਾਰ ਉਹਨਾਂ ਜਾਂਚਾਂ ਨੂੰ ਛੱਡ ਦਿੰਦਾ ਹੈ ਜੋ ਸਿਰਫ਼ ਦੇਖਦੇ ਹਨ npm ਇੰਸਟਾਲ ਕਦਮ, ਅਤੇ ਦੇਰੀ ਬਹੁਤ ਸਾਰੇ ਥੋੜ੍ਹੇ ਸਮੇਂ ਦੇ ਸੈਂਡਬੌਕਸ ਅਤੇ CI ਰਨ ਤੋਂ ਵੱਧ ਰਹਿੰਦੀ ਹੈ। ਜਦੋਂ ਤੱਕ ਕੁਝ ਵੀ ਲਾਗੂ ਹੁੰਦਾ ਹੈ, ਉਹ ਇੰਸਟਾਲ ਜਿਸਨੇ ਪੈਕੇਜ ਨੂੰ ਅੰਦਰ ਖਿੱਚਿਆ ਸੀ, ਬਹੁਤ ਪਹਿਲਾਂ ਹੀ ਖਤਮ ਹੋ ਚੁੱਕਾ ਹੁੰਦਾ ਹੈ।
ਇੱਕ ਵਾਰ ਡੀਕੋਡ ਕੀਤੀ ਸਕ੍ਰਿਪਟ ਡਿਸਕ 'ਤੇ ਹੋਣ 'ਤੇ ~/.ਕੈਸ਼-ਡੀਬੀ/.ਨੋਡ-ਸਿੰਕ/ਸਿੰਕਡੀ.ਜੇਐਸ — ਇੱਕ ਰੂਟੀਨ ਕੈਸ਼ ਡਾਇਰੈਕਟਰੀ ਵਾਂਗ ਪੜ੍ਹਨ ਲਈ ਚੁਣਿਆ ਗਿਆ ਮਾਰਗ — ਡਰਾਪਰ ਇਸਨੂੰ ਤਿੰਨੋਂ ਪ੍ਰਮੁੱਖ ਪਲੇਟਫਾਰਮਾਂ 'ਤੇ ਰੀਬੂਟ ਹੋਣ ਤੋਂ ਬਚਾਉਂਦਾ ਹੈ:
- ਲੀਨਕਸ: ਇੱਕ ਕਰੋਨ ਐਂਟਰੀ ਜੋ ਸਕ੍ਰਿਪਟ ਨੂੰ ਦੁਬਾਰਾ ਲਾਂਚ ਕਰਦੀ ਹੈ। ਐਂਟਰੀ ਮੌਜੂਦਾ ਕਰੋਨਟੈਬ ਨੂੰ ਫਿਲਟਰ ਕਰਕੇ ਸਥਾਪਿਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ grep -v ਸਿੰਕ ਕੀਤਾ ਗਿਆ, ਜਿਸਦਾ ਮਾੜਾ ਪ੍ਰਭਾਵ ਨਵੀਂ ਐਂਟਰੀ ਨੂੰ ਇੱਕ ਪਲੇਨ ਸੂਚੀ ਵਿੱਚੋਂ ਬਾਹਰ ਛੱਡਣ ਦਾ ਹੁੰਦਾ ਹੈ ਜੋ ਉਸੇ ਨਾਮ ਲਈ greps ਕਰਦੀ ਹੈ।
- ਵਿੰਡੋਜ਼: ਇੱਕ ਨਿਯਤ ਕੰਮ ਜਿਸਦਾ ਨਾਮ ਹੈ ਵਿਨਨੋਡਸਿੰਕ, 12-ਮਿੰਟ ਦੇ ਅੰਤਰਾਲ 'ਤੇ ਦੁਬਾਰਾ ਚਲਾਉਣ ਲਈ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ।
- macOS: ਇੱਕ ਲਾਂਚ ਕੀਤੀ ਨੌਕਰੀ ਜਿਸਦਾ ਲੇਬਲ ਲਗਾਇਆ ਗਿਆ ਹੈ com.apple.syncd ਐਪਲ, ਕਈ ਪੈਕੇਜਾਂ ਵਿੱਚ ਮੌਜੂਦ ਹੈ - ਇੱਕ ਲੇਬਲ ਜੋ ਇੱਕ ਜਾਇਜ਼ ਐਪਲ ਸਿਸਟਮ ਸੇਵਾ ਦੀ ਨਕਲ ਕਰਦਾ ਹੈ।
ਫਿਰ ਸਕ੍ਰਿਪਟ ਨੂੰ ਤੁਰੰਤ ਇੱਕ ਵੱਖਰਾ ਪ੍ਰਕਿਰਿਆ ਦੇ ਤੌਰ 'ਤੇ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ ਇਹ ਆਯਾਤ ਪ੍ਰੋਗਰਾਮ ਦੇ ਬਾਹਰ ਆਉਣ ਤੋਂ ਬਾਅਦ ਵੀ ਚੱਲਦਾ ਰਹਿੰਦਾ ਹੈ।
ਦੂਜਾ ਪੜਾਅ ਕੀ ਕਰਦਾ ਹੈ
ਕਿਉਂਕਿ ਫਿਕਸਚਰ ਇੱਕ ਸਿੰਗਲ ਬੇਸ64 ਲੇਅਰ ਹੈ, ਦੂਜਾ ਪੜਾਅ ਸਾਫ਼-ਸਾਫ਼ ਡੀਕੋਡ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਪੜ੍ਹਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਸਾਰੇ ਅੱਠ ਪੈਕੇਜ ਇੱਕੋ ਸਕ੍ਰਿਪਟ ਦੇ ਤਿੰਨ ਰੂਪਾਂ ਵਿੱਚੋਂ ਇੱਕ ਰੱਖਦੇ ਹਨ, ਜੋ ਕਿ ਇੱਕ ਹੈਡਰ ਟਿੱਪਣੀ ਵਿੱਚ ਆਪਣੇ ਆਪ ਨੂੰ ਪਛਾਣਦਾ ਹੈ ਫੈਂਟਮ ਸਿੰਕਡ v3 — topo durmiente ("ਸਲੀਪਿੰਗ ਮੋਲ")। ਇਸਦਾ ਕੰਮ ਕ੍ਰਿਪਟੋਕਰੰਸੀ-ਵਾਲਿਟ ਸਮੱਗਰੀ ਅਤੇ ਡਿਵੈਲਪਰ ਦੇ ਭੇਦ ਚੋਰੀ ਕਰਨਾ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਮਸ਼ੀਨ ਤੋਂ ਬਾਹਰ ਭੇਜਣਾ ਹੈ। ਇਹ ਇਹਨਾਂ ਕਦਮਾਂ ਵਿੱਚ ਚੱਲਦਾ ਹੈ:
- 1. ਮਸ਼ੀਨ ਦੇ ਵਿਹਲੇ ਹੋਣ ਤੱਕ ਉਡੀਕ ਕਰੋ। ਕੁਝ ਵੀ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਸਿੰਕਡ.ਜੇਐਸ ਇਹ ਜਾਂਚ ਕਰਦਾ ਹੈ ਕਿ ਉਪਭੋਗਤਾ ਕਿੰਨੇ ਸਮੇਂ ਤੋਂ ਅਕਿਰਿਆਸ਼ੀਲ ਹੈ ਅਤੇ ਸਿਰਫ਼ ਇੱਕ ਸੀਮਾ (ਲਗਭਗ 15 ਮਿੰਟ) ਤੋਂ ਅੱਗੇ ਵਧਦਾ ਹੈ — xprintidle ਲੀਨਕਸ ਤੇ, ਆਈਓਰੇਗ macOS 'ਤੇ HIDIdleTime, ਅਤੇ Windows 'ਤੇ PowerShell ਆਈਡਲ-ਟਾਈਮ ਪੁੱਛਗਿੱਛ। ਇਸ ਲਈ ਹਾਰਵੈਸਟਿੰਗ ਉਦੋਂ ਹੁੰਦੀ ਹੈ ਜਦੋਂ ਕੋਈ ਕੀਬੋਰਡ 'ਤੇ ਨਹੀਂ ਹੁੰਦਾ।
- 2. ਰਿਮੋਟਲੀ-ਨਿਯੰਤਰਿਤ ਐਕਟੀਵੇਸ਼ਨ ਸਵਿੱਚ ਪ੍ਰਾਪਤ ਕਰੋ. ਸਕ੍ਰਿਪਟ ਕੰਮ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਡੈੱਡ-ਡ੍ਰੌਪ ਤੋਂ ਇੱਕ ਛੋਟਾ ਜਿਹਾ ਸੰਰਚਨਾ ਖਿੱਚਦੀ ਹੈ। ਪ੍ਰਾਇਮਰੀ ਸਰੋਤ ਇੱਕ GitHub ਸੰਖੇਪ ਕੱਚਾ URL ਹੈ (gist.githubusercontent.com/juang55/…/cfg.txt); ਸਕ੍ਰਿਪਟ ਸਿਰਫ਼ ਤਾਂ ਹੀ ਕਿਰਿਆਸ਼ੀਲ ਹੁੰਦੀ ਹੈ ਜੇਕਰ ਉਹ ਸੰਰਚਨਾ ਪੜ੍ਹਦੀ ਹੈ ਕਿਰਿਆਸ਼ੀਲ=1. ਜੇਕਰ ਸਾਰ ਉਪਲਬਧ ਨਹੀਂ ਹੈ, ਤਾਂ ਇਹ ਤਿੰਨ ਹਾਰਡਕੋਡ ਕੀਤੇ IPFS ਸਮੱਗਰੀ ਪਛਾਣਕਰਤਾਵਾਂ 'ਤੇ ਵਾਪਸ ਆ ਜਾਂਦਾ ਹੈ, ਜੋ ਜਨਤਕ ਗੇਟਵੇ ਰਾਹੀਂ ਪ੍ਰਾਪਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। ਗੇਟਵੇ.ਪਿਨਾਟਾ.ਕਲਾਊਡ, ipfs.ioਹੈ, ਅਤੇ ਕਲਾਉਡਫਲੇਅਰ-ipfs.com. ਇਹ ਆਪਰੇਟਰ ਨੂੰ ਇੱਕ ਤੱਥ ਤੋਂ ਬਾਅਦ ਦਾ ਬਾਂਹ/ਨਿਹੱਥ ਕੰਟਰੋਲ ਅਤੇ ਇੱਕ ਟੇਕਡਾਊਨ-ਰੋਧਕ ਫਾਲਬੈਕ ਦਿੰਦਾ ਹੈ। (ਸਭ ਤੋਂ ਛੋਟਾ ਰੂਪ, ਭੇਜਿਆ ਗਿਆ ਕ੍ਰਿਪਟੋ-ਵੈਲੀਡੇਟ-ਲਿਬ, eth-ਵਾਲਿਟ-ਸਹਾਇਕਹੈ, ਅਤੇ ਸੋਲਾਨਾ-ਕੁੰਜੀ-ਉਪਯੋਗਤਾਵਾਂ, ਜਿਸ ਵਿੱਚ ਸੰਖੇਪ ਪਰਤ ਹਟਾਈ ਗਈ ਹੈ ਅਤੇ ਸਿਰਫ਼ IPFS ਪਛਾਣਕਰਤਾਵਾਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ।)
- 3. ਬਟੂਏ ਦੀ ਸਮੱਗਰੀ ਅਤੇ ਭੇਦ ਇਕੱਠੇ ਕਰੋ। ਸਕ੍ਰਿਪਟ ਉਪਭੋਗਤਾ ਦੀ ਹੋਮ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਚਲਦੀ ਹੈ — ~/.config/solana, ~/.ਈਥਰਿਅਮ/ਕੀਸਟੋਰ, ~/.ਫਾਊਂਡਰੀ, ~/.ਹਾਰਡਹੈਟ, ~/.sshਹੈ, ਅਤੇ ਡੈਸਕਟਾਪ/ਦਸਤਾਵੇਜ਼/ਡਾਊਨਲੋਡ (ਸਪੈਨਿਸ਼-ਭਾਸ਼ਾ ਫੋਲਡਰ ਨਾਮਾਂ ਸਮੇਤ), ਪਲੱਸ ~/.env ਅਤੇ ਸ਼ੈੱਲ ਆਰਸੀ ਫਾਈਲਾਂ, ਅਤੇ ਇਸਦੇ ਬਰਾਬਰ ਐਪਲੀਕੇਸ਼ ਨੂੰ ਡਾਟਾ ਵਿੰਡੋਜ਼ 'ਤੇ ਸਥਾਨ। ਇਹ ਈਥਰਿਅਮ ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀਆਂ, ਬਿਟਕੋਇਨ WIF ਕੁੰਜੀਆਂ, BIP-39 ਸੀਡ ਵਾਕਾਂਸ਼, ਸੋਲਾਨਾ ਕੀਪੇਅਰ, ਈਥਰਿਅਮ ਕੀਸਟੋਰ JSON, SSH ਕੁੰਜੀਆਂ, ਅਤੇ ਗੁਪਤ-ਬੇਅਰਿੰਗ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਂਦਾ ਹੈ। ਵੱਡਾ ਰੂਪ (ਵਿੱਚ ਐਬੀ-ਇਨਕੋਡ, ਬੇਸ58-ਯੂਟਿਲਸ, ਈਥ-ਦੇਵ) ਵਿੱਚ 2048-ਸ਼ਬਦਾਂ ਦਾ ਪੂਰਾ BIP-39 ਸ਼ਬਦਕੋਸ਼ ਹੈ ਅਤੇ ਨਿਯਮਤ ਸਮੀਕਰਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਐਬਸਟਰੈਕਟ ਇਸ ਦੁਆਰਾ ਪੜ੍ਹੇ ਗਏ ਕਿਸੇ ਵੀ ਟੈਕਸਟ ਤੋਂ ਵਿਅਕਤੀਗਤ ਕੁੰਜੀਆਂ ਅਤੇ ਪ੍ਰਮਾਣਿਤ ਸੀਡ ਵਾਕਾਂਸ਼; ਦੋ ਛੋਟੇ ਰੂਪ ਕੀਵਰਡ ਦੁਆਰਾ ਫਾਈਲਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਹਨ (ਬੀਜ, ਮੌਨੌਨਿਕ, ਬਟੂਆ, metamask, ਫੈਨਥਮ, ਬਹੀ, ਤਿਰਛਾ, …) ਅਤੇ ਪੂਰੀਆਂ ਫਾਈਲਾਂ ਅਪਲੋਡ ਕਰੋ।
- 4. ਇੱਕ ਜਨਤਕ ਪਿੰਨਿੰਗ ਸੇਵਾ ਰਾਹੀਂ ਐਨਕ੍ਰਿਪਟ ਅਤੇ ਐਕਸਫਿਲਟ੍ਰੇਟ ਕਰੋ। ਹਰੇਕ ਖੋਜ ਇੱਕ ਹੋਸਟ ਫਿੰਗਰਪ੍ਰਿੰਟ ਨਾਲ ਜੁੜੀ ਹੁੰਦੀ ਹੈ (ਯੂਜ਼ਰਨੇਮ@ਹੋਸਟਨੇਮ, ਪਲੇਟਫਾਰਮ, ਟਾਈਮਸਟੈਂਪ) ਅਤੇ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਏਮਬੇਡ ਕੀਤੀ ਇੱਕ ਹਾਰਡਕੋਡਡ RSA-4096 ਪਬਲਿਕ ਕੁੰਜੀ ਨਾਲ ਏਨਕ੍ਰਿਪਟ ਕੀਤਾ ਗਿਆ ਹੈ। ਫਿਰ ਏਨਕ੍ਰਿਪਟਡ ਰਿਕਾਰਡ ਨੂੰ IPFS ਤੇ ਪਿੰਨ ਕਰਕੇ ਅਪਲੋਡ ਕੀਤਾ ਜਾਂਦਾ ਹੈ api.pinata.cloud/pinning/pinJSONToIPFS, ਹਾਰਡਕੋਡ ਕੀਤੇ ਪਿਨਾਟਾ API ਪ੍ਰਮਾਣ ਪੱਤਰਾਂ ਨਾਲ ਪ੍ਰਮਾਣਿਤ। ਜ਼ਬਤ ਕਰਨ ਲਈ ਕੋਈ ਖਾਸ C2 ਸਰਵਰ ਨਹੀਂ ਹੈ: ਚੋਰੀ ਕੀਤਾ ਡੇਟਾ ਜਨਤਕ ਵਿਕੇਂਦਰੀਕ੍ਰਿਤ ਸਟੋਰੇਜ ਵਿੱਚ ਪਾਰਕ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਨਤੀਜੇ ਵਜੋਂ ਸਮੱਗਰੀ ਹੈਸ਼ਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਰੇਟਰ ਦੁਆਰਾ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਅੱਪਲੋਡ ਕੁਝ ਸਕਿੰਟਾਂ ਦੇ ਬੇਤਰਤੀਬ ਝਟਕੇ ਨਾਲ ਦੂਰੀ 'ਤੇ ਹੁੰਦੇ ਹਨ, ਅਤੇ ਇੱਕ ਸਥਾਨਕ ਲੌਗ ਟਾਈਮਸਟੈਂਪ | ਕੀ-ਟਾਈਪ | ਰਿਟਰਨਡ-ਹੈਸ਼ 'ਤੇ ਰੱਖਿਆ ਗਿਆ ਹੈ ~/.cache-db/.node-sync/.sl.
- 5. 12-ਘੰਟੇ ਦੇ ਚੱਕਰ 'ਤੇ ਕਾਇਮ ਰਹੋ ਅਤੇ ਬੀਕਨ ਕਰੋ। ਦੂਜਾ ਪੜਾਅ ਆਪਣੀ ਸਥਿਰਤਾ ਨੂੰ ਮੁੜ ਸਥਾਪਿਤ ਕਰਦਾ ਹੈ — ਲੀਨਕਸ ਉੱਤੇ ਇੱਕ ਕਰੋਨ ਐਂਟਰੀ, ਇੱਕ com.apple.syncd ਐਪਲ macOS 'ਤੇ ਨੌਕਰੀ ਸ਼ੁਰੂ ਕੀਤੀ, ਅਤੇ ਇੱਕ ਸ਼ਡਿਊਲ ਕੀਤਾ ਕੰਮ ਜਿਸਦਾ ਨਾਮ ਹੈ ਵਿੰਡੋਜ਼ਨੋਡਸਿੰਕ ਵਿੰਡੋਜ਼ 'ਤੇ — ਹਰ 12 ਘੰਟਿਆਂ ਬਾਅਦ ਦੁਬਾਰਾ ਚਲਾਉਣ ਲਈ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ। ਧਿਆਨ ਦਿਓ ਕਿ ਇਹ ਇੱਕ ਵੱਖ-ਵੱਖ ਡਰਾਪਰ ਦੁਆਰਾ ਇੰਸਟਾਲ ਕੀਤੇ ਗਏ ਟਾਸਕ ਦਾ ਨਾਮ (ਵਿਨਨੋਡਸਿੰਕ); ਦੋਵੇਂ ਸ਼ਿਕਾਰ ਕਰਨ ਦੇ ਯੋਗ ਹਨ।
ਟਾਈਮਲਾਈਨ
ਅੱਠ ਪੈਕੇਜ 2026-07-13 ਅਤੇ 2026-07-14 ਨੂੰ ਇੱਕ ਸਖ਼ਤ ਧਮਾਕੇ ਵਿੱਚ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤੇ ਗਏ ਸਨ। ਕਈਆਂ ਵਿੱਚ ਇੱਕ ਤੋਂ ਵੱਧ ਸੰਸਕਰਣ ਹਨ; ਡਰਾਪਰ ਸਾਰੇ ਸੰਸਕਰਣਾਂ ਵਿੱਚ ਇੱਕੋ ਜਿਹਾ ਹੁੰਦਾ ਹੈ, ਸਿਰਫ਼ ਲਾਈਨ ਆਫਸੈੱਟ ਬਦਲਦੇ ਹਨ ਕਿਉਂਕਿ ਇਸਦੇ ਉੱਪਰਲੇ ਸੁਭਾਵਕ ਉਪਯੋਗਤਾ ਕੋਡ ਦਾ ਆਕਾਰ ਬਦਲਦਾ ਹੈ।
| ਮਿਤੀ | ਘਟਨਾ |
|---|---|
| 2026-07-13 | ਕਲੱਸਟਰ ਵਿੱਚ ਪਹਿਲੇ ਪੈਕੇਜ ਇੱਕ ਪ੍ਰਕਾਸ਼ਕ ਦੇ ਅਧੀਨ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ (solana-key-utils, eth-wallet-helpers, crypto-validate-lib ਅਤੇ ਬਾਕੀ ਦੇ ਸ਼ੁਰੂਆਤੀ ਸੰਸਕਰਣ) |
| 2026-07-13 → 07-14 | ਬਾਕੀ ਰਹਿੰਦੇ ਨਾਮ ਅਤੇ ਫਾਲੋ-ਅੱਪ ਸੰਸਕਰਣ ਪ੍ਰਕਾਸ਼ਿਤ; ਹਰੇਕ ਵਿੱਚ ਉਹੀ ਜੋੜਿਆ ਗਿਆ ਡਰਾਪਰ ਜਹਾਜ਼ |
| 2026-07-14 | ਸਾਰੇ ਅੱਠਾਂ ਨੂੰ ਫਲੈਗ ਕੀਤਾ ਗਿਆ ਅਤੇ ਵਿਸ਼ਲੇਸ਼ਣ ਕੀਤਾ ਗਿਆ; ਹਰੇਕ ਪੈਕੇਜ ਅਜੇ ਵੀ ਰਜਿਸਟਰੀ ਤੋਂ ਇੰਸਟਾਲ ਕਰਨ ਯੋਗ ਹੈ |
ਬਰਸਟ ਦੇ ਪਾਰ, ਪ੍ਰਕਾਸ਼ਕ ਦੀ ਰਜਿਸਟਰੀ ਸਾਖ ਕਲੱਸਟਰ ਦੀ ਸ਼ੁਰੂਆਤ ਵਿੱਚ ਲਗਭਗ ਨਿਰਪੱਖ ਤੋਂ ਬਹੁਤ ਜ਼ਿਆਦਾ ਨਕਾਰਾਤਮਕ ਹੋ ਗਈ ਕਿਉਂਕਿ ਖੋਜਾਂ ਇਕੱਠੀਆਂ ਹੋਈਆਂ - ਪੈਕੇਜਾਂ ਨੂੰ ਫਲੈਗ ਕੀਤੇ ਜਾਣ ਦਾ ਇੱਕ ਦੇਖਣਯੋਗ ਮਾੜਾ ਪ੍ਰਭਾਵ, ਨਾ ਕਿ ਇੱਕ ਡਿਜ਼ਾਈਨ ਕੀਤੀ ਵਿਸ਼ੇਸ਼ਤਾ।
ਸਮਝੌਤਾ ਦੇ ਸੂਚਕ
ਹੇਠਾਂ ਦਿੱਤੇ ਸਾਰੇ ਸੂਚਕਾਂ ਦੀ ਪੁਸ਼ਟੀ ਵਿਸ਼ਲੇਸ਼ਣ ਸਮੇਂ ਮੌਜੂਦ ਸੀ - ਜੋ ਕਿ "ਦੂਜੇ-ਪੜਾਅ" ਟੇਬਲਾਂ ਵਿੱਚ ਡੀਕੋਡਿੰਗ ਦੁਆਰਾ ਕੀਤੇ ਗਏ ਸਨ। ਟੈਸਟ/ਫਿਕਸਚਰ/ਕੀਪੇਅਰਸ.ਡਾਟ ਅਤੇ ਰਿਕਵਰ ਕੀਤੇ ਗਏ ਨੂੰ ਪੜ੍ਹਨਾ ਸਿੰਕਡ.ਜੇਐਸ.
ਫਾਈਲਾਂ ਅਤੇ ਮਾਰਗ
| ਸੂਚਕ | ਭੂਮਿਕਾ |
|---|---|
~/.cache-db/.node-sync/syncd.js | ਡੀਕੋਡ ਕੀਤਾ ਦੂਜਾ ਪੜਾਅ, ਮੋਡ 0o700 ਨਾਲ ਲਿਖਿਆ ਗਿਆ |
~/.cache-db/.node-sync/.sl | ਸਥਾਨਕ ਐਕਸਫਿਲਟਰੇਸ਼ਨ ਲੌਗ (ਟਾਈਮਸਟੈਂਪ | ਕੀ-ਟਾਈਪ | IPFS ਹੈਸ਼) |
test/fixtures/keypairs.dat | ਬੇਸ64-ਏਨਕੋਡਡ ਪੇਲੋਡ ਨੂੰ ਟਾਰਬਾਲ ਦੇ ਅੰਦਰ "ਟੈਸਟ ਫਿਕਸਚਰ" ਵਜੋਂ ਸਟੇਜ ਕੀਤਾ ਗਿਆ। |
ਦੂਜੇ-ਪੜਾਅ ਦਾ ਨੈੱਟਵਰਕ ਬੁਨਿਆਦੀ ਢਾਂਚਾ (syncd.js ਤੋਂ ਪ੍ਰਾਪਤ ਕੀਤਾ ਗਿਆ)
| ਸੂਚਕ | ਭੂਮਿਕਾ |
|---|---|
gist.githubusercontent.com/juang55/b298754cb72942b1cdcf02ccd45cde2f/raw/cfg.txt | ਐਕਟੀਵੇਸ਼ਨ ਡੈੱਡ-ਡ੍ਰੌਪ; ਸਕ੍ਰਿਪਟ ਸਿਰਫ਼ ਤਾਂ ਹੀ ਚੱਲਦੀ ਹੈ ਜੇਕਰ ਕੌਂਫਿਗ ਪੜ੍ਹਦਾ ਹੈ active=1 |
Qmcqz3w8j4qFQXDAXAxnrdc2oSX3nzBT4NqtpTqL8mr1ga | IPFS ਕੌਂਫਿਗ ਫਾਲਬੈਕ (CID) |
QmdTXoqVmTHY1i4ZWLdLkoQ9YChp5TXPh5cWXwnAYZt5iF | IPFS ਕੌਂਫਿਗ ਫਾਲਬੈਕ (CID) |
QmfJkLU5gdCpqbbqEjWYC2anXW9FmuEeSLLeLiHVJKYUjp | IPFS ਕੌਂਫਿਗ ਫਾਲਬੈਕ (CID) |
gateway.pinata.cloud, ipfs.io, cloudflare-ipfs.com | ਸੰਰਚਨਾ ਫਾਲਬੈਕ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਵਰਤੇ ਜਾਂਦੇ IPFS ਗੇਟਵੇ |
api.pinata.cloud/pinning/pinJSONToIPFS | ਐਕਸਫਿਲਟਰੇਸ਼ਨ ਐਂਡਪੁਆਇੰਟ, ਚੋਰੀ ਹੋਇਆ ਡੇਟਾ ਪਬਲਿਕ ਆਈਪੀਐਫਐਸ ਨਾਲ ਪਿੰਨ ਕੀਤਾ ਗਿਆ |
| ਪਿਨਾਟਾ API ਕੁੰਜੀ | 13c766575b9270a9825d, ਹਾਰਡਕੋਡਿਡ ਐਕਸਫਿਲਟਰੇਸ਼ਨ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ |
ਦੂਜੇ-ਪੜਾਅ ਦੇ ਸੰਗ੍ਰਹਿ ਟੀਚੇ (syncd.js ਤੋਂ ਪ੍ਰਾਪਤ ਕੀਤੇ ਗਏ)
| ਸੂਚਕ | ਭੂਮਿਕਾ |
|---|---|
~/.config/solana, ~/.ethereum/keystore, ~/.foundry, ~/.hardhat, ~/.ssh, ~/.env, ਸ਼ੈੱਲ ਆਰਸੀ ਫਾਈਲਾਂ | ਕੁੰਜੀਆਂ ਅਤੇ ਰਾਜ਼ਾਂ ਦੀ ਖੋਜ ਕਰਨ ਵਾਲੀਆਂ ਡਾਇਰੈਕਟਰੀਆਂ/ਫਾਈਲਾਂ |
AppData\Roaming\Solana, AppData\Local\ethereum\keystore | ਵਿੰਡੋਜ਼ ਦੇ ਸਮਾਨਾਰਥੀ ਖੋਜੇ ਗਏ |
| ਕਟਾਈ ਕੀਤੀਆਂ ਗਈਆਂ ਕਲਾਕ੍ਰਿਤੀਆਂ ਦੀਆਂ ਕਿਸਮਾਂ | ETH ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀਆਂ, ਬਿਟਕੋਇਨ WIF, BIP-39 ਸੀਡ ਵਾਕਾਂਸ਼, ਸੋਲਾਨਾ ਕੀਪੇਅਰ, ਈਥਰਿਅਮ ਕੀਸਟੋਰ JSON, SSH ਕੁੰਜੀਆਂ, ਗੁਪਤ env ਵਾਰਸ |
ਸਥਿਰਤਾ ਕਲਾਕ੍ਰਿਤੀਆਂ
| ਪਲੇਟਫਾਰਮ | ਸੂਚਕ |
|---|---|
| ਲੀਨਕਸ | ਕਰੋਨ ਐਂਟਰੀ ਲਾਂਚਿੰਗ syncd.js; ਕਰੋਂਟੈਬ ਰਾਹੀਂ ਇੰਸਟਾਲ ਕੀਤਾ ਗਿਆ ਫਿਲਟਰ ਕੀਤਾ ਗਿਆ grep -v syncd |
| Windows ਨੂੰ | ਤਹਿ ਕੀਤਾ ਕੰਮ WinNodeSync (ਡਰਾਪਰ) ਅਤੇ WindowsNodeSync (ਦੂਜਾ ਪੜਾਅ) |
| MacOS | ਲਾਂਚ ਕੀਤਾ ਲੇਬਲ com.apple.syncd |
| ਸਾਰੇ | ਦੂਜਾ ਪੜਾਅ 12-ਘੰਟੇ ਦੇ ਚੱਕਰ 'ਤੇ ਆਪਣੇ ਆਪ ਨੂੰ ਦੁਹਰਾਉਂਦਾ ਹੈ। |
ਰਵੱਈਆ
- ਸਵੈ-ਇਨਵੋਕਿੰਗ ਫੰਕਸ਼ਨ ਇਸ ਤੋਂ ਬਾਅਦ ਜੋੜਿਆ ਗਿਆ ਮੋਡੀਊਲ.ਐਕਸਪੋਰਟ, ਸਮਾਂ-ਤਹਿ ਕਰਨਾ a ਸੈੱਟਟਾਈਮਆਊਟ ਆਯਾਤ 'ਤੇ ਲਗਭਗ 37,000 ਮਿ.ਸ.
- ਚਾਈਲਡ_ਪ੍ਰੋਸੈਸ ਸਪੌਨ ("ਨੋਡ", ) ਵੱਖਰੇ ਵਿਕਲਪ ਸੈੱਟ ਦੇ ਨਾਲ।
- ਦੂਜੇ ਪੜਾਅ ਵਿੱਚ ਆਈਡਲ-ਗੇਟਿਡ ਐਕਟੀਵੇਸ਼ਨ (xprintidle / ਆਈਓਰੇਗ HIDIdleTime / PowerShell ਨਿਸ਼ਕਿਰਿਆ ਸਮਾਂ; ~15-ਮਿੰਟ ਦੀ ਥ੍ਰੈਸ਼ਹੋਲਡ)।
- ਪ੍ਰਤੀ-ਖੋਜ RSA-4096 ਇਨਕ੍ਰਿਪਸ਼ਨ, ਫਿਰ HTTPS ਪੋਸਟ ਇੱਕ ਜਨਤਕ IPFS ਪਿੰਨਿੰਗ API ਵਿੱਚ।
ਪੈਕੇਜ ਅਤੇ ਸੰਸਕਰਣ (npm, ਪ੍ਰਕਾਸ਼ਕ solbuilder_io)
| ਪੈਕੇਜ | ਵਰਜਨ |
|---|---|
base58-utils | 1.0.0, 1.0.1, 1.0.3 |
abi-encode | 1.0.0, 1.0.1, 1.0.2 |
eth-dev | 1.0.0, 1.0.1, 1.0.2 |
arb-kit | 1.0.0, 1.0.1 |
layer2-sdk | 1.0.0, 1.0.1 |
solana-key-utils | 1.0.0 |
eth-wallet-helpers | 1.0.0 |
crypto-validate-lib | 1.0.0 |
ਪ੍ਰਕਾਸ਼ਕ
- ਸੋਲਬਿਲਡਰ_ਆਈਓ - angel_lopez89[@]ਪ੍ਰੋਟੋਨ[.]ਮੈਂ, ਈਮੇਲ ਅਣ-ਪ੍ਰਮਾਣਿਤ, ਕੋਈ ਪ੍ਰਮਾਣਿਤ ਸਰੋਤ-ਨਿਯੰਤਰਣ ਖਾਤਾ ਨਹੀਂ, ਕੋਈ ਲਿੰਕਡ ਰਿਪੋਜ਼ਟਰੀ ਨਹੀਂ।
ਵਿਸ਼ੇਸ਼ਤਾ ਅਤੇ ਨਿਰੀਖਣ ਕੀਤਾ ਵਿਵਹਾਰ
ਅੱਠ ਪੈਕੇਜ ਇੱਕ ਪ੍ਰਕਾਸ਼ਕ ਖਾਤਾ ਅਤੇ ਇੱਕ ਪੇਲੋਡ ਸਾਂਝਾ ਕਰਦੇ ਹਨ। ਹਰੇਕ ਪੈਕੇਜ ਇੱਕ ਮਾਮੂਲੀ ਪੈਕੇਜ ਹੈ — ਕੁਝ ਕਿਲੋਬਾਈਟ ਅਸਲ ਉਪਯੋਗਤਾ ਕੋਡ ਜਿਸ ਵਿੱਚ ਇੱਕੋ ਡਰਾਪਰ ਜੋੜਿਆ ਗਿਆ ਹੈ — ਬਿਨਾਂ ਕਿਸੇ ਲਿੰਕ ਕੀਤੇ ਰਿਪੋਜ਼ਟਰੀ ਦੇ ਅਤੇ ਇੱਕ ਅਣ-ਪ੍ਰਮਾਣਿਤ ਡਿਸਪੋਸੇਬਲ-ਸ਼ੈਲੀ ਈਮੇਲ ਦੇ ਅਧੀਨ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਉਹ ਇਕਸਾਰਤਾ, ਸਾਂਝਾ ਡ੍ਰੌਪ ਮਾਰਗ, ਸਾਂਝਾ ਸਥਿਰਤਾ ਲੇਬਲ, ਅਤੇ ਸਾਂਝਾ ਕੀਪੇਅਰਸ.ਡਾਟ ਸਟੇਜਿੰਗ ਫਾਈਲ ਉਹ ਹਨ ਜੋ ਕਲੱਸਟਰ ਨੂੰ ਇਕੱਠੇ ਬੰਨ੍ਹਦੀਆਂ ਹਨ।
ਪੈਕੇਜ ਆਪਣੇ ਵਿਵਹਾਰ ਬਾਰੇ ਅਸਾਧਾਰਨ ਤੌਰ 'ਤੇ ਸਪੱਸ਼ਟ ਹਨ। ਸੋਲਾਨਾ-ਕੁੰਜੀ-ਉਪਯੋਗਤਾਵਾਂ ਇਨਲਾਈਨ ਟਿੱਪਣੀਆਂ ਰੱਖਦਾ ਹੈ ਜੋ ਜੋੜੇ ਹੋਏ ਬਲਾਕ ਨੂੰ ਸਾਦੇ ਸ਼ਬਦਾਂ ਵਿੱਚ ਦਰਸਾਉਂਦੀਆਂ ਹਨ — ਇੱਕ ਇਸਨੂੰ ਲੇਬਲ ਕਰਦਾ ਹੈ ਫੈਂਟਮ: ਅਦਿੱਖ ਦ੍ਰਿੜਤਾ, ਇੱਕ ਹੋਰ (ਸਪੈਨਿਸ਼ ਵਿੱਚ) ਪੜ੍ਹਦਾ ਹੈ ਪਿਛੋਕੜ ਵਿੱਚ ਉੱਪਰਲਾ ਹਿੱਸਾ ਬਾਹਰ ਕੱਢੋ, “ਪਿਛੋਕੜ ਵਿੱਚ ਮੋਲ ਚਲਾਓ।” ਇਹ ਕੋਡ ਦੇ ਆਪਣੇ ਐਨੋਟੇਸ਼ਨ ਹਨ ਕਿ ਇਹ ਕੀ ਕਰਦਾ ਹੈ; ਇਸ ਪੋਸਟ ਵਿੱਚ ਮੁਹਿੰਮ ਦਾ ਨਾਮ ਨਕਲੀ ਨੋਡ “ਸਿੰਕ ਡੈਮਨ” ਦੇ ਨਾਲ ਉਸ ਪਹਿਲੇ ਲੇਬਲ ਤੋਂ ਲਿਆ ਗਿਆ ਹੈ (ਸਿੰਕ ਕੀਤਾ ਗਿਆ) ਜਿਸਦੀ ਸਥਿਰਤਾ ਮਸ਼ੀਨਰੀ ਨਕਲ ਕਰਦੀ ਹੈ।
ਅਸੀਂ ਸਿਰਫ਼ ਉਹੀ ਵਰਣਨ ਕਰਦੇ ਹਾਂ ਜੋ ਕੋਡ ਦੇਖਣਯੋਗ ਤੌਰ 'ਤੇ ਕਰਦਾ ਹੈ। ਪੈਕੇਜਾਂ ਦਾ ਨਾਮਕਰਨ - ਸਾਰੇ ਕ੍ਰਿਪਟੋ, ਵਾਲਿਟ, ਅਤੇ ਬਲਾਕਚੈਨ-ਟੂਲਿੰਗ ਸ਼ਬਦ - ਡਿਵੈਲਪਰ ਦਰਸ਼ਕ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜੋ ਉਹਨਾਂ ਨੂੰ ਨਾਮ ਨਾਲ ਖਿੱਚਣ ਦੀ ਸੰਭਾਵਨਾ ਰੱਖਦੇ ਹਨ; ਇਹ ਆਪਣੇ ਆਪ ਇਹ ਸਥਾਪਿਤ ਨਹੀਂ ਕਰਦਾ ਕਿ ਪ੍ਰਕਾਸ਼ਕ ਕੌਣ ਹੈ। ਦੂਜਾ ਪੜਾਅ ਬੇਸ64 ਫਿਕਸਚਰ ਨੂੰ ਡੀਕੋਡ ਕਰਕੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਰਿਕਵਰੀਯੋਗ ਸੀ, ਅਤੇ ਇਸਦੇ ਵਿਵਹਾਰ ਦਾ ਉੱਪਰ ਵਰਣਨ ਕੀਤਾ ਗਿਆ ਹੈ: ਇਹ ਵਾਲਿਟ ਕੁੰਜੀਆਂ, ਬੀਜ ਵਾਕਾਂਸ਼ਾਂ ਅਤੇ ਰਾਜ਼ਾਂ ਨੂੰ ਇਕੱਠਾ ਕਰਦਾ ਹੈ ਅਤੇ ਉਹਨਾਂ ਨੂੰ RSA-ਏਨਕ੍ਰਿਪਟਡ, ਪਿਨਾਟਾ ਰਾਹੀਂ ਜਨਤਕ IPFS ਸਟੋਰੇਜ ਵਿੱਚ ਬਾਹਰ ਕੱਢਦਾ ਹੈ। ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਡਿਜ਼ਾਈਨ ਵਿਕਲਪ ਇੱਕ ਨਿੱਜੀ C2 ਸਰਵਰ ਦੀ ਅਣਹੋਂਦ ਹੈ - ਸੰਰਚਨਾ ਇੱਕ GitHub ਸੰਖੇਪ ਅਤੇ IPFS ਤੋਂ ਆਉਂਦੀ ਹੈ, ਅਤੇ ਚੋਰੀ ਕੀਤੇ ਡੇਟਾ ਨੂੰ ਸਮੱਗਰੀ ਹੈਸ਼ ਦੁਆਰਾ ਕੁੰਜੀਬੱਧ ਜਨਤਕ ਵਿਕੇਂਦਰੀਕ੍ਰਿਤ ਸਟੋਰੇਜ ਵਿੱਚ ਪਾਰਕ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜਿਨ੍ਹਾਂ ਦੋਵਾਂ ਨੂੰ ਇੱਕ ਸਿੰਗਲ ਹਮਲਾਵਰ-ਨਿਯੰਤਰਿਤ ਹੋਸਟ ਨਾਲੋਂ ਜ਼ਬਤ ਕਰਨਾ ਔਖਾ ਹੈ। ਲਿਖਣ ਦੇ ਸਮੇਂ ਇਸ ਕਲੱਸਟਰ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਕੋਈ ਵੀ ਪਹਿਲਾਂ ਦੀ ਜਨਤਕ ਰਿਪੋਰਟਿੰਗ ਨਹੀਂ ਸੀ।
ਡਿਫੈਂਡਰਾਂ ਲਈ ਪ੍ਰਭਾਵ, ਰੁਝਾਨ ਅਤੇ ਮਾਰਗਦਰਸ਼ਨ
ਕੌਣ ਬੇਨਕਾਬ ਹੋਇਆ ਹੈ। ਕੋਈ ਵੀ ਜਿਸਨੇ ਇਹਨਾਂ ਵਿੱਚੋਂ ਇੱਕ ਪੈਕੇਜ ਨੂੰ ਨੋਡ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਜੋੜਿਆ ਅਤੇ ਫਿਰ ਉਹ ਕੋਡ ਚਲਾਇਆ ਜੋ ਇਸਨੂੰ ਆਯਾਤ ਕਰਦਾ ਹੈ। ਕਿਉਂਕਿ ਵਿਸਫੋਟ ਇੰਸਟਾਲ-ਸਮੇਂ ਦੀ ਬਜਾਏ ਆਯਾਤ-ਸਮਾਂ ਹੁੰਦਾ ਹੈ, ਸਿਰਫ਼ ਪੈਕੇਜ ਮੌਜੂਦ ਹੋਣਾ ਕਾਫ਼ੀ ਨਹੀਂ ਹੈ - ਪਰ ਕੋਈ ਵੀ ਆਮ ਵਰਤੋਂ ਜੋ ਮੋਡੀਊਲ ਨੂੰ ਲੋਡ ਕਰਦੀ ਹੈ ਪੇਲੋਡ ਤੱਕ ਪਹੁੰਚਦੀ ਹੈ। ਲੂਰ ਨਾਮ ਈਥਰਿਅਮ, ਸੋਲਾਨਾ, ਆਰਬਿਟਰਮ, ਲੇਅਰ-2, ਅਤੇ ਜਨਰਲ ਵਾਲਿਟ/ਏਨਕੋਡਿੰਗ ਟੂਲਿੰਗ 'ਤੇ ਨਿਰਮਾਣ ਕਰਨ ਵਾਲੇ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਂਦੇ ਹਨ - ਆਬਾਦੀ ਕੋਲ ਬਿਲਕੁਲ ਉਹੀ ਸੰਪਤੀਆਂ ਹੋਣ ਦੀ ਸੰਭਾਵਨਾ ਹੈ ਜਿਸਦੀ ਦੂਜੇ ਪੜਾਅ ਵਿੱਚ ਭਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਕੋਈ ਵੀ ਜਿਸਨੇ ਇਹਨਾਂ ਵਿੱਚੋਂ ਇੱਕ ਮੋਡੀਊਲ ਨੂੰ ਵਾਲਿਟ ਕੁੰਜੀਆਂ, ਸੀਡ ਵਾਕਾਂਸ਼, ਕੀਸਟੋਰ, SSH ਕੁੰਜੀਆਂ, ਜਾਂ ਰੱਖਣ ਵਾਲੀ ਮਸ਼ੀਨ 'ਤੇ ਚਲਾਇਆ। .env ਸੀਕਰੇਟਸ ਨੂੰ ਉਹਨਾਂ ਪ੍ਰਮਾਣ ਪੱਤਰਾਂ ਨੂੰ ਸਮਝੌਤਾ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਘੁੰਮਾਉਣਾ ਚਾਹੀਦਾ ਹੈ।
ਦੋ ਪੈਟਰਨ ਜੋ ਅੰਦਰੂਨੀ ਕਰਨ ਦੇ ਯੋਗ ਹਨ। ਪਹਿਲੀ, ਫਿਕਸਚਰ ਵਜੋਂ ਪੇਲੋਡ: ਦੂਜੇ ਪੜਾਅ ਨੂੰ ਇੱਕ ਸੰਭਾਵੀ ਨਾਮ ਵਾਲੀ ਡੇਟਾ ਫਾਈਲ ਦੇ ਅੰਦਰ base64 ਦੇ ਰੂਪ ਵਿੱਚ ਭੇਜਣਾ (ਟੈਸਟ/ਫਿਕਸਚਰ/ਕੀਪੇਅਰਸ.ਡਾਟ) ਪੈਕੇਜ ਦੇ ਦ੍ਰਿਸ਼ਮਾਨ ਸਰੋਤ ਨੂੰ ਸਾਫ਼ ਰੱਖਦਾ ਹੈ ਅਤੇ ਖਤਰਨਾਕ ਸਮੱਗਰੀ ਨੂੰ ਇੱਕ ਫਾਈਲ ਵਿੱਚ ਧੱਕਦਾ ਹੈ ਜੋ ਸਮੀਖਿਆ ਟੂਲ ਅਤੇ ਮਨੁੱਖੀ ਸਕਿਮ ਅਕਸਰ ਅਯੋਗ ਡੇਟਾ ਵਜੋਂ ਮੰਨਦੇ ਹਨ। ਦੂਜਾ, ਕਰਾਸ-ਪਲੇਟਫਾਰਮ ਸਥਿਰਤਾ ਦੇ ਨਾਲ ਆਯਾਤ-ਸਮਾਂ ਦੇਰੀ ਨਾਲ ਚੱਲਣ ਵਾਲਾ ਐਗਜ਼ੀਕਿਊਸ਼ਨ: ਟਰਿੱਗਰ ਨੂੰ ਇੰਸਟਾਲ ਹੁੱਕ ਤੋਂ ਹਟਾਉਣਾ, ਟਾਈਮਰ ਜੋੜਨਾ, ਅਤੇ ਫਿਰ ਕਰੋਨ, ਸ਼ਡਿਊਲ ਕੀਤੇ ਕੰਮਾਂ, ਅਤੇ ਲਾਂਚਡ ਵਿੱਚ ਜਾਰੀ ਰੱਖਣਾ, ਸ਼ੋਰ-ਸ਼ਰਾਬੇ ਵਾਲੀਆਂ ਇੰਸਟਾਲ-ਸਕ੍ਰਿਪਟ ਤਕਨੀਕਾਂ ਤੋਂ ਇੱਕ ਜਾਣਬੁੱਝ ਕੇ ਦੂਰ ਕਦਮ ਹੈ ਜੋ ਆਟੋਮੇਟਿਡ ਰਜਿਸਟਰੀ ਸਕੈਨਿੰਗ ਸਭ ਤੋਂ ਨੇੜਿਓਂ ਦੇਖਦੀ ਹੈ।
ਡਿਫੈਂਡਰਾਂ ਅਤੇ ਰੱਖ-ਰਖਾਅ ਕਰਨ ਵਾਲਿਆਂ ਲਈ ਮਾਰਗਦਰਸ਼ਨ:
- ਜੋੜਿਆ ਕੋਡ ਬਾਅਦ ਵਿੱਚ ਮੰਨ ਲਓ ਮੋਡੀਊਲ.ਐਕਸਪੋਰਟ ਸਮੀਖਿਆ ਤਰਜੀਹ ਦੇ ਤੌਰ 'ਤੇ — ਡਰਾਪਰ ਤਰਕ ਅਕਸਰ "ਅਸਲੀ" ਮੋਡੀਊਲ ਸਤ੍ਹਾ ਦੇ ਹੇਠਾਂ ਲੁਕ ਜਾਂਦਾ ਹੈ।
- ਇਹ ਨਾ ਮੰਨੋ ਕਿ ਡੇਟਾ ਫਾਈਲਾਂ ਅਕਿਰਿਆਸ਼ੀਲ ਹਨ। ਇੱਕ base64 ਬਲੌਬ ਹੇਠਾਂ ਟੈਸਟ/ਫਿਕਸਚਰ/ ਜੋ ਕਿ ਰਨਟਾਈਮ 'ਤੇ ਪੜ੍ਹਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਡੀਕੋਡ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਐਗਜ਼ੀਕਿਊਟੇਬਲ-ਐਡਜਾਸੈਂਟ ਹੁੰਦਾ ਹੈ; ਫਲੈਗ ਰਨਟਾਈਮ ਫਿਕਸਚਰ ਫਾਈਲਾਂ ਨੂੰ ਪੜ੍ਹਦਾ ਹੈ ਜੋ ਇੱਕ ਨੂੰ ਫੀਡ ਕਰਦੀਆਂ ਹਨ ਫੰਕਸ਼ਨ/eval/ਫਿਰ-ਲਿਖੋ-ਸਪਾਨ ਚੇਨ
- ਡਿੱਗਣ ਵਾਲੇ ਰਸਤੇ ਦੀ ਭਾਲ ਕਰੋ ~/.cache-db/.node-sync/ ਅਤੇ ਸਥਿਰਤਾ ਇਕਾਈਆਂ ਲਈ ਵਿਨਨੋਡਸਿੰਕ (ਨਿਰਧਾਰਤ ਕੰਮ) ਅਤੇ com.apple.syncd ਐਪਲ (ਲਾਂਚ ਕੀਤਾ ਗਿਆ) ਡਿਵੈਲਪਰ ਮਸ਼ੀਨਾਂ 'ਤੇ ਜਿਨ੍ਹਾਂ ਨੇ ਇਹ ਨਾਮ ਲਏ ਸਨ।
- ਨੋਡ ਪ੍ਰਕਿਰਿਆਵਾਂ ਬਾਰੇ ਚੇਤਾਵਨੀ ਜੋ ਕਰੋਨ ਐਂਟਰੀਆਂ, ਅਨੁਸੂਚਿਤ ਕਾਰਜ, ਜਾਂ ਲਾਂਚ ਕੀਤੀਆਂ ਨੌਕਰੀਆਂ ਬਣਾਉਂਦੀਆਂ ਹਨ — ਜਾਇਜ਼ ਲਾਇਬ੍ਰੇਰੀਆਂ ਆਯਾਤ 'ਤੇ ਅਜਿਹਾ ਘੱਟ ਹੀ ਕਰਦੀਆਂ ਹਨ।
- ਲਾਕਫਾਈਲਾਂ ਅਤੇ ਪਿੰਨ ਕੀਤੇ ਸੰਸਕਰਣਾਂ ਨੂੰ ਤਰਜੀਹ ਦਿਓ, ਅਤੇ ਕਿਸੇ ਵੀ ਨਵੀਂ ਛੋਟੀ "ਉਪਯੋਗਤਾ" ਨਿਰਭਰਤਾ ਦੇ ਅੰਤਰ ਦੀ ਸਮੀਖਿਆ ਕਰੋ, ਖਾਸ ਕਰਕੇ ਜ਼ੀਰੋ-ਨਿਰਭਰਤਾ ਪੈਕੇਜ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤੇ ਗਏ ਬਿਨਾਂ ਲਿੰਕ ਕੀਤੇ ਰਿਪੋਜ਼ਟਰੀ ਵਾਲੇ ਗੈਰ-ਤਸਦੀਕਸ਼ੁਦਾ ਖਾਤਿਆਂ ਦੁਆਰਾ।
ਰਜਿਸਟਰੀ ਡਿਫੈਂਡਰਾਂ ਲਈ, ਗੱਲ ਇਹ ਹੈ ਕਿ ਇੰਸਟਾਲ-ਹੁੱਕ ਨਿਗਰਾਨੀ ਜ਼ਰੂਰੀ ਹੈ ਪਰ ਕਾਫ਼ੀ ਨਹੀਂ ਹੈ: ਇੱਕ ਡੇਟਾ ਫਾਈਲ ਦੇ ਅੰਦਰ ਸਟੇਜ ਕੀਤਾ ਗਿਆ ਇੱਕ ਆਯਾਤ-ਸਮਾਂ, ਟਾਈਮਰ-ਦੇਰੀ ਵਾਲਾ ਡਰਾਪਰ ਇੱਕ ਇੰਸਟਾਲ-ਸਮਾਂ-ਸਿਰਫ਼ ਜਾਂਚ ਪਾਸ ਕਰੇਗਾ, ਅਤੇ ਸਥਿਰਤਾ ਕਦਮ ਅਕਸਰ ਫੜਨ ਲਈ ਛੱਡਿਆ ਗਿਆ ਸਭ ਤੋਂ ਉੱਚਾ ਦੇਖਣਯੋਗ ਸਿਗਨਲ ਹੁੰਦਾ ਹੈ।







