עמרי מוטרד מבעיות פרטיות במנגנון העדכון האוטומטי של תוספים בוורדפרס 2.3 (אני לא, מאחר שממילא נמסרת כתובת הIP כחלק מההודעה ולפי הכתובת לא קשה לנחש מה היה האתר). אני מוטרד הרבה יותר מבעיות אבטחה שהמנגנון עשוי ליצור.
המנגנון יעדכן אוטומטית, או יודיע שקיים עדכון, תוספים הנמצאים במאגר התוספים של וורדפרס שיש להם גירסא חדשה יותר מזו המותקנת בבלוג. לתוכן של אותו מאגר אחראים כותבי התוספים שאמורים להעלות אליו את הקוד של התוסף.
מאחר שלמעשה איש לא בודק את התוכן של התוסף הנמצא במערכת ניתן להשתמש בה בכדי להשתלט על אתרי וורדפרס בצורה הבאה:
- כתוב תוסף פופולארי, נניח כזה שמציג רקע של נשים ערומות למבקרים הגברים וגברים שריריים לנשים (או ההפך, תלוי בקהל היעד של הבלוג), והעלה אותו למאגר המרכזי.
- כאשר אתה מגיע ל50,000 התקנות של התוסף שחרר לו גירסא חדשה המציגה תמונות של בובות לילדות ומכוניות צעצוע לילדים. בתוך הגירסא החדשה תשתול קוד ששולח פעם בשעה ספאם תגובות. את הגירסא החדשה העלה למאגר המרכזי.
- שב בנחת בבית קפה בזמן שלפחות 40,000 מתוך ה50,000 בלוגים משדרגים לגירסא החדשה והופכים להיות לחלק ממכונת ספאם שבשליתתך.
הבעיה פה היא בעיה של אמון. אני לא יודע כמה אנשים מוכנים להתקין תוספים הנמצאים באתרים שאיש לא מכיר, אבל אני בטוח שרמת המוכנות להתקין תוספים מתוך המאגר היא הרבה יותר גבוהה. הבעיה היא שמי שאחראי על המאגר לא מתחיב בשום צורה ואופן שהתוספים הנמצאים בו הם בטוחים לשימוש.
אחרי שחשבתי על זה נזכרתי שגם התוספים של שועל האש מנוהלים באותה הדרך. אני מניח שגם שם איש לא לוקח אחריות ומכן להבטיח שמנגנון העדכון האוטומטי של התוספים בשועל לא יהרוס לך את המחשב.
(אני מניח שזה מתקשר בצורה כזו או אחרת לשיחה שלי עם יהונתן על מה יותר פגיע לסוסים טרויאניים, קוד סגור או פתוח).
כתובת IP לא תמיד מאפשרת לדעת מה האתר.
במקרים רבים אתרים ישבו מאחורי NAT ולא ישר על הרשת. חוץ מזה, כתובת IP יכולה להשתנות.
והכי חשוב: מבחינת פרטיות, יש הבדל מהותי בין לתת כתובת IP לבין לאת את הURL של האתר, ולו בגלל שURL הוא הרבה יותר אינפורמטיבי ומזהה את האתר בצורה חד חד ערכית בניגוד לכתובת IP.
לגבי בעיית האבטיה שאתה מציין:
אני לא חושב שזו בעיה אמיתית. כשאתה מתקין קוד אתה נותן לו הרשאות לעשות כרצונו בשרת שלך, במסגרת ההרשאות של המשתמש שמפעיל אותו (בדרך כלל יד משתמש יעודי לשרת הווב). באתרים עם אבטחה מינימלית, אותו משתמש לא יכול לשנות את הקבצים שהוא מריץ, ולכן גם לא לעדכן אוטומטית.
אם אתה מאפשר לשרת הווב שלך לשנות קבצים, אז אתה אוטומטית מרשה לכל פלאגין לעדכן את עצמו, אם המפתח יטרח לממש את זה, אז אין פה שום דבר חדש מהבחינה הזו.
לבסוף, הפלאגין ידווח (ולא יעדכן, אין לזה מימוש כרגע) על גרסאות חדשות של תוספים שנמצאים בwordpress.org, וכל התוספים שם הם פתוחי קוד וברשיון תואם GPL.
לדעתי זו טעות וצריך לאפשר תשתית בדיקת גרסא גם לתוספים עם רשיונות אחרים, אבל זה המצב כרגע.
עמרי, לפחות שרתי הWEB שאני מתארח עליהם הם בעלי IP קבוע ו reverse DNS יתן לך כתובות של אתרים שעשויים להיות בלוגי וורדפרס ויחסית קל לבדוק את זה בצורה ממוכנת (למשל דרך סוג הgenerator). בכל אופן אני חושב שבדיון שהתפתח בwp-hackers (ושהיה הטריגר לפוסט הזה) אני מסכים עם האנשים שטענו שצריך להיות API ולא התמקדות בתוספים שבwordpress.org.
הסיבה היחידה שיכולה להיות להעדפת wordpress.org היא אם האנשים שמפעילים את החלק הזה באתר היו מוכנים להתחיב לבדוק כל גירסא של תוסף שאין בה פרצות אבטחה, לפחות לא כאלו שקל לגלות.
אני מניח שכל תוסף זדוני יפנה אותך לדף מעוצב בצורה יפה ונקיה שיסביר לך בדיוק איך להתקין הגירסא החדשה.
אני לא טוען שיש פה משהו חדש שלא היה אפשרי קודם, אלא שברמה פסיכולוגית, כאשר אתה מקבל הודעה משרת מרכזי שאתה סומך עליו, על כך שהיה עדכון, הרבה יותר סביר שתעדכן. בדיוק כמו שאני מעדכן לכל גירסא חדשה של Firebug כאשר השועל מודיע לי על קיומה של אחת כזו בלי לבדוק כלל מה היא עושה. אם לא היה שרת מרכזי שיודיע לי, הסיכוי שהייתי ביוזמתי מעדכן את התוסף הזה הוא קטן.
במקרה הרע, מערכת העידכונים של וורדפרס תהפוך למערכת לפרסום ממוקד של גירסאות מורעלות של תוספים, פירסום שהיה הרבה יותר קשה לביצוע לפני קיומה של המערכת.
זה נשמע לי תסריט הזוי.
הקוד גלוי לכולם, אם יש פלאגין מורעל אתה יכול להיות בטוח שיהיה מי שיגלה את זה.
זה שהקוד פתוח זה לא אומר שכל אחד יכול לשנות אותו במאגר, רק המפתח המקורי שיצר את הפרוייקט יכול.
אני מזמין אותך לכתוב תוסף שגונב סיסמאות דטה-בייס ולנסות להכניס אותו למאגר, נראה כמה זמן הוא ישאר שם.