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

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

אם אתה פרנואיד לגבי האבטחה שלך, קבל VPS או שרת ייעודי. אלה סביבות בהן יש לכם (לרוב) שליטה מוחלטת על המתרחש. אם אינך בטוח לגבי סוגים שונים של אירוח אתרים, בדוק את הפוסט הזה הצורות השונות של אירוח אתרים הוסברו [הסביר טכנולוגיה] קרא עוד מהקולגה שלי, ג'יימס ברוס.
עלי גם להדגיש כי אין לפרש את הפוסט הזה כהתקפה על אירוח משותף. במקום זאת, זו מבט אקדמי גרידא על סוגיות האבטחה סביב קטגוריה זו של אירוח אתרים.
מדריך ספרייה
נתחיל בהתקפות חציית ספריות (המכונות לעתים קרובות 'מעבר דרך'). התקפה מסוג זה מאפשרת לך לגשת לקבצים וספריות המאוחסנים מחוץ לשורש האינטרנט.
באנגלית פשוטה? ובכן, בואו נדמיין שאליס ובוב משתמשים באותו שרת לארח את אתרי האינטרנט שלהם. הקבצים של אליס מאוחסנים ב- / var / www / alice, ואילו את המסמכים של בוב ניתן למצוא ב- / var / www / bob. יתר על כן, בואו להעמיד פנים שיש עוד תיקיה בשרת (/ usr / crappyhosting / myfolder) המחזיק קובץ רגיל טקסט לא מוצפן (נקרא לו pwd.txt) המכיל שמות משתמש של מערכת ו סיסמאות.

איתי עד כה? טוב. כעת, בואו נדמיין שהאתר של בוב משרת קבצי PDF שנוצרים באופן מקומי, והקובץ המקומי מוזכר בכתובת האתר. משהו כמו:
http://example.com/file?=report.pdf
מה היה קורה אם הייתי מחליף את 'report.pdf' בכמה פרמטרים של UNIX שמשנים את הספרייה?
http://example.com/file?=../alice/
אם השרת מוגדר באופן שגוי, הדבר יאפשר לך לראות את שורש המסמכים של אליס. מעניין, אבל, אנו מעוניינים הרבה יותר בתיק הדרכונים העסיסי ההוא. סיסמאות Accio!
http://example.com/file?=../../../usr/crappyhosting/myfolder/pwd.txt
זה באמת קל כמו זה. אבל איך מתמודדים עם זה? זה קל.
שמעתי אי פעם על כלי שירות לינוקס ידוע מעט שנקרא נתח? בטח כבר ניחשתם נכון מה זה עושה. זה מגדיר את שורש Linux / UNIX לתיקיה שרירותית, מה שמאפשר למשתמשים לצאת ממנו. באופן יעיל, זה מפסיק התקפות חציית ספריות על עקבותיהם.

קשה לדעת אם המארח שלך מקיים את זה בלי לעבור על החוק. אחרי הכל, כדי לבדוק את זה, אתה ניגש למערכות וקבצים שאין לך הרשאה לגשת אליהם. עם זה בחשבון, אולי יהיה זה הגיוני לדבר עם מארח האינטרנט שלך ולברר כיצד הם מבודדים את המשתמשים שלהם זה מזה.
האם אתה מפעיל שרת אירוח משותף משלך ולא משתמש בשירותים כדי להגן על המשתמשים שלך? יש להודות, כי עקירת הסביבות שלך יכולה להיות קשה. למרבה המזל, יש שפע של תוספים שמקלים על זה. תסתכל על mod_chroot, בפרט.
הזרקת פיקוד
נחזור לאליס ובוב. אז אנחנו יודעים שליישום האינטרנט של בוב יש כמה… אהם… בעיות אבטחה. אחד מאלה הוא פגיעות הזרקת הפקודה, המאפשרת לך לרוץ פקודות מערכת שרירותיות מדריך מהיר לתחילת העבודה עם קו הפקודה של לינוקסאתה יכול לעשות הרבה דברים מדהימים עם פקודות בלינוקס וזה ממש לא קשה ללמוד. קרא עוד .
האתר של בוב מאפשר לך להריץ שאילתת whois באתר אחר שמוצגת בדפדפן. יש תיבת קלט HTML רגילה שמקבלת שם תחום ואז מפעילה את פקודת המערכת whois. פקודה זו מבוצעת על ידי קריאה לפקודת PHP של המערכת ().
מה היה קורה אם מישהו יכניס את הערך הבא?
example.com && cd ../alice/ && rm index.html
ובכן, בואו נשבר את זה. חלק מזה עשוי להיות מוכר לך אם קראת את ה- 'מדריך לתחילת העבודה לינוקס' תחילת העבודה עם לינוקס ואובונטואתה מעוניין לעבור ללינוקס... אבל מאיפה אתה מתחיל? האם המחשב האישי שלך תואם? האם האפליקציות המועדפות עליך יעבדו? להלן כל מה שאתה צריך לדעת כדי להתחיל עם Linux. קרא עוד ספר אלקטרוני שפרסמנו בעבר בשנת 2010, או שהצצנו במאמר שלנו גיליון רמאות של פיקוד לינוקס.
ראשית, היא תנהל שאילתת whois ב- example.com. ואז זה ישנה את ספריית העבודה הנוכחית לשורש המסמכים של אליס. ואז זה יסיר את הקובץ שנקרא 'index.html' שהוא עמוד האינדקס לאתר שלה. זה לא טוב. לא אדוני.

