הגדרה
Attack surface הוא האוסף הכולל של הממשקים, הרכיבים והאינטראקציות שבאמצעותם תוקף עשוי לנסות להפעיל exploit נגד מערכת. בסביבות של בלוקצ'יין (blockchain) ו-smart contract, זה כולל את כל הפונקציות שנגישות מבחוץ, נקודות הכניסה לפרוטוקול, התלויות וזרימות הנתונים שיכולות להיות מנוצלות כדי לשנות את ההתנהגות הצפויה. המושג משמש כדי להבין עד כמה פרוטוקול, smart contract או תשתית תומכת חשופים לפעילות זדונית. Attack surface גדול או מורכב יותר מרמז בדרך כלל על יותר מסלולים פוטנציאליים לפגיעה, גם אם לא בכולם קיימות חולשות בפועל.
במערכות קריפטו, ה-attack surface משתרע על רכיבים on-chain ו-off-chain שמתקשרים עם smart contract או פרוטוקול. זה יכול לכלול פונקציות בחוזה, מנגנוני שדרוג, הזנות של oracle, מפתחות ניהוליים ואינטגרציות בין חוזים או בין רשתות. כל אחד מהרכיבים האלה יכול להוסיף הנחות נוספות וגבולות אמון חדשים, ולהרחיב את מספר הדרכים שבהן תוקף עשוי לנסות לעקוף את הבטחות האבטחה. לכן, הבנה של ה-attack surface היא מרכיב מרכזי בהערכת סיכון מערכתי ובקביעת סדרי עדיפויות לאמצעי הגנה.
הקשר ושימוש
אנשי אבטחה ומבקרי קוד משתמשים במונח attack surface כדי לתאר את היקף מה שצריך לנתח במהלך ביקורת אבטחה של פרוטוקול בלוקצ'יין (blockchain) או smart contract. מיפוי ה-attack surface כולל זיהוי כל נקודות הכניסה והאינטראקציות הפוטנציאליות שיכולות להוביל ל-exploit, כולל התנהגויות עדינות כמו דפוסי reentrancy או שינויים במצב המערכת המונעים על ידי oracle. מיפוי זה לא מניח שכל רכיב אינו מאובטח, אלא מתייחס לכל אחד מהם כמועמד למיקום שבו עלולה להתקיים חולשה.
בתכנון פרוטוקולים מתקדם, צמצום וחיזוק ה-attack surface הוא יעד אבטחה מרכזי. מתכננים עשויים להפחית פונקציונליות חשופה, לפשט לוגיקת חוזים או להגביל תלויות חיצוניות כדי לצמצם את מספר מסלולי התקיפה האפשריים. מושג ה-attack surface מספק בכך אבסטרקציה ברמת-על לחשיבה על מידת המורכבות של מצב האבטחה של מערכת, וכיצד שינויים בארכיטקטורה, באינטגרציות או בממשל יכולים להגדיל או להקטין את החשיפה שלה לניצול.