לדלג לתוכן

מה זה OWASP Top 10 - מדריך פשוט למי שמתחיל באבטחת מידע

אם התחלתם לקרוא משהו על אבטחת אתרים, כמעט בטוח שנתקלתם בקיצור הזה - OWASP Top 10. הוא מופיע בכל מקום, מדרישות תפקיד ועד לקורסים, ואנשים מזכירים אותו כאילו כולם כבר יודעים מה זה. אז בואו נעשה סדר, כי זה פשוט הרבה יותר ממה שזה נשמע.

מי זה בכלל OWASP

לפני שנדבר על הרשימה עצמה, כדאי לדעת מי כתב אותה. OWASP זה ראשי תיבות של Open Web Application Security Project - ארגון ללא מטרות רווח שכל תפקידו הוא לעזור למפתחים ולחוקרי אבטחה להבין איפה אתרים נפרצים, ואיך למנוע את זה. אין להם אג'נדה מסחרית, אין להם מוצר למכור. הם פשוט אספו את הידע של אלפי חוקרי אבטחה ברחבי העולם וריכזו אותו במקום אחד.

אז מה זה בעצם ה-Top 10

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

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

הקטגוריות המרכזיות שכדאי להכיר

בואו נעבור על כמה מהחשובות ביותר, ברמה גבוהה, כי כל אחת מהן שווה פוסט משלה (ויש לנו כאלה):

  • בקרת גישה שבורה - Broken Access Control. זה כשמשתמש מצליח לגשת למידע או לפעולות שהוא לא אמור לגשת אליהם. חולשת IDOR הקלאסית נמצאת בקטגוריה הזאת.
  • כשלי הצפנה - Cryptographic Failures. מידע רגיש שנשלח או נשמר בלי הצפנה מספקת, כמו סיסמאות בטקסט גלוי.
  • הזרקה - Injection. כאן נכנסות חולשות כמו SQL Injection ו-Command Injection, שבהן תוקף מצליח "להזריק" קוד או פקודות למקום שלא תוכנן לקבל אותם.
  • עיצוב לא מאובטח - Insecure Design. בעיה עמוקה יותר, שבה האתר תוכנן מלכתחילה בלי חשיבה על אבטחה, ולא משנה כמה תתקנו קוד, הבעיה נשארת.
  • הגדרות שגויות - Security Misconfiguration. שרת שנשאר עם הגדרות ברירת מחדל, פורטים פתוחים שלא צריך, או הודעות שגיאה שחושפות יותר מדי מידע.
  • רכיבים פגיעים - Vulnerable and Outdated Components. שימוש בספריות או תוכנות עם חולשות ידועות שפשוט לא עדכנו.
  • כשלי זיהוי - Identification and Authentication Failures. בעיות בהתחברות, כמו סיסמאות חלשות או ניהול לא נכון של הפעלות משתמש - sessions.
  • כשלי שלמות תוכנה ונתונים - Software and Data Integrity Failures. למשל, חולשות דה-סריאליזציה שבהן נתונים לא מאומתים נטענים ומבוצעים.
  • תיעוד וניטור לקויים - Security Logging and Monitoring Failures. כשתקיפה קורית ואף אחד לא שם לב, כי אין לוגים מספיקים.
  • זיוף בקשות מצד השרת - SSRF. כשתוקף מצליח לגרום לשרת לשלוח בקשות למקומות שהוא לא אמור לגשת אליהם.

למה זה שימושי, ואיך להשתמש בזה נכון

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

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

איך ממשיכים מכאן

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

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

לסיכום

OWASP Top 10 היא לא רשימה מפחידה של מונחים טכניים, היא מדריך פרקטי שנבנה מנתונים אמיתיים על איך אתרים נפרצים בפועל. אם אתם רק מתחילים בעולם אבטחת המידע, זה בדיוק המקום להתחיל בו - לא כי מישהו אמר לכם, אלא כי זה פשוט מכסה את מה שבאמת קורה שם בחוץ.

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