مدل سازی تهدید چیست؟

طبقه بندی محتوا : تخصصی مخاطب: متخصصین حوزه امنیت سایبریتعریف:مدلسازی تهدید یک فرآیند ساختار یافته با اهداف زیر است:شناسایی الزامات امنیتیمشخص کردن تهدیدات امنیتی و آسیب پذیری های بالقوهتعیین کمیت تهدید و آسیب پذیری بحرانیاولویت بندی روش های اصلاحخروجی های مدلسازی تهدید:ارائه تصویر کلی از سیستمارائه مشخصات مهاجمان بالقوه ، اهداف و روش های آنهاارائه فهرستی از تهدیداتی که ممکن است بوجود بیایند.مدلسازی تهدید چگونه کار می کند:مدلسازی تهدید با شناسایی انواع عوامل تهدید که به یک برنامه کاربردی یا سیستم کامپیوتری آسیب می رساند، کار می کند و از دیدگاه هکرهای مخرب استفاده می کند تا میزان آسیب پذیری سیستم را مشخص کند. سازمان ها، در حین مدلسازی تهدید، تجزیه و تحلیل کاملی از معماری سیستم، زمینه کسب و کار و سایر موارد (به عنوان مثال: مشخصات عملکردی، اسناد و ...) انجام می دهند. این فرآیند درک عمیقی از سیستم ارائه می دهد و کشف جنبه های مهم سیستم را امکان پذیر می نماید. معمولا سازمان ها ، مدل سازی تهدید را در مرحله طراحی (در مراحل دیگر نیز می توانند انجام دهند.) برنامه های جدید انجام می دهند تا به توسعه دهندگان کمک کنند تا آسیب پذیری ها را پیدا کنند و از پیامدهای امنیتی شیوه طراحی، کد نویسی و پیکربندی خود آگاه شوند.به طور کلی توسعه دهندگان، فرآیند مدلسازی تهدید را در 4 مرحله انجام می دهند:ترسیم نمای کلی: ما در حال ساخت چه چیزی هستیم؟شناسایی تهدیدات: چه اشتباه و یا تهدیدی ممکن است رخ دهد؟کاهش تهدیدات: برای کاهش اشتباهات و یا دفاع در برابر تهدیدات چه می­کنیم؟اعتبار سنجی: هر یک از مراحل قبلی را بدرستی انجام داده ایم؟مزایای مدلسازی تهدید:فرآیند مدلسازی تهدید هنگامی که بدرستی انجام شود، می تواند دید واضحی را در یک پروژه نرم افزاری فراهم کند و به توجیه تلاش های امنیتی کمک می کند. این فرآیند، به یک سازمان کمک می­ کند تا تهدید های امنیتی قابل شناسایی در یک برنامه را مستندسازی کند و در مورد چگونگی برخورد با آنها تصمیمات منطقی بگیرد. در سازمان هایی که از مدلسازی تهدید استفاده نمی شود، تصمیم گیران می توانند بر اساس شواهد اندک یا بدون پشتوانه ، عجولانه تصمیم بگیرند و عمل کنند. به طور کلی فرآیند مدلسازی تهدید، تضمین هایی را فراهم می کند که در توضیح و دفاع از وضعیت امنیتی یک برنامه یا سیستم کامپیوتری مفید هستند. هنگامی که واحد توسعه یک سازمان، اهتمام جدی به موضوع امنیت داشته باشد ، مدلسازی تهدید موثرترین راهکار برای این موضوع خواهد بود که نتایج زیر را در برخواهد داشت:شناسایی مشکلات در اوایل چرخه عمر توسعه نرم افزار(SDLC)- حتی قبل از شروع کدنویسیشناسایی ایرادات طراحی نقطه ای که روش های تست سنتی و بررسی کدها ممکن است از آنها چشم پوشی کنند.ارزیابی شکل های جدیدی از حمله که در غیراینصورت ممکن است در نظر گرفته نشوند.به حداقل رساندن هزینه های تست برنامه، با کمک به تست ها و بررسی کدهای هدفمند.شناسایی الزامات امنیتیرفع مشکلات قبل از انتشار برنامه و جلوگیری از کدنویسی مجدد پرهزینه پس از توسعهفکر کردن به تهدیدات، فراتر از حملات استاندارد برای مسائل امنیتی منحصر به فرد برنامه مدنظربرجسته سازی دارایی ها، عوامل تهدید و کنترل ها به منظور استخراج مولفه هایی که مورد هدف مهاجمان قرار خواهند گرفت.مدلسازی و جانمایی عوامل تهدید، انگیزه ها، مهارت ها و قابلیت ها برای یافتن مهاجمان بالقوه در معماری سیستم.تصورات غلط از مدلسازی تهدیدبرخی افراد بر این باورند که مدلسازی تهدید، تنها یک فعالیت مرحله طراحی است. برخی آن را یک تمرین اختیاری می دانند که تست نفوذ یا بررسی کد می تواند جایگزین آن شود و برخی فکر می کنند که این یک فرآیند بسیار پیچیده است که البته تمامی این تصورات غلط است. موارد زیر به رفع برخی از این تصورات غلط کمک می کند:1. تست نفوذ و بررسی کد نمی تواند جایگزین مدلسازی تهدید شود:تست نفوذ و بازبینی کد امن ، دو فعالیتی هستند که برای یافتن باگ در کد موثر هستند. با این حال ارزیابی های امنیتی (به عنوان مثال مدلسازی تهدید) در کشف نقص های طراحی بهتر هستند.2. دلیل خوبی برای اجرای مدلسازی تهدید پس از استقرار وجود دارد:درک مسائل موجود در استقرارهای فعلی، بر استراتژی معماری امنیتی آینده تاثیر می گذارد و نظارت بر نقاط ضعف ، امکان اصلاح سریع تر و موثرتر را فراهم می کند. بدون درک تهدیدهای بالقوه که یک برنامه با آن مواجه است، نمی توانید مطمئن شوید که به همه رسیک ها رسیدگی می کنید.3. مدلسازی تهدید چندان پیچیده نیست:بسیاری از توسعه دهندگان از ایده مدلسازی تهدید می ترسند. در نگاه اول ممکن است دلهره آور و یا ترسناک به نظر برسد. با این حال اگر وظایف را به مراحل عملی تقسیم کنید، اجرای یک مدل تهدید در یک وب اپلیکیشن ساده (یا حتی با معماری پیچیده) به صورت سیستماتیک انجام می شود. کلید کار این است که با گام های پایه ای شروع کنید.بهترین روشهای مدلسازی تهدید:کاربرد مطلوب مدل سازی تهدید، ارتقای درک امنیتی در کل تیم است. این اولین گام در جهت ایجاد امنیت است که همه مسئولیت آن را بر عهده دارند. از نظر مفهمومی مدل سازی تهدید یک فرآیند ساده است. بنابراین در هنگام ایجاد یا بروزرسانی یک مدل تهدید، این پنج روش اساسی را در نظر بگیرید:1. تعریف دامنه و عمق تحلیل:دامنه را با ذینفعان مشخص کنید، سپس عمق تحلیل را برای تیم های توسعه تجزیه کنید تا آنها بتوانند مدلسازی تهدید نرم افزار را انجام دهند.2. ایجاد درک بصری از آنچه در حال مدلسازی هستید:یک دیاگرام از اجزای اصلی سیستم ( به عنوان مثال، سرور برنامه، دیتابیس، مشتریان و ... و تعاملات بین اجزای آن ایجاد کنید.3. مدلسازی حملات احتمالی:دارایی های نرم افزار، کنترل های امنیتی و عوامل تهدید را شناسایی کنید. موقعیت آنها را در دیاگرام مشخص کنید یا یک مدل امنیتی از سیستم ایجاد کنید. شکل (1) هنگامی که سیستم را مدل سازی کردید، می توانید با استفاده از روشهایی مانند STRIDE تشخیص دهید که چه چیزی ممکن است اشتباه باشد.(یعنی تهدیدات)4. شناسایی تهدیدات:برای تهیه لیستی از حملات احتمالی ، سوالاتی مانند موارد زیر را بپرسید:مسیرهای وجود دارد که یک عامل تهدید بتواند بدون عبور از یک کنترل امنیتی به یک دارایی برسد؟یک عامل می تواند کنترل امنیتی ایجاد شده را شکست دهد؟یک عامل تهدید برای شکست این کنترل چه باید بکند؟5. ایجاد یک ماتریس قابل ردیابی از کنترل های امنیتی گم شده یا ضعیف:عوامل تهدید را در نظر بگیرید و مسیرهای کنترل آنها را دنبال کنید. اگر بدون عبور از یک کنترل امنیتی به دارایی نرم افزار دسترسی پیدا کردید ، این یک حمله بالقوه است. اگریک کنترل را انجام می دهید، در نظر بگیرید که آیا یک عامل تهدید را متوقف می کند یا اینکه عامل تهدید روش هایی برای دورزدن آن خواهد داشت؟شکل 1 : مدل امنیتی یک سیستمرویکرد مدل سازی تهدید Synopsys:خدمات امنیتی نرم افزار synopsis شامل مدلسازی تهدید است که می تواند نقاط ضعف بالقوه ای را که ممکن است حساسیت سیستم شما به حمله را افزایش دهد شناسایی کند. از جمله نقص طراحی امن، حذف کنترل امنیتی ، کنترل پیکربندی اشتباه، ضعف ها یا سو استفاده.رویکرد سطح بالا Synopsis:همانطور که شکل 2 نشان می دهد، رویکرد سطح بالا synopsis برای مدلسازی تهدید از مراحل زیر پیروی می کند:1. مدلسازی سیستم2. تجزیه و تحلیل تهدیدات3. اولویت بندی تهدیداتشکل 2: رویکرد مدل سازی تهدید Synopsys1. مدل سازی سیستم:مدلسازی سیستم از دو بخش تشکیل شده است:1) ایجاد یک شکل جزئی با نمایش جریان کنترل ( که تمام مسیرهای اجرایی ممکد در یک برنامه را نشان می دهد.)2) شناسایی دارایی ها ، کنترل های امنیتی ، مناطق اعتماد (تراست) و عوامل تهدید.2. تجزیه و تحلیل تهدیدات :شاید مهم ترین فعالیت در مدلسازی تهدید، شناسایی تهدیدات باشد. بیشتر رویکردها به دو دسته تقسیم می شوند:1) رویکرد چک لیست محور: بسیاری از رویکردهای مدلسازی تهدید شامل یک چک لیست یا یک الگو هستند. به عنوان مثال STRIDE به شما توصیه میکند که شش نوع تهدید جعل، دستکاری، انکار، افشاری اطلاعات، انکار خدمات و افزایش امتیاز را برای تمام جریان های داده ای که از مرز اعتماد سیستم عبور می کنند، در نظر بگیرید.2) رویکرد غیرچک لیست محور: این رویکرد عموما از روش های خلاقانه (مانند طوفان فکری) برای شناسایی حملات استفاده می کند.تحلیل Synopsys از یک رویکرد شبه چک لیست استفاده می کند. این روش از یک الگو برای هدایت تحلیل اصلی استفاده می کند، اما همچنان تحلیل خلاق را باقی می گذارد. Synopsys از تجزیه و تحلیل پروتکل برنامه های از پیش ساته برای پروتکل های کاربردی متداول مانند kerberos، OIDC، SAML، OAuth، تایید هویت مبتنی بر گذرواژه و غیره استفاده می کند. این لیست جامع نیست، اما به شما اجازه می دهد در مورد حوزه هایی که برای تحلیل کردن مهم است فکر کنید.3. اولویت بندی تهدیدات:وقتی سیستم را مدلسازی می کنید و تحلیل تهدید انجام می دهید، در واقع فهرستی از تهدیدات را ایجاد کرده اید. اکنون زمان اولویت بندی آنها فرارسیده است. Synopsys برای مشخص کردن شدت هر تهدید، از رویکرد NIST برای اولویت بندی تهدیدات ، با استفاده از کمی سازی احتمال و تاثیر هر تهدید استفاده می کند.ترجمه ای آزاد از منبع: https://www.synopsys.com/glossary/what-is-threat-modeling.html