לפני זמן לא רב, התוודעתי לקוד הבא, שפורסם באופן אנונימי ב-Explo.it, אני מדבר על הקוד הבא: http://www.exploit-db.com/exploits/13853/

מפרסם הקוד טוען כי ע”י שימוש בקוד הנ”ל ניתן להריץ פקודות על כל שרת IRC מסוג Unreal (גירסא, 3.2.8.1). מהסתכלות בקוד עצמו, לא מצאתי שום דבר שמעיד על כך, זאת אומרת, לא ראיתי שום חולשה שנוצלה באותו קוד שאכן תגרום לשרת לבצע את הפקודות שנשלחות ע”י אותו קוד, והרי ברור שה-IRCd לבד לא יבצע את הפקודות האלה על דעת עצמו, לא?

מסתבר שטעיתי :), לא רק שהשרת כן יריץ את אותן הפקודות, הוא גם יעשה זאת בשמחה. מסתבר שלפני כשבעה חודשים, מספר חבר’ה פרצו לאחד משרת ה-FTP שעליהם אוחסנו הקודים של בפורומים של Unreal, ושתלו בהם Backdoor!

לפני יומיים Syzop (ושאר הצוות של Unreal) פרסם בפורומים של Unreal את הפוסט הבא:

This is very embarrassing... We found out that the Unreal3.2.8.1.tar.gz file on our mirrors has been replaced quite a while ago with a version with a backdoor (trojan) in it. This backdoor allows a person to execute ANY command with the privileges of the user running the ircd. The backdoor can be executed regardless of any user restrictions (so even if you have passworded server or hub that doesn't allow any users in). It appears the replacement of the .tar.gz occurred in November 2009 (at least on some mirrors). It seems nobody noticed it until now. Obviously, this is a very serious issue, and we're taking precautions so this will never happen again, and if it somehow does that it will be noticed quickly. We will also re-implement PGP/GPG signing of releases. Even though in practice (very) few people verify files, it will still be useful for those people who do.

בהמשך ההודעה הוא מציע שתי דרכים לברר איך אפשר (בתור מנהל שרת) לדעת האם השרת אכן נגוע (במידה ואתם מריצים את הגרסה הנגועה: Unreal3.2.8.1), הדרך הראשונה היא לברר מה ה-Hash של הקובץ שממנו פרסתם את שרת ה-IRCd, במידה והוא שווה ל: 752e46f2d873c1679fa99de3f52a274d

אתם נגועים.

הדרך השניה שבה ניתן לברר האם אתם נגועים, היא הרצת הפקודה הבאה:

grep DEBUG3_DOLOG_SYSTEM include/struct.h

במידה והפלט שלה הוא:

#define DEBUG3_LOG(x) DEBUG3_DOLOG_SYSTEM (x)
#define DEBUG3_DOLOG_SYSTEM(x) system(x)

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

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

כמובן שלא עבר זמן רב ו-HD Moore דאג לכתוב מודול ל-Metasploit שמקל על ניצול החשיפה.

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

מה אתם חושבים?