טל; דר
א קלאסטער פון פינף npm פּעקלעך, ארויסגעגעבן אויף צוויי קאנטע הענטלעך, געשיקט א postinstall קרוק וואס לייענט וואָלקן קרעדענשעלס פון דעם האוסט און שיקט זיי ארויס פון דער שאכטל. די פעקלעך טראגן גייסט-און-פיראט נעמען — coral-wraith, ecto-corsair-whisper-6f3b9, ecto-corsair-flag-x9m4, ecto-rust-read-f3a9c1, ecto-nightly-spirit — און סעריאַליזירן וואָס זיי זאַמלען אין אַ פאַלש ecto_module: YAML מאַניפעסט איידער עס טראַנסמיטירט. מיר טראַקן דעם קלאַסטער ווי עקטאָפּלאַסם.
די פּיילאָוד לויפט נאָר ווען עס דעטעקטירט אַ ספּעציפֿישע סביבה: אַ האָסט וועמענס נאָמען איז אַ 12-אותיות העקס סטרינג און אַן אַרבעטס־דירעקטאָריע אונטער /app/node_modules — די פאָרעם פון אַ קאַנטיינערייזד בנין אָדער CI אַרבעטער. ווען יענער טויער גייט דורכ, פרעגט דער קרוק דעם AWS אינסטאַנץ מעטאַדאַטאַ סערוויס (IMDSv2) פֿאַר IAM ראָלע קראַדענטשאַלז, רעכנט אויס AWS סעקרעץ מאַנאַגער אריבער דריי ראיאנען, דאמפט סביבה וועריאַבלען, לייענט טעקעס אונטער /app, און קראצט נאך כאפ-די-פאן שטריקלעך. עס עקספילטרירט דאן דעם רעזולטאט אויף צוויי וועגן: א בעאקאן צו א webhook.site קאָלעקטאָר און אַ מאַניפעסט PUT צו אַ רוי-IP ענדפּוינט, מיט אַ רשימה פון לאָקאַלהאָסט-ערשטער פאַלבאַקס.
די שפּעטערע פּעקל באַשרייַבונגען לייענען "CTF פּיילאָוד פֿאַר ווערדאַקיאָ סאַפּליי-טשיין טעסטינג." מיר באַריכטן די זעלבסט-באַשרייַבונג ווי אַ באַאָבאַכטבאַר פאַקט. די נאַטור זיך - לעבעדיק אַרויסגאַנג צו אַ עפנטלעך IP, פאַקטיש IMDS קרעדענשאַל לייענט, פאַקטיש סיקרעטס מאַנאַדזשער רופן - איז וואָס עס איז, נישט קוקנדיק אויף די לייבאַל, און איז די סיבה וואָס די ווערסיעס זענען קלאַסיפיצירט געוואָרן ווי בייזוויליק.
איין נאמען אין דער גרופּע, coral-wraith, האט זיך נישט אפגעשטעלט ביי איין אויסגאבע. עס איז ווידער ארויסגעגעבן געווארן אין א שנעלער נאכפאלג דורך צענדליקער ווערסיעס אין עטליכע שעה — 1.0.0 קריכן צו 6.0.0 — און אַ פריערדיקע סעריע מיטן זעלבן נאָמען האָט געניצט אויפגעבלאָזענע 9999.0.x ווערסיע נומערן, די קלאַסישע פאָרעם פון אַ אפהענגיקייט-צומישונג פארזוךאיבער יענעם טשערן איז די פּיילאָוד קלאָר אויסגעוואַקסן: פֿון אַן איין-שאָס האָסט-ענומעריישאַן בעאַקאָן צו אַ פֿולשטענדיק AWS קרעדענשאַל פּיוואַט איינגעוויקלט אין סביבה טשעקס וואָס האַלטן עס שטיל אַרויס פֿון זיין בדעה ציל.
| פּאַקקאַגעס | 5 נעמען; coral-wraith אליין איבערגעגעבן איבער צענדליקער ווערסיעס |
| יקאָוסיסטאַם | npm |
| אינסטאַלירן וועקטאָר | postinstall לעבן-ציקל סקריפּט |
| ערשטיק ציל | AWS IAM ראָלע קראַדענטשאַלז + סיקרעטס מאַנאַדזשער סוד ווערטן, סביבה וועריאַבאַלז, /app טעקעס |
| עקספיל | webhook.site בעאַקאָן + רוי-IP C2 PUT |
| טריגער טויער | 12-העקס האָסטנאַמע + /app/node_modules cwd, פּלוס אַן סביבה קאָנטראָל וואָס אונטערדריקט די פּיילאָוד אַרויס פון יענעם קאָנטעקסט |
| Severity | הויך — וואָלקן קרעדענשאַל און געראטן-געהיים אַנטפּלעקונג פֿון קאָנטיינעריזירטע בויען און ראַנטיים סביבות |
אַטאַק אַנאַטאָמיע
יעדער פּעקל אין דעם קלאַסטער איז געבויט אויף דעם זעלבן וועג: אַ כּמעט-ליידיק index.js (מאָדול.עקספּאָרטן = {}), איין-שורה package.json סקריפּט — "פּאָסטאַינסטאַל": "נאָוד פּאָסטינסטאַל.דזשעי" — און די לאַסט אין פּאָסטינסטאַל.דזשעי.עסאינסטאלירן דעם פּעקל איז גענוג צו לויפן דעם קרוק; קיין אימפארט אדער רוף איז נישט נויטיק.
דער ציל-טויער. איידער עס טוט עפּעס, קאָנטראָלירט די עקטאָ-פאַמיליע פּיילאָוד איר סביבה:
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-העקס האוסטנאמען איז די פעליקייט פאָרעם וואָס דאָקער גיט צו אַ קאַנטיינער, און /אַפּ/נאָוד_מאָדולעס איז א קאנווענציאנעלער אין-קאנטיינער אינסטאל וועג. די דריטע קלאָז גייט ארויס אויב דער וועג זעט אויס ווי א סענדבאָקסעד עקסטראַקציע דירעקטאָרי. דער נעץ עפעקט איז אז די פּיילאָוד בלייבט שלאָפנדיק אויף א דעוועלאָפּער לאַפּטאַפּ אדער אן אנאליז סענדבאָקס און אַקטיוויזירט זיך נאָר אינעווייניק א קאנטיינעריזירט בילד אדער ראַנטיים וואָרקער — די סאָרט סביבה וואָס איז מערסט מסתּמא צו טראָגן לעבעדיקע וואָלקן קראַדענטשאַלז. דער פריעסטער פּעקל אין דעם קלאַסטער, קאָראַל-שריכט, האט נישט קיין אזא טויער און פירט זיין (איינפאכערע) זאמלונג אומבאדינגט.
זאַמלונגווען דער טויער גייט אדורך, שאָלט דער קרוק ארויס דורך עקסעקפיילסינק("/ בין / ש", ["-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 ראָלע און יענע ראָלע'ס צייטווייליגע צוטריט שליסלען. די ברירה צו ימפּלעמענטירן IMDSv2 אַנשטאָט די פּשוטערע נישט-אויטענטיפֿיצירטע IMDSv1 באַקומען איז ווערט צו באַמערקן — דאָס מיינט אַז די פּיילאָוד אַרבעט אפילו אויף אינסטאַנצן קאָנפיגורירט צו דאַרפן טאָקען-באַזירט מעטאַדאַטאַ אַקסעס, וואָס איז די AWS-רעקאָמענדירטע כאַרדאַנינג. די קרעדענשאַלז וואָס ווערן צוריקגעגעבן דורך שריט 3 זענען קורץ-לעבעדיג. AccessKeyId/SecretAccessKey/סימען טריפּלס צוגעפאסט צו דער אינסטאַנץ'ס ראָלע; וואָס די ראָלע קען טאָן, קען דער האָלדער פון יענע שליסלען טאָן פֿאַר די קרעדענשאַל'ס לעבן.
טריט 4–6 פארברייטערן דעם בליק. די שיקן דאַמפּ כאַפּט אַלץ וואָס דער בויען אָדער ראַנטיים פּראָצעס האָט געירשנט — אין פּראַקסיס איז דאָס וווּ רעגיסטרי טאָקענס, דאַטאַבייס קאַנעקשאַן סטרינגס און API שליסלען געפינען זיך רובֿ אָפט. /אַפּ פייל וואך לייענט ביז פופצן אפליקאציע טעקעס אינדרויסן נאָדע_מאָדולעס, וואָס קען ייבערפלאַך קאָנפיגוראַציע, .ענוו טעקעס, אדער מקור. שריט 6 רופט aws סודות-פאַרוואַלטער רשימה-סודות אין דריי ראיאנען; די קרעדענשעלס ארויסגעצויגן אין טריט 1-3 זענען פונקט וואס אויטענטיפיצירן די רופן, אזוי אז די IMDS לייענונג און די סיקרעטס מענעדזשער אויסרעכענונג קייטן זיך צוזאמען אין איין עסקאלאציע: אינסטאנץ ראלע → געראטן-סוד אינווענטאר. טריט 7 איז א קניפּ צו די כאַפּטשער-די-פאָן פרעמינג — ווען א ה.ב.ב.{…} אויב מען טרעפט א פאן ווערט עס געשיקט אליין, אנדערש ווערט דער רויער געזאמלטער בלאב צוטיילט אין פיר שטיקלעך און געשיקט.
שפּעטערע ווערסיעס אין דעם קלאַסטער פירן די עסקאַלאַציע ווייטער. אַנשטאָט זיך אָפּשטעלן ביי אַן אינווענטאַר, פּאַרזירן זיי די IMDS ענטפער, עקספּאָרטירן די צייטווייליגע שליסלען ווי AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_SESSION_TOKEN סביבה וועריאַבאַלן, באַשטעטיקן די אידענטיטעט מיט aws sts באַקומען-רופער-אידענטיטעט, און דערנאך א שלייף איבער יעדן סוד וואס ווערט צוריקגעגעבן דורך ליסטע-סודות פאַך aws סיקרעטסמענעדזשער באַקומען-סוד-ווערט אויף יעדן — צוריקקריגן די געהיימע אינהאַלטן, נישט נאָר זייערע נעמען. די זעלבע ווערסיעס לייענען אויך פּראָצעס-סאַבסטיטוטירטע פאָן בינעריז (/לייען פאָן און פריינט) און פרובירן א אָפּצאָל לויפן קעגן יעדן ראַסט פּראָיעקט געפֿונען אונטער /אַפּ, פארברייטערנדיק די שניט ווייטער פון וואָלקן קרעדענשעלס אין וואָס די בויען סביבה אויסשטעלט.
די שפּעטערע ווערסיעס גייען זיך אויך מער אַגרעסיוו. אין דערצו צו די 12-העקס-האָסטנאַמע און /אַפּ/נאָוד_מאָדולעס טשעקט, די פּיילאָוד אינספּעקטירט די אַקטיווע פּאַקעט-רעגיסטרי קאָנפיגוראַציע און די אַרבעט-דירעקטאָרי דרך און גייט שטילערהייט אויס ווען זיי ווײַזן אויף אַן אַנאַליז אָדער שפּיגל קאָנטעקסט אַנשטאָט אַ לעבעדיק ציל. דער קאָמבינירטער עפֿעקט איז אַ פּיילאָוד וואָס טוט גאָרנישט אָבסערווירבאר אין רובֿ אינספּעקציע סביבות און לויפט איר פולע זאַמלונג נאָר ווען עס משפט זיך צו זיין אויף אַן עכטן קאַנטיינערייזד האָסט.
עקספילטראַטיאָןדי געזאמלטע דאטן פארלאזט דעם האוסט אויף צוויי קאנאלן. ערשטנס, א בעאקאן פּאָסטן צו אַ פאַרפעסטיקט וועבהוק.סייט זאַמלער, וואָס טראָגט דעם האָסטנאַמע, נומערישן 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>" די מאַניפעסט פעלד נעמען (מאַכט_לעוועל, שיף־דעק, לאַסט־האַלט) זענען דעקאָראַציע — די געגנבעטע דאַטן רייזן אינעווייניק אין די סטרינג ווערטן, וואָס איז וואָס אַ נעץ מאָניטאָר זעט וואָס קוקט ווי אַ גוטהאַרציקע פּאַקאַדזש-רעגיסטרי מאַניפעסט אַפּלאָוד אלא ווי אַ קלאָרע דאַטן דאַמפּ. דער בעאַקאָן קאַנאַל טראָגט מער: די פּאָסטן גוף צו וועבהוק.סייט כולל דעם האָסטנאַמע, נומערישער UID, אַרבעטס דירעקטאָרי, און ביז 120 KB פון די געזאַמלטע בלאָב, אַזוי אַז אפילו אַן איינציקער געראָטן בעאַקאָן גיט די פולע נעמען. וועבהוק.סייט איז א פרייער פארלאנג-אינספעקציא סערוויס; ניצן עס אלס א קאלעקטאר מיינט אז דער אפעראטאר דארף קיינמאל נישט אויפשטעלן אן אייגענע אינפראסטרוקטור פאר יענעם קאנאל, און די רעקארדירטע פארלאנגען בלייבן אין די סערוויס'ס בין.
די מאַנאַפעסטיישאַן PUT גייט אן אומבאוועגלעכע ליסטע וואס הייבט זיך אן מיט עטליכע 127.0.0.1/לאָקאַלהאָסט פּאָרטן און דאַן פאַלט דורך צו דרייַ עפנטלעכע אַדרעסן אין די `154.57.164.0/24` קייט, אפשטעלן ביים ערשטן ענדפונקט וואס ענטפערט מיט א 2xx סטאטוס. די לאקאל-האסט-ערשטע סדר איז קאנסיסטענט מיט דער "ווערדאקיא טעסטן" זעלבסט-באשרייבונג (א לאקאלע רעגיסטרי אויף לופבעק), אבער די פובליק-IP פאלבעקס מיינען אז די דאטן פארלאזט דעם האוסט ווען לופבעק הערט נישט צו — דאס הייסט, אויף יעדער מאשין וואס איז נישט דער מחבר'ס אייגענע טעסט ריג.
טיימליין
דער קלאַסטער ווייזט אינקרעמענטאַלע קאַפּאַציטעט וווּקס אלא ווי אַן איינציקע קאַפּ. מיר סאָרטירן עס לויט באַאָבאַכטע נאַטור, נישט לויט פּובליק וואַנט-קלאָק:
| פאַזע | פּאַקאַדזשאַז / ווערסיעס | אָפּפירונג |
|---|---|---|
| פרי לויף | coral-wraith 9999.0.x | אויפגעבלאזענע ווערסיע נומערן וואס זענען אין איינקלאנג מיט א פארזוך פון צומישעניש פון אפהענגיקייט; אינסטאל-צייט אויסרעכענונג און עקס-פיל |
| זוימען | coral-wraith 1.0.0 | פּאָסטינסטאָל זאַמלט id/env/flag טעקעס; איין PUT צו 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: יאַמאַל מיט 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 ענדפּונקטן אין דער זעלבער 154.57.164.0/24` בלאָק. די זוימען פּעקל (`קאָראַל-רייט, פּשוטער און נישט-געגאָטירט) און די געגאָטירטע עקטאָ-משפּחה לייענען זיך אַזוי ווי איטעראַציעס אויף איין געצייג-קעסטל אַנשטאָט זעלבשטענדיקע אָנשטרענגונגען.
די פּעקלעך באַשרײַבן זיך, אין שפּעטערע ווערסיעס, ווי "CTF פּיילאָוד פֿאַר ווערדאַקיאָ סאַפּליי-קייט טעסטינג." מיר ווײַזן אָן יענעם טיטל ווי אַן אָבסערווירבארן פאַקט און מיר זאָגן עס נישט ווידער ווי אַן אויסטרעף וועגן צוועק. וואָס דער קאָד טוט איז אומדיײַטווײַליק און אומאָפּהענגיק פֿון ווי עס איז באַצייכנט: עס לייענט IAM ראָלע קרעדענשאַלז פֿון דער אינסטאַנץ מעטאַדאַטאַ סערוויס, רעכנט אויס געראטן סודות איבער דריי AWS ראַיאָנען, און טראַנסמיטירט די רעזולטאַטן צו אַ פּובליק IP און אַ דריט-פּאַרטיי וועבהוק קאַלעקטאָר. אַן עכט לופּבעק-בלויז טעסט כאַרניס וואָלט נישט דאַרפֿן די פּובליק-IP פֿאַלבעק רשימה, די IMDS קרעדענשאַל לייענונגען, אָדער די קראָס-ראַיאָן סודות מאַנאַדזשער רופֿן. ווײַל די אויסגאַנג און קרעדענשאַל דערגרייכונג זענען רעאַל, זענען די גייטיד ווערסיעס קלאַסיפֿיצירט געוואָרן ווי בייזוויליק.
דער קאנטעינער-נאר גייט איז די מערסט אפעראציאנעל באמערקבארע אייגנשאפט. עס איז סיי אן אויסמיידונג מיטל — בלייבן שטיל אויף לעפטאפס און אין אנאליז זאמדקאסטנס — און סיי א צילגעריכטע מיטל, וואס שייסט נאר וואו אן עכטע IAM ראלע און לעבעדיגע סודות זענען מערסטנס פאראן. אנאליסטן וואס לויפן די פעקלעך אין א גענערישן זאמדקאסט וואלטן גארנישט באמערקט; די אויפפירונג ווייזט זיך נאר ארויס אונטער א דאקער-סטיל האוסטנאמען און אן אין-קאנטיינער אינסטאל וועג.
השפּעה, טרענדס און גיידאַנס פֿאַר פֿאַרטיידיקער
די אויפדעקונג דא איז וואָלקן-קרעדענשאַל און סוד אַנטפּלעקונג אינעווייניק בילד און ראַנטיים קאַנטיינערז. אַן IAM ראָלע קרעדענשאַל גענומען פון IMDS טראָגט וועלכע פּערמישאַנז יענע ראָלע האַלט; סודות־פאַרוואַלטער: ליסטע פון סודות (און יעדע נאכפאלג באַקומען סוד ווערט) פארברייטערט דאס צו סטאָרד אַפּליקאַציע סודות. סביבה-וועריאַבל דאַמפּס פירן אָפט רעגיסטרי טאָקענס, דאַטאַבייס URLs, און API שליסלען. אין אַ CI אָדער קאַנטיינער קאָנטעקסט — פּונקט וואָס דער גייט סעלעקטירט — איז אַן איינציקע טראַנזיטיווע ינסטאַלירונג פון איינער פון די פּאַקאַדזשאַז גענוג צו ליקן דעם מאַטעריאַל.
עקטאָפּלאַזם פּאַסט צו אַ מוסטער וואָס מיר זעען ווייטער: אינסטאַלאַציע-צייט פּיילאָודז וואָס דערגרייכן וואָלקן מעטאַדאַטאַ און געראטן סודות אַנשטאָט לאָקאַלע טעקעס, און וואָס גיבן זיך צו פייער בלויז אין הויך-ווערט סביבות. צוויי דעפענסיווע אָבסערוואַציעס נאָכפאָלגן.
- די פֿאָרעם איז דעטעקטירבאראן npm/PyPI אינסטאל קרוק וועמענס רוף גראף דערגרייכט ביידע א וואָלקן סודות API (aws סודות מענעדזשער, ג-קלאוד סודות, אז קי-וואלט) אדער די IMDS אדרעס און א נעץ ארויסגאנג זינק איז א שמאלער, הויך-סיגנאל מוסטער — עס קומט כמעט קיינמאל נישט פאר אין א לעגיטימען לעבנסציקל סקריפט. סטאַטישע פלוס אַנאַליז קען עס אָנצייכענען אָן זיך צו פֿאַרלאָזן אויף קיין ספּעציפֿישן דאָמעין אָדער IP אַדרעס.
- די פֿאַרהאַרטונג פֿון דער סביבה מאַכט עס שווער. דורכפירן IMDSv2 מיט א האפ לימיט פון 1 פארמיידט קאנטעינער ווארקלאסטן פון דערגרייכן אינסטאנץ מעטאדאטא; אויסרעכענען IAM ראלעס צו די קלענסטע פריווילעגיע באגרענעצט דעם בלאַסט ראַדיוס פון יעדן קרעדענשאַל וואָס טוט ליקן; און לויפן אינסטאַלס מיט –איגנאָרירן-סקריפּס אין CI נעמט מען אַוועק דעם install-hook וועקטאָר אינגאַנצן פֿאַר פּעקעדזשעס וואָס דאַרפֿן עס נישט.
פֿאַר פֿאַרטיידיקער, די פּראַקטישע טשעקס זענען: וואָרענונג אויף אַרויסגייענדיקע פֿאַרבינדונגען פֿון בילד/CI קאָנטעינערס צו נישט-ערלויבטע עפֿנטלעכע IPs בעת נפּם ינסטאַלירן; זייט אויפמערקזאם אויף IMDS צוטריט וואס שטאמט פון פעקל לעבנסציקל סקריפטן; און באהאנדלט יעדן אינסטאל קרוק וואס שיקט ארויס צו א קלאָוד CLI ווי פארדעכטיגט ביז עס ווערט באוויזן אנדערש.
צוויי ווייטערע נאטיצן ספעציפיש צו דעם קלאסטער. ערשטנס, ווייל אקטיוואציע איז געיטעד צו קאנטעינעריזירטע סביבות, קען א פעקל וואס דערשיינט אינערט ווען עס ווערט קאנטראלירט אויף א ווארקסטאנציע נאך אלץ זיין לייוו אין פראדוקציע — קאנטראלירן דארף רעפראדוצירן דעם קאנטעינער האוסטנאמען און וועג באדינגונגען, אדער לייענען די מקור גלייך, אנשטאט זיך צו פארלאזן אויף "איך האב עס אינסטאלירט און גארנישט איז געשען." צווייטנס, די נוצן פון א פובליק פארלאנג-אינספעקשאן סערוויס אלס א בעאקאן קאלעקטאר מיינט אז עטליכע פון די עקספילטרירטע דאטן קענען זיין צוריקקריגבאר פאר אינצידענט רעאקציע: אן ארגאניזאציע וואס געפינט איינע פון די פעקלס אין איר דעפענדענץ בוים קען טראכטן וועגן וואס א געלונגענער בעאקאן וואלט אנטהאלטן פון די פיילד'ס קאלעקציע לאגיק, און זאל דרייען יעדע IAM ראלע קרעדענשעלס, רעגיסטרי טאוקענס, און געראטן סודות וואס זענען געווען דערגרייכבאר פון די באטראפענע בילד אדער ראנטיים סביבה. קרעדענשאַל ראָטאַציע, נישט פּעקל באַזייַטיקונג, איז די אָפּעראַטיווע רעמעדיאַציע אַמאָל אַן אינסטאַלאַציע איז געלאָפן.





