آنچه در این مقاله می خوانید:
مفهوم IoC چیست و چه کاربردی دارد؟
این مقاله در تاریخ 3 خرداد 1400 نوشته و در تاریخ 25 مهر 1403 مورد بازبینی قرار گرفته است. |
IoC مخفف Indicators of Compromise در امنیت، بخش هایی از Forensic (پیگیری جرائم رایانه ای) را شامل می شود و داده های جمع آوری شده ای است که متخصصان امنیت سایبری و فناوری اطلاعات از آنها به عنوان شواهد برای شناسایی، اصلاح و پاسخ به نقض داده ها و حملات امنیتی استفاده می کنند.
در حالی که IoC ها شواهدی را درباره نقض داده هایی که قبلاً رخ داده است ارائه می دهند، آنها همچنین به سازمان ها کمک می کنند تا استراتژی هایی برای جلوگیری از حملات آینده تهیه کنند. IoC ها اطلاعات ارزشمندی درباره آنچه اتفاق افتاده است می دهند همچنین می توانند برای آمادگی در آینده و جلوگیری از حملات مشابه مورد استفاده قرار گیرند.
به طور کلی مفهوم IoC در امنیت مفهومی است به چه مبحث متنوع اشاره دارد و به صورت کلی اطلاعاتی در رابطه با شواهد یک رخداد و یا حمله امنیتی میباشد. از IoC برای فرآیند های متنوعی به شکل های متنوعی بهرهمیبرند. همانطور که گفتیم مفهوم IoC چیست؟ مفهومی میباشد که استفاده آن در حوزه Forensic میباشد و اغلب برای ارائه توضیحات و شواهد و مدارک متنوع از رخداد امنیتی و یا یک نقص در نرم افزار و یا شبکه میشود و توسط Forensic Investigator ها مورد تجزیه و تحلیل قرار میگیرند.
معمولا Forensic Investigator ها پس از مطلع شدن از یک رخداد امنیتی و یا یک نقض امنیتی شروع به جمع آوری این IoC ها میکنند. به صورت کلی این IoC ها برای شناسایی حملات بعدی و جلوگیری از آنها در نرم افزار ها و محصولات امنیتی بکارگیری میشوند.
برای مثال زمانی که یک نرم افزار ضد ویروس از Digital Signature یک ویروس یا بد افزار برای کشف آن استفاده میکند درواقع Digital Signature مورد نظر یک IoC میباشد. همچنین IoC در تجزیه و تحلیل های Heuristic نیز کاربرد دارد.
IoC چگونه کار می کند؟
فهرست محتوا
همانطور که نویسندگان بدافزار و malware ها سعی در ایجاد نرم افزاری دارند که همیشه از ردیابی جلوگیری کند، هر برنامه رد پایی از خودش در شبکه باقی می گذارد. از این سرنخ ها می توان برای تعیین اینکه آیا شبکه مورد حمله قرار گرفته یا نقض داده رخ داده است استفاده کرد. محققان Forensic از این سرنخ ها برای جمع آوری شواهد پس از حمله سایبری برای تهیه اقدامات مقابله ای و پیگیری اتهامات کیفری علیه یک مهاجم استفاده می کنند. IoC همچنین مشخص می کند چه داده هایی به سرقت رفته و شدت حمله تا چه حد است.
IOC را به عنوان رد پایی در نظر بگیرید که توسط مهاجم پس از حمله سایبری بر جای مانده است. برنامه های Anti-malware می توانند تا حدی حادثه را متوقف کنند، اما IoC ها داده ها و پرونده هایی را که برای مهاجم قابل دسترسی است تعیین می کنند. آنها در یافتن آسیب پذیری ها و تهدیدها برای سرقت اطلاعات بسیار مهم هستند زیرا اطلاعاتی را در مورد راه های محافظت بهتر از شبکه در آینده به سازمان ارائه می دهند.
نمونههایی از IoC:
- اشغال پهنای باند غیر عادی در ترافیک ورودی و یا خروجی از سازمان
- فایلها، برنامهها و پردازههای غیر عادی در نقاط پایانی
- فعالیت غیر عادی در حسابهای کاربری ادمین و سایر اکانتها با دسترسی بالا
- فعالیتهای غیر عادی مانند ترافیک ورودی از کشورهایی که سازمان فعالیتی در آنجا ندارد
- لاگین، دسترسی و سایر فعالیتهای مشکوک در شبکه که نشان دهنده حملات بورت فورس باشد
- رشد غیر عادی در درخواستها و افزایش خواندن فایلهای سازمانی
- ترافیک غیر عادی در پورتهایی که معمولا استفاده نمیشود
- دستکاری فایلها، سرویس DNS، رجیستری و تنظیمات سیستمی کلاینتها حتی در دستگاههای موبایلی
- حجم زیادی از فایلهای فشرده شده در مکانهایی که نباید باشند
یشتر بخوانید: Network Forensic چیست؟
در اینجا برخی از IoC های رایج موجود در حال حاضر را بیان می کنیم:
ـ ترافیک شبکه خروجی غیرمعمول یا Unusual Outbound Network Traffic:
شاید یکی از رایج ترین نشانه های نقض امنیت، ناهنجاری در الگوها و حجم ترافیک داده ها در شبکه باشد. علاوه بر تجزیه و تحلیل ترافیکی که به شبکه شما وارد می شود، باید بر میزان و مدت ماندگاری داده ها درون شبکه نیز نظارت داشته باشید. تغییرات در ترافیک خروجی می تواند نشان دهنده حمله در شبکه شما باشد. بهترین روش این است که کلیه فعالیتهای موجود در شبکه را کنترل کنید، اعم از ورودی و خروجی.
ـ بی نظمی های جغرافیایی یا Geographical Irregularities:
اگر قبلاً ایمیلی از طرف سرویس دهنده ایمیل خود دریافت کرده اید که به شما هشدار می دهد که به صندوق پستی شما از کشوری دیگر دسترسی پیدا شده است، می فهمید که بی نظمی جغرافیایی چیست و IOC چقدر می تواند برای امنیت داده ها و اطلاعات شخصی شما مفید باشند.
پس تصور کنید IoC های نظارت بر بی نظمی های جغرافیایی چقدر می توانند برای مشاغل ارزشمند باشند. این بی نظمی ها در ترافیک ورودی می تواند شواهد مفیدی را در مورد کشش حمله مهاجمان از کشور یا قاره دیگر به شما ارائه دهد.
ـ دسترسی به حساب های کاربری ممتاز یا Anomalies with Privileged User Accounts:
امکان دسترسی به یک حساب کاربری با دسترسی بالا توسط یک مهاجم است. آنها معمولاً این کار را با ورود به حساب کاربری ادمین یا افزایش مجوزها برای حساب هایی که از قبل به آنها دسترسی دارند انجام می دهند. تغییرات در فعالیت حساب، مانند حجم اطلاعات دسترسی یافته یا تغییر یافته یا نوع سیستم قابل دسترسی، IoC های خوبی برای نظارت است.
ـ افزایش قابل توجه در پایگاه داده یا Substantial Rise in Database Read Volume:
اکثر سازمان ها محرمانه ترین اطلاعات شخصی خود را در قالب پایگاه داده ذخیره می کنند. به همین دلیل، پایگاه داده های شما همیشه هدف اصلی مهاجمان خواهند بود. افزایش میزان خواندن پایگاه داده نشانگر خوبی است که مهاجم در تلاش است به داده های شما نفوذ کند.
ـ درخواست های بیش از حد از پرونده های مهم یا Excessive requests on important files:
بدون داشتن یک حساب با دسترسی بالا، یک مهاجم مجبور می شود روش های مختلف را کشف کند و آسیب پذیری مناسب را برای دسترسی به پرونده ها پیدا کند. تلاش های دسترسی بسیار از همان IP یا منطقه جغرافیایی باید بررسی شود.
ـ تغییرات مشکوک در پیکربندی یا Suspicious configuration changes:
تغییر پیکربندی ها در فایل ها، سرورها و دستگاه ها می تواند به مهاجم درب ورودی دوم به شبکه را بدهد. این تغییرات همچنین می تواند آسیب پذیری هایی را ایجاد کند.
ـ سیل بازدید از سایت، مکان خاص یا Flooded traffic to a specific site or location:
یک حمله در دستگاه ها می تواند آنها را به یک botnet تبدیل کند. یک مهاجم سیگنالی را به دستگاه آسیب دیده ارسال می کند تا ترافیک را در یک هدف خاص جاری کند. فعالیت زیاد ترافیکی از چندین دستگاه به یک IP خاص می تواند به معنای این باشد که دستگاه های داخلی بخشی از DDoS هستند. وظیفه ی یک Forensic این است که تمام شواهد IoC را برای تعیین آسیب پذیری مورد استفاده قرار دهد.
ـ خطاهای احراز هویت بالا یا High authentication failures:
در تصاحب حساب، مهاجمان از اتوماسیون برای احراز هویت استفاده می کنند. میزان بالای تلاش برای احراز هویت می تواند نشانگر این باشد که یک مهاجم اعتبارنامه را به سرقت برده و در تلاش است تا حسابی را پیدا کند که به شبکه دسترسی داشته باشد.
بیشتر بخوانید: معرفی 7 نوع جدید DDoS Attack
استفاده از IoC Detection برای بهبود ردیابی:
پس از یک حادثه می توان از اقدامات امنیت سایبری IoC برای تعیین اشتباه استفاده کرد تا سازمان بتواند از هرگونه سوء استفاده در آینده از همان ناحیه جلوگیری کند. نظارت بر IoC، سازمان ها را قادر می سازد تا مسایل امنیتی را بهتر شناسایی و پاسخ دهند. جمع آوری و همبستگی IOC در زمان واقعی به این معنی است که سازمان ها می توانند با سرعت بیشتری حوادث امنیتی را که ممکن است توسط ابزارهای دیگر قابل شناسایی نباشند، شناسایی کنند و منابع لازم را برای انجام تجزیه و تحلیل Forensic از حوادث فراهم می کنند.
اگر تیم های امنیتی الگوهای IOC خاص را کشف کنند، می توانند ابزارها و سیاست های امنیتی خود را برای محافظت در برابر حملات آینده نیز به روز کنند. سازمان هایی که با دقت تمام IOC ها را رصد می کنند و با آخرین یافته ها و گزارش های IOC همگام می شوند می توانند میزان تشخیص و زمان پاسخ را به میزان قابل توجهی بهبود بخشند.
مفهوم IoA چیست:
تهدیدات سایبری مدرن روز به روز در حال پیچیدهتر شدن هستند و توانایی شناسایی چنین تهدیداتی در مراحل اولیه بسیار با ارزش است. تیمهای امنیتی از IoAها برای محافظت از سیستمها و دادههای حساس در برابر تهدیدات پیشرفته پایدار(APT) و آسیب پذیریهای روز صفر استفاده میکنند.
IoA نقش بسیار مهمی در شناسایی تهدیدات سایبری در مراحل ابتدایی حمله را بازی میکنند. وقتی سازمان مورد حمله سایبری قرار گرفته باشد هر ثانیه ارزشمند است و اگر تیم امنیتی بتواند از پیشروی مهاجمان در شبکه جلوگیری کند از خسارات و سرقت اطلاعات پیشگیری خواهند کرد.
IoA یا Inversion of Authority (وارونگی اقتدار) یک مفهوم کمتر شناخته شده و نسبتاً جدید در مهندسی نرمافزار است که مشابه با مفهوم Inversion of Control (IoC) عمل میکند، اما به جای واگذاری کنترل به فریمورک، بر واگذاری مسئولیت یا اقتدار تصمیمگیری در بخشهای مختلف سیستم تمرکز دارد.
در IoA، هدف این است که به جای اینکه یک نهاد مرکزی تصمیمگیریها یا عملیات اصلی سیستم را کنترل کند، این اقتدار و تصمیمگیری به واحدهای مجزا یا محلی واگذار شود. این رویکرد برای ایجاد سیستمهایی استفاده میشود که از نظر توزیع اقتدار غیرمتمرکز و مستقل هستند.
- سیستمهای توزیعشده: در سیستمهای بزرگ که شامل چندین نود (Node) یا ماژول مستقل هستند، IoA به ماژولها اجازه میدهد تا تصمیمات محلی و مستقل بگیرند، بدون نیاز به درخواست از یک واحد مرکزی.
- معماری Microservices: در این معماری، هر سرویس مسئول تصمیمگیری و مدیریت عملیات خود است و این باعث کاهش وابستگی به یک موجودیت مرکزی میشود.
- هوش مصنوعی و سیستمهای عامل مستقل: در این نوع سیستمها، واحدها یا عوامل تصمیمگیری میتوانند بدون نیاز به دستور مستقیم از یک نهاد بالادستی، اقدامات خود را انجام دهند.
انواع IoA :
- آنومالی در شبکه: پترنهای غیر عادی در جریان دادهها یا ارتباط غیر منتظره با خارج از سازمان که نشان دهنده انحراف از هنجار را نشان میدهد. برای مثال: یک افزایش شدید و پیکان مانند در دادههای انتقال داده شده به یک آدرس آی پی ناشناس میتواند یک پرچم قرمز باشد. مدیران شبکه باید در برابر چنین اتفاقاتی هوشیار باشند چرا که رخدادهای این شکلی اغلب مقدم بر اشکال آشکارتر حملات سایبری مانند، نقض اطلاعات یا نفوذ به سیستم هستند.
- رفتارهای مشکوک کاربران: تیمهای امنیتی باید فعالیتهای کاربران را نیز زیر نظر داشته باشند مانند، ورود به حساب کاربری در ساعات غیر عادی، تلاشهای مداوم برای دسترسی به ناحیههای ممنوعه و یا افزایش غیرمعمول دسترسی به دادهها. چنین فعالیتهای ممکن است نشان از آن باشد که حساب کاربری یوزر لو رفته باشد و یا باید تهدید داخلی روبرو باشیم. مانیتورینگ مدوام رفتارهای کاربران در شناسایی IoA های اولیه بسیار با اهمیت است.
- نشانگرهای سطح سیستم: چنین IoAهایی شامل تغییرات غیر عادی در یکپارچگی فایل، ویرایش غیرمجاز در پیکربندی سیستم و یا نصب نرم افزار ناشناخته در نقاط پایانی است. این نشانهها معمولا اشاره به این موضوع دارند که یک مهاجم سعی در باز کردن جای پای خود در سیستم قربانی را دارد. تشخیص زود هنگام در سطح سیستم میتواند مانع از گسترش حمله و حرکت افقی مهاجم در سازمان شود.
تفاوت IoA و IoC:
تفاوتهای کلیدی بین IoA (Inversion of Authority) و IoC (Inversion of Control) در هدف، حوزه و نوع کنترلی که معکوس میکنند، قابلتشخیص است. این دو مفهوم بهرغم شباهت در نامگذاری، کاربردها و زمینههای متفاوتی دارند.
همانگونه که توضیح داده شد، IoC مدارکی است که نشان دهنده حمله سایبری در حال انجام یا انجام شده است. از همان لحظهای که یک حلمه سایبری به سازمان انجام میشود IoC ها قابل کشف هستند. این نشانگرها در آنالیز تاثیرات حمله و فارنزیک حلمه کمک کننده هستند. در مقابل IoA به عنوان نشانههای حمله هستند بدین معنا که، ممکن است در آینده بسیار نزدیک حملهای به سازمان رخ دهد. با کمک IoA ها احتمال شناسایی حملات پیش از رخداد وجود خواهد داشت. با مدیریت مناسب IoA ها خواهید توانست از حملات سایبری جلوگیری کنید.
- Inversion of Control (IoC): کنترل اجرای برنامه و مدیریت وابستگیها را از برنامهنویس به یک فریمورک واگذار میکند.
- Inversion of Authority (IoA): اقتدار تصمیمگیری و کنترل عملیات را از یک نهاد مرکزی به واحدهای مستقل یا محلی واگذار میکند.
در کل، IoA میتواند به عنوان رویکردی برای بهبود سیستمهای توزیعشده و معماریهای مستقل به کار رود، جایی که واحدهای مختلف نیاز به اقتدار مستقل دارند تا بدون نیاز به هماهنگی مرکزی عمل کنند.
1. هدف اصلی:
- IoC (Inversion of Control): هدف IoC این است که کنترل جریان برنامه و مدیریت وابستگیها از کد به یک فریمورک یا یک سیستم مدیریتکننده واگذار شود. در واقع، IoC به برنامهنویسان کمک میکند وابستگیها و اجرای کد را از یک سیستم خارجی (معمولاً فریمورکها) مدیریت کنند، به جای اینکه خودشان مستقیماً این کار را انجام دهند.مثال: در یک فریمورک مانند Spring، تزریق وابستگیها (Dependency Injection) یکی از روشهای رایج IoC است که در آن فریمورک وابستگیها را به اشیاء تزریق میکند.
- IoA (Inversion of Authority): IoA به معنای واگذاری اقتدار یا تصمیمگیری از یک نهاد مرکزی به نهادهای مستقلتر است. این رویکرد بیشتر در سیستمهای غیرمتمرکز و توزیعشده کاربرد دارد، جایی که مسئولیت تصمیمگیری و کنترل عملیات بین چندین بخش از سیستم توزیع میشود.مثال: در یک سیستم microservices، هر سرویس بهطور مستقل تصمیمگیری میکند و مسئول عملیات خاص خود است، بدون نیاز به کنترل مرکزی.
2. نوع وارونگی:
- IoC: وارونگی در اینجا به معنای واگذاری کنترل اجرای برنامه و ایجاد اشیاء به یک سیستم خارجی است. یعنی به جای اینکه خود برنامه کنترل همه چیز را در دست داشته باشد، این کنترل را به فریمورک یا مکانیزمهای بیرونی میسپارد.
- IoA: در IoA، وارونگی به معنای واگذاری اقتدار و تصمیمگیری از یک مرکزیت به واحدهای مستقل است. این واحدها ممکن است در یک معماری توزیعشده فعالیت کنند و بدون نیاز به مجوز از یک مرکز، اقدامات خود را انجام دهند.
3. حوزه کاربرد:
- IoC: بیشتر در توسعه نرمافزار و فریمورکها استفاده میشود. این رویکرد به توسعهدهندگان اجازه میدهد تا وابستگیها را از بیرون مدیریت کنند و سیستمهای انعطافپذیرتری ایجاد کنند.مثالهای رایج: فریمورکهای تزریق وابستگی مانند Spring، ASP.NET Core و Angular.
- IoA: بیشتر در سیستمهای توزیعشده و معماریهای مستقل استفاده میشود، جایی که اقتدار و کنترل به صورت غیرمتمرکز توزیع میشود و هر بخش یا سرویس میتواند به صورت مستقل عمل کند.مثالهای رایج: معماریهای microservices، بلاکچین، و سیستمهای چندعاملی (multi-agent systems).
4. نوع کنترل:
- IoC: تمرکز IoC بر روی کنترل اجرای برنامه و مدیریت وابستگیها است. بهطور خاص، کنترل نحوه ایجاد و مدیریت اشیاء از برنامهنویس به فریمورک واگذار میشود.
- IoA: در IoA، کنترل تصمیمگیری و سیاستها از یک نهاد مرکزی به واحدهای مجزا یا محلی واگذار میشود. این واحدها مستقل هستند و میتوانند بدون نیاز به مجوز مرکزی تصمیمگیری کنند.
5. مزایا و تاثیرات:
- IoC:
- کاهش coupling (وابستگی بین کلاسها)،
- افزایش تستپذیری و انعطافپذیری،
- فریمورکها وابستگیها را مدیریت میکنند، نه برنامهنویس.
- IoA:
- افزایش مقیاسپذیری و انعطافپذیری در سیستمهای توزیعشده،
- هر واحد میتواند مستقل از دیگران عمل کند و تصمیمات محلی بگیرد،
- کاهش تنگناهای مرکزی (central bottlenecks) و مشکلات کنترل متمرکز.
ویژگی | IoC (Inversion of Control) | IoA (Inversion of Authority) |
---|---|---|
تمرکز | مدیریت وابستگیها و اجرای برنامه | تصمیمگیری مستقل واحدها یا ماژولها |
کاربرد | فریمورکهای نرمافزاری | سیستمهای توزیعشده و معماریهای غیرمتمرکز |
مزایا | افزایش انعطافپذیری و تستپذیری | مقیاسپذیری و کاهش تنگناهای مرکزی |
نوع وارونگی | کنترل جریان و مدیریت وابستگیها | کنترل اقتدار و تصمیمگیریها |
هدف | واگذاری کنترل اجرای برنامه به فریمورک | واگذاری اقتدار و تصمیمگیری به واحدهای مستقل |
همچنین شما می توانید انواع سرور HP را از فروشگاه اینترنتی مسترشبکه با بهترین قیمت و کیفیت همراه با برترین گارانتی تجهیزات شبکه خریداری نمایید. |
One thought on “مفهوم IoC چیست و چه کاربردی دارد؟”
آیا ioc برنامه است که باید نصب کنیم؟