אל תחשפו את ממשק הלוגין של האתר שלכם בגוגל

כך אתר מסחר גדול חשף את ממשק הניהול שלו ואיפשר לכל אחד גישה אליו
ממשק ניהול של חנות אינטרנטית חשוף לחלוטין בחיפוש גוגל פשוט

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

יו ג'קמן כהאקר מחוכם בסרט 'דג חרב'
יו ג'קמן כהאקר מחוכם בסרט 'דג חרב'. שם הוא משתמש בג'יבריש טכני מטורף כמו מישהו שחוטף שבץ.

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

כך למשל, חנות יין ואלכוהול ידועה ומוצלחת למדי גילתה לתדהמתה. כל מה שהיה צריך לעשות זה לחפש את שם האתר שלה + המילה ׳ניהול׳. מי שעשה את זה, קיבל בתוצאה הראשונה את ממשק הניהול.

ממשק ניהול של חנות אינטרנטית חשוף לחלוטין בחיפוש גוגל פשוט
ממשק ניהול של חנות אינטרנטית חשוף לחלוטין בחיפוש גוגל פשוט

ממשק הניהול הוא החלק הרגיש ביותר במערכת ומועד לפורענות. באתרים מסוג וורדפרס, ממשק הניהול נמצא בכתובת wp-admin. אבל אם תנסו להכנס לממשק הניהול של האתר הזה, תגלו ש-wp-admin לא קיים. כיוון שטרחתי להסוות אותו ושיניתי את הכתובת. למה? כי למרות שיש שם משתמש וסיסמה, חבל להכניס ראש בריא למיטה חולה. אם אפשר למנוע מראש כניסה אל הממשק למי שלא יודע את הכתובת, זה מוסיף שכבת הגנה נוספת.

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


<meta name="robots" content="noindex, nofollow">

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

תוצאות אקראיות מהדף הראשון כאשר מחפשים ממשק ניהול אתר
תוצאות אקראיות מהדף הראשון כאשר מחפשים ממשק ניהול אתר

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

ממשק לקוחות חשוף
ממשק לקוחות חשוף

או הקצאת קופונים, קביעת מחירים וכל דבר בעצם:

ממשק קופונים חשוף
ממשק קופונים חשוף
ממשק רכישות חשוף
ממשק רכישות חשוף

איך דבר כזה קורה? זה אחד היתרונות הבולטים של שימוש במערכת מוכרת ולא מערכת איזוטרית. בוורדפרס, דרופל או אפילו ג׳ומלה, כמעט בלתי אפשרי לייצר מערכת שממשק הניהול שלה פתוח לחלוטין. למה? סטנדרטיזציה. מדובר במערכות שפותחו על ידי אלפי מפתחים ויש להן נראות מאוד גבוהה בשוק. קשה לעשות טעויות בסיסיות עם נראות גבוהה כל כך. כאשר אנו בוחרים במערכת שהיא לא סטנדרטית, בין אם מדובר במערכת איזוטרית או במערכת שנבנתה כולה מאפס, יש סיכוי רב לטעויות כאלו. במקרה הזה מדובר במערכת Modx, מערכת שפחות מ-0.006 אחוז מהאתרים בעולם משתמשים בה, לפי אתר w3techs. לשם השוואה, נתח השוק של וורדפרס הוא 29 אחוז ואפילו נתח השוק של ג׳ומלה, שהולך ויורד הוא 3.2%. פי כמה וכמה מונים מ-ModX האיזוטרית.

נתח השוק של ModX
נתח השוק של ModX

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

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

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

אני מודה מאוד להדס אריק שהראתה לי את הפירצה הראשונית

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

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

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

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

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

openAPI

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

בינה מלאכותית

להריץ ממשק של open-webui על הרספברי פיי

להפעיל ממשק של צ׳אט ג׳יפיטי שאפשר לגשת אליו מכל מחשב ברשת הביתית על רספברי פיי עם מודל בשם tinydolphin שרץ על רספברי פיי.

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