וירוס מחשב

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

רקע והיסטוריה

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

הפצה

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

עקיפת ארגז החול של האנטי-וירוס

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

עקיפת חתימת הקובץ

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

עקיפת הבדיקה הגנרית

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

אוליגמורפיזם

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

מטאמורפיזם

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

דרכי הפצה

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

הגנה מפני וירוסים

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

מניעת חדירה

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

מניעת הרצה

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