امنیت در نرم افزار و برنامه نویسی(قسمت اول)

در ادبیات مرسوم مباحث مرتبط با امنیت نرم افزار ، دیباگر ، نرم افزاری است که امکان بررسی دقیق روند اجرای یک برنامه اجرائی یا کتابخانه یا درایور را فراهم میکند و در این روند ، کنترل کامل و جزئی حافظه ، متغیرها و توابع ، تراکنشهای پردازنده و حافظه و دیسک و ... و ارتباط با کتابخانه های اشتراکی در اختیار دیباگر میباشد .
پنجشنبه، 6 فروردين 1388
تخمین زمان مطالعه:
موارد بیشتر برای شما
امنیت در نرم افزار و برنامه نویسی(قسمت اول)
امنیت در نرم افزار و برنامه نویسی(قسمت اول)
امنیت در نرم افزار و برنامه نویسی(قسمت اول)

در ادبیات مرسوم مباحث مرتبط با امنیت نرم افزار ، دیباگر ، نرم افزاری است که امکان بررسی دقیق روند اجرای یک برنامه اجرائی یا کتابخانه یا درایور را فراهم میکند و در این روند ، کنترل کامل و جزئی حافظه ، متغیرها و توابع ، تراکنشهای پردازنده و حافظه و دیسک و ... و ارتباط با کتابخانه های اشتراکی در اختیار دیباگر میباشد .
دیباگر برنامه اجرائی یا کتابخانه یا درایور را با ترتیباتی قابل پیکره بندی فراخوانی میکند ، به توسعه گر یا آزمایش کننده این امکان را میدهد که در مواقع به خصوصی روند اجرا را متوقف یا منوط به وقوع اتفاق خاصی نماید ، یا حافظه را برای کشف مقدار یا مقادیر به خصوصی جستجو کند یا تراکنشهای برنامه با کتابخانه های همراه ، کتابخانه های سیستم عامل ، سخت افزارهای همراه و ...را کنترل نماید . در واقع وظیفهء اصلی یک دیباگر کنترل کامل فرآیند اجرا شدن یا فراخوانی شدن یک برنامه یا کتابخانه اشتراکی است . اطلاعاتی که میتوان با استفاده از دیباگرها بصورت معمول بدست آورد :
• - هر آنچه بین نرم افزار و حافظه اتفاق می افتد . آدرس دهی متغیرها و توابع ، جایگزینی مقادیر ، تخصیص حافظه و آزاد سازی ، محل دستورات زبان ماشین در حافظه ، داده های در حال ارسال به پردازنده و ...
- وضعیت لحظه به لحظهء پردازنده ؛ محتویات رجیسترها و ...
- هر آنچه بین نرم افزار و کتابخانه هائی که از آن تغذیه میکند واقع میگردد . فراخوانی توابع ، کلاسها یا اشیاء ؛ آدرس کتابخانه ها و توابع مربوطه در حافظه و ...
عموم دیباگرها متداول غیر از موارد فوق اطلاعات متنوع دیگری را نیز فراهم میکنند که بسته به مورد و نوع کاربرد متفاوت هستند .
انواع دیباگر ها :: از دید لایهء کاربرد :
• - Application Mode
- Kernel Mode
دیباگرهای Application Mode فقط به Ring3 و فضای User Mode سیستم عامل دسترسی دارند و امکان Resolve آدرسها فقط در این محدوده برایشان موجود است اما دیباگرهای Kernel Mode یا اصطلاحا" Kernel Debugger ها امکان دسترسی به فضای آدرسی Ring0 یا Kernel Space را نیز دارند و در صورت وجود Symbol file های ، امکان Resolve آدرسها در فضای کرنل نیز برایشان وجود دارد .
از دید نوع عملکرد :
• - Source code Level
- Assembler Level
دیباگرهای Source Code Level با استفاده از سورس کد برنامه ، وظایف مذکور رو کنترل و بررسی میکنند و عموما" هنگام توسعهء یک نرم افزار ، به خطا یابی یا ایجاد روندهای کنترل خطای منطقی کمک بسیاری میکنند اما دیباگرهای Assembler Level بدون استفاده یا نیاز به سورس کد و صرفا" با داشتن نسخهء باینری ، وظایفشون رو انجام میدن . امکان کنترل کد ، در سطح Assembler وجود دارد یعنی فرضا" میتوانید روی دستوری مانند Call یا Test یا Mov برنامه مورد نظر یک BreakPoint بگذارید .
دیباگرها اولین وسیله مورد استفاده نفوذگران نرم افزاری است فلذا روتین های آنتی دیباگ همیشه یکی از عناوین مطرح در روشها و ابزارهای حفاظت از نرم افزار هستند . این روتینها عموما" از این روشها برای شناسائی دیباگر استفاده میکنند :
• - استفاده از مشخصات فردی دیباگر : نام پرسه ، مشخصات ثبت شده در رجیستری ، مولفه های هدر و ...
- بررسی حافظه مجازی اختصاص یافته به برنامه و تست وجود دیباگر ( Hook آدرس یا Hook آدرس ِ آدرس ِ توابع دیباگ ویندوز و بررسی وجود پوینتر به آنها یا عدم وجود آن )
- بررسی پردازنده ( مخصوص روتین های Ring0 )
برای تمامی این Trick ها و روشهائی که از هر کدام منشعب میشود ، نیز ، بالتبع روشهای متقابلی وجود دارد ؛ در مجموع چیزی به عنوان متوقف کردن قطعی همه دیباگر ها منطقا" غیر ممکن است ؛ بهترین روتینهای موجود که هر کدوم با مدتها تحقیق و بررسی ارائه شده اند در کمترین زمان ممکن by Pass شدن . استفاده از روتین های آنتی دیباگ برای حفاظت از نرم افزار روش مناسبی برای کند تر کردن فعالیت نفوذگران تازه کار تر است ، نه چیزی بیشتر .
بجای لیست کردن دیباگرها و توضیحات غیر مفید در مورد هر کدوم ، توصیه های شخصی ام رو مینویسم که صرفا" نشان دهندهء دیدگاه خودم است نه چیز دیگر .
- Windbg : دیباگر مایکروسافت . رابط کاربری نسبتا" خوبی داره و به خوبی با Windows Symbol files متصل میشه . مطمئنا" داشتنش برای کسانی که به هر دلیل به دیباگر نیاز دارند یک ضرورته .
- Ollydbg : قدرتمند ترین دیباگر Assembler Level و Application Mode موجود . اسکریپتهای متعددی برای خودکار سازی بسیاری از وظایف توسط افراد مختلف براش نوشته شده . زندگی بدون Olly برای نفوذگران نرم افزاری قطعا" غیر ممکنه . Olly توسط BCB6 توسعه داده شده/میشه .
- SoftICE : قدرتمند ترین دیباگر Kernel Mode که بصورت همزمان Source Level و Assembler Level نیز هست . بجای تکیه بر رابط کاربری ، دستورات پیچیده ای داره که انعطاف بیشتری به روند دیباگ میده . غیر حرفه ای ها نمیتونن رابطهء خوبی باهاش برقرار کنن . نسخ متعددی داره که هر کدوم رو باید تو یه فضای خاص استفاده کرد . بعدا" ممکنه یه تاپیک مجزا براش ایجاد بشه . Visual SoftICE به عنوان آخرین نسخه ارائه شده ، همراه با DriverStudio ی DevPartnet ارائه میشه و امکانات بصری خوبی به نسخه های سنتی SICE اضافه کرده .
- kd : یا Kernel Debugger ، دیباگر استاندارد DDK ویندوز یا Driver development Kit است . یک Kernel Mode درایور که هم بصورت Assembler Level و هم بصورت Source Level کار میکنه . با SICE قابل مقایسه نیست اما چون سازگاری خوبی با Windows Symbol Files داره ، برای دیباگ درایورها فوق العاده مفیده .
دیباگرهای دیگری هم وجود دارن که هر کدوم ممکنه نسبت به موارد فوق مزایا یا نقائصی داشته باشن ؛ لیکن تجربه نشون میده OllyDBG برای اغلب کاربردها ، SICE برای حرفه ای ها و kd نهایتا" برای توسعه گران Ring0 ، همه نیازها رو برطرف میکنند . این مطلب در ادامه به معرفی ویژگیهای Disassembler ها و Decompiler ها خواهد پرداخت . این مطلب قراره الفبای این حوزه رو به کسانی که باهاش غریبه هستن یاد بده ، نه چیزی بیشتر .
ادامه دارد....

الف




ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.
مقالات مرتبط
موارد بیشتر برای شما
تشریح آتش‌بس در لبنان
play_arrow
تشریح آتش‌بس در لبنان
انفجار در نزدیکی محل بازی فوتبال خداداد و شمسایی در لبنان
play_arrow
انفجار در نزدیکی محل بازی فوتبال خداداد و شمسایی در لبنان
رئیس دادگستری تهران: حکم پروندۀ چای دبش تا پایان ماه صادر می‌شود
play_arrow
رئیس دادگستری تهران: حکم پروندۀ چای دبش تا پایان ماه صادر می‌شود
مهاجرانی: قرار نیست مردم را غافلگیر کنیم
play_arrow
مهاجرانی: قرار نیست مردم را غافلگیر کنیم
شیادی که با هک صفحۀ دختران از آن‌ها اخاذی می‌کرد دستگیر شد
play_arrow
شیادی که با هک صفحۀ دختران از آن‌ها اخاذی می‌کرد دستگیر شد
حقوق سال آیندۀ کارمندان و بازنشستگان چگونه محاسبه می‌شود؟
play_arrow
حقوق سال آیندۀ کارمندان و بازنشستگان چگونه محاسبه می‌شود؟
وزیر نیرو: خاموشی در هیچ نقطه‌ای از کشور اعمال نمی‌شود
play_arrow
وزیر نیرو: خاموشی در هیچ نقطه‌ای از کشور اعمال نمی‌شود
سقط جنین از مافیا گذشته و به صنعت تبدیل شده
play_arrow
سقط جنین از مافیا گذشته و به صنعت تبدیل شده
مجری سابق فاکس‌نیوز: شیطان کاخ سفید را اداره می‌کند
play_arrow
مجری سابق فاکس‌نیوز: شیطان کاخ سفید را اداره می‌کند
محمد گلریز در دیدار با رهبر معظم انقلاب: امیدوارم سرود پیروزی را در مسجد الاقصی بخوانم
play_arrow
محمد گلریز در دیدار با رهبر معظم انقلاب: امیدوارم سرود پیروزی را در مسجد الاقصی بخوانم
تصاویر متفاوت از لحظه ورود رهبر معظم انقلاب در دیدار با بسیجیان
play_arrow
تصاویر متفاوت از لحظه ورود رهبر معظم انقلاب در دیدار با بسیجیان
خطوط مختلف خوشنویسی اسلامی
خطوط مختلف خوشنویسی اسلامی
رازهای زندگی حضرت زهرا (س) از زبان سلمان فارسی
رازهای زندگی حضرت زهرا (س) از زبان سلمان فارسی
روایت یک خبرنگار | قلب تپنده مقاومت
play_arrow
روایت یک خبرنگار | قلب تپنده مقاومت
تصاویری از لحظه انفجار معدن گنجه رودبار
play_arrow
تصاویری از لحظه انفجار معدن گنجه رودبار