Rootkit

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

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

פירוש השם Rootkit הוא הלחם בסיסים של המילים Root (משתמש בעל הרשאות מנהל המערכת בלינוקס) ו-Kit (עֶרְכָּה).

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

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

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

פעולות שיבוש אלה עשויות להתבצע במספר רמות:

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

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

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

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

אופן המימוש של רוטקיט מסוג זה הוא ביצוע Hook-ים בתווך שבין קריאות ה-API ברמת ה-User mode לקריאות המקבילות ברמת ה-Kernel mode. לרוב, מתבצע Hook זה ברמת ה-Service Description Table.

Library level - שכבת הספרייה, User mode 
במקרה זה, מדובר בטלאי שנועד להחליף את קריאות מערכת ההפעלה, בקריאות חלופיות, השייכות לרוטקיט עצמו. קריאה חלופית זו, תסתיר את זהותו ומיקומו של הרוטקיט. פעולה זו מתבצעת לרוב על ידי שינויים במרחב הזיכרון של תהליך מסוים במערכת ההפעלה, המבצעים Hook-ים על קריאות ה-API של התהליך. פעולה זו מתבצעת לרוב על ידי Import Table Hooking או על ידי Detour.

קיימים מספר הבדלים משמעותיים בין פיתוח הרוטקיט ברמת הליבה לפיתוח ברמת הספרייה:

 מימוש פעולות הרוטקיט ברמת ה-User mode פשוט באופן משמעותי מאשר פיתוח קוד ברמת הליבה.
 ביצוע Hook ברמת הספרייה משפיע על התהליך בו הוא התבצע בלבד, לעומת Hook ברמת הליבה המשפיע בצורה רחבה על כל המערכת.
 פעולות מסוג זה ברמת ה-User mode נחשבות חשודות, ונתפסות לרוב על ידי תוכנות אנטי וירוס ו-Anti-Spyware. זאת לעומת פעולות מסוג זה ברמת הליבה, אשר לרוב אינן מנוטרות, ויכולות להתבצע ללא הפרעה.

גילוי ומניעה 
למערכות רוטקיט יכולות הסוואה רבות אך ניתן לגלות אותן באמצעות מספר דרכים:

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

מערכות גילוי והתראה 

 Rkhunter
 Chkrootkit

 WindowsSCOPE
RootkitRevealer
 Sophos Anti-Rootkit
 GMER
 F-Secure

ראו גם 

דלת אחורית
בדיקת חדירות

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

מידע אודות Rootkit, אתר Rootkitanalytics (אנגלית)
מאמר אודות רוטקיטים מסורתיים, אתר Informit (אנגלית)
מאמר בנושא Kernel-Mode Rootkits, אתר DigitalWhisper (עברית)
מה זה Rootkit? איך נמנעים ואיך מחסלים? - אתר Pcmagazine (עברית)

הערות שוליים 

תוכנות זדוניות