אז, כמנהלי מערכות, כיצד ניתן להקל על כך? ובכן, כשחוזרים לדוגמא הקודמת, אנחנו תמיד יכולים להכניס כל משתמש בסביבתם המבודדת, המחוטאת, הנחוצה.
אנו יכולים גם לגשת לזה מרמת שפה. אפשר (אם כי זה יכול לשבור דברים) להסיר באופן גלובלי הצהרות פונקציות משפות. כלומר, ניתן להסיר פונקציונליות מהשפות בהן יש גישה למשתמשים.
אם מסתכלים על PHP בפרט, תוכלו להסיר פונקציונליות באמצעות Runkit - ערכת הכלים הרשמית של PHP לשינוי הפונקציונליות של השפה. יש שפע של תיעוד בחוץ. קרא לתוכו.
אתה יכול גם לשנות את קובץ התצורה של PHP (php.ini) כדי להשבית פונקציות שעושות לרוב שימוש לרעה על ידי האקרים. לשם כך, פתח מסוף בשרת ופתח את קובץ ה- php.ini בעורך טקסט. אני נהנה להשתמש ב- VIM, אך גם NANO מקובל.
מצא את הקו שמתחיל בפונקציות disable_ והוסף את הגדרות הפונקציה שברצונך לאסור. במקרה זה, זה יהיה exec, shell_exec ומערכת, אם כי כדאי לציין שיש פונקציות מובנות אחרות שניתנות לניצול על ידי האקרים.
disable_functions = exec, shell_exec, system
התקפות מבוססות שפה ומתורגמנים
אז בואו נראה PHP. זוהי השפה שמפעילה מספר אתרים מדהים. זה מגיע גם עם מספר אידיוסקרציות והתנהגויות מוזרות. ככה.
בדרך כלל משתמשים ב- PHP בשילוב עם שרת האינטרנט של Apache. לרוב, אי אפשר לטעון מספר גרסאות של השפה עם תצורה זו.

