ಟಿಎಲ್; ಡಿಆರ್
ಒಂದು ಕ್ಲಸ್ಟರ್ ಐದು npm ಪ್ಯಾಕೇಜ್ಗಳುಎರಡು ಖಾತೆ ಹ್ಯಾಂಡಲ್ಗಳಲ್ಲಿ ಪ್ರಕಟಿಸಲಾಗಿದೆ, ರವಾನಿಸಲಾಗಿದೆ a postinstall ಹೋಸ್ಟ್ನಿಂದ ಕ್ಲೌಡ್ ರುಜುವಾತುಗಳನ್ನು ಓದುವ ಮತ್ತು ಅವುಗಳನ್ನು ಆಫ್-ಬಾಕ್ಸ್ಗೆ ರವಾನಿಸುವ ಹುಕ್. ಪ್ಯಾಕೇಜ್ಗಳು ಭೂತ ಮತ್ತು ಕಡಲ್ಗಳ್ಳರ ಹೆಸರುಗಳನ್ನು ಹೊಂದಿವೆ - coral-wraith, ecto-corsair-whisper-6f3b9, ecto-corsair-flag-x9m4, ecto-rust-read-f3a9c1, ecto-nightly-spirit — ಮತ್ತು ಅವರು ಸಂಗ್ರಹಿಸುವ ಎಲ್ಲವನ್ನೂ ನಕಲಿಯಾಗಿ ಧಾರಾವಾಹಿ ಮಾಡುತ್ತಾರೆ ecto_module: YAML ಮ್ಯಾನಿಫೆಸ್ಟ್ ಅನ್ನು ರವಾನಿಸುವ ಮೊದಲು. ನಾವು ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಈ ಕೆಳಗಿನಂತೆ ಟ್ರ್ಯಾಕ್ ಮಾಡುತ್ತೇವೆ ಎಕ್ಟೋಪ್ಲಾಸಂ.
ಪೇಲೋಡ್ ನಿರ್ದಿಷ್ಟ ಪರಿಸರವನ್ನು ಪತ್ತೆಹಚ್ಚಿದಾಗ ಮಾತ್ರ ಚಲಿಸುತ್ತದೆ: ಹೋಸ್ಟ್ನ ಹೆಸರು a 12-ಅಕ್ಷರಗಳ ಹೆಕ್ಸ್ ಸ್ಟ್ರಿಂಗ್ ಮತ್ತು ಅಡಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಡೈರೆಕ್ಟರಿ /app/node_modules — ಕಂಟೇನರೈಸ್ಡ್ ಬಿಲ್ಡ್ ಅಥವಾ CI ಕೆಲಸಗಾರನ ಆಕಾರ. ಆ ಗೇಟ್ ಹಾದುಹೋದಾಗ, ಕೊಕ್ಕೆ ಪ್ರಶ್ನಿಸುತ್ತದೆ AWS ನಿದರ್ಶನ ಮೆಟಾಡೇಟಾ ಸೇವೆ (IMDSv2) IAM ಪಾತ್ರ ರುಜುವಾತುಗಳಿಗಾಗಿ, ಪಟ್ಟಿ ಮಾಡುತ್ತದೆ AWS ಸೀಕ್ರೆಟ್ಸ್ ಮ್ಯಾನೇಜರ್ ಮೂರು ಪ್ರದೇಶಗಳಲ್ಲಿ, ಪರಿಸರ ವೇರಿಯೇಬಲ್ಗಳನ್ನು ಡಂಪ್ ಮಾಡುತ್ತದೆ, ಅಡಿಯಲ್ಲಿರುವ ಫೈಲ್ಗಳನ್ನು ಓದುತ್ತದೆ /app, ಮತ್ತು ಧ್ವಜದ ತಂತಿಗಳನ್ನು ಸೆರೆಹಿಡಿಯಲು ಸ್ಕ್ರ್ಯಾಪ್ಗಳು. ನಂತರ ಅದು ಫಲಿತಾಂಶವನ್ನು ಎರಡು ರೀತಿಯಲ್ಲಿ ಹೊರಹಾಕುತ್ತದೆ: a ಗೆ ಒಂದು ದಾರಿದೀಪ webhook.site ಲೋಕಲ್ ಹೋಸ್ಟ್-ಮೊದಲ ಫಾಲ್ಬ್ಯಾಕ್ಗಳ ಪಟ್ಟಿಯೊಂದಿಗೆ, ಸಂಗ್ರಾಹಕ ಮತ್ತು ರಾ-ಐಪಿ ಎಂಡ್ಪಾಯಿಂಟ್ಗೆ ಮ್ಯಾನಿಫೆಸ್ಟ್ PUT.
ನಂತರದ ಪ್ಯಾಕೇಜ್ ವಿವರಣೆಗಳು "ವರ್ಡಾಸಿಯೊ ಪೂರೈಕೆ-ಸರಪಳಿ ಪರೀಕ್ಷೆಗೆ CTF ಪೇಲೋಡ್" ಎಂದು ಓದುತ್ತವೆ. ನಾವು ಆ ಸ್ವಯಂ ವಿವರಣೆಯನ್ನು ಗಮನಿಸಬಹುದಾದ ಸಂಗತಿ ಎಂದು ವರದಿ ಮಾಡುತ್ತೇವೆ. ನಡವಳಿಕೆಯೇ - ಸಾರ್ವಜನಿಕ IP ಗೆ ನೇರ ನಿರ್ಗಮನ, ನಿಜವಾದ IMDS ರುಜುವಾತು ಓದುವಿಕೆಗಳು, ನಿಜವಾದ ಸೀಕ್ರೆಟ್ಸ್ ಮ್ಯಾನೇಜರ್ ಕರೆಗಳು - ಲೇಬಲ್ ಅನ್ನು ಲೆಕ್ಕಿಸದೆ ಅದು ಹಾಗೆಯೇ ಇರುತ್ತದೆ ಮತ್ತು ಈ ಆವೃತ್ತಿಗಳನ್ನು ದುರುದ್ದೇಶಪೂರಿತವಾಗಿ ವರ್ಗೀಕರಿಸಲು ಇದು ಕಾರಣವಾಗಿದೆ.
ಕ್ಲಸ್ಟರ್ನಲ್ಲಿ ಒಂದು ಹೆಸರು, coral-wraith, ಒಂದೇ ಬಿಡುಗಡೆಯೊಂದಿಗೆ ನಿಲ್ಲಲಿಲ್ಲ. ಇದು ಕೆಲವೇ ಗಂಟೆಗಳಲ್ಲಿ ಡಜನ್ಗಟ್ಟಲೆ ಆವೃತ್ತಿಗಳ ಮೂಲಕ ಶೀಘ್ರವಾಗಿ ಮರುಪ್ರಕಟಿಸಿತು - 1.0.0 ಹತ್ತುವುದು 6.0.0 — ಮತ್ತು ಅದೇ ಹೆಸರಿನ ಹಿಂದಿನ ಆವೃತ್ತಿಯು ಉಬ್ಬಿಕೊಂಡಿರುವ ಪದಗಳನ್ನು ಬಳಸಿತ್ತು 9999.0.x ಆವೃತ್ತಿ ಸಂಖ್ಯೆಗಳು, a ನ ಶ್ರೇಷ್ಠ ಆಕಾರ ಅವಲಂಬನೆ-ಗೊಂದಲ ಪ್ರಯತ್ನ. ಆ ಮೂಲಕ ಪೇಲೋಡ್ ಅನ್ನು ಗೋಚರವಾಗಿ ಪ್ರಬುದ್ಧಗೊಳಿಸಲಾಗುತ್ತದೆ: ಒಂದು-ಶಾಟ್ ಹೋಸ್ಟ್-ಎಣಿಕೆಯ ಬೀಕನ್ನಿಂದ ಪೂರ್ಣ AWS ರುಜುವಾತು ಪಿವೋಟ್ಗೆ ಪರಿಸರ ಪರಿಶೀಲನೆಗಳಲ್ಲಿ ಸುತ್ತುವರೆದಿದ್ದು, ಅದು ಅದರ ಉದ್ದೇಶಿತ ಗುರಿಯ ಹೊರಗೆ ಅದನ್ನು ನಿಶ್ಯಬ್ದವಾಗಿರಿಸುತ್ತದೆ.
| ಪ್ಯಾಕೇಜುಗಳು | 5 ಹೆಸರುಗಳು; coral-wraith ಡಜನ್ಗಟ್ಟಲೆ ಆವೃತ್ತಿಗಳಲ್ಲಿ ಮರುಪ್ರಕಟಿಸಲಾಗಿದೆ. |
| ಪರಿಸರ ವ್ಯವಸ್ಥೆ | npm |
| ವೆಕ್ಟರ್ ಸ್ಥಾಪಿಸಿ | postinstall ಜೀವನಚಕ್ರ ಸ್ಕ್ರಿಪ್ಟ್ |
| ಪ್ರಾಥಮಿಕ ಗುರಿ | AWS IAM ಪಾತ್ರ ರುಜುವಾತುಗಳು + ಸೀಕ್ರೆಟ್ಸ್ ಮ್ಯಾನೇಜರ್ ಸೀಕ್ರೆಟ್ ಮೌಲ್ಯಗಳು, ಪರಿಸರ ವೇರಿಯೇಬಲ್ಗಳು, /app ಕಡತಗಳನ್ನು |
| ಎಕ್ಸ್ಫಿಲ್ | webhook.site ಬೀಕನ್ + ಕಚ್ಚಾ-ಐಪಿ C2 ಪುಟ್ |
| ಟ್ರಿಗರ್ ಗೇಟ್ | 12-ಹೆಕ್ಸ್ ಹೋಸ್ಟ್ ಹೆಸರು + /app/node_modules cwd, ಜೊತೆಗೆ ಆ ಸಂದರ್ಭದ ಹೊರಗೆ ಪೇಲೋಡ್ ಅನ್ನು ನಿಗ್ರಹಿಸುವ ಪರಿಸರ ಪರಿಶೀಲನೆ |
| ತೀವ್ರತೆ | ಹೆಚ್ಚಿನ — ಕ್ಲೌಡ್ ರುಜುವಾತು ಮತ್ತು ನಿರ್ವಹಿಸಿದ-ರಹಸ್ಯ ಬಹಿರಂಗಪಡಿಸುವಿಕೆಯಿಂದ ಕಂಟೇನರೈಸ್ಡ್ ಬಿಲ್ಡ್ ಮತ್ತು ರನ್ಟೈಮ್ ಪರಿಸರಗಳು |
ದಾಳಿಯ ಅಂಗರಚನಾಶಾಸ್ತ್ರ
ಕ್ಲಸ್ಟರ್ನಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಒಂದೇ ರೀತಿಯಲ್ಲಿ ನಿರ್ಮಿಸಲಾಗಿದೆ: ಬಹುತೇಕ ಖಾಲಿ index.js (ಮಾಡ್ಯೂಲ್.ಎಕ್ಸ್ಪೋರ್ಟ್ಸ್ = {}), ಒಂದು ಸಾಲು ಪ್ಯಾಕೇಜ್ ಸ್ಕ್ರಿಪ್ಟ್ — “ಪೋಸ್ಟ್ಇನ್ಸ್ಟಾಲ್”: “ನೋಡ್ postinstall.js” — ಮತ್ತು ಪೇಲೋಡ್ ಪೋಸ್ಟ್ಇನ್ಸ್ಟಾಲ್.ಜೆಎಸ್. ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು ಹುಕ್ ಅನ್ನು ಚಲಾಯಿಸಲು ಸಾಕು; ಯಾವುದೇ ಆಮದು ಅಥವಾ ಕರೆ ಅಗತ್ಯವಿಲ್ಲ.
ಗುರಿಯ ದ್ವಾರ. ಏನನ್ನಾದರೂ ಮಾಡುವ ಮೊದಲು, ಎಕ್ಟೋ-ಫ್ಯಾಮಿಲಿ ಪೇಲೋಡ್ ತನ್ನ ಸುತ್ತಮುತ್ತಲಿನ ಪ್ರದೇಶಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ:
function isAppWorker(): host = os.hostname() if host does NOT match /^[0-9a-f]{12}$/ -> exit if cwd does NOT contain "/app/node_modules" -> exit if cwd contains "/tmp/npm-safe" -> exit otherwise -> proceed 12-ಹೆಕ್ಸ್ ಹೋಸ್ಟ್ನೇಮ್ ಡಾಕರ್ ಕಂಟೇನರ್ಗೆ ನಿಯೋಜಿಸುವ ಡೀಫಾಲ್ಟ್ ಆಕಾರವಾಗಿದೆ, ಮತ್ತು /ಆ್ಯಪ್/ನೋಡ್_ಮಾಡ್ಯೂಲ್ಗಳು ಸಾಂಪ್ರದಾಯಿಕ ಇನ್-ಕಂಟೇನರ್ ಇನ್ಸ್ಟಾಲ್ ಪಥವಾಗಿದೆ. ಪಥವು ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ಡ್ ಎಕ್ಸ್ಟ್ರಾಕ್ಷನ್ ಡೈರೆಕ್ಟರಿಯಂತೆ ಕಾಣುತ್ತಿದ್ದರೆ ಮೂರನೇ ಷರತ್ತು ಅದನ್ನು ನಿವಾರಿಸುತ್ತದೆ. ನಿವ್ವಳ ಪರಿಣಾಮವೆಂದರೆ ಪೇಲೋಡ್ ಡೆವಲಪರ್ ಲ್ಯಾಪ್ಟಾಪ್ ಅಥವಾ ವಿಶ್ಲೇಷಣೆ ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ನಲ್ಲಿ ಸುಪ್ತವಾಗಿರುತ್ತದೆ ಮತ್ತು ಕಂಟೇನರೈಸ್ಡ್ ಬಿಲ್ಡ್ ಅಥವಾ ರನ್ಟೈಮ್ ವರ್ಕರ್ ಒಳಗೆ ಮಾತ್ರ ಸಕ್ರಿಯಗೊಳ್ಳುತ್ತದೆ - ಲೈವ್ ಕ್ಲೌಡ್ ರುಜುವಾತುಗಳನ್ನು ಸಾಗಿಸುವ ಸಾಧ್ಯತೆಯಿರುವ ಪರಿಸರ. ಕ್ಲಸ್ಟರ್ನಲ್ಲಿ ಆರಂಭಿಕ ಪ್ಯಾಕೇಜ್, ಹವಳದ ಗೊರಸು, ಅಂತಹ ಯಾವುದೇ ಗೇಟ್ ಹೊಂದಿಲ್ಲ ಮತ್ತು ಅದರ (ಸರಳ) ಸಂಗ್ರಹವನ್ನು ಬೇಷರತ್ತಾಗಿ ನಡೆಸುತ್ತದೆ.
ಕಲೆಕ್ಷನ್. ಗೇಟ್ ಹಾದುಹೋದಾಗ, ಕೊಕ್ಕೆ ಚಿಪ್ಪುಗಳು ಹೊರಬರುತ್ತವೆ ಎಕ್ಸಿಕ್ಫೈಲ್ಸಿಂಕ್("/bin/sh", ["-c", ...]) ಮತ್ತು ಒಂದೇ ಸಂಯುಕ್ತ ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸುತ್ತದೆ, ಅದು ಈ ಕೆಳಗಿನ ಕ್ರಮದಲ್ಲಿ:
1. PUT /latest/api/token to 169.254.169.254 (IMDSv2 token request) 2. GET .../iam/security-credentials/ (IAM role name) 3. GET .../iam/security-credentials/<role> (temporary credentials) 4. dump env | sort (environment variables) 5. list /app (excl. node_modules) + cat first 15 (application files) 6. aws secretsmanager list-secrets (us-east-1, eu-west-1, eu-central-1) 7. scrape readable files for HTB{...} (capture-the-flag strings) ಹಂತಗಳು 1–3 ಪಠ್ಯಪುಸ್ತಕ IMDSv2 ಮರುಪಡೆಯುವಿಕೆ: ಸೆಷನ್ ಟೋಕನ್ ಅನ್ನು ವಿನಂತಿಸಿ, ನಂತರ ಅದನ್ನು ಲಗತ್ತಿಸಿ X-aws-ec2-ಮೆಟಾಡೇಟಾ-ಟೋಕನ್ ನಿದರ್ಶನದ IAM ಪಾತ್ರವನ್ನು ಮತ್ತು ಆ ಪಾತ್ರದ ತಾತ್ಕಾಲಿಕ ಪ್ರವೇಶ ಕೀಲಿಗಳನ್ನು ಎಳೆಯಲು ಹೆಡರ್. ಸರಳವಾದ ದೃಢೀಕರಿಸದ IMDSv1 ಗಿಂತ IMDSv2 ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಆಯ್ಕೆ. ಪಡೆಯಿರಿ ಗಮನಿಸಬೇಕಾದ ಅಂಶವೆಂದರೆ — ಇದರರ್ಥ ಪೇಲೋಡ್ ಟೋಕನ್-ಆಧಾರಿತ ಮೆಟಾಡೇಟಾ ಪ್ರವೇಶದ ಅಗತ್ಯವಿರುವಂತೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾದ ನಿದರ್ಶನಗಳಲ್ಲಿಯೂ ಸಹ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಇದು AWS-ಶಿಫಾರಸು ಮಾಡಿದ ಗಟ್ಟಿಯಾಗುವಿಕೆಯಾಗಿದೆ. ಹಂತ 3 ರ ಮೂಲಕ ಹಿಂತಿರುಗಿಸಲಾದ ರುಜುವಾತುಗಳು ಅಲ್ಪಕಾಲಿಕವಾಗಿರುತ್ತವೆ. ಆಕ್ಸೆಸ್ಕೀಐಡಿ/ಸೀಕ್ರೆಟ್ ಆಕ್ಸೆಸ್ ಕೀ/ಟೋಕನ್ ನಿದರ್ಶನದ ಪಾತ್ರಕ್ಕೆ ತ್ರಿವಳಿ ವ್ಯಾಪ್ತಿ ನೀಡಲಾಗಿದೆ; ಆ ಪಾತ್ರವು ಏನು ಮಾಡಬಹುದೋ, ಆ ಕೀಲಿಗಳನ್ನು ಹೊಂದಿರುವವರು ರುಜುವಾತುದಾರರ ಜೀವಿತಾವಧಿಯಲ್ಲಿ ಮಾಡಬಹುದು.
4–6 ಹಂತಗಳು ಪರಿಗಣನೆಯನ್ನು ವಿಸ್ತರಿಸುತ್ತವೆ. ಕಳುಹಿಸು ಡಂಪ್ ಬಿಲ್ಡ್ ಅಥವಾ ರನ್ಟೈಮ್ ಪ್ರಕ್ರಿಯೆಯು ಆನುವಂಶಿಕವಾಗಿ ಪಡೆದ ಯಾವುದನ್ನಾದರೂ ಸೆರೆಹಿಡಿಯುತ್ತದೆ - ಪ್ರಾಯೋಗಿಕವಾಗಿ ಇಲ್ಲಿಯೇ ನೋಂದಾವಣೆ ಟೋಕನ್ಗಳು, ಡೇಟಾಬೇಸ್ ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ಗಳು ಮತ್ತು API ಕೀಗಳು ಹೆಚ್ಚಾಗಿ ವಾಸಿಸುತ್ತವೆ. / ಅಪ್ಲಿಕೇಶನ್ ಫೈಲ್ ವಾಕ್ ಹೊರಗೆ ಹದಿನೈದು ಅರ್ಜಿ ಫೈಲ್ಗಳನ್ನು ಓದುತ್ತದೆ. ನೋಡ್_ಮಾಡ್ಯೂಲ್ಗಳು, ಇದು ಮೇಲ್ಮೈ ಸಂರಚನೆಯನ್ನು ಮಾಡಬಹುದು, .env ಫೈಲ್ಗಳು ಅಥವಾ ಮೂಲ. ಹಂತ 6 ಕರೆಗಳು aws ಸೀಕ್ರೆಟ್ಸ್ ಮ್ಯಾನೇಜರ್ ಪಟ್ಟಿ-ರಹಸ್ಯಗಳು ಮೂರು ಪ್ರದೇಶಗಳಲ್ಲಿ; ಹಂತ 1–3 ರಲ್ಲಿ ಪಡೆದ ರುಜುವಾತುಗಳು ಆ ಕರೆಗಳನ್ನು ನಿಖರವಾಗಿ ದೃಢೀಕರಿಸುತ್ತವೆ, ಆದ್ದರಿಂದ IMDS ಓದುತ್ತದೆ ಮತ್ತು ಸೀಕ್ರೆಟ್ಸ್ ಮ್ಯಾನೇಜರ್ ಎಣಿಕೆ ಸರಪಳಿಯನ್ನು ಒಂದೇ ಏರಿಕೆಯಾಗಿ ಒಟ್ಟಿಗೆ ಸೇರಿಸುತ್ತದೆ: ನಿದರ್ಶನ ಪಾತ್ರ → ನಿರ್ವಹಿಸಿದ-ರಹಸ್ಯ ದಾಸ್ತಾನು. ಹಂತ 7 ಕ್ಯಾಪ್ಚರ್-ದಿ-ಫ್ಲ್ಯಾಗ್ ಫ್ರೇಮಿಂಗ್ಗೆ ಒಂದು ಒಪ್ಪಿಗೆಯಾಗಿದೆ - ಯಾವಾಗ ಒಂದು ಎಚ್ಟಿಬಿ{…} ಧ್ವಜ ಕಂಡುಬಂದಲ್ಲಿ ಅದನ್ನು ಸ್ವತಃ ಕಳುಹಿಸಲಾಗುತ್ತದೆ, ಇಲ್ಲದಿದ್ದರೆ ಸಂಗ್ರಹಿಸಿದ ಕಚ್ಚಾ ಬೊಟ್ಟುಗಳನ್ನು ನಾಲ್ಕು ತುಂಡುಗಳಾಗಿ ಕತ್ತರಿಸಿ ಕಳುಹಿಸಲಾಗುತ್ತದೆ.
ಕ್ಲಸ್ಟರ್ನಲ್ಲಿನ ನಂತರದ ಆವೃತ್ತಿಗಳು ಏರಿಕೆಯನ್ನು ಮತ್ತಷ್ಟು ಹೆಚ್ಚಿಸುತ್ತವೆ. ದಾಸ್ತಾನುಗಳಲ್ಲಿ ನಿಲ್ಲುವ ಬದಲು, ಅವು IMDS ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪಾರ್ಸ್ ಮಾಡಿ, ತಾತ್ಕಾಲಿಕ ಕೀಗಳನ್ನು ರಫ್ತು ಮಾಡುತ್ತವೆ AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_ಅಧಿವೇಶನ_ಟೋಕನ್ ಪರಿಸರ ವೇರಿಯೇಬಲ್ಗಳು, ಗುರುತನ್ನು ದೃಢೀಕರಿಸಿ aws sts ಕರೆ ಮಾಡುವವರ ಗುರುತು ಪಡೆಯಿರಿ, ತದನಂತರ ಪ್ರತಿ ರಹಸ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸಿ ಪಟ್ಟಿ-ರಹಸ್ಯಗಳು ಕರೆ aws ಸೀಕ್ರೆಟ್ಸ್ ಮ್ಯಾನೇಜರ್ ಗೆಟ್-ಸೀಕ್ರೆಟ್-ವ್ಯಾಲ್ಯೂ ಪ್ರತಿಯೊಂದರಲ್ಲೂ — ಅವುಗಳ ಹೆಸರುಗಳನ್ನು ಮಾತ್ರವಲ್ಲದೆ ರಹಸ್ಯ ವಿಷಯಗಳನ್ನು ಹಿಂಪಡೆಯುವುದು. ಅದೇ ಆವೃತ್ತಿಗಳು ಪ್ರಕ್ರಿಯೆ-ಬದಲಿ ಫ್ಲ್ಯಾಗ್ ಬೈನರಿಗಳನ್ನು ಸಹ ಓದುತ್ತವೆ (/ಓದಿದ ಧ್ವಜ ಮತ್ತು ಸ್ನೇಹಿತರು) ಮತ್ತು ಪ್ರಯತ್ನಿಸಿ ಚಾರ್ಜ್ ರನ್ ಯಾವುದೇ ರಸ್ಟ್ ಯೋಜನೆಯ ವಿರುದ್ಧ ಕಂಡುಬಂದಿದೆ / ಅಪ್ಲಿಕೇಶನ್, ನಿರ್ಮಾಣ ಪರಿಸರವು ಬಹಿರಂಗಪಡಿಸುವ ಯಾವುದೇ ವಿಷಯಗಳಿಗೆ ಮೋಡದ ರುಜುವಾತುಗಳನ್ನು ಮೀರಿ ಸುಗ್ಗಿಯನ್ನು ವಿಸ್ತರಿಸುವುದು.
ಈ ನಂತರದ ಆವೃತ್ತಿಗಳು ತಮ್ಮನ್ನು ಹೆಚ್ಚು ಆಕ್ರಮಣಕಾರಿಯಾಗಿ ಗೇಟ್ ಮಾಡುತ್ತವೆ. 12-ಹೆಕ್ಸ್-ಹೋಸ್ಟ್ ಹೆಸರಿನ ಜೊತೆಗೆ ಮತ್ತು /ಆ್ಯಪ್/ನೋಡ್_ಮಾಡ್ಯೂಲ್ಗಳು ಪರಿಶೀಲಿಸುವಾಗ, ಪೇಲೋಡ್ ಸಕ್ರಿಯ ಪ್ಯಾಕೇಜ್-ರಿಜಿಸ್ಟ್ರಿ ಕಾನ್ಫಿಗರೇಶನ್ ಮತ್ತು ವರ್ಕಿಂಗ್-ಡೈರೆಕ್ಟರಿ ಪಥವನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ ಮತ್ತು ಅವು ಲೈವ್ ಗುರಿಗಿಂತ ವಿಶ್ಲೇಷಣೆ ಅಥವಾ ಕನ್ನಡಿ ಸಂದರ್ಭವನ್ನು ಸೂಚಿಸಿದಾಗ ಮೌನವಾಗಿ ನಿರ್ಗಮಿಸುತ್ತದೆ. ಸಂಯೋಜಿತ ಪರಿಣಾಮವು ಹೆಚ್ಚಿನ ತಪಾಸಣೆ ಪರಿಸರಗಳಲ್ಲಿ ಗಮನಿಸಬಹುದಾದ ಏನನ್ನೂ ಮಾಡದ ಪೇಲೋಡ್ ಆಗಿದ್ದು ಅದು ನಿಜವಾದ ಕಂಟೇನರೈಸ್ಡ್ ಹೋಸ್ಟ್ನಲ್ಲಿದೆ ಎಂದು ನಿರ್ಣಯಿಸುವ ಸ್ಥಳದಲ್ಲಿ ಮಾತ್ರ ಅದರ ಪೂರ್ಣ ಸಂಗ್ರಹವನ್ನು ನಡೆಸುತ್ತದೆ.
ಹೊರಹಾಕುವಿಕೆ. ಸಂಗ್ರಹಿಸಿದ ದತ್ತಾಂಶವು ಹೋಸ್ಟ್ ಅನ್ನು ಎರಡು ಚಾನಲ್ಗಳಲ್ಲಿ ಬಿಡುತ್ತದೆ. ಮೊದಲು, ಒಂದು ಬೀಕನ್ POST ಸ್ಥಿರಕ್ಕೆ ವೆಬ್ಹುಕ್.ಸೈಟ್ ಸಂಗ್ರಾಹಕ, ಹೋಸ್ಟ್ ಹೆಸರು, ಸಂಖ್ಯಾತ್ಮಕ UID, ಕಾರ್ಯ ಡೈರೆಕ್ಟರಿ ಮತ್ತು 120 KB ವರೆಗಿನ ಸಂಗ್ರಹಿಸಿದ ಡೇಟಾವನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಎರಡನೆಯದಾಗಿ, ಡೇಟಾವನ್ನು ನಕಲಿ YAML "ಮಾಡ್ಯೂಲ್ ಮ್ಯಾನಿಫೆಸ್ಟ್" ಆಗಿ ಮಡಚಲಾಗುತ್ತದೆ ಮತ್ತು PUT ಗೆ /api/ಮಾಡ್ಯೂಲ್ಗಳು/ ಗುರಿ ಸರ್ವರ್ನಲ್ಲಿ:
ecto_module: name: "<flag-or-chunk-0>" version: "1.0.0" power_level: "<chunk-1>" ship_deck: "<chunk-2>" cargo_hold: "<chunk-3>" ಮ್ಯಾನಿಫೆಸ್ಟ್ ಕ್ಷೇತ್ರದ ಹೆಸರುಗಳು (ಪವರ್_ಲೆವೆಲ್, ಹಡಗು_ಡೆಕ್, ಕಾರ್ಗೋ_ಹೋಲ್ಡ್) ಅಲಂಕಾರಗಳಾಗಿವೆ — ಕದ್ದ ಡೇಟಾ ಸ್ಟ್ರಿಂಗ್ ಮೌಲ್ಯಗಳ ಒಳಗೆ ಸವಾರಿ ಮಾಡುತ್ತದೆ, ಅದಕ್ಕಾಗಿಯೇ ನೆಟ್ವರ್ಕ್ ಮಾನಿಟರ್ ಸ್ಪಷ್ಟ ಡೇಟಾ ಡಂಪ್ಗಿಂತ ಸೌಮ್ಯ ಪ್ಯಾಕೇಜ್-ರಿಜಿಸ್ಟ್ರಿ ಮ್ಯಾನಿಫೆಸ್ಟ್ ಅಪ್ಲೋಡ್ನಂತೆ ಕಾಣುವುದನ್ನು ನೋಡುತ್ತದೆ. ಬೀಕನ್ ಚಾನಲ್ ಹೆಚ್ಚಿನದನ್ನು ಒಯ್ಯುತ್ತದೆ: POST ದೇಹಕ್ಕೆ ವೆಬ್ಹುಕ್.ಸೈಟ್ ಹೋಸ್ಟ್ ಹೆಸರು, ಸಂಖ್ಯಾತ್ಮಕ UID, ಕೆಲಸ ಮಾಡುವ ಡೈರೆಕ್ಟರಿ ಮತ್ತು ಸಂಗ್ರಹಿಸಿದ ಬ್ಲಾಬ್ನ 120 KB ವರೆಗೆ ಒಳಗೊಂಡಿರುತ್ತದೆ, ಆದ್ದರಿಂದ ಒಂದೇ ಒಂದು ಯಶಸ್ವಿ ಬೀಕನ್ ಸಹ ಪೂರ್ಣ ಟೇಕ್ ಅನ್ನು ನೀಡುತ್ತದೆ. ವೆಬ್ಹುಕ್.ಸೈಟ್ ಇದು ಉಚಿತ ವಿನಂತಿ-ತಪಾಸಣೆ ಸೇವೆಯಾಗಿದೆ; ಇದನ್ನು ಸಂಗ್ರಾಹಕನಾಗಿ ಬಳಸುವುದರಿಂದ ಆಪರೇಟರ್ ಆ ಚಾನಲ್ಗಾಗಿ ತಮ್ಮದೇ ಆದ ಮೂಲಸೌಕರ್ಯವನ್ನು ಪಡೆಯಲು ಎಂದಿಗೂ ಎದ್ದು ನಿಲ್ಲಬೇಕಾಗಿಲ್ಲ ಮತ್ತು ದಾಖಲಾದ ವಿನಂತಿಗಳು ಸೇವೆಯ ಬಿನ್ನಲ್ಲಿ ಉಳಿಯುತ್ತವೆ.
ಮ್ಯಾನಿಫೆಸ್ಟ್ PUT ಹಲವಾರು ವಿಷಯಗಳಿಂದ ಪ್ರಾರಂಭವಾಗುವ ಫಾಲ್ಬ್ಯಾಕ್ ಪಟ್ಟಿಯನ್ನು ನಡೆಸುತ್ತದೆ 127.0.0.1/ಸ್ಥಳೀಯ ಹೋಸ್ಟ್ ಬಂದರುಗಳು ಮತ್ತು ನಂತರ ` ನಲ್ಲಿ ಮೂರು ಸಾರ್ವಜನಿಕ ವಿಳಾಸಗಳಿಗೆ ಬರುತ್ತದೆ೧೫೪.೫೭.೧೬೪.೦/೨೪` ಶ್ರೇಣಿ, 2xx ಸ್ಥಿತಿಯೊಂದಿಗೆ ಉತ್ತರಿಸುವ ಮೊದಲ ಎಂಡ್ಪಾಯಿಂಟ್ನಲ್ಲಿ ನಿಲ್ಲುತ್ತದೆ. ಲೋಕಲ್ಹೋಸ್ಟ್-ಮೊದಲ ಆದೇಶವು “ವರ್ಡಾಸಿಯೊ ಪರೀಕ್ಷೆ” ಸ್ವಯಂ-ವಿವರಣೆಗೆ (ಲೂಪ್ಬ್ಯಾಕ್ನಲ್ಲಿ ಸ್ಥಳೀಯ ನೋಂದಾವಣೆ) ಅನುಗುಣವಾಗಿರುತ್ತದೆ, ಆದರೆ ಸಾರ್ವಜನಿಕ-ಐಪಿ ಫಾಲ್ಬ್ಯಾಕ್ಗಳು ಎಂದರೆ ಲೂಪ್ಬ್ಯಾಕ್ ಕೇಳದಿದ್ದಾಗಲೆಲ್ಲಾ ಡೇಟಾ ಹೋಸ್ಟ್ ಅನ್ನು ಬಿಡುತ್ತದೆ - ಅಂದರೆ, ಲೇಖಕರ ಸ್ವಂತ ಪರೀಕ್ಷಾ ರಿಗ್ ಅಲ್ಲದ ಯಾವುದೇ ಯಂತ್ರದಲ್ಲಿ.
ಟೈಮ್ಲೈನ್
ಕ್ಲಸ್ಟರ್ ಒಂದೇ ಹನಿಗಿಂತ ಹೆಚ್ಚುತ್ತಿರುವ ಸಾಮರ್ಥ್ಯದ ಬೆಳವಣಿಗೆಯನ್ನು ತೋರಿಸುತ್ತದೆ. ನಾವು ಅದನ್ನು ಗಮನಿಸಿದ ನಡವಳಿಕೆಯಿಂದ ಆದೇಶಿಸುತ್ತೇವೆ, ಗೋಡೆ ಗಡಿಯಾರವನ್ನು ಪ್ರಕಟಿಸುವ ಮೂಲಕ ಅಲ್ಲ:
| ಹಂತ | ಪ್ಯಾಕೇಜುಗಳು / ಆವೃತ್ತಿಗಳು | ಬಿಹೇವಿಯರ್ |
|---|---|---|
| ಆರಂಭಿಕ ಓಟ | coral-wraith 9999.0.x | ಅವಲಂಬನೆ-ಗೊಂದಲ ಪ್ರಯತ್ನಕ್ಕೆ ಅನುಗುಣವಾಗಿರುವ ಉಬ್ಬಿಕೊಂಡಿರುವ ಆವೃತ್ತಿ ಸಂಖ್ಯೆಗಳು; ಸ್ಥಾಪನೆ-ಸಮಯದ ಎಣಿಕೆ ಮತ್ತು ನಿಷ್ಕಾಸ |
| ಬೀಜ | coral-wraith 1.0.0 | ಪೋಸ್ಟ್ಇನ್ಸ್ಟಾಲ್ ಐಡಿ/ಎನ್ವಿ/ಫ್ಲಾಗ್ ಫೈಲ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ; ಒಂದೇ ಪುಟ್ ಅನ್ನು 154[.]57[.]164[.]71:30782, ಮಾರ್ಕರ್ ECT-472839 |
| ತ್ವರಿತ ಪುನರಾವರ್ತನೆ | coral-wraith 1.0.1 → 6.0.0 | ಗಂಟೆಗಳಲ್ಲಿ ಡಜನ್ಗಟ್ಟಲೆ ಬಿಡುಗಡೆಗಳು; ಪೇಲೋಡ್ ಗಳಿಸುತ್ತದೆ isAppWorker() ಗೇಟ್, IMDSv2 ಕ್ರೆಡೆನ್ಶಿಯಲ್ ಪುಲ್, ಪೂರ್ಣ get-secret-value ಪಿವೋಟ್, ರಿಜಿಸ್ಟ್ರಿ/ಪಾತ್ ಪರಿಸರ ಪರಿಶೀಲನೆ, ಮತ್ತು ಡ್ಯುಯಲ್ ಸಿಂಕ್ ಮಾರ್ಕರ್ಗಳು |
| ಸಮಾನಾಂತರ ಹೆಸರುಗಳು | ecto-corsair-whisper-6f3b9 1.0.14–1.0.18 | ಅದೇ ಗೇಟೆಡ್ ಪೇಲೋಡ್; webhook.site ಬೀಕನ್ ಮತ್ತು ಮಲ್ಟಿ-ಎಂಡ್ಪಾಯಿಂಟ್ ಫಾಲ್ಬ್ಯಾಕ್ ಪಟ್ಟಿ |
| ಮಾರ್ಪಾಟುಗಳು | ecto-rust-read-f3a9c1 1.0.1–1.0.2 | ಹೆಚ್ಚುವರಿ ಸಿಂಕ್ ಮಾರ್ಕರ್ಗಳನ್ನು ಸೇರಿಸುತ್ತದೆ ECT-987654, ECT-654321, ECT-839201 |
| ಮಾರ್ಪಾಟುಗಳು | ecto-corsair-flag-x9m4 1.0.0, ecto-nightly-spirit 1.1.0 | ಅದೇ ಗೇಟೆಡ್ ಪೇಲೋಡ್, ಅದೇ C2 ಮತ್ತು ಬೀಕನ್ |
ಈ ಕ್ಲಸ್ಟರ್ನ ವಿಶಿಷ್ಟ ಲಕ್ಷಣವೆಂದರೆ ಅದರ ಪ್ರಕಟಣೆಯ ಪ್ರಮಾಣ: ಒಂದು ಪ್ಯಾಕೇಜ್ ಮತ್ತು ಒಂದು ಆವೃತ್ತಿಯ ಬದಲು, ಒಂದೇ ಹೆಸರನ್ನು ತ್ವರಿತ ಅನುಕ್ರಮದಲ್ಲಿ ಮತ್ತೆ ಮತ್ತೆ ಪ್ರಕಟಿಸಲಾಗುತ್ತದೆ, ಪ್ರತಿಯೊಂದೂ ಕೊನೆಯದರಲ್ಲಿ ಸಣ್ಣ ಬದಲಾವಣೆಯನ್ನು ಬಿಡುಗಡೆ ಮಾಡುತ್ತದೆ, ಜೊತೆಗೆ ಒಂದೇ ರೀತಿಯ ಪೇಲೋಡ್ ಅನ್ನು ಹೊತ್ತಿರುವ ವಿಭಿನ್ನ ಹೆಸರಿನ ಒಡಹುಟ್ಟಿದವರ ಬೆರಳೆಣಿಕೆಯಷ್ಟು ಬಿಡುಗಡೆ ಮಾಡುತ್ತದೆ. ಪಿಸುಮಾತು ಕೋಡ್ ಅನ್ನು ಎರಡು ನಿಕಟ ಫಿಂಗರ್ಪ್ರಿಂಟ್ಗಳಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ - ಒಂದು ಸೆಟ್ ಎರಡು ನಿರ್ಣಾಯಕ ಪತ್ತೆಗಳನ್ನು ಟ್ರಿಪ್ ಮಾಡುತ್ತದೆ, ಇನ್ನೊಂದು ಮೂರು (ಹೆಚ್ಚುವರಿ ಫೈಲ್-ಓದುವ ಸಿಂಕ್) - ಆದರೆ ಎರಡೂ ಒಂದೇ ಪೇಲೋಡ್ಗೆ ಪರಿಹರಿಸುತ್ತವೆ; ವ್ಯತ್ಯಾಸವೆಂದರೆ ಕೋಡ್ ಡ್ರಿಫ್ಟ್, ವರ್ತನೆಯ ಫೋರ್ಕ್ ಅಲ್ಲ. ಆವೃತ್ತಿಗಳು ಪಿಸುಮಾತು ವಿಶ್ಲೇಷಿಸಿದ ವ್ಯಾಪ್ತಿಯನ್ನು ಮೀರಿ (ಬರೆಯುವ ಸಮಯದಲ್ಲಿ ಕನಿಷ್ಠ 1.0.25 ವರೆಗೆ) ನೋಂದಾವಣೆಯಲ್ಲಿ ಲೈವ್ ಆಗಿ ಗಮನಿಸಲಾಗಿದೆ, ಮತ್ತು ಹವಳದ ಗೊರಸು ಹೆಸರು ಅದೇ ಕಿಟಕಿಯ ಮೇಲೆ ತನ್ನದೇ ಆದ ಆವೃತ್ತಿಯ ಏಣಿಯನ್ನು ಏರುತ್ತಲೇ ಇತ್ತು.
ರಾಜಿ ಸೂಚಕಗಳು
ಕೆಳಗಿನ ಎಲ್ಲಾ ಸೂಚಕಗಳನ್ನು ಡಿಸ್ಕ್ನಲ್ಲಿರುವ ಪ್ಯಾಕೇಜ್ ಮೂಲದಿಂದ ಹೊರತೆಗೆಯಲಾಗಿದೆ. ನೆಟ್ವರ್ಕ್ ಸೂಚಕಗಳು ಡಿಫೇಂಜ್ ಆಗಿವೆ.
ನೆಟ್ವರ್ಕ್
| ಸೂಚಕ | ಭೂಮಿಕೆ |
|---|---|
hxxp://154[.]57[.]164[.]71:30782 | C2 PUT ಗುರಿ (coral-wraith) |
hxxp://154[.]57[.]164[.]80:30543 | C2 PUT ಫಾಲ್ಬ್ಯಾಕ್ (ecto-*) |
hxxp://154[.]57[.]164[.]82:31250 | C2 PUT ಫಾಲ್ಬ್ಯಾಕ್ (ecto-*) |
hxxp://154[.]57[.]164[.]71:31289 | C2 PUT ಫಾಲ್ಬ್ಯಾಕ್ (ecto-*) |
hxxps://webhook[.]site/602a4c72-7033-4e28-92ea-dc66e59206e5 | ಬೀಕನ್ ಸಂಗ್ರಾಹಕ |
169[.]254[.]169[.]254/latest/... | IMDSv2 ರುಜುವಾತು ಓದುವಿಕೆ (ಗುರಿ-ಬದಿಯ, AWS ಮೆಟಾಡೇಟಾ) |
ವರ್ತನೆ/ಫೈಲ್
| ಸೂಚಕ | ಭೂಮಿಕೆ |
|---|---|
"postinstall": "node postinstall.js" | ವೆಕ್ಟರ್ ಸ್ಥಾಪಿಸಿ |
ecto_module: YAML ಜೊತೆಗೆ power_level / ship_deck / cargo_hold ಕೀಲಿಗಳನ್ನು | ಎಕ್ಸ್ಫಿಲ್ ಮ್ಯಾನಿಫೆಸ್ಟ್ ಸ್ಕೀಮಾ |
ಸಿಂಕ್ ಮಾರ್ಕರ್ಗಳು ECT-472839, ECT-987654, ECT-654321, ECT-839201 | C2 ಮಾರ್ಗ ವಿಭಾಗ /api/modules/<marker> |
isAppWorker() ಗೇಟ್: ಆತಿಥೇಯ /^[0-9a-f]{12}$/, cwd ಒಳಗೊಂಡಿದೆ /app/node_modules | ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಸ್ಥಿತಿ |
aws secretsmanager list-secrets ಮೇಲೆ us-east-1, eu-west-1, eu-central-1 | ರಹಸ್ಯಗಳ ಎಣಿಕೆ |
HTB{...} ನಿಯಮಿತ ಪರೀಕ್ಷೆ | ಕ್ಯಾಪ್ಚರ್-ದಿ-ಫ್ಲ್ಯಾಗ್ ಕೊಯ್ಲು |
ಫೈಲ್ ಹ್ಯಾಶ್ಗಳು (sha256, ವಿಶ್ಲೇಷಣೆಯ ಸಮಯದಲ್ಲಿ ಸೆರೆಹಿಡಿಯಲಾಗಿದೆ)
| ಫೈಲ್ | sha256 |
|---|---|
coral-wraith/postinstall.js | ce5ff035cfdfed1d0015446424b352c27b66bcb77e9fdb0a51e4245199146824 |
ecto-corsair-whisper-6f3b9 1.0.18/postinstall.js | b58432acba376aa6976f0490d9a1c04257ccdbc856d8390260c50322d63e31c3 |
ಗುಣಲಕ್ಷಣ ಮತ್ತು ಗಮನಿಸಿದ ನಡವಳಿಕೆ
ಐದು ಪ್ಯಾಕೇಜ್ ಹೆಸರುಗಳನ್ನು ಎರಡು npm ಖಾತೆ ಹ್ಯಾಂಡಲ್ಗಳ ಅಡಿಯಲ್ಲಿ ಪ್ರಕಟಿಸಲಾಗಿದೆ, ಆದರೆ ಅವುಗಳು ಒಂದು ಕ್ಲಸ್ಟರ್ನಂತೆ ಪರಿಗಣಿಸಲು ಸಾಕಷ್ಟು ಮೂಲಸೌಕರ್ಯವನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ: ಅದೇ ಎಕ್ಟೋ_ಮಾಡ್ಯೂಲ್ ಮ್ಯಾನಿಫೆಸ್ಟ್ ಸ್ಕೀಮಾ, ಅದೇ ಇಸಿಟಿ-472839 ಪ್ರಾಥಮಿಕ ಸಿಂಕ್ ಮಾರ್ಕರ್, ಅದೇ ವೆಬ್ಹುಕ್.ಸೈಟ್ ಸಂಗ್ರಾಹಕ ಐಡಿ, ಮತ್ತು ಅದೇ ಸ್ಥಳದಲ್ಲಿ C2 ಅಂತ್ಯಬಿಂದುಗಳು ೧೫೪.೫೭.೧೬೪.೦/೨೪` ಬ್ಲಾಕ್. ಬೀಜ ಪ್ಯಾಕೇಜ್ (`ಹವಳ-ಗೋಡೆ, ಸರಳ ಮತ್ತು ಅನ್ಗೇಟೆಡ್) ಮತ್ತು ಗೇಟೆಡ್ ಎಕ್ಟೋ-ಫ್ಯಾಮಿಲಿಯನ್ನು ಸ್ವತಂತ್ರ ಪ್ರಯತ್ನಗಳ ಬದಲು ಒಂದು ಟೂಲ್ಕಿಟ್ನಲ್ಲಿ ಪುನರಾವರ್ತನೆಗಳಾಗಿ ಓದಲಾಗುತ್ತದೆ.
ಪ್ಯಾಕೇಜ್ಗಳು ನಂತರದ ಆವೃತ್ತಿಗಳಲ್ಲಿ ತಮ್ಮನ್ನು ತಾವು ಹೀಗೆ ವಿವರಿಸಿಕೊಳ್ಳುತ್ತವೆ "ವರ್ಡಾಸಿಯೊ ಪೂರೈಕೆ-ಸರಪಳಿ ಪರೀಕ್ಷೆಗಾಗಿ CTF ಪೇಲೋಡ್." ನಾವು ಆ ಲೇಬಲ್ ಅನ್ನು ಗಮನಿಸಬಹುದಾದ ಸತ್ಯವೆಂದು ಮೇಲ್ಮೈಗೆ ತರುತ್ತೇವೆ ಮತ್ತು ಅದನ್ನು ಉದ್ದೇಶದ ಬಗ್ಗೆ ಒಂದು ಸಂಶೋಧನೆಯಾಗಿ ಪುನಃ ಹೇಳುವುದಿಲ್ಲ. ಕೋಡ್ ಏನು ಮಾಡುತ್ತದೆ ಎಂಬುದು ನಿಸ್ಸಂದಿಗ್ಧವಾಗಿದೆ ಮತ್ತು ಅದನ್ನು ಹೇಗೆ ಲೇಬಲ್ ಮಾಡಲಾಗಿದೆ ಎಂಬುದರ ಮೇಲೆ ಸ್ವತಂತ್ರವಾಗಿದೆ: ಇದು ನಿದರ್ಶನ ಮೆಟಾಡೇಟಾ ಸೇವೆಯಿಂದ IAM ಪಾತ್ರ ರುಜುವಾತುಗಳನ್ನು ಓದುತ್ತದೆ, ಮೂರು AWS ಪ್ರದೇಶಗಳಲ್ಲಿ ನಿರ್ವಹಿಸಲಾದ ರಹಸ್ಯಗಳನ್ನು ಎಣಿಸುತ್ತದೆ ಮತ್ತು ಫಲಿತಾಂಶಗಳನ್ನು ಸಾರ್ವಜನಿಕ IP ಮತ್ತು ಮೂರನೇ ವ್ಯಕ್ತಿಯ ವೆಬ್ಹುಕ್ ಸಂಗ್ರಾಹಕರಿಗೆ ರವಾನಿಸುತ್ತದೆ. ನಿಜವಾದ ಲೂಪ್ಬ್ಯಾಕ್-ಮಾತ್ರ ಪರೀಕ್ಷಾ ಸರಂಜಾಮುಗೆ ಸಾರ್ವಜನಿಕ-IP ಫಾಲ್ಬ್ಯಾಕ್ ಪಟ್ಟಿ, IMDS ರುಜುವಾತು ಓದುವಿಕೆಗಳು ಅಥವಾ ಅಡ್ಡ-ಪ್ರದೇಶ ಸೀಕ್ರೆಟ್ಸ್ ಮ್ಯಾನೇಜರ್ ಕರೆಗಳು ಅಗತ್ಯವಿಲ್ಲ. ನಿರ್ಗಮನ ಮತ್ತು ರುಜುವಾತು ತಲುಪುವಿಕೆಯು ನಿಜವಾಗಿರುವುದರಿಂದ, ಗೇಟೆಡ್ ಆವೃತ್ತಿಗಳನ್ನು ದುರುದ್ದೇಶಪೂರಿತವಾಗಿ ವರ್ಗೀಕರಿಸಲಾಗಿದೆ.
ಕಂಟೇನರ್-ಓನ್ಲಿ ಗೇಟ್ ಕಾರ್ಯಾಚರಣೆಯಲ್ಲಿ ಅತ್ಯಂತ ಗಮನಾರ್ಹ ಲಕ್ಷಣವಾಗಿದೆ. ಇದು ತಪ್ಪಿಸಿಕೊಳ್ಳುವ ಅಳತೆಯಾಗಿದೆ - ಲ್ಯಾಪ್ಟಾಪ್ಗಳಲ್ಲಿ ಮತ್ತು ವಿಶ್ಲೇಷಣೆ ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ಗಳಲ್ಲಿ ಮೌನವಾಗಿರುವುದು - ಮತ್ತು ಗುರಿ ಮಾಡುವ ಅಳತೆಯಾಗಿದೆ, ನಿಜವಾದ IAM ಪಾತ್ರ ಮತ್ತು ಲೈವ್ ರಹಸ್ಯಗಳು ಹೆಚ್ಚಾಗಿ ಇರುವಲ್ಲಿ ಮಾತ್ರ ಫೈರಿಂಗ್ ಮಾಡುತ್ತದೆ. ಈ ಪ್ಯಾಕೇಜ್ಗಳನ್ನು ಸಾಮಾನ್ಯ ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ನಲ್ಲಿ ಚಲಾಯಿಸುವ ವಿಶ್ಲೇಷಕರು ಏನನ್ನೂ ಗಮನಿಸುವುದಿಲ್ಲ; ನಡವಳಿಕೆಯು ಡಾಕರ್-ಶೈಲಿಯ ಹೋಸ್ಟ್ಹೆಸರು ಮತ್ತು ಇನ್-ಕಂಟೇನರ್ ಇನ್ಸ್ಟಾಲ್ ಪಥದ ಅಡಿಯಲ್ಲಿ ಮಾತ್ರ ಪ್ರಕಟವಾಗುತ್ತದೆ.
ರಕ್ಷಕರಿಗೆ ಪರಿಣಾಮ, ಪ್ರವೃತ್ತಿಗಳು ಮತ್ತು ಮಾರ್ಗದರ್ಶನ
ಇಲ್ಲಿ ಮಾನ್ಯತೆ ಎಂದರೆ ಬಿಲ್ಡ್ ಮತ್ತು ರನ್ಟೈಮ್ ಕಂಟೇನರ್ಗಳ ಒಳಗೆ ಕ್ಲೌಡ್-ರುಜುವಾತು ಮತ್ತು ರಹಸ್ಯ ಬಹಿರಂಗಪಡಿಸುವಿಕೆ. IMDS ನಿಂದ ಪಡೆದ IAM ಪಾತ್ರ ರುಜುವಾತು ಆ ಪಾತ್ರ ಹೊಂದಿರುವ ಯಾವುದೇ ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ; ರಹಸ್ಯ ವ್ಯವಸ್ಥಾಪಕ: ಪಟ್ಟಿ ರಹಸ್ಯಗಳು (ಮತ್ತು ಯಾವುದೇ ಫಾಲೋ-ಆನ್ ಸೀಕ್ರೆಟ್ ಮೌಲ್ಯವನ್ನು ಪಡೆಯಿರಿ) ಅದನ್ನು ಸಂಗ್ರಹಿಸಿದ ಅಪ್ಲಿಕೇಶನ್ ರಹಸ್ಯಗಳಿಗೆ ವಿಸ್ತರಿಸುತ್ತದೆ. ಪರಿಸರ-ವೇರಿಯೇಬಲ್ ಡಂಪ್ಗಳು ಆಗಾಗ್ಗೆ ರಿಜಿಸ್ಟ್ರಿ ಟೋಕನ್ಗಳು, ಡೇಟಾಬೇಸ್ URL ಗಳು ಮತ್ತು API ಕೀಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ. CI ಅಥವಾ ಕಂಟೇನರ್ ಸಂದರ್ಭದಲ್ಲಿ - ಗೇಟ್ ನಿಖರವಾಗಿ ಯಾವುದಕ್ಕಾಗಿ ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ - ಈ ಪ್ಯಾಕೇಜ್ಗಳಲ್ಲಿ ಒಂದರ ಒಂದೇ ಟ್ರಾನ್ಸಿಟಿವ್ ಇನ್ಸ್ಟಾಲ್ ಆ ವಸ್ತುವನ್ನು ಸೋರಿಕೆ ಮಾಡಲು ಸಾಕು.
ಎಕ್ಟೋಪ್ಲಾಸಂ ನಾವು ನೋಡುತ್ತಿರುವ ಮಾದರಿಗೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ: ಸ್ಥಳೀಯ ಫೈಲ್ಗಳಿಗಿಂತ ಕ್ಲೌಡ್ ಮೆಟಾಡೇಟಾ ಮತ್ತು ನಿರ್ವಹಿಸಿದ ರಹಸ್ಯಗಳನ್ನು ತಲುಪುವ ಇನ್ಸ್ಟಾಲ್-ಟೈಮ್ ಪೇಲೋಡ್ಗಳು ಮತ್ತು ಹೆಚ್ಚಿನ ಮೌಲ್ಯದ ಪರಿಸರದಲ್ಲಿ ಮಾತ್ರ ಫೈರ್ ಮಾಡಲು ಗೇಟ್ಗಳು. ಎರಡು ರಕ್ಷಣಾತ್ಮಕ ಅವಲೋಕನಗಳು ಅನುಸರಿಸುತ್ತವೆ.
- ಆಕಾರವನ್ನು ಪತ್ತೆಹಚ್ಚಬಹುದಾಗಿದೆ.. ಒಂದು npm/PyPI ಇನ್ಸ್ಟಾಲ್ ಹುಕ್ನ ಕರೆ ಗ್ರಾಫ್ ಕ್ಲೌಡ್ ಸೀಕ್ರೆಟ್ಸ್ API ಎರಡನ್ನೂ ತಲುಪುತ್ತದೆ (ಓಹ್ ಸೀಕ್ರೆಟ್ಸ್ ಮ್ಯಾನೇಜರ್, gcloud ರಹಸ್ಯಗಳು, ಅಜ್ ಕೀವಾಲ್ಟ್) ಅಥವಾ IMDS ವಿಳಾಸ ಮತ್ತು ನೆಟ್ವರ್ಕ್ ಎಗ್ರೆಸ್ ಸಿಂಕ್ ಕಿರಿದಾದ, ಹೆಚ್ಚಿನ-ಸಿಗ್ನಲ್ ಮಾದರಿಯಾಗಿದೆ - ಇದು ಕಾನೂನುಬದ್ಧ ಜೀವನಚಕ್ರ ಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ಎಂದಿಗೂ ಸಂಭವಿಸುವುದಿಲ್ಲ. ಸ್ಥಿರ ಹರಿವಿನ ವಿಶ್ಲೇಷಣೆ ಯಾವುದೇ ನಿರ್ದಿಷ್ಟ ಡೊಮೇನ್ ಅಥವಾ IP ಅನ್ನು ಅವಲಂಬಿಸದೆ ಅದನ್ನು ಫ್ಲ್ಯಾಗ್ ಮಾಡಬಹುದು.
- ಪರಿಸರ ಗಟ್ಟಿಯಾಗುವುದು ಅದನ್ನು ಮಂದಗೊಳಿಸುತ್ತದೆ. IMDSv2 ಅನ್ನು 1 ರ ಹಾಪ್ ಮಿತಿಯೊಂದಿಗೆ ಜಾರಿಗೊಳಿಸುವುದರಿಂದ ಕಂಟೇನರ್ ಕೆಲಸದ ಹೊರೆಗಳು ನಿದರ್ಶನ ಮೆಟಾಡೇಟಾವನ್ನು ತಲುಪುವುದನ್ನು ತಡೆಯುತ್ತದೆ; IAM ಪಾತ್ರಗಳನ್ನು ಕನಿಷ್ಠ ಸವಲತ್ತಿಗೆ ಸ್ಕೋಪ್ ಮಾಡುವುದರಿಂದ ಸೋರಿಕೆಯಾಗುವ ಯಾವುದೇ ರುಜುವಾತುಗಳ ಬ್ಲಾಸ್ಟ್ ತ್ರಿಜ್ಯವನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ; ಮತ್ತು ಸ್ಥಾಪನೆಗಳನ್ನು ಚಾಲನೆ ಮಾಡಲಾಗುತ್ತಿದೆ -ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ CI ನಲ್ಲಿ ಅಗತ್ಯವಿಲ್ಲದ ಪ್ಯಾಕೇಜ್ಗಳಿಗಾಗಿ ಇನ್ಸ್ಟಾಲ್-ಹುಕ್ ವೆಕ್ಟರ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ತೆಗೆದುಹಾಕುತ್ತದೆ.
ರಕ್ಷಕರಿಗೆ, ಪ್ರಾಯೋಗಿಕ ಪರಿಶೀಲನೆಗಳು: ಬಿಲ್ಡ್/ಸಿಐ ಕಂಟೇನರ್ಗಳಿಂದ ಅನುಮತಿಸದ ಸಾರ್ವಜನಿಕ ಐಪಿಗಳಿಗೆ ಹೊರಹೋಗುವ ಸಂಪರ್ಕಗಳ ಕುರಿತು ಎಚ್ಚರಿಕೆ npm ಸ್ಥಾಪನೆ; ಪ್ಯಾಕೇಜ್ ಲೈಫ್ಸೈಕಲ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳಿಂದ ಹುಟ್ಟುವ IMDS ಪ್ರವೇಶಕ್ಕಾಗಿ ವೀಕ್ಷಿಸಿ; ಮತ್ತು ಕ್ಲೌಡ್ CLI ಗೆ ಶೆಲ್ ಮಾಡುವ ಯಾವುದೇ ಇನ್ಸ್ಟಾಲ್ ಹುಕ್ ಅನ್ನು ಅನುಮಾನಾಸ್ಪದವೆಂದು ಪರಿಗಣಿಸಿ, ಇಲ್ಲದಿದ್ದರೆ ಸಾಬೀತಾಗುವವರೆಗೆ.
ಈ ಕ್ಲಸ್ಟರ್ಗೆ ನಿರ್ದಿಷ್ಟವಾದ ಇನ್ನೂ ಎರಡು ಟಿಪ್ಪಣಿಗಳು. ಮೊದಲನೆಯದಾಗಿ, ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆಯನ್ನು ಕಂಟೇನರೈಸ್ಡ್ ಪರಿಸರಗಳಿಗೆ ಸೀಮಿತಗೊಳಿಸಲಾಗಿರುವುದರಿಂದ, ಕಾರ್ಯಸ್ಥಳದಲ್ಲಿ ಪರಿಶೀಲಿಸಿದಾಗ ಜಡವಾಗಿ ಕಾಣುವ ಪ್ಯಾಕೇಜ್ ಇನ್ನೂ ಉತ್ಪಾದನೆಯಲ್ಲಿ ಲೈವ್ ಆಗಿರಬಹುದು - ಪರಿಶೀಲನೆಯು ಕಂಟೇನರ್ ಹೋಸ್ಟ್ ಹೆಸರು ಮತ್ತು ಮಾರ್ಗದ ಪರಿಸ್ಥಿತಿಗಳನ್ನು ಪುನರುತ್ಪಾದಿಸಬೇಕಾಗುತ್ತದೆ, ಅಥವಾ "ನಾನು ಅದನ್ನು ಸ್ಥಾಪಿಸಿದೆ ಮತ್ತು ಏನೂ ಆಗಲಿಲ್ಲ" ಎಂಬುದನ್ನು ಅವಲಂಬಿಸುವ ಬದಲು ಮೂಲವನ್ನು ನೇರವಾಗಿ ಓದಬೇಕಾಗುತ್ತದೆ. ಎರಡನೆಯದಾಗಿ, ಸಾರ್ವಜನಿಕ ವಿನಂತಿ-ತಪಾಸಣಾ ಸೇವೆಯನ್ನು ಬೀಕನ್ ಸಂಗ್ರಾಹಕವಾಗಿ ಬಳಸುವುದು ಎಂದರೆ ಕೆಲವು ಹೊರಹಾಕಿದ ಡೇಟಾವನ್ನು ಘಟನೆಯ ಪ್ರತಿಕ್ರಿಯೆಗಾಗಿ ಮರುಪಡೆಯಬಹುದು: ಈ ಪ್ಯಾಕೇಜ್ಗಳಲ್ಲಿ ಒಂದನ್ನು ಅದರ ಅವಲಂಬನಾ ವೃಕ್ಷದಲ್ಲಿ ಕಂಡುಕೊಳ್ಳುವ ಸಂಸ್ಥೆಯು ಪೇಲೋಡ್ನ ಸಂಗ್ರಹ ತರ್ಕದಿಂದ ಯಶಸ್ವಿ ಬೀಕನ್ ಏನನ್ನು ಹೊಂದಿರಬಹುದು ಎಂಬುದರ ಕುರಿತು ತರ್ಕಿಸಬಹುದು ಮತ್ತು ಪೀಡಿತ ನಿರ್ಮಾಣ ಅಥವಾ ರನ್ಟೈಮ್ ಪರಿಸರದಿಂದ ತಲುಪಬಹುದಾದ ಯಾವುದೇ IAM ಪಾತ್ರ ರುಜುವಾತುಗಳು, ನೋಂದಾವಣೆ ಟೋಕನ್ಗಳು ಮತ್ತು ನಿರ್ವಹಿಸಿದ ರಹಸ್ಯಗಳನ್ನು ತಿರುಗಿಸಬೇಕು. ರುಜುವಾತು ತಿರುಗುವಿಕೆಅನುಸ್ಥಾಪನೆಯು ಚಾಲನೆಯಾದ ನಂತರ, ಪ್ಯಾಕೇಜ್ ತೆಗೆಯುವಿಕೆ ಅಲ್ಲ, ಆಪರೇಟಿವ್ ಪರಿಹಾರವಾಗಿದೆ.





