כיצד ליישם כותרות HTTP לאבטחה כדי למנוע פגיעויות?

האם אתה יודע שרוב פגיעויות האבטחה ניתנות לתיקון על ידי יישום כותרות נחוצות בכותרת התגובה?


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

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

הערות:

  • מומלץ לקחת גיבוי של קובץ התצורה לפני ביצוע שינויים
  • יתכן שחלק מהכותרות לא נתמכות בכל הדפדפנים בדוק את התאימות לפני הביצוע.
  • יש להפעיל את Mod_headers ב- Apache כדי ליישם כותרות אלה. ודא שהשורה הבאה אינה מסומנת בקובץ httpd.conf.

LoadModule headers_module modules / mod_headers.so

  • לאחר היישום, תוכלו להשתמש בכלי מקוון מאובטח כדי לאמת את התוצאות.

משתמש בוורדפרס ?: מומלץ לנסות להשתמש תוסף כותרות HTTP, שמטפל בכותרות האלה והרבה יותר.

הגנת X-XSS

כותרת הגנה X-XSS יכולה למנוע רמה מסוימת של XSS (תסריטים חוצי אתרים), וזה תואם ל- IE 8+, Chrome, Opera, Safari & אנדרואיד.

גוגל, פייסבוק, גיתוב משתמשים בכותרת זו, ורוב הייעוץ לבדיקת חדירות יבקש מכם ליישם זאת.

ישנן ארבע דרכים אפשריות להגדיר כותרת זו.

ערך פרמטרמשמעות
0מסנן XSS מושבת
1מסנן XSS הפעל וחידש את הדף אם זוהתה התקפה
1; מצב = חסוםמסנן XSS הפעל ומנע את הצגת הדף אם התגלה התקפה
1; דוח = http: //example.com/report_URIמסנן XSS אפשר ודיווח על ההפרה אם התגלה התקפה

בואו ליישם 1; מצב = חסום בשרתי האינטרנט הבאים.

שרת HTTP של אפאצ’י

הוסף את הערך הבא ב httpd.conf של שרת האינטרנט שלך ב- Apache

הגדרת כותרת X-XSS-Protection "1; מצב = חסום"

הפעל מחדש את ה- Apache כדי לאמת

נגינקס

הוסף את הדברים הבאים ב- nginx.conf תחת חסימת http

add_header הגנת X-XSS "1; מצב = חסום";

נדרש הפעלה מחדש של Nginx בכדי לקבל את זה לידי ביטוי בכותרת התגובה של דף האינטרנט שלך.

MaxCDN

אם אתה משתמש MaxCDN, ואז הוספת כותרת קלה ופשוטה.

עבור אל כללי הקצה >> לחץ על “כלל חדש” ובחר “הוסף כותרת להגנה על X-XSS” מהתפריט הנפתח.

שולי קצה

IIS של מיקרוסופט

  • פתח את מנהל IIS
  • בחר באתר שאתה צריך כדי לאפשר את הכותרת עבורו
  • עבור אל “כותרות תגובה של HTTP.”
  • לחץ על “הוסף” תחת פעולות
  • הזן שם, ערך ולחץ על אישור

iis-x-xss- הגנה

  • הפעל מחדש את IIS כדי לראות את התוצאות

אבטחת תעבורה קפדנית של HTTP

כותרת HSTS (HTTP Strict Transport Security) בכדי להבטיח שכל התקשורת מדפדפן נשלחת דרך HTTPS (HTTP Secure). זה מונע לחיצה על HTTPS דרך הנחיות ומפנות מחדש בקשות HTTP ל- HTTPS.

לפני יישום כותרת זו, עליך לוודא שכל דף האתר שלך נגיש דרך HTTPS אחרת הם ייחסמו.

כותרת HSTS נתמכת בכל הגרסאות האחרונות העיקריות של דפדפן כמו IE, Firefox, Opera, Safari ו- Chrome. יש תצורת שלושה פרמטרים.

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

אז ניקח דוגמה להגדרת HSTS למשך שנה, כולל טעינה מוקדמת לדומיין ותת-דומיין.

שרת HTTP של אפאצ’י

ניתן ליישם HSTS באפצ’י על ידי הוספת הערך הבא בקובץ httpd.conf

