חזרה
דלת אחורית שהוסתרה בהצעת עבודה בלינקדאין: כך נלכד מפתח בקוד זדוני
SiTech AI Team2 წთ. საკითხავი

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

מפתח פול-סטאק שהתבקש לסקור מאגר GitHub במסגרת הצעת עבודה גילה דלת אחורית נסתרת שמופעלת בעת npm install. הקומיטים במאגר והפרופיל של "המגייסת" היו שייכים לשני אנשים אמיתיים שלא עבדו על הפרויקט מעולם.

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

במקום לשכפל את המאגר ולהתקין תלויות על המחשב שלו, הוא הקים שרת VPS זמני ב-Hetzner, שכפל לשם את הקוד והצביע עליו בסוכן AI בשם Pi במצב קריאה בלבד, עם כלי קריאת קבצים בלבד: read, grep, find ו-ls.

המלכודת בתוך קובץ בדיקות

הסוכן עצר כמעט מיד בקובץ app/test/index.js. המאגר נראה כמו פרונט ב-React עם בק-אנד ב-Node, והמלכודת הייתה כ-250 שורות שהוסוו כמערכת בדיקות. בפנים הורכב כתובת URL משברים: פרוטוקול "https", דומיין "store", תת-דומיין "rest-icon-handler", נתיב "/icons/" וטוקן "77".

בשורה 225, בין קירות של בדיקות שהוערו, הסתתר קוד שהריץ כל מה שהשרת החזיר למחשב. הקובץ לא המתין להרצת הבדיקות: app/index.js מריץ require('./test'), ו-package.json מחבר את app/index.js לאתחול דרך סקריפט prepare. npm מריץ את prepare אוטומטית אחרי npm install, כך שעצם התקנת התלויות הפעילה את הדלת האחורית. ההנחיה על "מודולים מיושנים" הייתה פיתיון.

זהות שאולה — פעמיים

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

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

מה המסקנה

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

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

SSiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.