הקשחה (אבטחת מידע)

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

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

ישנן מספר שיטות להקשחת מערכות "יוניקס" ו"לינוקס". שיטות אלה כוללות בין השאר התקנת טלאים כגון מגן אקס (Exec shield) או פקס (Pax) על הליבה, סגירת חיבורי רשת, הקמת מערכות זיהוי\התראה לפריצות, חומות אש ומערכות למניעת פריצות. קיימות גם פקודות\תוכנות וכלים להקשחה כגון ליניס (Lynis), בסטיל לינוקס (Bastille Lynux) JASS או מקשיח Apache/PHP עבור מערכות סולריס (Solaris) אשר יכולים לנטרל אפשרויות תוכנה מיותרות בתיקיות קונפיגורציה ועוד מספר מהלכים הגנתיים.

הקשחה בינאריתעריכה

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

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

  • הגנה מפני גלישת חוצצים (buffer overflow)
  • הגנה מפני גלישת מחסנית (stack overflow)
  • רנדומיזציה של מרחב הכתובות
  • פיזור אקראי של כתובות להוראות עם כתובות קבועות (פיזור אקראי ליחידות קוד בסיסיות)
  • מיסוך פוינטרים (הגנה מפני הזרקת שורות קוד)
  • בקרת זרימה אקראית (להגנה מפני הטיה של זרימת השליטה)

דוגמאות נוספותעריכה

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

קישורים חיצונייםעריכה