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

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

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

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

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

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

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

קישורים חיצוניים

הקשחת מערכות (באנגלית)
"הקשחת נכסי המחשוב שלך" ב-globalsecurity.org (באנגלית)
"המלצות ליישום – הקשחת מערכות מחשוב" ב-cyber.gov.il (באנגלית)

קטגוריה:ערכים שבהם תבנית בריטניקה אינה מתאימה
קטגוריה:אבטחת מידע