تعریف
سطح حمله، مجموعهی کامل رابطها، مؤلفهها و تعاملاتی است که از طریق آنها یک مهاجم ممکن است تلاش کند یک اکسپلویت را علیه یک سیستم اجرا کند. در محیطهای زنجیره بلوکی (blockchain) و قرارداد هوشمند (smart contract)، این سطح شامل تمام توابعی است که از بیرون قابل دسترسیاند، نقاط ورود پروتکل، وابستگیها و جریانهای دادهای که میتوانند برای تغییر رفتار مورد انتظار مورد سوءاستفاده قرار گیرند. از این مفهوم برای تحلیل این استفاده میشود که یک پروتکل، قرارداد هوشمند یا زیرساخت پشتیبان تا چه حد در برابر فعالیت مخرب در معرض دید قرار دارد. یک سطح حمله بزرگتر یا پیچیدهتر، معمولاً به معنای مسیرهای بالقوهی بیشتری برای نفوذ است، حتی اگر همهی آنها واقعاً حاوی آسیبپذیری نباشند.
در سیستمهای کریپتو، سطح حمله شامل اجزای روی زنجیره (on-chain) و خارج از زنجیره (off-chain) است که با یک قرارداد هوشمند یا پروتکل تعامل دارند. این موارد میتواند شامل توابع قرارداد، سازوکارهای ارتقا، فیدهای oracle، کلیدهای مدیریتی و یکپارچهسازیهای بینقراردادی یا بینزنجیرهای باشد. هر یک از این عناصر میتواند فرضیات و مرزهای اعتماد جدیدی وارد کند و تعداد راههایی را که یک مهاجم ممکن است برای دور زدن تضمینهای امنیتی امتحان کند، افزایش دهد. بنابراین درک سطح حمله، برای ارزیابی ریسک سیستماتیک و اولویتبندی اقدامات دفاعی، نقشی محوری دارد.
بستر و کاربرد
متخصصان امنیت و حسابرسان از اصطلاح سطح حمله برای توصیف دامنهی چیزهایی استفاده میکنند که باید در یک ممیزی امنیتیِ یک پروتکل زنجیره بلوکی (blockchain) یا قرارداد هوشمند (smart contract) تحلیل شوند. نقشهبرداری از سطح حمله شامل شناسایی تمام نقاط ورود و تعاملات بالقوهای است که میتوانند به یک اکسپلویت منجر شوند، از جمله رفتارهای ظریفی مانند الگوهای reentrancy یا تغییرات حالت مبتنی بر oracle. این نقشهبرداری فرض نمیکند که هر عنصر ناامن است، بلکه هر کدام را بهعنوان یک محل بالقوه که ممکن است در آن نقصی وجود داشته باشد، در نظر میگیرد.
در طراحی پیشرفتهی پروتکل، به حداقل رساندن و مقاومسازی سطح حمله یک هدف اصلی امنیتی است. طراحان ممکن است قابلیتهای در معرض دید را کاهش دهند، منطق قرارداد را ساده کنند یا وابستگیهای خارجی را محدود کنند تا تعداد مسیرهای حملهی قابل استفاده را کم کنند. بنابراین مفهوم سطح حمله یک انتزاع سطحبالا برای اندیشیدن دربارهی میزان پیچیدگی وضعیت امنیتی یک سیستم فراهم میکند و نشان میدهد که چگونه تغییرات در معماری، یکپارچهسازیها یا حاکمیت میتواند میزان در معرض بودن سیستم در برابر اکسپلویت را افزایش یا کاهش دهد.