מדוע זו בעיה? ובכן, נדמיין כי אפליקציית האינטרנט של בוב נבנתה במקור בשנת 2002. זה מזמן. זה חזר כשמישל סניף עדיין הצליחה לעלות למצעד, מייקל ג'ורדן עדיין שיחק בוויזני הקוסמים בוושינגטון ו- PHP הייתה שפה שונה בהרבה.
אבל האתר של בוב עדיין עובד! הוא משתמש בחבורה שלמה של פונקציות PHP שהופסקו ומושמעות, אך זה עובד! השימוש בגרסה מודרנית של PHP ישבור ביעילות את האתר של בוב, ומדוע צריך בוב לשכתב את האתר שלו כדי לספק את גחמותיו של מארח האינטרנט שלו?
זה אמור לתת לך מושג לגבי הדילמה שעליה מתמודדים מארחי אתרים. הם צריכים לאזן בין שמירה על שירות בריא ומאובטח ארכיטקטונית, תוך שמירה על כך בהרמוניה עם הבטחת הלקוחות המשלמים מאושרים.
כתוצאה מכך, לא נדיר לראות מארחים קטנים ועצמאים משתמשים בגירסאות ישנות יותר של ה- PHP (או כל שפה, לצורך העניין).
זה לא נדיר לראות מארחים קטנים ועצמאים משתמשים בגירסאות ישנות יותר של PHP, ועלולים לחשוף את המשתמשים לסיכוני אבטחה.
מדוע זה דבר רע? ובכן, ראשית, הדבר יחשוף את המשתמשים למספר סיכוני אבטחה. כמו מרבית חבילות התוכנה העיקריות, PHP מתעדכן כל העת כדי לטפל בשפע של פגיעויות אבטחה שמתגלים כל העת (ונחשפים).
יתר על כן, פירוש הדבר שמשתמשים אינם יכולים להשתמש בפונקציות השפה העדכניות ביותר (והגדולות ביותר). המשמעות היא גם שנשארו פונקציות שהוצאו משימוש מסיבה כלשהי. במקרה של שפת תכנות PHP למד לבנות עם PHP: קורס התרסקותPHP היא השפה בה משתמשים בפייסבוק ובוויקיפדיה כדי להגיש מיליארדי בקשות מדי יום; השפה דה-פקטו המשמשת להוראת אנשים תכנות אתרים. זה פשוט להפליא, אך חזק להפליא. קרא עוד , זה כולל את הפונקציות mysql_ הנוראיות (ושלא הושמצו לאחרונה) המשמשות לאינטראקציה עם מערכת מסד הנתונים היחסי של MySQL ו- dl () המאפשרת למשתמשים לייבא את השפה שלהם הרחבות.
כמשתמש, אתה אמור להיות מסוגל לראות איזו גרסה של מתורגמן פועלת בשירותך. אם הוא מיושן או מכיל מספר פגיעויות אבטחה, צור קשר עם המארח שלך.
מה עם סיסטמס? יש לך כמה אפשרויות כאן. הראשון (והמבטיח ביותר) הוא להשתמש ב- Docker לכל אחד מהמשתמשים שלכם. Docker מאפשר לך להפעיל סביבות מבודדות מרובות במקביל, ממש כמו שמכונה וירטואלית עושה, אם כי מבלי שתצטרך להפעיל מערכת הפעלה אחרת. כתוצאה מכך, זה מהיר. באמת, ממש מהר.
באנגלית פשוטה? אתה יכול להריץ את המתורגמן האחרון והגדול ביותר עבור רוב המשתמשים שלך, בעוד הלקוחות שמשתמשים ביישומים ישנים המשתמשים בפרשנים עתיקים ומוארים כדי לעשות זאת מבלי להתפשר על אחרים משתמשים.
זה גם יתרון בכך שהוא אגנוסטי שפה. PHP, פייתון, רובי. מה שתגיד. הכל אותו דבר.
אין סיוטים.
הפוסט הזה נועד לעשות כמה דברים. ראשית, היה זה להביא לידיעתך את מספר נושאי האבטחה שעומדות בפני חברות אירוח אתרים כדי להבטיח את אבטחת הלקוחות והנתונים שלהם.
זה נועד גם להראות לכם כיצד אתרים שמתארחים באותו שרת יכולים להשפיע זה על זה. רוצה לשים בזה שקע? התחל לציית לתקני קידוד טובים ומאובטחים. בפרט, התחל לחטא את התשומות שלך הן בקצה הקדמי והן בקצה האחורי.
התחלה טובה היא עם הפונקציונליות החדשה לאימות טופס HTML5. דיברנו על זה בעבר במדריך HTML5 שלנו. באופן קולקטיבי, אנו יכולים להפוך אתרים לאבטחים יותר על ידי היותם מתכנתים טובים יותר ומצפוניים יותר.
כמו תמיד, אני שומעת לשמוע את המחשבות שלך. זרוק לי תגובה למטה.
אשראי צילום: כולם זקוקים להאקר (אלכסנדר דולונוי), מדבקה על חלון המונית (קורי דוקטורוב), חדר שרתים (Torkild Retvedt), ספרים ומגזינים של לינוקס (ספריית_מיסטריסט), פיל PHP (מרקוס טאקר)
מתיו יוז הוא מפתח תוכנה וכותב מליברפול, אנגליה. לעיתים רחוקות הוא נמצא ללא כוס קפה שחור חזק בידו ומעריץ לחלוטין את ה- Macbook Pro ואת המצלמה שלו. תוכלו לקרוא את הבלוג שלו בכתובת http://www.matthewhughes.co.uk ותעקוב אחריו בטוויטר ב- @ matthewhughes.