• בלוג
  • נוזקת perfctl מסכנת אלפי מערכות לינוקס

נוזקת perfctl מסכנת אלפי מערכות לינוקס

    נוזקת perfctl מסכנת אלפי מערכות לינוקס

    פורסם ב 09-10-2024

    information-security

    נוזקה חמקמקה במיוחד בשם perfctl, הפועלת על מערכות לינוקס, התגלתה לאחרונה על ידי אסף מורג ועידו רביבו, חוקרים מחברת Aqua.
    מטרתה העיקרית היא גניבת משאבי מעבד לשם כריית קריפטו (כנראה מטבע Monero). פונקציה נוספת של הנוזקה היא Proxy-jacking – גניבת רוחב פס מהמערכות אליהן חדרה, כאשר האנשים מאחוריה מוכרים את רוחב-הפס לגורמים שונים.

    הנוזקה בנויה לנצל מעל ל-20,000 קונפיגורציות שגויות במערכות לינוקס על מנת “להשתקע” ולפעול על המערכות. זאת ועוד – על פי ראיות שונות, התוקפים ביצעו נסיונות תקיפה כנגד מיליוני שרתים ב-3-4 השנים האחרונות, והנוזקה עצמה כבר פועלת על אלפי מערכות. אם נצטט ישירות מהדיווח של מורג ורביבו: “אם יש לכם שרת לינוקס שמחובר לאינטרנט, יכול להיות שאתם מצויים בסיכון.”

    היא התגלתה כאשר מישהו ביצע התקפה על אחת מ”מלכודות הדבש” (honeypots) של Aqua. החוקרים ביצעו חיפוש במטרה למצוא פרטים על הנוזקה המעורבת בהתקפה, אך לא מצאו שום דיווח על התקפה דומה.
    מה שהם כן מצאו, לעומת זאת, היו אזכורים רבים בפורומים ובקהילות של מפתחים באינטרנט. בכולם היו אזכורים של perfctl ו/או של המאפיינים השונים שמרמזים על כך שהיא קיימת במערכת.

    איך perfctl פועלת

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

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

    לאחר שבוצע ניצול מוצלח, מתבצע חיבור לשרת HTTP נגוע, הנשלט על ידי התוקפים, ממנו מתבצעת הורדה של חבילת קוד זדונית (Payload).

    חבילה זו משכפלת את עצמה לתיקיה tmp/. השכפול עצמו מתבצע בתחכום – החבילה מוחקת קבצים בינריים בתיקיה (במקרה של החוקרים, היה זה קובץ בשם “sh”) ומחליפה אותם. למעשה, היא מתקיימת במערכת בתור התהליכים האלה, וכך מסווה את עצמה ומגינה על עצמה מגילוי. לאחר מכן, החבילה “המקורית” מוחקת את עצמה מהמערכת.
    היא משכפלת את עצמה לתיקיות מערכת נוספות, כמו root/.config, /usr/bin/ ו-usr/lib/ כדי להישאר במערכת במקרה שבוצע ניקוי של תיקיית tmp/ (תיקייה של קבצים זמניים).
    בתיקיות אלה, היא שומרת את עצמה בשמות כמו libpprocps.so, perfcc, libfsnkdev.so ועוד. שמות אלה נראים כמו שמות קבצים וספריות קבצים לגיטימים במערכות לינוקס, מה שמקשה אף יותר על גילוי הנוזקה.

    כחלק מתהליך ההתבססות וההסוואה, הנוזקה משחררת רוטקיט (rootkit) שמכילה שירותים שונים של לינוקס כמו ldd ו- lsof. השירותים, כמובן, עברו שינוי מראש, ומתפקדים כרוטקיט לכל דבר – הם פשוט מוחלפים בשירותים המקוריים של לינוקס.

    תרשים של שלבי הפעולה של perfctl. לקוח מהדיווח של Aqua.
    תרשים של שלבי הפעולה של perfct. מתוך הדיווח של Aqua

    לאחר ההתמקמות, הנוזקה פותחת שקע (socket) במערכת לשם תקשורת בתוך השרת. כל תקשורת מחוץ לשרת מתבצעת דרך רשת Tor כדי להקשות על האיתור.
    נתוני הנוזקה מוצפנים כדי להסוות אותה אף יותר.

    לבסוף, תוכנה לכריית מטבעות קריפטו מותקנת על המערכת, ומשתמשת במשאבי המעבד לשם כריית Monero.
    בחלק מהמקרים בחקירה של Aqua, נצפה שימוש בכלים למכירת רוחב פס, שהתבצעה דרך שירותים כמו Bitping, Repocket, Speedshare וכדומה.

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

    איך לזהות את perfctl על המערכת שלכם

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

    כמו כן, על פי המלצותיה של Aqua:

    – בדקו את תיקיות tmp, /usr/ ו-root/, וחפשו בהן קבצים המתחזים לקבצים של תהליכי מערכת, כמו perfctl sh, libpprocps.so, perfcc, ו-libfsnkdev.so.
    כדאי לחפש בתיקיות home/ ו-local./bin/ כלים כמו ldd ו-lsof.
    – נטרו ניצול משאבי מערכת באופן תכוף כדי לדעת אם יש תהליכים שדורשים המון משאבים מהמערכת שלכם. אם יש, וודאו שהצריכה הגבוהה מוצדקת. קבצים בינריים שמתנהגים באופן לא רגיל, צורכים כמות מוגזמת של משאבים או פועלים מתיקיה לא צפויה כמו tmp/, גם כן מצביעים על פעולה של perfclt.
    – בצעו ניתוח של תעבורת הרשת מהשרתים שלכם. תעבורה דרך רשת Tor ותקשורת עם קבוצות כרייה (crypto-mining pools) ועם שירותי proxy-jacking צריכים להעלות חשד מיידי.
    תקשורות עם כתובות IP חשודות, או כאלה הידועות כשייכות לגורמים זדוניים, גם הן מן הסתם צריכות להדליק נורה אדומה.

    – חפשו שינויים בשירותי מערכת כמו ldd, top, lsof, crontab וכדומה, היכולים להצביע על כך שהם הוחלפו ב”סוכנים סמויים” של הנוזקה.
    – חפשו בקבצי הלוג של המערכת מידע על שימוש בלתי מורשה בקבצי מערכת בינריים, פעולות cron חשודות ושגיאות ב-mseg.
    קבצי לוג ששונו ללא אישור או ללא ידיעתכם יכולים גם הם להצביע על חדירה למערכת.

    צעדי מניעה:

    הגבלת ההוצאה לפועל של קבצים וסקריפטים: וודאו שתיקיות שניתן לכתוב אליהן קבצים הוגדרו כ-noexec. כך תגבילו את האפשרות שקבצים בינריים יפעלו ישירות מתיקיות אלה ללא ידיעתכם. יישמו את הצעד לפחות על תיקיות שידוע ש-perfctl עובדת דרכן.
     הגבלת גישה: הגבילו את גישתם של מתמשים לקבצים ולתיקיות מערכת, או לכאלה בעלי חשיבות קריטית. מומלץ להגביל את היכולת של משתמשים לבצע שינויים בקבצים ותהליכים על ידי יישום בקרת גישה על פי תפקיד.
     טיפול בתהליכים ובשירותים: עצרו ובטלו כל שירות שאיננו נחוץ לפעולתה השוטפת של המערכת. הצעד נכון במיוחד לשירותים שחושפים אתכם למתקפות חיצוניות (למשל שירותי אינטרנט שונים).
     הפרדת רשתות (segmentation): יש לבודד שרתים בעלי חשיבות קריטית מרשת האינטרנט או להגן עליהם באמצעות חומת-אש. הגבלת הגישה דרך האינטרנט באמצעות חומת-אש לבריכות-כרייה ולתקשורת דרך Tor היא קריטית במיוחד. זכרו לחסום את הגישה מכתובות ה-IP שצויינו כשייכות לאנשים מאחורי perfctl ואליהן.
     הגנה בזמן אמת: השתמשו בכלים לניתוח התנהגות המערכת ולזיהוי נוזקות ורוטקיטים.
     סגירת פרצות: יש לוודא שפרצות דרך יישומי אינטרנט (כמו הפרצות שהוזכרו קודם) תוקנו, כדי לצמצם אפשרויות גישה לתוקפים. כמובן, כל המערכות והספריות צריכות להיות מעודכנות.

    השותפים שלנו

    • js-partners-02
    • js-partners-03
    • js-partners-04
    • js-partners-06
    • mariadb-icon
    • docker-icon
    • nodejs
    Skip to content