10.2.2015

מנגנוני אבטחת מידע במערכות הפעלה



אחד העקרונות החשובים בדבר בניית מערכות מאובטחות הוא עקרון "הגנה-לעומק" (Defense-in-Depth). בניית מנגנוני אבטחה במערכות הפעלה מתבסס על אותו עקרון. תוקפים פוטנציאליים יכוונו מטרתם ללב המערכת – מערכת ההפעלה. לכן, הגנה עליה הינה קריטית .

 מנגנוני הגנה נפוצים כיום כוללים בין היתר: "הגנה בשכבות" (Layering), הפשטה (Abstraction), בידוד תהליכים (Process Isolation) וסגמנטציה חומרתית (Hardware Segmentation).

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

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

בידוד תהליכים הינו מנגנון אימות שמוודא כי תהליך מסוים אינו משפיע (במקרה שלנו, לרעה) על תהליך אחר. במערכות הפעלה מודרניות, כגון UNIX, Windows – כל תהליך פועל במרחב כתובות (זכרון) מוגן ומוגדר. באופן זה, השבתת תהליך מסוים לא אמור להשפיע על שאר התהליכים במערכת. בימי ה-MSDOS הטובים והנוסטלגיים, השבתה של תהליך (Process) אחד – גרם לכל המערכת לקרוס (זוכרים את צירוף המקשים Ctrl-Alt-Del לאתחול המחשב?)