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

קחו את ערכי הייחוס מערוץ שאתם בחרתם

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

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

השוו את המפרסם המותקן, לא את השם

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

# Windows: inspect the installed signature
Get-AuthenticodeSignature "C:\Program Files\WireGuard\wireguard.exe"
# macOS: check the bundle identity
codesign -dv --verbose=2 /Applications/WireGuard.app
# Linux: confirm the package origin
apt-cache policy wireguard

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

מה החתימה המותקנת מוכיחה באמת

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

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

כאשר האפליקציה אמיתית אבל הפרופיל לא

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

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

פעלו באי ודאות, ואז נקו כראוי

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

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

מאמרים קשורים