نمایش نتایج 1 تا 5 از 5

نام تاپیک: محافظت از برنامهء پایتون

  1. #1

    محافظت از برنامهء پایتون

    توی فکر این بودم چطور میشه از برنامه های پایتون که نوشتیم حفاظت کرد.
    یعنی مثلا ممکنه روی سیستمی که دست دیگران هم بهش میرسه برنامهء شخصی خاصی رو گرچه بصورت موقت استفاده کنیم، اونوقت حتی اگر برنامه رو از روی سیستم پاک کنی ممکنه افراد دیگر با ابزارهای ریکاوری بهش دست پیدا کنن. بعضیا که واقعا دزد هستن و شنیدم برنامه هایی هست که روی سیستم نصب میکنن و بصورت خودکار و پنهان مثلا یکی حافظهء فلش که به سیستم بزنه فایلهاش رو جایی کپی میکنن!
    یه فکری که کردم و فکر میکنم شدنیه اینه که برنامهء پایتون رو توسط الگوریتم AES و این حرفا رمز میکنم و یه پسورد قوی براش میذارم، بعد یه برنامهء استارتر کوچک مینویسم که اول موقع استفاده اون رو اجرا میکنیم، این برنامه پسورد رو میگیره و فایل رمز شده برنامهء اصلی رو رمزگشایی میکنه (در RAM)، محتویاتش رو میخونه و این محتویات رو به مفسر پایتون Pipe میکنه. به این شکل اصولا هیچ فایل سورس رمزگشایی شده ای روی هارد سیستم ذخیره نمیشه که بخوایم نگران ریکاوری و این حرفا باشیم. البته همچنان ممکنه برنامه فایلهای جانبی و داده های خاصی رو روی هارد ذخیره کنه.
    البته آدم میتونه دستی با ابزارهایی که فایل رو بصورت غیرقابل بازگشت دلیت میکنن برنامه رو پاک کنه، ولی خب معلومه این روش محدودیت و مشکلات خودشو داره و نیاز به نصب برنامه هست و اینکه یادت نره و این حرفا، و جلوی بعضیا شاید نشه این کار رو انجام داد. من میخوام یه روش خودکار و با امنیت خوب باشه.
    یه ایدهء دیگه که به ذهنم رسید اینه که برنامه محتویات رمزگشایی شده رو روی هارد کامپیوتر ذخیره و از اونجا اجرا میکنه، ولی در پایان کار یا با فاصلهء زمانی خاصی که برنامه بصورت خودکار قفل میشه (و نیاز به وارد کردن مجدد پسورد داره) میاد و دایرکتوری ای رو که فایلهای برنامه رو درش اکسترکت کرده میخونه و تمام فایلهایی رو که اونجا پیدا میکنه با داده های تصادفی Overwrite میکنه (نکته اینکه اول سایز هر فایل رو بخونه و دقیقا به همون میزان درش بایت های تصادفی بنویسه). البته این روش بنظرم امنیتش کمتره، ولی میشه جایی که به هر علتی نیاز هست و همچنین در ترکیب با روش قبلی بکار برد و مثلا باهاش فایلهای داده ای برنامه رو هم پاک کرد.

  2. #2

    نقل قول: محافظت از برنامهء پایتون

    البته میدونم که ممکنه روی سیستم key logger نصب کرده باشن و پسورد فایل ما رو سرقت کنن، ولی باز برای این هم میشه تمهیدهای اندیشید که این کار براشون خیلی پیچیده تر و مشکل تر بشه که فکر میکنم بتونه جلوی تقریبا تمام موارد رو بگیره (دیگه دوتا دزد دوزاری که بیشتر نیستن!)
    خیلی بدم میاد یکی برنامم رو بدزده. البته نه اینکه من آدم انحصارگری باشم، اتفاقا خودم طرفدار نرم افزار آزاد و بازمتن هستم و تاحالا برنامه ها و کدهای بازمتن زیادی هم نوشتم و بصورت عمومی منتشر کردم، ولی یکی دوتا برنامهء خاص شخصی دارم که به دلایلی فکر نمیکنم هیچوقت بخوام به این سادگی در دسترس دیگران قرار بگیره.

  3. #3

    نقل قول: محافظت از برنامهء پایتون

    دقیقا سوالی که دیشب همین موقع برای من هم پیش امد یه چیزی تو این مایه ها بود، مرسی که پرسیدی.
    من هم دنبال اینم که تحلیلگر نتونه سورس برنامه رو بخونه..
    البته اگه شما دنبال این هستی که فایلی رو که پایک کردی ریکاوری نشه میتونی از متدها و ابزارهای anti forensics استفاده کنی..

  4. #4

    نقل قول: محافظت از برنامهء پایتون

    نقل قول نوشته شده توسط maarek مشاهده تاپیک
    دقیقا سوالی که دیشب همین موقع برای من هم پیش امد یه چیزی تو این مایه ها بود، مرسی که پرسیدی.
    من هم دنبال اینم که تحلیلگر نتونه سورس برنامه رو بخونه..
    بستگی داره هدف شما از اینکه سورس برنامه رو مخفی نگه دارید چی باشه.
    اگر بخاطر امنیت است، یعنی اینکه مثلا کسی نتونه از برنامهء شما سوء استفاده بکنه و مختلش کنه (مثلا کارکرد سروری که برنامهء شما باهاش تبادل اطلاعات میکنه رو مختل کنه)، معمولا این نشان دهندهء «امنیت از طریق تیرگی» است که راهکار حرفه ای نیست، یعنی نشون میده اصل الگوریتم برنامه از نظر امنیتی ضعیفه و ما سعی داریم این ضعف ها رو از دید دیگران پنهان کنیم (مثل جارو کردن آشغال ها به زیر فرش!)، و البته اغلب چنین چیزی امنیت واقعی و کافی رو تامین نمیکنه و تنها درمورد نفوذگرهای کم توان یا کم انگیزه کافیه.
    از دیدگاه امنیت اصولی و حرفه ای، امنیت برنامه در درجهء اول باید چنان طبق روشهای علمی و دقیق و محکم باشه که برای تامین امنیتش نیازی به پنهان کردن الگوریتم و مشخصات فنیش نباشه. مثلا این همه برنامه های بازمتن که هستن اگر قرار بود با در دسترس بودن سورس اونها امنیت نداشته باشن که نمیشد.
    در علم امنیت مدرن تنها چیزهایی که بطور معمول باید پنهان بشن، چیزهایی مثل کلیدهای رمزنگاری هستن.
    البته بعد از اینکه الگوریتم خود برنامه امنیت اصولی داشت، اگر توجیه و صرف کافی داشت میشه از لایه های افزوده مثل تیرگی هم برای محکم کاری و امنیت چندلایه استفاده کرد.

    ولی یک وقت هست هدف شما از پنهان کردن سورس، جلوگیری از کپی و استفادهء غیرمجاز ابداعات و ایده ها یا کل برنامهء شماست. اون بحثش فرق میکنه.
    ولی مثلا میخوای آدرس وبی که دیتای برنامه رو بهش ارسال میکنی مخفی بمونه، خب اینطور چیزها رو با مخفی کردن سورس هم نمیشه مخفی کرد، چون با یک اسنیفر میشه اینها رو فهمید.

  5. #5

    نقل قول: محافظت از برنامهء پایتون

    با توجه به تجربه اندکی که توی زمینه امنیت نرم افزار دارم متاسفانه باید بگم که هر روشی که تا الان ابداع شده واسه امنیت کد، پس از مدت کوتاهی شکسته شده.
    روش هایی که هست.
    تبدیل فایل py به pyc بایت کد....قابل برگشت به کد پایتون با یک سری برنامه مثل Uncompyle2
    مبهم سازی کد...با این روش فقط اسامی توابع و متغیرها تبدیل به اسامی مزخرف می شن و گاها یک سری توابع رو می پیچونه که خوندن کد سخت شه
    پک کردن برنامه با Packer.....تمام پکر ها قابل آنپک کردن هستن.
    قفل نرم افزاری....می زنن
    قفل سخت افزاری...می زننن
    نکته اینه که پایتون که اسکریپته...حتی اگه pyc هم بشه..باز هم به یک زبان میانی تبدیل می شه و بالا گفتم قابل برگشته
    ولی حتی اگر شما کدت تبدیل به زبان ماشین هم بشه...باز هم الگوریتمت با Trace کردن قابل فهمیدنه....string هات قابل دیدنه...و شروطت قابل تغییر.
    پست ناامید کننده ای بود..ولی سرشار از حقیقت تلخ

تاپیک های مشابه

  1. محافظت از برنامه در برابر کراکرها و اعمال مهندسی معکوس
    نوشته شده توسط Developer Programmer در بخش برنامه نویسی در Delphi
    پاسخ: 5
    آخرین پست: شنبه 18 فروردین 1397, 13:36 عصر
  2. پاسخ: 101
    آخرین پست: چهارشنبه 22 خرداد 1392, 13:36 عصر
  3. کپی بانک اطلاعاتی در CD و محافظت از آن
    نوشته شده توسط ashki در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: دوشنبه 03 اسفند 1383, 22:11 عصر
  4. محافظت از اکسس
    نوشته شده توسط mehdi_nan در بخش VB.NET
    پاسخ: 2
    آخرین پست: شنبه 13 دی 1382, 23:40 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •