טיש פון קאָנטענץ[באַהאַלטן][ווייַזן]
Log4Shell, אַן אינטערנעט וואַלנעראַביליטי, לעצטנס אַפעקטאַד מיליאַנז פון מאשינען. Log4j, אַ טונקל אָבער כּמעט ומעטומיק ווייכווארג, ז עס.
Log4j איז געניצט צו קלאָץ אַלע די אַקשאַנז וואָס פאַלן הינטער די סינז אין פאַרשידן קאָמפּיוטער סיסטעמען.
עס איז באזירט אויף אַן אָפֿן-מקור לאָגינג ביבליאָטעק וואָס איז געניצט דורך געשעפטן און אפילו רעגירונג אָרגאַנאַזיישאַנז אין רובֿ אַפּלאַקיישאַנז.
ווייל איינער פון די ערגסט סייבער זיכערהייט האָלעס טאָמיד אַנקאַווערד, עס איז קריטיש צו באַשיצן אייער סיסטעמען פון דעם וואַלנעראַביליטי. אבער וויאזוי?
לאָמיר ויספאָרשן Log4j וואַלנעראַביליטי אין דעטאַל און אַלע מעגלעך פאַרריכטן סאַלושאַנז פֿאַר עס.
וואָס איז Log4j?
Log4j איז אַן עפענען-מקור לאָגינג פריימווערק וואָס ינייבאַלז ווייכווארג דעוועלאָפּערס צו רעקאָרדירן פאַרשידענע דאַטן אין זייער אַפּלאַקיישאַנז. עס איז אַ קאָמפּאָנענט פון די Apache לאָגינג באַדינונגס פּרויעקט, וואָס איז געפירט דורך די אַפּאַטשי ווייכווארג וויקיפּעדיע.
הונדערטער פון וועבסיטעס און אַפּפּס נוצן Log4j צו דורכפירן קריטיש אַפּעריישאַנז אַזאַ ווי לאָגינג דאַטן פֿאַר דיבאַגינג און אנדערע ניצט.
ווען איר אַרייַנשרייַב אָדער גיט אויף אַ נעבעך אָנליין לינק און באַקומען אַ 404 טעות אָנזאָג, דאָס איז אַ אָפט בייַשפּיל פון Log4j אין אַרבעט. דער וועב סערווער וואָס לויפט די פעלד פון די וועב לינק איר געפרוווט צו אַקסעס ינפאָרמז איר אַז קיין אַזאַ וועב בלאַט יגזיסץ. עס אויך לאָגס די געשעעניש אין Log4j פֿאַר די סערווערס סיסטעם אַדמיניסטראַטאָרס.
איבער ווייכווארג מגילה, ענלעך דיאַגנאָסטיק סיגנאַלז זענען אָנגעשטעלט. אין די אָנליין שפּיל Minecraft, פֿאַר בייַשפּיל, דער סערווער ניצט Log4j צו קלאָץ אַקטיוויטעטן אַזאַ ווי גאַנץ באַראַן געוויינט און באַניצער ינסטראַקשאַנז געשיקט אין די קאַנסאָול.
ווי קומט די וואַלנעראַביליטי?
לוקאַפּס זענען אַ נייַע שטריך באַקענענ אין Log4j 2.0, וואָס העלפּס צו ינקאָרפּערייט נאָך אינפֿאָרמאַציע אין קלאָץ איינסן. איינער פון די לוקאַפּס איז די JNDI (Java Naming and Directory Interface) לוקאַפּ, וואָס איז אַ Java API פֿאַר קאַמיונאַקייטינג מיט אַ וועגווייַזער דינסט.
מיט דעם צוגאַנג, ינערלעך באַניצער ידס קענען זיין מאַפּט צו פאַקטיש באַניצער נעמען. די אָנפֿרעג יקספּאָוזיז די נייַ דיסקאַווערד RCE וואַלנעראַביליטי, ווייַל איינער פון די דאַטן טייפּס סאַפּלייד דורך די LDAP סערווער איז אַ URI וואָס ווייזן צו אַ Java קלאַס, וואָס איז לאָודיד אין זכּרון און לויפן דורך די Log4j בייַשפּיל.
רעכט צו אַ שוואַכקייַט אין די אַרייַנשרייַב וואַלאַדיישאַן פון די Log4j ביבליאָטעק, עס איז מעגלעך צו אַרייַנשפּריצן אַן אַרביטראַריש LDAP סערווער פֿון אַן אַנטראַסטיד מקור. ווייַל דעוועלאָפּערס יבערנעמען אַז דאַטן געשיקט צו לאָגס וועט זיין כאַנדאַלד ווי קלאָר טעקסט, קיין עקסטרע אַרייַנשרייַב וואַלאַדיישאַן איז דורכגעקאָכט, און געפערלעך באַניצער אַרייַנשרייַב גייט אריין די לאָגס.
א קלאָץ ויסזאָגונג קען קוקן ווי דאָס:
א בייזע באַניצער וואָלט איצט אַרייַנלייגן אַ JNDI לוקאַפּ ריפערינג צו אַ זשוליק LDAP סערווער אין אַ URL פּאַראַמעטער. די JNDI לוקאַפּ וואָלט זיין ווי גייט:
דערנאָך, די Log4j ביבליאָטעק רעדט מיט דעם LDAP סערווער אויף attacker.com צו באַקומען וועגווייַזער אינפֿאָרמאַציע, אַרייַנגערעכנט וואַלועס פֿאַר די Java Factory און Java Codebase.
די צוויי וואַלועס אַרייַננעמען די אַטאַקער ס ז'אבא קלאַס, וואָס איז דעמאָלט לאָודיד אין זכּרון און עקסאַקיוטאַד דורך די Log4j בייַשפּיל, קאַמפּליטינג די קאָד דורכפירונג.
ווער איז אין ריזיקירן?
די וואַלנעראַביליטי פון Log4j איז ינקרעדאַבלי ברייט, אַפעקץ געשעפט אַפּלאַקיישאַנז, עמבעדיד דעוויסעס און זייער סאַבסיסטאַמז. אַפעקטאַד אַפּפּס אַרייַננעמען Cisco Webex, Minecraft און FileZilla FTP.
אָבער, דאָס איז נישט אַ גאַנץ רשימה. דער פלאָ אפילו ימפּאַקץ די ינדזשאַנואַטי מאַרס 2020 האַקמעסער מיסיע, וואָס ניצט Apache Log4j פֿאַר געשעעניש רעקאָרדינג.
די זיכערהייט קהילה האט צונויפגעשטעלט א רשימה פון שפּירעוודיק סיסטעמען. עס איז קריטיש צו טאָן אַז די רשימות זענען קאַנטיניואַסלי אַפּדייטינג, אַזוי אויב אַ זיכער פּראָגראַם אָדער סיסטעם איז נישט פיטשערד, טאָן ניט יבערנעמען אַז עס איז נישט אַפעקטאַד.
ויסשטעלן צו דעם וואַלנעראַביליטי איז גאַנץ מסתּמא, און אפילו אויב אַ ספּעציפיש טעק אָנלייגן טוט נישט צולייגן Java, זיכערהייט יגזעקיאַטיווז זאָל דערוואַרטן קריטיש סאַפּלייער סיסטעמען, סאַאַס סאַפּלייערז, וואָלקן האָסטינג פּראַוויידערז און וועב סערווער פּראַוויידערז צו טאָן דאָס.
ווי צו קאָנטראָלירן פֿאַר Log4j וואַלנעראַביליטי?
דער ערשטער שריט איז צו באַשליסן צי אַ אַטאַקע איז שוין פארגעקומען. איר קענען טאָן דאָס דורך קאָנטראָלירן די סיסטעם לאָגס פֿאַר RCE פּיילאָוד פראַגמאַנץ.
אויב אַ זוכן פֿאַר טערמינען ווי "jndi", "ldap" אָדער "$::" גיט קיין לאָגס, זיכערהייט ריסערטשערז זאָל ויספאָרשן ווייַטער צו זען אויב עס איז געווען אַ לאַדזשיטאַמאַט באַפאַלן אָדער בלויז פינגערפּרינטינג.
פילע אַסאָלץ אין די ווילד זענען דיסקאַווערד וואָס האָבן נישט צושטעלן קיין שעדלעך פּיילאָודז. פונדעסטוועגן, זיי זענען געפירט אויס דורך זיכערהייט עקספּערץ צו באַשליסן ווי פילע אַפּפּס זענען שפּירעוודיק צו דעם באַפאַלן.
דער ווייַטער שריט איז צו נוצן די Log4j ביבליאָטעק צו ידענטיפיצירן אַלע פּראַדזשעקס. אויב ווערסיעס צווישן 2.0-beta9 און 2.14.1 זענען געניצט, די פּרויעקט קען זיין סאַסעפּטאַבאַל.
געגעבן די שוועריקייט אין דיטערמאַנינג ווו די וואַלנעראַביליטי יגזיסץ, עס קען זיין בילכער צו יבערנעמען די פּרויעקט איז סאַסעפּטאַבאַל און אַז אַפּדייטינג די ביבליאָטעק איז דער בעסטער לויף פון קאַמף צו באַזייַטיקן די געפאַר פון קאָד דורכפירונג.
די פּרויעקט איז נישט שפּירעוודיק אויב די געוויינט ווערסיע איז ווייניקער ווי 2.0-ביתא 9, כאָטש די Log4j ביבליאָטעק זאָל נאָך זיין אַפּגריידיד ווייַל ווערסיעס אין די 1.x קייט זענען אַלט און ניט מער דערהייַנטיקונגען.
צי אַ סאַסעפּטאַבאַל פּרויעקט איז דיסקאַווערד, עס איז אַדווייזד אַז עס איז אָפּגעשטעלט צו זען אויב קיין אינפֿאָרמאַציע לאָגד מיט Log4j כּולל אינפֿאָרמאַציע וואָס דער באַניצער קענען טוישן. URL ס, בעטן פּאַראַמעטערס, כעדערז און קיכלעך זענען ביישפילן פון די דאַטן. אויב איינער פון די איז לאָגד, די פּרויעקט איז אין סאַקאָנע.
דעם וויסן קענען העלפֿן איר צו דעלינג ווייַטער אין די סיסטעם לאָגס און באַשליסן צי דיין וועב אַפּלאַקיישאַן איז שוין אַטאַקירט.
עס זענען פריי אָנליין מכשירים וואָס קענען דעטעקט אויב אַ וועב אַפּלאַקיישאַן איז שפּירעוודיק. איינער פון די מגילה איז לאָג4שעל כאַנטרעס. עס איז אָפֿן-מקור און בנימצא אויף גיטהוב.
אויב אַ שפּירעוודיק געגנט פון קאָד אין די אָנליין אַפּלאַקיישאַן איז דיסקאַווערד, די פּיילאָוד צוגעשטעלט דורך די דיסקלאָוזד געצייַג קענען זיין געוויינט צו אַרייַנשפּריצן עס אין די וועב אַפּלאַקיישאַן. די טעסטינג געצייַג וואָלט אַנטדעקן די קאַנעקשאַנז צווישן דיין וועב אַפּלאַקיישאַן און זייער LDAP סערווער אויב די וואַלנעראַביליטי איז עקספּלויטאַד.
סאַלושאַנז צו פאַרריכטן Log4j וואַלנעראַביליטי
דער ערשטער שריט איז צו דערהייַנטיקן Log4j, וואָס איר קענען טאָן מיט די נאָרמאַל פּעקל מאַנאַדזשערז אָדער דורך דאַונלאָודינג עס גלייך פֿון דעם. בלאַט.
עס איז אויך מעגלעך צו פאַרמינערן די עקספּלויטאַביליטי פון די וואַלנעראַביליטי דורך באַשטעטיקן די סוויווע בייַטעוודיק FORMAT MSG NO LOOKUPS צו אמת. דער קאָונטערמעזשער איז אָבער אָנווענדלעך בלויז פֿאַר Log4j ווערסיעס העכער אָדער גלייַך צו 2.10.
זאל אונדז איצט באַטראַכטן אָלטערנאַטיוו אָפּציעס.
1. וואָרקאַראָונדס פֿאַר Log4j ווערסיע 2.17.0
עס איז באשטימט שטארק אַדווייזד צו נוצן Log4j ווערסיע 2.15.0 צו באַשיצן קעגן Log4Shell, אָבער, אויב דאָס איז ניט מעגלעך, אנדערע סאַלושאַנז זענען בארעכטיגט.
ווערסיעס 2.7.0 און שפּעטער פון Log4j: עס איז פיזאַבאַל צו באַשיצן קעגן קיין באַפאַלן דורך טשאַנגינג די פֿאָרמאַט פון די געשעענישן צו זיין לאָגד מיט די סינטאַקס פון פּראָצענט נאָלאָאָקופּ פֿאַר די דאַטן סאַפּלייד דורך די באַניצער. דער דערהייַנטיקן ריקווייערז עדיטינג די Log4j קאַנפיגיעריישאַן טעקע צו דזשענערייט אַ נייַע ווערסיע פון די פּראָגראַם. ווי אַ רעזולטאַט, איידער דיפּלויינג די נייַע ווערסיע, די טעכניש און פאַנגקשאַנאַל וואַלאַדיישאַן סטאַגעס מוזן זיין ריפּיטיד.
Log4j ווערסיעס 2.10.0 און שפּעטער: עס איז אויך מעגלעך צו באַשיצן קעגן קיין באַפאַלן דורך באַשטעטיקן די קאַנפיגיעריישאַן פּאַראַמעטער log4j2.formatMsgNoLookups צו אמת, למשל, ווען איר אָנהייב די Java ווירטואַל מאַשין מיט די -Dlog4j2 אָפּציע. formatMsgNoLookups = אמת, אן אנדער אָפּציע איז צו באַזייַטיקן די JndiLookup קלאַס פון די קלאַספּאַט אַרגומענט, וואָס וועט באַזייַטיקן די הויפּט באַפאַלן וועקטאָר (די ריסערטשערז טאָן ניט ויסשליסן די מעגלעכקייט פון אן אנדער באַפאַלן וועקטאָר).
אַמאַזאָן וועב באַדינונגס גיט אַ האָטפּאַטטש וואָס איז "זאָל זיין יוטאַלייזד אויף דיין אייגענע ריזיקירן." אנדערע "טעקניקס," אַזאַ ווי Logout4Shell, וואָס "ניצט דעם וואַלנעראַביליטי קעגן זיך," האָבן שוין ארויס. דער זיכערהייט עקספּערט פרעגן די ליגאַלאַטי פון דעם מאַך, וואָס ינוואַלווז "כאַקינג אַ מאַשין צו פאַרריכטן עס."
2. די פּראָבלעם איז סאַלווד אין Log4j v2.17.0.
פֿאַר ווערסיעס העכער ווי 2.10: Log4j2.formatMsgNoLookups זאָל זיין באַשטימט צו אמת.
פֿאַר ווערסיעס 2.0 ביז 2.10.0: לויפן די פאלגענדע באַפֿעל צו באַזייַטיקן די LDAP קלאַס פֿון Log4j.
Log4j2.formatMsgNoLoookups זאָל זיין באַשטימט צו אמת אין די סיסטעם סעטטינגס.
מיטיגיישאַן אין JVM
מיטיגיישאַן מיט JVM פּאַראַמעטערס איז ניט מער אַן אָפּציע. אנדערע מיטיגייטינג מעטהאָדס פאָרזעצן צו זיין געראָטן. אַפּגרייד צו Log4j ווערסיע 2.17.0 אויב מעגלעך. עס איז אַ מייגריישאַן פירער בנימצא פֿאַר Log4j v1.
אויב אַ דערהייַנטיקן איז ניט מעגלעך, מאַכן זיכער אַז די קליענט-זייַט און סערווער זייַט קאַמפּאָונאַנץ האָבן די -Dlog4j2.formatMsgNoLookups = אמת סיסטעם פאַרמאָג שטעלן.
ביטע טאָן אַז Log4j v1 האט ריטשט זיין סוף פון לעבן (EOL) און וועט ניט מער באַקומען זשוק פיקסיז. אנדערע RCE וועקטאָרס זענען אויך סאַסעפּטאַבאַל צו Log4j v1. דעריבער, מיר בעטן אַז איר אַפּגרייד צו Log4j 2.17.0 ווי באַלד ווי מעגלעך.
3. מיטיגיישאַן מיטלען
קראַנט עקספּלויץ קענען נישט אַרבעטן אפילו אויב Log4j איז סאַסעפּטאַבאַל אין עטלעכע ינסטאַנסיז, אַזאַ ווי אויב דער באַלעבאָס מאַשין איז פליסנדיק אַ Java ווערסיע העכער ווי 6u212, 7u202, 8u192 אָדער 11.0.2.
דאָס איז רעכט צו דער בעסער לאָודינג שוץ פון Java נאַמינג און Directory צובינד (JNDI) אין קראַנט ווערסיעס, וואָס איז נייטיק פֿאַר די באַפאַלן צו אַרבעטן.
דערצו, מיט Log4j ווערסיעס גרעסער ווי 2.10, די אַרויסגעבן קענען זיין אַוווידאַד דורך באַשטעטיקן די formatMsgNoLookups סיסטעם ווערט צו אמת, פּראַוויידינג די JVM אַרגומענט -Dlog4j2.formatMsgNoLookups = אמת, אָדער ויסמעקן די JndiLookup קלאַס פון די קלאַספּאַט.
אין דער דערווייל, ביז די שפּירעוודיק ינסטאַנסיז זענען פאַרפעסטיקט, די וואַלנעראַביליטי קענען זיין אַדרעסד מיט די טעקניקס אונטן:
- שטעלן די סיסטעם פאַרמאָג log4j2.formatMsgNoLookups צו אמת פֿאַר >=2.10.
- שטעלן די סוויווע אָפּציע LOG4J FORMAT MSG NO LOOKUPS צו אמת פֿאַר >=2.10.
- אַראָפּנעמען JndiLookup.class פון די קלאַספּאַט פֿאַר 2.0-beta9 צו 2.10.0: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
איינער רעקאַמענדיד בעסטער פיר איז צו באַגרענעצן יגרעסס פאַרקער צו די אינטערנעט צו בלויז די צונעמען פּאָרץ.
כאָטש רובֿ אנפאלן אין דעם פעלד זענען איבערגעגעבן איבער הטטפּ, די וואַלנעראַביליטי קען זיין עקספּלויטאַד דורך קיין פּראָטאָקאָל וואָס לאָגס באַניצער אַרייַנשרייַב דאַטן ניצן Log4j.
אָבער, אַפּדייטינג צו log4j 2.17.0 איז דער בעסטער סגולע ווייַל עמעצער קענען אַנטדעקן אַן נאָך צוגאַנג צו דעם אַרויסגעבן. דערצו, פילע פֿאַרלאַגן און מאַניאַפאַקטשערערז האָבן מודיע ימפּרווומאַנץ צו זייער באַדינונגס אָדער אַפּפּס.
4. לאָג4שעלל וואַלנעראַביליטי לאַטע
Log4j איז אַמניפּרעזאַנט, ספּעציעל איצט אַז די וואַלנעראַביליטי איז עקספּלויטאַד. צו סאַמערייז, אַלע איר דאַרפֿן צו טאָן איז אַרייַננעמען די פאלגענדע אותיות אין די לאָגס ינספּעקטיד דורך Log4j.
און דאָס וועט אראפקאפיע און ויספירן די Java טעקע אין די סוף פון די URL. עס איז ווי סטרייטפאָרווערד ווי עס איז דראַמאַטיק.
ווי איר וויסן, עס איז קריטיש צו אַפּגרייד לאָג4דזש צו ווערסיע >= 2.17.0 צו סגולע דעם Log4Shell וואַלנעראַביליטי (CVE-2021-44228).
אויב דאָס איז ניט מעגלעך:
פֿאַר אַפּלאַקיישאַנז וואָס נוצן Log4j ביבליאָטעק ווערסיעס 2.10.0 און שפּעטער, עס איז אויך מעגלעך צו באַשיצן קעגן קיין באַפאַלן דורך באַשטעטיקן די קאַנפיגיעריישאַן פּאַראַמעטער log4j2.formatMsgNoLookups צו אמת, למשל, ווען איר אָנהייב די Java ווירטואַל מאַשין מיט די -Dlog4j2.formatMsgNoLookups = true אָפּציע.
אן אנדער אָפּציע איז צו ויסמעקן די JndiLookup קלאַס פון די קלאַספּאַט אַרגומענט, וואָס וועט באַזייַטיקן די ערשטיק באַפאַלן וועקטאָר (די ריסערטשערז טאָן ניט ויסשליסן די עקזיסטענץ פון אן אנדער באַפאַלן וועקטאָר).
טאָן
אָרגאַנאַזיישאַנז וואָס זענען כעזיטאַנט אָדער נישט ווילד צו מאַכן אַדזשאַסטמאַנץ צו סאַסעפּטאַבאַל סיסטעמען (אָדער וואָס ווילן צו ינסטאַלירן עקסטרע שוץ) זאָל טראַכטן וועגן:
- מאַכן זיכער אַז אַלע פאַרקער איז ראַוטיד דורך אַן iSensor /וואַף/IPS. דאָס קען האַלטן די אַטאַקע פון גיינינג אַקסעס צו די סיסטעם.
- באַגרענעצן די סומע פון פאַרקער וואָס קענען דערגרייכן די סאַסעפּטאַבאַל סיסטעם אויב די סיסטעם דאַרף נישט זיין קאָננעקטעד צו די אינטערנעט, באַגרענעצן אַקסעס צו בלויז יקערדיק און טראַסטווערדי IPS און ריינדזשאַז.
- רידוסינג די אָטערייזד אַוטגאָוינג פאַרקער פון דער באַלעבאָס. ווייַל דעם באַפאַלן אַפּערייץ דורך קאַנעקטינג צו אַ זשוליק סערווער, אַלע יבעריק IP אַדרעסעס און פּאָרץ זאָל זיין אפגעשטעלט אויף אַ פיירוואַל.
- אויב די סערוויס איז ניט מער פארלאנגט, עס זאָל זיין פאַרקריפּלט ביז אַ פאַרריכטן איז גרייט.
סאָף
די Log4j פלאָז שאַקט אונדזער קהל און רימיינדיד אונדז אַלע ווי רילייאַנט מיר זענען אויף אָפֿן-מקור ווייכווארג.
Log4j איז יינציק. עס איז ניט אַן אָפּערייטינג סיסטעם, אדער איז עס אַ בלעטערער, אדער איז עס אַ ווייכווארג. אלא, דאָס איז וואָס פּראָוגראַמערז אָפּשיקן צו ווי אַ ביבליאָטעק, אַ פּעקל אָדער אַ קאָד מאָדולע. עס נאָר סערוועס איין ציל, דאָס איז, בעכעסקעם אַ רעקאָרד פון וואָס כאַפּאַנז אויף אַ סערווער.
מענטשן וואָס שרייַבן קאָד בעסער צו קאַנסאַנטרייט אויף וואָס מאכט זייער ווייכווארג אָפּשיידנדיק. זיי זענען נישט אינטערעסירט אין ריינווענטינג די ראָד. ווי אַ רעזולטאַט, זיי פאַרלאָזנ זיך אַ שעפע פון יגזיסטינג קאָד לייברעריז, אַזאַ ווי Log4j.
די Log4j מאָדולע איז דערייווד פון אַפּאַטשי, די מערסט געוויינט וועב סערווער ווייכווארג. אַז איז וואָס עס קענען זיין דיסקאַווערד אויף מיליאַנז פון סערווערס. דעריבער, ינקריסינג די זיכערהייט טרעץ.
איך האָפֿן די אויבן סאַלושאַנז העלפֿן איר האַלטן דיין דעוויסעס זיכער.
בלייבן טונד צו HashDork פֿאַר מער נוציק אינפֿאָרמאַציע פון די טעק וועלט.
לאָזן אַ ענטפֿערן