הגדרת כותרת קפדנית-תעבורה-אבטחה "גיל מקסימום = 31536000; includeSubDomains; טעינה מוקדמת"

הפעל מחדש את האפאצ’י כדי לראות את התוצאות

נגינקס

כדי להגדיר HSTS ב- Nginx, הוסף את הערך הבא בהנחיית nginx.conf תחת שרת (SSL)

add_header מקסימום גיל תחבורה-אבטחה = 31536000; includeSubDomains; טעינה מוקדמת ‘;

כרגיל, תצטרך להפעיל מחדש את Nginx כדי לאמת

פרח ענן

אם אתה משתמש ב- Cloudflare, תוכל להפעיל HSTS בכמה לחיצות.

  • התחבר ל פרח ענן ובחר את האתר
  • עבור לכרטיסייה “קריפטו” ולחץ על “אפשר HSTS.”

cloudflare-hsts-config

בחר את ההגדרות שאתה צריך, ואת השינויים יחולו תוך כדי תנועה.

IIS של מיקרוסופט

הפעל את מנהל IIS והוסף את הכותרת על ידי מעבר אל “כותרות תגובה של HTTP” עבור האתר המתאים.

iis-hsts

הפעל מחדש את האתר

אפשרויות מסגרת X

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

באפשרותך להגדיר את שלושת הפרמטרים הבאים.

ערך פרמטרמשמעות
SAMEORIGINמסגרת / iframe של תוכן מותרת רק מאותו מקור אתר.
דחהמנע מכל תחום להטמיע את התוכן שלך באמצעות מסגרת / iframe.
אפשר מ –אפשר למסגור את התוכן רק ב- URI מסוים.

הבה נבחן כיצד ליישם את “דחה“כך ששום תחום לא מטמיע את דף האינטרנט.

אפאצ’י

הוסף את השורה הבאה ב httpd.conf והפעל מחדש את שרת האינטרנט כדי לאמת את התוצאות.

הכותרת מצרפת תמיד אפשרויות X-Frame-DENY

נגינקס

הוסף את הדברים הבאים ב- nginx.conf תחת הנחיית / חסימת שרת.

add_header אפשרויות X-Frame “DENY”;

הפעל מחדש כדי לאמת את התוצאות

F5 LTM

צור iRule עם הפרטים הבאים ומשויך לשרת הווירטואלי המתאים.

כאשר HTTP_RESPONSE {

HTTP :: להוסיף כותרת "אפשרויות מסגרת X" "דחה"

}

אינך צריך להפעיל מחדש דבר, שינויים באים לידי ביטוי באוויר.

וורדפרס

אתה יכול ליישם את הכותרת הזו גם באמצעות וורדפרס. הוסף את הדברים הבאים בקובץ wp-config.php

כותרת (‘אפשרויות מסגרת X: דחייה);

אם אינך מרגיש בנוח לערוך את הקובץ, תוכל להשתמש בתוסף כמוסבר כאן או שהוזכר לעיל.

IIS של מיקרוסופט

הוסף את הכותרת על ידי מעבר אל “כותרות תגובה של HTTP” עבור האתר המתאים.

אפשרויות iis-x-frame

הפעל מחדש את האתר כדי לראות את התוצאות.

אפשרויות X-Content-Type

למנוע MIME סוג סיכון אבטחה על ידי הוספת כותרת זו לתגובת HTTP של דף האינטרנט שלך. לאחר כותרת זו תנחה את הדפדפן לשקול סוגים של קבצים כהגדרתם ואסור לרחרח תוכן. יש רק פרמטר אחד שיש לך להוסיף “nosniff”.

נראה כיצד לפרסם כותרת זו.

אפאצ’י

אתה יכול לעשות זאת על ידי הוספת השורה למטה בקובץ httpd.conf

כותרת עליונה להגדיר X-Content-Type-Options-nosniff

אל תשכח להפעיל מחדש את שרת האינטרנט של Apache כדי להפעיל את התצורה.

נגינקס

הוסף את השורה הבאה בקובץ nginx.conf תחת חסימת שרת.

add_header X-Content-Type-Options nosniff;

כרגיל, עליכם להפעיל מחדש את ה- Nginx כדי לבדוק את התוצאות.

