קריפטוג׳קינג: כשמחשב כורה עבור מישהו אחר
איך נוזקת כרייה חודרת, למה הכי קשה להסתיר אותה מבעלים של מתקן כרייה והכי קל להטעות אותם, ואיך לבדוק ולנקות מכונה כמו שצריך.
מה זה
קריפטוג׳קינג (cryptojacking) הוא מצב שבו מישהו מריץ תוכנת כרייה על חומרה שאינה שלו ושהוא לא משלם עליה. זו לא תופעה שולית: זה הדבר הנפוץ ביותר שנוזקה עושה עם מחשב ברגע שהיא משתלטת עליו, כי הרווח לא דורש אחר כך שום קורבן שיתפתה לעשות משהו. החשמל הוא הקורבן, והחשבון מגיע בשקט.
כמעט תמיד מדובר ב-Monero. את המטבע הזה אפשר לכרות ברווח על מעבדים רגילים, כך שכמה אלפי מחשבים משרדיים שווים את המאמץ, והפרטיות שלו פירושה שאי אפשר לעקוב אחרי הכסף. התוכנה היא בדרך כלל XMRig, תוכנת כרייה רגילה בקוד פתוח, עם שם ותצורה ששונו.
מחשב שכורה עבור מישהו אחר לא מתנהג כמו מחשב נגוע בדרך שאנשים מצפים לה. שום דבר לא מוצפן, אף קובץ לא חסר, שום דרישת כופר לא מופיעה. הוא פשוט רץ חם, מאט את עצמו, שוחק את המאווררים ועולה כסף.
למה זה שונה כשכבר כורים
כל מאמר כללי אומר אותו דבר: לחפש שימוש גבוה במעבד, לחפש חום, לחפש מאווררים. במתקן כרייה שלושתם הם המצב הרגיל, ולכן העצה הרגילה לא מגלה כלום. כורה הוא האדם המצויד ביותר למצוא את זה, וגם הקל ביותר להטעות.
היתרון הוא שיש לך משהו שכמעט לאף אחד אחר אין: תיעוד שני ובלתי תלוי של מה שהחומרה שלך הפיקה. לוח הבקרה של הבריכה נמדד על שרת של מישהו אחר, מעבודה שבאמת הגיעה. אם מתקן הכרייה מדווח על קצב האש מסוים ולוח הבקרה נמוך ממנו באופן משמעותי, אחרי שמביאים בחשבון את המניות המיושנות, משהו צורך את ההפרש.
איך זה נכנס
הדרכים לא השתנו הרבה, ואף אחת מהן לא דורשת תוקף מתוחכם.
- תוכנות פרוצות ומועתקות. עדיין המקור הבודד הגדול ביותר. keygen או מתקין ששונה של יישום בתשלום הוא תוכנה שהסכמת להריץ עם ההרשאות שלך, ותוכנת הכרייה מגיעה איתו בתוך הארכיון.
- כל דבר שחשוף לאינטרנט בלי עדכון אבטחה. חורים ישנים ומוכרים בתוכנות שרת נסרקים ללא הפסקה, ותוכנת כרייה היא המטען המועדף כי היא הופכת לכסף מחשב שאין בו שום דבר ששווה לגנוב.
- USB. מתקפות עדכניות מעתיקות את עצמן לכוננים נשלפים ומסתתרות מאחורי קיצור דרך שנראה כמו סמל הכונן, וכך גם רשת בלי חשיפה לאינטרנט נדבקת.
- אימג׳ים של קונטיינרים ושל בנייה. אימג׳ בסיס שנמשך ממאגר ציבורי יכול להכיל תוכנת כרייה, ואז היא כורה בתוך כל סביבה שנבנתה ממנו.
- לשונית בדפדפן, אם כי הרבה פחות מבעבר. סקריפטים שכורים כל עוד דף פתוח היו תעשייה שלמה עד שהספק הגדול ביותר נסגר ב-2019; הם עדיין קיימים באתרי סטרימינג והורדות, אבל הם נעצרים כשהלשונית נסגרת.
הסימנים במחשב שאמור להיות במנוחה
- הוא אף פעם לא באמת במנוחה. המאווררים נשארים במהירות גבוהה והמארז נשאר חם גם כששום דבר לא פתוח.
- תהליך שאי אפשר להסביר, שלעיתים קרובות קיבל שם קרוב לשם של תהליך מערכת אמיתי. הבדל של תו אחד בשם מוכר הוא תרגיל נפוץ.
- עומס שיורד ברגע שפותחים את מנהל המשימות וחוזר כשסוגרים אותו. ההתנהגות הזו מכוונת, והיא כמעט הוכחה בפני עצמה.
- משימה מתוזמנת, שירות או רשומת הפעלה אוטומטית שאף אחד לא יצר.
- חיבורים יוצאים למארח לא מוכר, שחוזרים בקצב קבוע.
הסימנים במתקן כרייה שאמור לכרות
כאן השאלה אינה אם משהו כורה, אלא אם כל מה שכורה שייך לך.
- לוח הבקרה נמוך באופן עקבי ממה שמתקן הכרייה מדווח, מעבר למה שמניות מיושנות מסבירות.
- שני תהליכי כרייה במקום שבו הופעל אחד. במתקן כרייה עם כמה כרטיסי GPU כדאי לספור.
- בסקריפט ההפעלה או ב-flight sheet שלך מופיעה כתובת ארנק או כתובת שרת (host) שלא הוקלדה על ידך. יש לקרוא אותם בעיון ולא רק להעיף מבט: כתובת ששונתה באמצע נראית זהה במבט חטוף.
- כרטיס מסך פועל חם ולא מייצר דבר בבריכת הכרייה שלך, וכך בדיוק נראית תוכנת כרייה שנייה שמוצמדת למכשיר אחד.
- המכונה ממשיכה לכרות גם אחרי העצירה. אם עצירת תוכנת הכרייה שלך לא משקיטה את המכונה, משהו אחר פועל עליה.
החלפת הארנק, שעולה יותר מהחשמל
משפחה נפרדת של תוכנות זדוניות עושה משהו גרוע ופשוט יותר. היא עוקבת אחרי לוח ההעתקה, וכאשר מועתק משהו שנראה כמו כתובת ארנק, היא מחליפה אותו בכתובת של התוקף, ובוחרת כתובת שמתחילה ומסתיימת באותם תווים כדי שבדיקה מהירה תעבור. אנשים איבדו כך סכומים גדולים בלי שום קשר לכרייה, ולעיתים קרובות שתי התוכנות מותקנות יחד.
אצל כורים יש גרסה שנייה של אותו רעיון: הכתובת בתוך סקריפט הפעלה או flight sheet משוכתבת פעם אחת, וכל תשלום מאותו רגע הולך למקום אחר. שום דבר לא נשבר. מתקן הכרייה כורה בצורה מושלמת. הכסף פשוט מגיע לארנק אחר, ובדרך כלל מגלים זאת רק כשתוהים מדוע תשלום מסוים לא הגיע.
ההגנה משעממת ועובדת. אחרי הדבקת כתובת בכל מקום חשוב, יש לבדוק את כולה ולא רק את הקצוות, ולוודא שהכתובת בלוח הבקרה שלך היא הכתובת שהתכוונת אליה. אם התשלומים שלך נעצרים אבל קצב האש שלך לא, יש לבדוק את הכתובת לפני כל דבר אחר.
איך בודקים, לפי הסדר
- השוואה בין שני ערכי קצב האש. מה שמתקן הכרייה מדווח מול לוח הבקרה של הבריכה, לאורך יום ולא לאורך דקה.
- קריאת התצורה שלך. כל כתובת ארנק וכל כתובת שרת, תו אחר תו, בכל מתקן כרייה.
- עצירת תוכנת הכרייה שלך ומעקב. מכונה שנשארת עסוקה אחר כך מריצה משהו אחר.
- רשימת מה שעולה מעצמו. משימות מתוזמנות ושירותים ב-Windows, טיימרים ו-cron ב-Linux, וגם כל מה שרץ בעת ההתחברות.
- בדיקת החיבורים היוצאים בזמן שתוכנת הכרייה שלך עצורה. כל דבר שממשיך לתקשר בקצב קבוע ראוי לזיהוי.
- סריקה בכלי בעל מוניטין, אבל בלי לעצור בתוצאה נקייה. תוכנות כרייה משונות באופן שגרתי עד שהסורקים כבר לא מזהים אותן, ולכן השלב הזה הוא האחרון ולא הראשון.
הסרה אינה מחיקת הקובץ
התוכנות האלה בנויות לחזור. מחיקת התוכנה בזמן שמה שמפעיל אותה נשאר במקומו קונה כמה דקות בלבד. יש להסיר את המשימה המתוזמנת, את השירות, את רשומת ההפעלה האוטומטית, את שורת ה-cron ואת מפתח הרישום (registry), אחר כך את הקובץ, ואז להפעיל מחדש ולבדוק ששום דבר לא חזר.
במכונה חשובה, ובמיוחד בכל מכונה שהחזיקה אי פעם ארנק או מפתח פרטי, התקנה מחדש היא האפשרות הכנה. אותה גישה שהתקינה תוכנת כרייה יכולה להתקין כל דבר אחר, ומתקפה מודרנית כבר אספה בדרך פרטי התחברות. יש להחליף את הסיסמאות שהמכונה הזאת ראתה, ממכשיר אחר.
שמירה על מכונה נקייה
הכללים שבאמת מונעים את זה משעממים, ואלה בדיוק הכללים שאנשים מדלגים עליהם, כי כרייה כרוכה בהורדת תוכנות לא חתומות מזרים.
- תוכנות כרייה מורידים מדף הגרסאות הרשמי של הפרויקט, ובודקים את ה-checksum שפורסם. תוכנת כרייה מקישור בפורום, מתיאור של סרטון או מארכיון שנארז מחדש היא הדרך הסבירה ביותר שבה מכונת כרייה נדבקת, דווקא משום שציפית לאזהרה והתעלמת ממנה.
- אין להריץ אף פעם תוכנה פרוצה על מכונה שכורה או מחזיקה ארנק. אף פעם. שני ההרגלים האלה לא הולכים יחד.
- יש לעדכן כל דבר שחשוף לאינטרנט. רוב ההדבקות אוטומטיות ובוחרות מכונות לפי מספר הגרסה.
- יש להחזיק את הארנק שאליו מגיעים התשלומים בנפרד מהמכונה שכורה. מתקן כרייה צריך רק כתובת, אף פעם לא מפתחות.
- יש לבדוק את כתובת התשלום שלך אחרי כל שינוי במתקן כרייה, ושוב אחרי כל דבר לא צפוי שקורה לו.