ישנו תהליך שהיה נהוג לבצע בעבר הטוען כי אם תשנו את קידומת הטבלאות של מסד הנתונים בוורדפרס זה יעזור לאבטחת האתר מפריצות. הסברתי אף על כך במדריך שכתבתי על אבטחת אתרי וורדפרס בזמנו.
אז בואו נרענן את הנושא וניגש אליו מחדש – שינוי קידומת הטבלאות הוא תהליך בעייתי ליישום (לאחר התקנה) ולא שווה את המאמץ לאבטחת את אתר הוורדפרס שלכם. בפוסט זה אסביר מה היה הרעיון המקורי מאחורי תהליך זה ומדוע אין עליכם לעשות זאת (לדעתי בלבד ויש החולקים עליי).
מדוע לשנות את קידומת הטבלאות בוורדפרס
ישנה התקפה מסוג מסויים הנקראית SQL Injection בה הפורץ לאתר משתמש בפגיעות (vulnerability) מסויימת באפליקציה או במקרה שלנו, בתוסף וורדפרס כזה או אחר וזאת על מנת לקבל גישה למסד הנתונים של האתר. באמצעות SQL Injection הפורץ מקבל בסופו של דבר את אותן הרשאות גישה למסד הנתונים כמו שיש לאתר הוורדפרס שלכם.
זהו הסבר מאד פשוט ולא טכני על מהו SQL Injection לטובת פשטות המאמר. אם אתם מעוניינים לקרוא עוד תנו מבט בקישור הבא.
בכל אופן, הקונספט החשוב הוא שבמידה ופורץ כלשהו הצליח להשיג גישה למסד הנתונים, תהיה לו בעצם גישה לכל מה שלאתר הוורדפרס שלכם יש גישה. הוא יוכל להריץ פקודות SQL ולראות את התוצאות.
אז רעיון שהיה פופולארי בעבר טען זאת: אם פורץ הצליח להשיג גישה למסד הנתונים באמצעות SQL Injection, אתם יכולים למנוע מהם לגשת למידע באותו מסד נתונים על ידי שינוי קידומת הטבלאות בכדי שיהיו בעלות מקדם (prefix$) ייחודי.
וכאשר רעיון זה היה פופולרי ומקובל, מספר תוספי אבטחה של וורדפרס החלו להציע את האפשרות לבצע שינוי זה ולשנות את קידומת הטבלאות עבורכם. ומכאן הדרך לאקסיומה הייתה קלה – מכיוון ואותם חברות אבטחה שפיתחו את התוספים הציעו זאת, הרעיון הפך לעובדה בשטח. אך רעיון זה אינו נכון ואינו תורם לאבטחת האתר שלכם.
מדוע שינוי קידומת הטבלאות בוורדפרס אינה משפרת את האבטחה של האתר
החברה מ Wordfence הציגו זאת בצורה מעניינת: מה אם הייתי אומר לכם שדרך מצויינת למנוע פריצות היא לכבות את האורות בבית? בדרך זו גם אם הפורצים יצליחו להכנס, הם לא ייראו היכן הפריטים נמצאים ולא יוכלו לגנוב אותם. אך כמובן שהפורצים יביאו איתם פנס או ידליקו את האור בעצמם…
זהו בדיוק אותו קונספט במקרה של שינוי קידומת הטבלאות במסד הנתונים של וורדפרס. ברגע שלפורץ ישנה גישה למסד הנתונים – הוא כבר נמצא בתוך הבית שלכם, אם תשנו את הקידומת של מסד הנתונים אתם בסך הכל מכבים את האורות….
אז מה הדבר הראשון שיעשה הפורץ? משהו בסגנון הבא:
SELECT DISTINCT SUBSTRING(`TABLE_NAME` FROM 1 FOR ( LENGTH(`TABLE_NAME`)-8 ) )
FROM information_schema.TABLES WHERE
`TABLE_NAME` LIKE '%postmeta';
וזאת התוצאה של SQL Query זה:
mysql> SELECT DISTINCT SUBSTRING(`TABLE_NAME` FROM 1 FOR ( LENGTH(`TABLE_NAME`)-8 ) )
-> FROM information_schema.TABLES WHERE
-> `TABLE_NAME` LIKE '%postmeta';
+----------------------------------------------------------------+
| SUBSTRING(`TABLE_NAME` FROM 1 FOR ( LENGTH(`TABLE_NAME`)-8 ) ) |
+----------------------------------------------------------------+
| wp_ |
+----------------------------------------------------------------+
1 rows in set (0.00 sec)
השאילתא פשוט מבקשת ממסד הנתונים בו וורדפרס משתמשת את הקידומת של הטבלה postmeta
ובכך הוא מדליק את האור. כל בוט, סקריפט או התקפה ידנית ישאלו את מסד הנתונים באיזו טבלה וורדפרס משתמשת לפני שינסו את האופציה של הקידומת הדיפולטיבית.
אז שינוי קידומת הטבלאות אינה מקשה על אותם פורצים ואינה תורמת לאבטחת אתר וורדפרס כלשהו מכיוון ובאותם נסיונות פריצה הם פשוט מריצים שאילתא זו. הרעיון כי שינוי הקידומת משפר את אבטחת האתר היא כמו ההנחה שפורץ לא יביא איתו פנס.
מדוע ישנו סיכון בשינוי קידומת הטבלאות?
כאשר אתם מעוניינים לשנות את קידומת הטבלאות בוורדפרס, בדרך כלל תשתמשו בתוסף אבטחה שיעשה את העבודה. אך על אותו תוסף אבטחה להיות פעיל במהלך שינוי הקידומת. מכאן שבמהלך ביצוע הפעולה, חלק מהטבלאות הינם בעלות קידומת אחת וחלק בעלי קידומת אחרת. אם הפעולה משתבשת מכל סיבה, תמצאו עצמכם עם אתר שבור ותאלצו לשחזר גיבוי כזה או אחר.
כל תוסף שמבצע פעולה זו צריך גם לשנות את הקובץ wp-config.php בהצלחה. יכול להיות כי לקובץ זה אין הרשאות כתיבה במצבים מסויימים ויגרום לשינויים שתוסף האבטחה ביצע לא לעבוד.
לסיכום
שינוי קידומת הטבלאות בוורדפרס היא פעולה שאולי בתיאוריה גורמת לכם להרגיש בטוחים יותר, אך בפועל אינה תורמת לאבטחת האתר אלא רק מוסיפה סיבוכים וסיכונים.
אם אתם רוצים לחזק את אבטחת אתר הוורדפרס שלכם, ישנם לא מעט מדריכי אבטחה ברשת המסבירים איך לעשות זאת. אחת הפעולות החכמות שתעשו אגב, יהיה לדאוג לחומת אש (WordPress Firewall) עבור האתר שלכם.
מקווה שמאמר זה תרם ושפך מעט אור על הנושא. אשמח אם תשתפו אותו בכדי להסיר את המיסקונספציה לגבי שינוי קידומת הטבלאות באתרי וורדפרס לצורך חיזוק האבטחה 🙂
Thanks to Wordfence.
אני לא מסכים לחלוטין. נכון שזה לא מונע מכל פורץ שהשיג גישה למסד הנתונים לגלות מה הקידומת, אבל יש פורצים שמריצים באופן אוטומטי קודים קצת פחות איכותיים שמנסים לפנות לשמות הסטנדרטיים של טבלאות וורדפרס.
זה כמו להגיד שאין טעם להחליף את המנעול הישן שכולם יודעים לפרוץ במנעול חדש יותר שאפשר לפרוץ אותו, אמנם, עם אותם כלים, אבל צריך להכיר עוד כמה פעולות בשביל לעשות את זה. זה לא ימנע מכולם לפרוץ לך את הדלת, אבל כן ימנע מחלק.
אני מסכים שיש סכנה בשינוי הקידומות באמצעות תוסף. הדרך הנכונה היא ליצור את האתר מראש עם קידומת ייחודית ואם זו לא אופציה כי האתר כבר קיים, אז לתת למישהו שיודע להתעסק עם DV ועם wp-config.php לעשות את זה.
הי אורי, תודה על התגובה 🙂
אני מניח שיש מילים בגו. ההצהרה כי שינוי קידומת הטבלאות אינה תורמת לשיפור האבטחה היא בוטה מדי. נכון יותר לומר כי הסיכון שתפגע מסוג כזו של התקפה, אינו שווה את הסרבול של שינוי קידומת הטבלאות (לאחר שבוצעה ההתקנה של וורדפרס), וזאת אם אתה דואג לפעולות וטקטיקות אבטחה נכונות באתר…
אהלן מצד אחד המאמר הזה, מצד שני סעיף 11 בפוסט אחר שלך,
אז מה נכון?
https://savvy.co.il/blog/wordpress-security/hardening-wordpress/
אל תתייחס לסעיף 11 בפוסט השני, ציינתי שם את ההסתייגות…