(آنتی ویروس پادویش بیس) Padvish Base
(آنتی ویروس پادویش کورپوریت) Padvish Corporate
Kaspersky Small Office Security
Kaspersky Endpoint Security Select
Kaspersky Endpoint Security Advanced
Kaspersky Total Security for Business
Kaspersky Endpoint Security Cloud
Kaspersky Endpoint Security Cloud Plus
Kaspersky Hybrid Cloud Security
(ضدباج گیر سازمانی پادویش) Padvish Anticrypto
Kaspersky Security for Storage
Padvish EDR
Kaspersky Security Cloud Pro
Kaspersky EDR Optimum
Kapsersky EDR Expert
Padvish MDR
Kaspersky MDR Optimum
Kapsersky MDR Expert
تکنیکی که توسط آن میتوان معنا و مفهوم اصلی پیغامها را به شکلی گیج کننده پنهان نمود تا درک پیامهای رد و بدل شده در یک محیط انتقال ناامن غیر ممکن شود. مبهم سازی در مکالمات روزمره بین انسانها هم به صورت عمدی یا غیر عمدی دیده میشود و معمولا با دورگویی، استفاده از اصطلاحات تخصصی یک حرفه و یا زبان گروهی انجام میشود که ارزش ارتباطی محدودی برای افراد خارج از گروه دارد.
در برنامه نویسی نیز استفاده از تکنیکهای مبهم سازی برای پنهان نمودن دادههای حساس همچون کلیدهای امنیتی جهت جلوگیری از حملات مهندسی معکوس در نرم افزارهای انحصاری معمول است. کدگذاری قسمتی یا تمامی کد برنامه یکی از تکنیکهای مبهم سازی میباشد. روشهای دیگری همچون: حذف متادیتاهای بالقوه آشکار، جایگزین کردن نام متغییر و کلاسها با کلمات بیمعنی و اضافه کردن تکه کدهای بدون کاربرد و زائد در سورس کد برنامه.
استفاده از مبهم سازی در بین هکرها و توسعه دهندگان بدافزار بسیار رایج میباشد، که برای پنهان سازی مکانیزم حملات در برابر سیستمهای تشخیص و شناسایی بدافزار بهره برداری میگردد. حملهای که در سال 2020 به کمپانی SolarWinds انجام شد نمونه بارزی از مبهم سازی برای عبور از گارد امنیت سایبری به شمار میرود.
افزودن کدهای زائد و عبارات پیچیدهای که بعضا هیچ تاثیری در روند اجرای کد ندارند، این تکنیک قادر به فریب دادن آنتی ویروسها با قابلیت شناسایی بر اساس امضاهای دیجیتالی هستند. مقادیری که توسط تکنیکهای مبهم سازی پنهان گردیدهاند، مهندسی معکوس و دیکامپایل کردن را بسیار سخت میکند.
Obfuscation در خصوص تغییر کارکرد برنامه نمیباشد بلکه نمایش و ارائه آنها را گیج کننده میکند. در واقع در روند اجرای برنامه و خروجی آن تغییری انجام نمیگیرد. در اینجا تکه کدی به زبان جاوا اسکریپت داریم:
var greeting = 'Hello World'; greeting = 10; var product = greeting * greeting;
حال میتوانیم با استفاده از روشهای مبهم سازی اقدام به پنهان نمودن نام متغییر و محتوای آن کنیم:
var _0x154f = ['98303fgKsLC','9koptJz','1LFqeWV', '13XCjYtB','6990QlzuJn','87260lXoUxl', '2HvrLBZ','15619aDPIAh','1kfyliT', '80232AOCrXj','2jZAgwY','182593oBiMFy', '1lNvUId','131791JfrpUY']; var _0x52df = function (_0x159d61, _0x12b953) { _0x159d61 = _0x159d61 - 0x122; var _0x154f4b = _0x154f[_0x159d61]; return _0x154f4b; }; (function (_0x19e682, _0x2b7215) { var _0x5e377c = _0x52df; while (!![]) { try { var _0x2d3a87 = -parseInt(_0x5e377c(0x129)) * parseInt(_0x5e377c(0x123)) + -parseInt(_0x5e377c(0x125)) * parseInt(_0x5e377c(0x12e)) + parseInt(_0x5e377c(0x127)) * -parseInt(_0x5e377c(0x126)) + -parseInt(_0x5e377c(0x124)) * -parseInt(_0x5e377c(0x12f)) + -parseInt(_0x5e377c(0x128)) * -parseInt(_0x5e377c(0x12b)) + parseInt(_0x5e377c(0x12a)) * parseInt(_0x5e377c(0x12d)) + parseInt(_0x5e377c(0x12c)) * parseInt(_0x5e377c(0x122)); if (_0x2d3a87 === _0x2b7215) break; else _0x19e682['push'](_0x19e682['shift']()); } catch (_0x22c179) { _0x19e682['push'](_0x19e682['shift']()); } } })(_0x154f, 0x1918c); var greeting = 'Hello\x20World'; greeting = 0xa; var product = greeting * greeting;
همانطور که در مثال بالا مشاهده میکنید، مبهم سازی انجام شده بروی تکه کدی کوچک باعث شده است که کد به صورت چشمی بسیار ناخوانا گردد و برای به دست آوردن مقادیر واقعی آن نیاز به ابزارهای دیگر برای بازگردانی رشتههای متنی مبهم شده نیاز میباشد.
برنامههایی که توسط زبان های برنامه نویسی همچون سی شارپ و جاوا توسعه داده میشود، مبهم سازی راحتتری دارند؛ به دلیل آنکه فرآیند کامپایل در این زبان ها منجر به تولید دستوراتی در یک سطح میانی میانجامد و به طوری کلی برای انسان قابل درک هستند. در مقابل زبان هایی مثل C++ که در هنگام کامپایل کدهای تولید شده به زبان ماشین می باشند، اجرای تکنیک های مبهم سازی به درک نسبتا بالایی از این زبان و توانایی های برنامه نویسی نیازمند است.
رازداری: Obfuscation اطلاعات با ارزشی که داخل کد میباشد را، پنهان میسازد. این ویژگی برای تولید کنندگان نرم افزار که سعی در پنهان نگاه داشتن قسمتهایی از برنامه خود در برابر رقبا و هکرها دارند بسیار مفید میباشد. البته که توسعه دهندگان بدافزار نیز برای پنهان کردن کدهای مخرب خود از مبهم سازی استفاده میکنند.
بهینه سازی: تکنیکهایی از مبهم سازی مانند حذف متادیتا، تاثیر قابل توجهی در کاهش فضای مورد نیاز برنامه برای اجرا شدن دارد.
امنیت: مبهم سازی یک روش تامین امنیت داخلی است؛ که در بعضی موارد از آن به عنوان محافظت از خود یاد میشود. اگر برنامه شما دارای اطلاعات حساسی میباشد و محیط اجرا نامطمئن میباشد استفاده از Obfuscation بسیار مفید خواهد بود.
مهم ترین معایب مبهم سازی استفاده گسترده آن در توسعه بدافزار میباشد. توسعه دهندگان بدافزار از روشهای مختلف مبهم سازی برای فرار از آنتی ویروسهایی که به دنبال ویژگی های خاصی در سورس کد برنامهها هستند؛ استفاده میکنند. با مبهم سازی این ویژگیها احتمال، شناسایی بدافزار توسط آنتی ویروسها کاهش خواهد یافت. مبهم سازی به توسعه دهندگان بدافزار این امکان را میدهد؛ که به جای تولید بدافزار جدید، اقدام به بازتولید نسخهای متفاوت از همان بدافزار قبلی نمایند که با توجه به تفاوتهایی که در محتوای آن ایجاد میشود، آنتی ویروسها با استفاده از مکانیزم تشخیص بدافزار براساس امضای فایل قادر به تشخیص آن نخواهند بود.
یکی دیگر از معایب، کاهش عملکرد نرم افزار میباشد. از آنجایی که رشتههای متنی مبهم شده نیاز به کدگشایی در هنگام اجرا نیاز دارند، این موضوع میتواند تاثیر منفی در عملکرد آن داشته باشد. البته این مسله در خصوص بدافزارها مدنظر نمیباشد و صرفا نرم افزارهای انحصاری که جهت محافظت از اطلاعات نرم افزارها اقدام به استفاده از تکنیکهای مبهم سازی مینمایند بایستی به آن توجه نمایند.
.
نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *
ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم.