לפרוץ לאתר ופריצות לאתרים באופן כללי תמיד מהווה נושא רלוונטי בעיקר בעידן של היום. יותר ויותר אתרי אינטרנט קמים ברשת מדי יום, חלקם עם מערכות קוד פתוח כמו וורדפרס, ג'ומלה, דרופל וכו', וחלקם עם מערכות עצמאיות שאינם מוצעים בחינם לקהל הרחב אלא בתשלום. ככל שהפופולריות של המערכת גדלה, כך גם חשיפה וניסיון לפריצות גוברות. במאמר הזה נתייחס באיך להגן על האתר שלנו, איך לשמור קבצים ואיך לא לחשוף אותם בפני כל אחד וגם אילו שיטות ואילו כלים נוכל להשתמש כדי להגן על האתרים שלנו. בעבר קראתי, וראיתי ועיינתי בכל מני פוסטים של בלוגרים רבים, אשר מתייחסים לנושא הזה ברפרוף ע"י המלצות של תוספים למערכת וורדפרס ללא הבנה כללית מה הם עושים. אם כתובה מילה "Security" אז זה נראה כאילו עלו על השיטה והאתר של כולם מוגן. למרבית ההפתעה, התקנת תוסף למערכת וורדפרס או למערכת דרופל אינם מספיקים כדי להבטיח הגנה מלאה.
כמובן שאין כזה דבר אבטחה של 100% אבל כאשר אנחנו מבינים את הפעולה שתוסף כזה או אחר עושה, ואיך זה משפיע על המערכת, אילו דלתות הוא כן סוגר ואילו לא, נדע גם איך להתמודד עם כל השאר. בזמן אחרון, הרבה אתרים ישראלים גם שאינם מאוחסנים בארץ נפרצו והותקפו ע"י "האקרים". יש כמה סוגי פריצות ונעבור על חלקם וגם נראה איך אנחנו יכולים להגן עליהם. חשוב לציין שמאמר זה נכתב בהתיחסות למערכת וורדפרס אך רלוונטית לכל מערכת אחרת. בניית אתרים, התחום שהפך די פופולרי ב-10 שנים האחרונות, צריך טיפול.
[toc]
מערכת וורדפרס שנחשבת למערכת עמידה מפני פריצות (יחסית למערכות רבות אחרות) היא גם חשופה מדי וחושפת קבצים שלנו לכל אחד. לא קשה לגלות את התיקיות והקבצים שנמצאים במערכת, כולל קבצי תמונות, מסמכים, מוצרים אלקטרוניים וכו'. הכל חשוף לכולם, וכל מה שצריך לעשות כדי לגלות אותם, זה אך ורק להכיר את השרשורים והצורה האררכית של תיקיות שקיימות במערכת. דיברתי עד לכאן סינית? אולי, אבל בעוד פחות מדקה זה יהיה הרבה יותר ברור.
גש לאתר שלך שבנוי באמצעות מערכת וורדפרס (זה אך ורק לצורך המחשה). בעת ביצוע כניסה לאתר שלך, בשורת כתובת תרשום / תוסיף את הביטוי הבא – wp-includes. התוצאה צריכה להיראות כך: /www.Yourdomain.com/wp-includes
התוצאה שנקבל, זה רשימה ארוכה של קבצי המערכת מתוך תקיית wp-includes כפי שניתן לצפות בתמונה המצורפת. הדבר חושף אותך להרבה מאוד כאב ראש, ואני אסביר גם למה בעוד כמה רגעים. הנושא שצריך להדאיג אותך לא רק בעקבות העובדה שאנשים שמעוניינים לפרוץ לאתר שלך, יש יכולת גמישה וקלה יותר לדעת את מבנה המערכת וסדר של קבצי php, קבצי התבנית והתוספים, אלא במקרים רבים ניתן לגנוב ממך חומר וקבצים שיכולים לפגוע באתר ובעסק שלך. אם ניגש לתיקיית uploads שנמצא בתוך התיקיה של wp-content, נגלה שקבצים שהעלנו למערכת חשופים לכולם.
זה יכול לפגוע בך במידה ואתה מוכר מוצר אלקטרוני שהועלה לאתר, או הועלו מסמכים למערכת לצרכים אישיים. הרי אנחנו יכולים לשמור קבצים במערכת, מסמכים ותמונות אישיות לא רק למטרות פרסום. יש בעלי אתרים רבים ששומרים מסמכים חשובים כמו הצעות מחיר, רשימת לקוחות ומסמכים שטנים במערכת.
דוגמה הכי טובה שאפשר לחשוב עליה כרגע זה אם במידה ויש בידך מוצר, למשל ספר אלקטרוני שכתבת, וברצונך למכור את הספר באתר. בצעת העלאה של הקובץ לתוך המערכת שרק אחרי ביצוע קניה הקישור יחשף לגולש. במידה וקובץ הועלה למערכת דרך וורדפרס, המשמעות של הדבר היא שהקובץ נשמר בתוך תיקיית uploads (בתתי תיקיות המסודרות לפי שנים וחודשים), ניתן בקלות לגשת אל התיקיה שבה נמצא הקובץ ולהוריד אותו בחינם.
צפה בתמונה המצורפת:
קטע קצר מוקלט בקורס וורדפרס / קורס בניית אתרים.
3 דרכים כדי להגן על הקבצים
- לשים קובץ index.html בכל תיקיה אפשרית במערכת.
- להשתמש בחסימה של צפיה בתיקיות באמצעות htaccess.
- להשתמש ב-htaccess + לשנות את מיקום תקיית uploads במערכת.
איך לעשות את כל זה?
כדי ליצור או לשים קובץ אינדקס בתיקיות, עליך ליצור את הקובץ ולעלות אותו לשרת.
איך יוצרים קובץ index.html?
פותחים עורך טקסט בשם Textedit למשתמשי Mac או NotePad למשתמשי PC, ושומרים את הקובץ ריק תחת שם index.html.
לאחר יצירה ושמירה של קובץ index במחשב, עליך לעלות את אותו לשרת בתוך התיקיות של וורדפרס. בכל תיקיה (חוץ מתיקיה הראשית) עליך לצרף את הקובץ הנ"ל. לאחר העלאה של קובץ זה לתיקיות, באפשרותך לבדוק אם עדיין דפדפן מציג את רשימה של הקבצים כאשר רושמים את השרשור בכתובת ה-Url של התיקיות בדפדפן. במידה בצעת הכל נכון, יוצג לך דף לבן ללא תוכן וזה התוצאה שהינו רוצים להגיע אליה.
הבעיה בשיטה: כאשר אנחנו מעלים שוב ושוב קבצים למערכת, אם זה בתמונה או קבצי מדיה שונים, וורדפרס יוצרת תיקיות לפי חודשים. ז"א אם העלנו קובץ אינדקס בתיקיה של חודש 12 (דצמבר) של שנת 2011, בחודש הבא וורדפרס יצור 2 תיקיות חדשות שלא יכללו את קובץ אינדקס שיצרנו. אלו 2 תיקיות הנקראות "2012" ו-"01". זאת אומרת שאנחנו תמיד ציריכים בכל חודש ובכל שנה לעלות את הקובץ שיצרנו לשרת לאותם התיקיות מכיוון שזה לא מתווסף באופן אוטומטי במערכת. במרבית המקרים, בעל האתר שוכח לעשות את זה והשיטה הזאת היא שיטה הקלה והבסיסית ביותר להגן על הקבצים שלנו במערכת.
להשתמש בחסימה לצפיה בתיקיות באמצעות קובץ htaccess.
השיטה הזאת היא המומלצת ביותר לביצוע חסימה של משתמשים לגשת ולצפות בכל התיקיות וקבצים של המערכת. כל שעליך לעשות זה לגשת לקובץ htaccess שנמצא בתוך תיקיה הראשית של וורדפרס (של מערכת וורדפרס) ולהוסיף בה את השורה הבאה:
Options All -Indexes
זה הכל. אם באפשרות הראשונה, הינו צריכים ליצור קובץ, לשמור במחשב ואז לעלות לשרת ולאחריו לעקוב אחרי יצירת תיקיות אוטומטיות על ידי מערכת וורדפרס כל חודש, כאן כל מה שעליך לעשות זה להוסיף שורת הגדרה פשוטה לקובץ htaccess וקבצים שלך מוגנים מחשיפה פומבית בדפדפן.
להגן על הקבצים – Extra באמצעות שינוי מיקום התיקיה של uploads
אפשרות נוספת והמומלצת לאתרים חדשים בעיקר, שימוש כמובן ב-htaccess לחסימת גישה וצפיה בתיקיות + שינוי תיקיית uploads המוגדרת בתור ברירת המחדל. כדי לשנות את המיקום או את התיקיה שבה ישמרו קבצים המועלים למערכת, עליך לגשת לפנל ניהול של וורדפרס (Admin Panel), לגשת להגדרות "מדיה" שנמצא בתוך "הגדרות" בתפריט הימנית.
3 טיפים להגנה על אתרי וורדפרס
- נא למנוע את האינדוקס של התיקיות במנועי החיפוש שכוללות wp- באמצעות הכנסת פקודה הבאה בקובץ robot.txt בשרת: Disallow: /wp-*
- לבצע גיבוי קבצים ובסיס נתונים על בסיס חודשי או שבועי בהתאם לקצב הגדילה ועדכונים באתר. קישור לפוסט בנושא גיבוי בסיס נתונים ושרת אחסון בכלל ניתן לצפות בקישורים הבאים: גיבוי בסיס נתונים בוורדפרס – גיבוי חשבון בשרת – Cpanel
- להסיר את פקודת meta generator מתוך הקוד. מדריך לזה ניתן למצוא כאן: להסתיר את הגרסה של וורדפרס
פריצות דרך קובץ TimThumb.php
מי שנוהג להתקין הרבה תבניות וורדפרס במערכת, בעיקר זה נפוץ אצל בעלי אתרים חדשים שרק גילו את וורדפרס וההתלהבות של בחירת תבניות וורדפרס ניתנת כל כך בקלות, מתקינים הרבה מאוד תבניות במערכת. חלקם מהתבניות כוללות קובץ בשם TimThumb.php שהוא אחראי על הקטנת קבצי תמונה באופן דינמי במערכת להצגה וירטואלית בדפדפן. בקובץ זה משתמשים המון תבניות וורדפרס חינמיות וגם אלו שבתשלום. לאחרונה, או יותר נכון בספטמבר נמצאו חורי אבטחה בקובץ זה מה שגרם לפריצות להמון אתרים בארץ ובחו"ל. אתרים מאוד פופולריים נפרצו בעקבות רפיצת אבטחה שנמצא בקובץ הזה.
חלקם מבעלי אתרים הסירו את הקובץ מהתבניות שלהם מה שגרם לתצוגה לא תקינה של תמונות באתר. אצל חלקם התמונות לא הוצגו ואצל חלקם התבנית לא עבד בצורה תקינה.
טיפ מס' 7: פתרון וסגירת חור אבטחה שנמצאה בקובץ TimThumb
תוסף בשם – Timthumb Vulnerability Scanner מאפשר סריקה של קבצי התבנית במערכת וורדפרס המותנקת בשרת, ובמידה ונמצא הקובץ פגום, התוסף מאפשר לתקן אותה ע"י לחיצה על כפתור Fix.
כדי להוריד את הקובץ, ניתן לגשת אליו בקישור: Timthumb Vulnerability Scanner
לאחר התקנה, התווסף לפנל ניהול עוד עמוד הגדרות נוסף בתוך ה"כלים" בשם "Timthumb Scanner" (סורק TimThumb). עליך לגשת לעמוד של התוסף, לבצעה סריקה ובמידה ונמצא קובץ או קבצים פגיעים בתבניות שהתקנת, הוא אכן יציג אותם וגם יאפשר לכם לתקן את זה מתוך התוסף.
לאחר ביצוע סריקה, ותיקון הקובץ באמצעות התוסף, יופיע לך את הסטטוס של אותו הקובץ כפי שניתן לראות זאת בתמונה המצורפת למטה.
סיכום של 7 דרכים להגן על אתר מפריצות
קראנו 7 דרכים שהורכבו מטיפים שיכולים לשפר את ההגנה על הקבצים בוורדפרס. כמובן זה רחוק מלהגן ב-100% את המערכת, ולפעמים פריצות לאתרים נעשת לא בהכרח מהמערכת או מהאתר עצמו, אלא דרך השרת. אם פרצו לשרת, ההגנה שאתה מבצעה על האתר לא יעזור, לכן חשוב מאוד לבחור חברת שנותנת שירות אחסון אתרים אמין ולא בהכרח שזה יהיה בארץ. כל מי שמתחיל לעסוק בתחום, יכול להיות שהפוסט יהיה קשה להבנה וביצוע בעיקר בגלל התיחסות טכנית ושימוש במושגים טכניים שאינם בהכרח מוכרים לכולם. אני אכן מנסה לומר את הדברים בצורה פשוטה ביותר ככל האפשר ולא להשתמש במושגים טכניים מידי.
בנוסף חשוב לעדכן את רוב התוספים במערכת לגרסאות האחרונות על בסיס חודשי בכדי להימנע עד כמה שאפשר מתוספים ישנים ולא בטיחותיים
וואו איזה פוסט ארוך! 🙂
מגיע לך 5 כוכבים תודה תודה
פוסט מצוין
תודה! עזרת לי מאוד.
יוסי אתה 10X פוסט מעניין וחשוב מאוד , תודה על הזמן שהשקעת בפוסט וההסבר הברור
היי יוסי 🙂
אני לא מצאתי את ה- htaccess של הוורדפס שלי.
יש את htaccess רק בפלגנים.. זה לפחות מה שאני מצאתי.
אם אין את זה בתיקיה הראשית של וורדפרס, אתה יכול ליצור אותה ידנית.
אם תכנס ל- permalinks (קישורים קבועים) ותשנה את המבנה של הקישורים של המערכת הוא יצור את הקובץ במידה והיא לא קיימת.
מי מכין לך את האייקונים של הבחורצי'ק? הם כאלו מדליקים.. 🙂
חחח 🙂 סוד מקצועי
יוסי שלום ותודה רבה על הפוסט המושקע והמלמד.
ללא ספק יש לך ידע רב בוורדפרס.
ושאלה:
האם יש פלאג אין בוורדפרס שעושה את שני אלה:
1.לשים קובץ index.html בכל תיקיה אפשרית במערכת.
2.להשתמש בחסימה של צפיה בתיקיות באמצעות htaccess.
תודה
יש
לא צריך פלאגין בשביל זה.
כל מה שעליך לעשות זה לפתוח קובץ .htaccess בתיקיה הראשית ששם מותקנת הוורדפרס, ולרשום את זה
Options All -Indexes
ואשמח אם תשתמש בתבנית המתורגמת שלי של arras באתר שלך. היא יותר מעודכנת ממה שאתה משתמש.
לא מצאתי קובץ כזה, יש אפשרות שאינו שם?
הייתי שמח למכור את האתר הזה,
יש לך רעיון למי?
הוא שם, זה קובץ מוסתר. אם אתה משתמש בממשק cpanel ונכנס דרך הדפדפן ל- filemanager דרך cpanel, אז יש לך לסמן ווי על הצגת קבצים מוסתרים.
רק אז תוכל לראות את הקובץ.
למכור את האתר הזה… מממ
קשה לי לומר לך, אבל כמו שאני יכול לראות, לא מאמין שאפשר למכור אותו באלפי שקלים.
אין מקור הכנסה, לפי בדיקה המהירה אני גם רואה שאין כמות גולשים גדולה.
מה מודל עיסקי ומה מקור ההכנסה של האתר?
וכמה אתה רוצה עליו?
אפשר לראות את הקובץ בפיילזילה?
את האתר אמכור למתעניינים בתחום זה.
תודה
פוסט מעולה המון תודה,
יש לי בעיה, כאשר אני מוסיף קובץ .htaccess
אני מקבל שגיאה 404 או 500 וכרגע כל לחיצה על דף
באתר מובילה לקבצים ולא לדף.
תודה, עזר לי מאוד!
בסה"כ מה שעשיתי הוא להעתיק את הקובץ index שנמצא בתיקיית wp-content לתיקיית uploads וזה הכל 🙂