וירוס מחשב

מתוך ויקיפדיה, האנציקלופדיה החופשית
(הופנה מהדף קוד זדוני)

וירוס מחשבאנגלית: Computer Virus) הוא סוג של קוד זדוני, שמשכפל את עצמו על ידי שינוי קוד של תוכנות מחשב אחרות. אחרי שהשכפול מצליח התוכנה שהקוד שלה השתנתה נקראת "נגועה" בווירוס. מקור השם וירוס הוא בדמיון תוכנות זדוניות אלו לווירוס ביולוגי אשר עקרונות פעולתו בתא הנפגע ודרכי הפצתו בעלות לוגיקה דומה.

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

רקע והיסטוריה[עריכת קוד מקור | עריכה]

דוגמה לקוד מקור של וירוס מחשב

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

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

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

בשנת 1985 היו מוכרים 11 סוגי וירוסים שונים, ובשנת 2008 המספר הגיע למיליון וירוסים שונים[דרוש מקור]. בממוצע מתגלים בכל חודש בין 50 ל־100 וירוסים חדשים[דרוש מקור]. יש וירוסים מתקדמים יותר ופחות. וירוס עלול לגרום נזק בלתי הפיך למחשב - להרוס את מערכת ההפעלה או למחוק קובצי מידע חשובים, בנוסף ליכולותיו להפיץ את עצמו ביעילות מרובה ולהסוות את עצמו בפני תוכנת האנטי-וירוס.

בשנת 2004 התגלה הווירוס הראשון לטלפון נייד. הווירוס, שכונה "קאביר", נוצר כדי להראות היתכנות של הדבקה. ב-2007 כבר היו ידועים כמה מאות של וירוסים לטלפונים ניידים.[דרוש מקור] הווירוסים הראשונים לטלפונים ניידים תקפו טלפונים בעלי מערכת ההפעלה סימביאן, שהייתה המערכת הנפוצה בטלפונים חכמים. שתי דרכי הפצה עיקריות בטלפונים ניידים הם באמצעות תקשורת הבלוטות' ובאמצעות מסרי המולטימדיה המהירים MMS.

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

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

לווירוס מחשב מספר מאפיינים:

  1. הסוואה
  2. הפצה
  3. הדלפה (אופציונאלי)
  4. חבלה (אופציונלי)
  5. מחיקת נתונים (אופציונלי)

הפצה[עריכת קוד מקור | עריכה]

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

חבלה[עריכת קוד מקור | עריכה]

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

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

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

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

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

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

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

עקיפת ארגז החול של האנטי-וירוס[עריכת קוד מקור | עריכה]

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

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

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

עקיפת חתימת הקובץ[עריכת קוד מקור | עריכה]

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

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

עקיפת הבדיקה הגנרית[עריכת קוד מקור | עריכה]

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

לדוגמה, אם וירוס יכניס עצמו לערך HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run (בתוך הרג'יסטרי של מערכת ההפעלה חלונות) הוא יופעל כל פעם מחדש עם עליית מערכת ההפעלה. אפילו בדיקה פרימיטיבית תגרום לאנטי וירוס לחשוד שווירוס הכניס עצמו לשם. אם תהליך מסוים יתחיל להאזין לשער אשר ידוע כשער המשמש סוסים טרויאנים רבים, הבדיקה הגנרית תתחיל לחשוד בכך שהתהליך הוא סוס טרויאני.

אוליגמורפיזם[עריכת קוד מקור | עריכה]

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

מטאמורפיזם[עריכת קוד מקור | עריכה]

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

דוגמה לווירוס מטאמורפי הוא הווירוס Simile. וירוס זה התפרסם לראשונה בגיליון השישי של הקבוצה 29A בתחילת מרץ 2002. וירוס זה הוא אחד הווירוסים המתוחכמים והמסובכים שהופצו אי פעם, 90% מקוד הווירוס הוא מנוע המטאמורפיזם שלו שנועד לשכתב את המבנה הבינארי של הווירוס וליצור עוד עשרות וירוסים דומים.

דרכי הפצה[עריכת קוד מקור | עריכה]

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

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

מפתחי וירוסים[עריכת קוד מקור | עריכה]

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

  • בשנות ה-80 של המאה ה-20, כאשר הופיעו הווירוסים הראשונים, רובם המוחלט נכתב למטרות מחקר או אתגר טכנולוגי. עד היום חלק מסוים ממפתחי הווירוסים פועלים ממניעים אלו, ולא מתוך כוונות זדוניות, אך אחוזם ירד. רוב המפתחים מבינים את פוטנציאל הנזק שווירוס עלול לגרום, גם אם מדובר בנזק שנגרם בטעות. בנוסף, המורכבות של כתיבת וירוס אשר יפיץ את עצמו ויפעל באופן יעיל, עלתה באופן משמעותי, ולכן סף הכניסה לעולם זה גבוה יותר מבעבר, ובכך ירד אחוז המפתחים הללו באופן טבעי.
  • בשנות התשעים ובתחילת העשור הראשון של המאה ה-21 התפרצו מספר פעמים וירוסים אשר מטרתם הייתה זדונית, אך לא כלכלית. המטרה הייתה הצקה או ונדליזם, ונעשתה פעמים רבות מתוך תסכול או כנקמה. במספר וירוסים התגלו מחרוזות טקסט אשר הכילו מסרים בגנות מורים בבתי ספר תיכונים, מעסיקים לשעבר וכו'.
  • החל מהעשור הראשון של המאה ה-21, ועד היום, עיקר הווירוסים המופצים בקנה מידה רחב מיועדים לטובת רווח כלכלי. הרווחים יכולים לנבוע מגנבת מידע פיננסי, גנבת כסף מחשבון בנק מקוון, שימוש במחשב לטובת הפצת דואר זבל ועוד. מאחורי וירוסים אלו עומדים לרוב ארגוני פשיעה מקוונת (Cyber Crime) או גורמים המפתחים את הווירוס ומוכרים או משכירים אותו לגורמים פליליים.
  • בשנים האחרונות החלה להתפתח מגמה משמעותית נוספת בתחום הווירוסים, בדמות וירוסים המיועדים ללוחמת מידע. וירוסים אלו מפותחים על ידי ממשלות או על ידי גורמים פרטיים המספקים שירותים ומוצרים לארגוני מודיעין וביטחון. וירוסים אלו מאופיינים לרוב בתחכום רב, באופן יחסי לווירוסים המיועדים למטרות פליליות, ומטרתם לרוב איסוף מידע רב או פגיעה פיזית בחומרה או מערכות הנשלטות על ידי מחשב. שתי דוגמאות בולטות לווירוסים אלו הן Stuxnet ו-Flame.

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

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

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

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

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

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

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

ראו גם[עריכת קוד מקור | עריכה]

לקריאה נוספת[עריכת קוד מקור | עריכה]

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

ויקישיתוף מדיה וקבצים בנושא וירוס מחשב בוויקישיתוף