IIS של מיקרוסופט

פתח את IIS ועבור לכותרות תגובת HTTP

לחץ על הוסף והזן את השם והערך

iis-mime-types

לחץ על אישור והפעל מחדש את ה- IIS כדי לאמת את התוצאות.

הצמדת מפתח ציבורי HTTP

צמצם את האדם באמצע (MITM) תוקף סיכון באמצעות אישור הצמדה. זה אפשרי עם HPKP כותרת הצמדת מפתח ציבורי HTTP.

אתה יכול להצמיד את המפתח הציבורי של אישור השורש או את האישור המיידי. בזמן הכתיבה, HPKP עובד כרגע בפיירפוקס וכרום ותומך באלגוריתם hash של SHA-256.

ישנן ארבע תצורות פרמטרים אפשריות.

ערך פרמטרמשמעות
report-uri = ”url”דווח לכתובת האתר שצוינה אם אימות הסיכה נכשל. זה לא חובה.
pin-sha256 = “sha256key”ציין כאן את הסיכות
גיל מקסימום =דפדפן לזכור את השעה בשניות שאתר זה נגיש רק באמצעות אחד מהמקשים המוצמדים.
IncludeSubDomainsזה חל גם על תת-דומיין.

בואו נראה דוגמת כותרת HPKP מ- facebook.com

סיכות-סיכות-דוחות בלבד: גיל מקסימום = 500; pin-sha256 ="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18 ="; pin-sha256 ="r / mIkG3eEpVdm + u / ko / cwxzOMo1bk4TyHIlByibiA5E ="; pin-sha256 ="q4PO2G2cbkZhZ82 + JgmRUyGMoAeozA + BSXVXQWB8XWQ ="; report-uri = http: //reports.fb.com/hpkp/

אם זה משהו שאתה צריך ליישם באתר האינטרנט שלך, עבור אל האתר מדריך ליישום שנכתב על ידי סקוט הלם.

מדיניות אבטחת תוכן

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

את כל הדפדפנים אינם תומכים ב- CSP, אז עליכם לאמת לפני היישום. ישנן שלוש דרכים בהן תוכלו להשיג כותרות CSP.

  1. מדיניות אבטחת תוכן – רמה 2 / 1.0
  2. מדיניות X-Content-Security – ביטול
  3. X-Webkit-CSP – הוצא משימוש

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

קיימים מספר פרמטרים שניתן ליישם CSP ותוכלו להתייחס אליהם OWASP לרעיון. עם זאת, נעבור על שני הפרמטרים המשומשים ביותר.

ערך פרמטרמשמעות
default-srcטען הכל ממקור מוגדר
script-srcטען רק סקריפטים ממקור מוגדר

הדוגמה הבאה לטעינת הכל מאותו מוצא בשרתי אינטרנט שונים.

אפאצ’י

קבל את הפרטים הבאים שנוספו בקובץ httpd.conf והפעל מחדש את שרת האינטרנט כדי להיות אפקטיבי.

כותרת מוגדרת מדיניות בנושא אבטחת תוכן "default-src ‘עצמי’;"

נגינקס

הוסף את הדברים הבאים בלוק השרת בקובץ nginx.conf

add_header מדיניות בנושא אבטחת תוכן "default-src ‘עצמי’;";

IIS של מיקרוסופט

עבור אל כותרות תגובה של HTTP עבור האתר שלך בהתאמה למנהל IIS והוסף את הדברים הבאים

iis-csp

מדיניות X המותרת על-פי תחום

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

יש כמה אפשרויות זמינות.

ערךתיאור
אף אחדאין מדיניות מותרת
אדון בלבדאפשר רק את מדיניות האב
את כלהכל מותר
תוכן לוואי בלבדאפשר רק סוג מסוים של תוכן. דוגמה – XML
by-ftp-onlyרלוונטי רק לשרת FTP

אפאצ’י

אם אינך רוצה להתיר מדיניות כלשהי.

הגדרת כותרות מדיניות של הרשאות X המותאמות לחוצה תחומים "אף אחד"

אתה אמור לראות את הכותרת הבאה.

נגינקס

ונניח שאתה צריך ליישם מאסטר בלבד, ואז להוסיף את הדברים הבאים ב- nginx.conf תחת חסימת שרת.

