Rootkit

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
Gnome-colors-edit-find-replace.svg יש לשכתב ערך זה. הסיבה לכך היא: שגוי במידה רבה.
אתם מוזמנים לסייע ולתקן את הבעיות, אך אנא אל תורידו את ההודעה כל עוד לא תוקן הדף. אם אתם סבורים כי אין בדף בעיה, ניתן לציין זאת בדף השיחה.

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

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

סוגי ה-Rootkit-ים[עריכת קוד מקור | עריכה]

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

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

Virtualised - השכבה הווירטואלית[עריכת קוד מקור | עריכה]

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

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

Kernel Level - שכבת הליבה, הגרעין[עריכת קוד מקור | עריכה]

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

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

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

Library level - שכבת הספרייה, User mode[עריכת קוד מקור | עריכה]

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

קיימים מספר הבדלים משמעותיים בין פיתוח ה-Rootkit ברמת ה-Kernel לפיתוח ברמת ה-Library:

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

השימוש ב-Rootkit[עריכת קוד מקור | עריכה]

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

שיטות גילוי וזיהוי Rootkit[עריכת קוד מקור | עריכה]

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

יש תוכנות אשר מנסות לזהות שינוים בפונקציות של המערכת ובודקות האם הפונקציות האלה שוכתבו על ידי קוד זדוני שמנסה לשבש את פעולתם. דוגמה לתוכנה כזו היא BlackLight של חברת F-secure.

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

קישורים חיצוניים[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]