התקנתם תבנית לוורדפרס שלכם? כדאי מאד שתקראו את זה

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

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

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

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

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

2. שליחת נתונים על האתר לשרת של mastergate: שם האתר, דומיין האתר, מייל האדמין, מספר הפוסטים שיש באתר, גרסת ה-PHP של האתר ונתונים נוספים.
בנוסף, בחלק מהתבניות יש השתלה של מודעות גוגל שתמורתן עובר למסטרגייט.

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


ניתוח הקוד מלמד על כך שהקוד הזדוני גם מקבל מידע מהשרת של mastergate וכותב אותו על השרת המארח – דבר המהווה לא רק עבירת מחשוב חמורה אלא גם סכנה חמורה לאבטחת השרת והבלוג.

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

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

אם יש לכם תבנית אחרת ואתם רוצים לבדוק אותה – אתם יכולים להסתייע בתוסף TAC – מאד קל להשתמש בו: מורידים, מתקינים כמו כל תוסף אחר. ניגשים ללשונית העיצובים ובוחרים ב-TAC:

וורדפרס TAC

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

תוצאת בדיקת TAC
תוצאת בדיקת TAC

אפשר גם לבדוק ידנית, פתחו את קבצי התבנית שלכם (ניתן גם באמצעות עורך טקסט פשוט) וחפשו אחר המילים הבאות: eval, base64_decode, str_rot13, strrev ברוב המקרים (לא בכולם, אבל ברובם) הפונקציות האלו לא אמורות להיות בתבנית של וורדפרס.

במידה ו-TAC מצא בעיה בתבנית שלכם, או שמצאתם את אחת הפונקציות האלו בתבנית שלכם בבדיקה ידנית – ראשית כדאי להחליף מיד לתבנית בטוחה. לאחר מכן כדאי להתייעץ עם האנשים הטובים בקבוצת מפתחי וורדפרס בפייסבוק. אם השתמשתם בתבנית מבית mastergate, אני ממליץ לכם בחום רב לפנות למשטרה ולהגיש תלונה על חדירה לא מורשית למחשב מצד mastergate וכן להתייעץ עם עורך דין.

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

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

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

פוסטים נוספים שכדאי לקרוא

פתרונות ומאמרים על פיתוח אינטרנט

יישום של nonce על מנת להגן מפני התקפות injection

בפוסט הקודם הסברתי על hash עם CSP על משאבי inline – שזה נחמד ומעולה אבל פחות ישים בעולם האמיתי שבו בדרך כלל התוכן ה-inline (בין

צילום מסך של סוואגר
יסודות בתכנות

openAPI

שימוש בתשתית הפופולרית למיפוי ותיעוד של API וגם הסבר בסיסי על מה זה API

גלילה לראש העמוד