זה התחיל: סקריפט בג׳רוזלם פוסט כרה מטבעות קריפטוגרפיים

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

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

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

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

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

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

סקריפט של coinhive רץ בג׳רוזלם פוסט עם חשבון על שם ג׳רוזלם פוסט
סקריפט של coinhive רץ בג׳רוזלם פוסט עם חשבון על שם ג׳רוזלם פוסט

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

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

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

מה עושים נגד זה?

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

לסיכום

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

עדכון

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

פוסטים נוספים שכדאי לקרוא

תמונה של הבית הלבן עם מחשוב ענן וטקסט: FEDRAMP
פתרונות ומאמרים על פיתוח אינטרנט

FedRAMP & FIPS מבוא למתחילים

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

פייתון

קבצי קונפיגורציה בפואטרי

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

פיתוח ב-JavaScript

Axios interceptors

תכנון נכון של קריאות AJAX באפליקציה ריאקטית וניהול השגיאות או ההצלחות עם פיצ׳ר נחמד של axios

גלילה לראש העמוד