add_header יחידת-מדיניות של מדיניות X-Permitted-Cross-Domain;

והתוצאה.

מדיניות מפנה

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

מדיניות ההפניה תומכת בתחביר הבא.

ערךתיאור
ללא מפנהפרטי המפנה לא יישלחו עם הבקשה.
אין מפנה-מתי-להורידהגדרת ברירת המחדל בה המפנה נשלח לאותו פרוטוקול כמו HTTP ל- HTTP, HTTPS ל- HTTPS.
לא בטוח ב- urlכתובת האתר המלאה תישלח עם הבקשה.
ממוצא זהההמפנה יישלח רק עבור אותו אתר מקור.
ממוצא קפדנישלח רק כאשר פרוטוקול הוא HTTPS
מוצא קפדני-מתי-חוצה-מוצאכתובת האתר המלאה תישלח באמצעות פרוטוקול קפדני כמו HTTPS
מקורשלח את כתובת האתר של המקור בכל הבקשות
מקור-כאשר-צולבים-מקורשלח URL מלא מאותו מקור. עם זאת, שלח רק כתובת URL במקור במקרים אחרים.

אפאצ’י

אתה יכול להוסיף את הדברים הבאים אם ברצונך להגדיר לא מפנה.

כותרת מוגדרת מדיניות מפנה "ללא מפנה"

ואחרי ההפעלה מחדש, עליך להיות בכותרות התגובה.

נגינקס

נניח שאתה צריך ליישם ממוצא זהה, כך שתצטרך להוסיף את הדברים הבאים.

add_header מפנה מדיניות אותו מקור;

לאחר הגדרת התצורה, עליכם לקבל את התוצאות שלהלן.

צפה CT

כותרת חדשה שעדיין במצב ניסיוני היא להורות לדפדפן לאמת את החיבור עם שרתי אינטרנט לשקיפות אישורים (CT). פרויקט זה של גוגל נועד לתקן חלק מהליקויים במערכת האישורים SSL / TLS.

שלושת המשתנים הבאים זמינים לכותרת Expect-CT.

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

אפאצ’י

נניח שאתה רוצה לאכוף מדיניות זו, דווח וקובץ שמור זה למשך 12 שעות ואז עליכם להוסיף את הדברים הבאים.

הגדרת כותרות אכיפת CT – אכיפה, מקסימום גיל = 43200, report-uri ="https://somedomain.com/report"’

והנה התוצאה.

נגינקס

מה אם אתה רוצה לדווח ולשמור במטמון במשך שעה?

add_header Expect-CT ‘max-age = 60, report-uri ="https://mydomain.com/report"’;

הפלט יהיה.

מדיניות תכונות

שלוט בתכונות הדפדפן כגון מיקום גיאוגרפי, מסך מלא, רמקול, USB, הפעלה אוטומטית, רמקול, רטט, מיקרופון, תשלום, VR וכו ‘כדי להפעיל או להשבית ביישום אינטרנט..

אפאצ’י

נניח שאתה צריך להשבית את התכונה של המסך המלא, וכדי לעשות זאת, אתה יכול להוסיף את הדברים הבאים ב httpd.conf או apache2.conf.

כותרת קבע תמיד מדיניות של תכונות "מסך מלא ‘אין’ "

מה דעתך להוסיף תכונות מרובות בשורה אחת?

גם זה אפשרי!

כותרת קבע תמיד מדיניות של תכונות "מסך ‘לא’ במסך מלא; מיקרופון ‘אין’"

הפעל מחדש את Apache HTTP כדי לראות את התוצאה.

הקוד הקודם יורה לדפדפן להשבית את המסך המלא והמיקרופון.

נגינקס

ניקח דוגמא נוספת – השבת את תכונת הרטט.

מדיניות תכונות add_header "לרטוט ‘אף אחד’;";

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

מדיניות תכונות add_header "מיקום גיאוגרפי ‘אף אחד’; מצלמה ‘אין’; הדובר ‘אף אחד’;";

להלן פלט לאחר הפעלה מחדש של Nginx.

כל תצורת ה- Nginx עוברת תחת חסימת http ב- nginx.conf או כל קובץ מותאם אישית בו אתה משתמש.

סיכום

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

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map