بسته امنیتی دات
نت
دات نت فریم ورک
جدیدترین و قوی ترین پلتفرمی است که شرکت مایکروسافت در اختیار توسعه
دهندگان برنامه ها و اپلیکیشن های تحت ویندوز ارائه کرده است. این کتابخانه
حجم عظیمی از کلاس ها و توابع را در اختیار برنامه نویسان قرار می دهد
که استفاده از آن ها توسط یکی از زبان های دات نت به راحتی هر چه
تمام میسر می باشد.
فایل های اجرایی و
کتابخانه های تولید شده بر مبنای این پلتفرم اصطلاحا فایل های اسمبلی
(Assembly Files) نامیده می شوند. یکی از ویژگی های بارز این فایل ها،
توانایی خود توصیف کردن آن هاست (Self-describing Assemblies). فایل های
اسمبلی به این دلیل خود توصیف اند که اطلاعات توصیف کننده آن ها (Metadata)
در سرآیند فایل نگهداری می شوند.Metadata اطلاعات مربوط به فضاهای نام،
ساختارها، کلاس ها، پراپرتی ها و ... را نگهداری می کند. نگهداری Metadata
این امکان را فراهم می کند که فایل های اسمبلی کامپایل شده به زبان میانی
مایکروسافت (Intermediate Language Microsoft) به
اختصار IL ، قابلیت کامپایل معکوس (دیکامپایل) و در نتیجه به دست آمدن سورس
کد زبان سطح بالای دات نت را داشته باشند. فضای نام System.Reflection به
کمک این ساختار امکانات زیادی برای بررسی فایل های اسمبلی فراهم می کند.
چرا؟
حال این سوال مطرح
می شود که چرا فایل های اسمبلی از این قابلیت برخوردارند؟ آیا دیکامپایل
شدن فایل ها به معنای نقض امنیت و حقوق تولید کنندگان نرم افزارها و
کتابخانه ها نمی باشد؟
در پاسخ به سوالات
بالا باید گفت که در دنیای مهندسی مفهوم Reverse Engineering یا مهندسی
معکوس شناخته و پذیرفته شده است. چرخه طی شده توسط یک سیستم برای تولید
محصول نهایی، مسیر یک طرفه ای محسوب نمی شود. عکس آن برای رسیدن به اجزا و
عناصر سازنده سیستم، قابل پیمایش بوده و این همان مفهوم مهندسی معکوس می
باشد. هر سیستم مهندسی از این اصل تبعیت کرده و سیستمی کامل محسوب می شود
که اصل مهندسی معکوس را رعایت کند. برنامه نویسی به عنوان یک شاخه مهندسی
که دارای ساختار و معماری تعریف شده مشخصی می باشد، از این اصل مستثنا
نیست. در دنیای تولید نرم افزار قانون رعایت حقوق تولید کننده که به آن حق
کپی رایت اطلاق می شود، وجود دارد. بر اساس این قانون فرد و موسسه ای حق
جعل نرم افزار اعم از جعل و دستکاری کد و یا تکثیر غیر مجاز آن را ندارد.
این قانون به تولید کنندگان کمک می کند که تمام قوای خود را صرف تولید نرم
افزارها با بالاترین کیفیت ممکن کنند بدون اینکه نگران از دست رفتن سرمایه
زمانی و انسانی باشند. از آنجایی که قانون کپی رایت در بسیاری از نقاط دنیا
رعایت نمی شود، تدابیری برای حفظ حقوق تولیدکنندگان در نظر گرفته شده است.
یکی از این تدابیر تولید ابزارهایی است که کدهای کامپیایل شده را از خطر
دیکامپایل و دستکاری محفوظ نگه دارند.
پک
امنیتی دات نت با ارائه جدیدترین و به روزترین ابزارهای امنیتی به منظور
حفاظت از کدهای تولید شده در اختیار برنامه نویسان قرار گرفته است. این پک
شامل محصولات زیر می باشد:

.jpg)
·
Dot Fuscator Professional
Edition V 4.2 (
^ )
·
CODE VEIL V1.3
(
^ )
·
Xeno Code Starter Kit
2007 (
^ )
§
Postbuild 2007
§
Fox Code Analyzer 2007
·
NET Reactor V3.8
(
^ )
·
IntelliLock V1.0
(
^ )
·
Dis# V3.1.2
(
^ )
·
.Net Reflector V5.1
(
^ )
برنامه های
امنیتی چه امکاناتی را در اختیار قرار می دهند؟
دسته بندی زیر
ویژگی ها و امکانات برنامه های امنیتی را توصیف می کند:
مشاهده سورس کد
فایل های اسمبلی
در صورت بارگذاری فایل اسمبلی محافظت نشده، سورس کد
آن را می توان با انتخاب زبان دات نت اعم از سی شارپ، ویژوال بیسیک و ...
مشاهده کرد. برنامه های
Fox Code Analyzer و
.Net Reflector این گزینه را در
اختیار قرار می دهند:
.jpg)
.jpg)
تغییر نام کدهای
اسمبلی (Renaming Codes)
همانطور که در
مورد قبل اشاره شد چنانچه فایل اسمبلی محافظت نشده باشد، به راحتی می توان
سورس آن را به هر زبان دات نت مشاهده کرد ( تمامی زبان های دات نت به IL
کامپایل می شوند به این دلیل اهمیتی ندارد که کد با چه زبانی نوشته شده است
و می توان سورس معادل را به هر زبان دات نت دیکامپایل و مشاهده کرد!). یکی
از گزینه هایی که برای محافظت از فایل های اسمبلی وجود دارد، تغییر نام
کدها با کاراکترهای سمبل می باشد به گونه ای که خوانایی کد و درک منطق آن
کاهش یابد یا به کل از بین برود.برنامه هایی که این گزینه را در اختیار
قرار می دهند:
§
Net Fuscator
.jpg)
§
Postbuild
§
NET Reactor
.jpg)
§
IntelliLock
آیا تغییر نام
کدها برای محافظت فایل کافیست؟
در پاسخ به این سوال باید گفت که با ارائه شدن
برنامه هایی که عکس عمل تغییر نام کد را ارائه می دهند، اندکی از اطمینان
این روش کاسته شده است. برنامه #Dis از جمله این
برنامه هاست:
کد تغییر نام یافته
.jpg)
کد بازگردانده شده
.jpg)
به نظر می رسد که
این گزینه خطر جدی برای کد تغییر نام یافته نباشد چون درک منطق کد کماکن
دشوار باقی می ماند.
Encryption
به کمک برنامه های
امنیتی می توان گزینه های زیر را Encrypt کرد:
§
MSIL : در صورتی که
MSIL رمز شود، برنامه هایی که قابلیت مشاهده سورس کد را می دهند، دیگر قادر
به نمایش دادن کد نخواهند بود. همانطور که ذکر شد Metadata امکان دیکامپایل
شدن را فراهم می کند، بنابراین دستکاری این داده ها دیکامپایل شدن فایل
اسمبلی را غیر ممکن می سازد.
§
Strings : به کمک
این گزینه رشته هایی که در کدنویسی استفاده شده اند، Encrypt می شوند. رشته
هایی وجود دارند که حاوی اطلاعات امنیتی از قبیل رمز عبور یا کد فعال ساز
برنامه بوده و رمز کردن آن ها می تواند باعث افزایش امنیت برنامه شود.
§
Resources : برنامه
های دات نت از منابع مدیریت شده استفاده می کنند که به راحتی قابل استخراج
شدن از فایل و استفاده مجدد می باشند. این گزینه امکان استفاده دیگران از
منابع فایل های اجرایی را سلب می کند.
برنامه هایی که این امکان را فراهم می کنند:
§
CODEVEIL
.jpg)
§
Postbuild
§
Net Reactor
§
IntelliLock
Licensing
گزینه مهم دیگری که در حفاظت از فایل های اجرایی
مطرح می باشد، گزینه Licensing می باشد.
نحوه تولید کلمه رمز، مدت زمان و تعداد دفعات اجرای نسخه آزمایشی برنامه از
جمله موارد مطرح در این مبحث می باشند. برنامه های امنیتی بر اساس سخت
افزار سیستم میزبان
قابلیت تولید کلمه رمز اختصاصی را فراهم می کنند. این امکانات توسط برنامه
های زیر ارائه شده اند:
§
Net Reactor
.jpg)
§
IntelliLock
.jpg)
کلام آخر
از آنجایی که روش
های امنیتی با دستکاری فایل های اسمبلی میسر می شوند، امکان خرابی و اجرای
نادرست فایل ها وجود دارد. هیچ یک از روش ها صد در صد نیستند و ارائه
دهندگان این نرم افزارها هم متذکر این مطلب می باشند. واضح است در صورت
استفاده از این روش ها ضریب امنیتی فایل های اسمبلی به طور محسوسی افزایش
می یابد.
قیمت و نحوه
سفارش بسته
قیمت بسته به همراه هزینه ارسال آن 120000 ریال می باشد. برای سفارش آن و کسب اطلاعات بیشتر، نامه الکترونیکی با عنوان Security Pack به پست الکترونیکی a.hosnaddinov@gmail.com ارسال نموده و یا با شماره تلفن 2753819-0912 تماس بگیرید.