خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

با Pyarmor از اسکریپت های پایتون خود در برابر مهندسی معکوس محافظت کنید

ممکن است نخواهید اسکریپت های مهم پایتون شما توسط بازیگران مخرب مهندسی معکوس شوند. در اینجا نحوه محافظت از آن آورده شده است.

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

اجرای اقدامات امنیتی قوی، مانند مبهم سازی و تأیید مجوز، نرم افزار شما را در برابر تهدیدات احتمالی تقویت می کند. حفاظت از اسکریپت های پایتون فقط یک تمرین نیست. این یک استراتژی حیاتی برای اطمینان از محرمانه بودن نوآوری های شما و حفظ اعتماد کاربران شما در چشم انداز دیجیتال است.

درک Pyarmor

Pyarmor یک کتابخانه خط فرمان است. این به محافظت و مبهم کردن اسکریپت ها و بسته های پایتون کمک می کند. کد اصلی پایتون را به شکلی تبدیل می کند که درک آن با حفظ عملکرد آن دشوارتر است. فرآیند مبهم سازی متغیرها، توابع و کلاس ها را به نام های غیر توصیفی تغییر نام می دهد. همچنین نظرات را حذف می کند و کد را بازسازی می کند. این کار مهندسی معکوس، دستکاری یا کپی کد را دشوار می کند.

Pyarmor می تواند اسکریپت های پایتون فردی و کل بسته ها را ایمن کند و حتی تأیید مجوز را به کد شما اضافه کند.

نصب کتابخانه Pyarmor

Pyarmor در فهرست بسته Python (PyPI) فهرست شده است. با اجرای دستور زیر از pip برای نصب آن استفاده کنید:

pip install pyarmor

نصب Pyarmor در همان دایرکتوری که پروژه شما را میزبانی می کند برای شما الزامی نیست. شما می توانید آن را در هر نقطه از رایانه خود نصب کنید و بتوانید هر اسکریپت پایتون را از هر دایرکتوری ایمن کنید.

با این حال، اگر می‌خواهید اسکریپت‌های ایمن شده را بدون نیاز به نصب Pyarmor بر روی ماشین مورد نظر اجرا کنید، باید آن را در همان فهرستی که پروژه شما میزبانی می‌کند، نصب کنید. این به این دلیل است که اسکریپت های ایمن حاوی ارجاعاتی به زمان اجرا Pyarmor هستند که برای اجرای اسکریپت ها باید وجود داشته باشند.

مطلب مرتبط:   نحوه ایجاد یک مسیر محافظت شده در React

ایمن سازی اسکریپت های پایتون فردی

ایمن سازی اسکریپت های فردی با استفاده از Pyarmor ساده است. اسکریپت زیر که دو عدد را جمع می کند به عنوان مثال عمل می کند.

def add_numbers(num1, num2):
   result = num1 + num2
   print("The sum of {} and {} is: {}".format(num1, num2, result))


# Example usage
num1 = float(input("Enter the first number: "))
num2 = float(input("Enter the second number: "))
add_numbers(num1, num2)

از خط فرمان برای رفتن به دایرکتوری که Pyarmor را در آن نصب کرده اید استفاده کنید. سپس دستور زیر را برای رمزگذاری و مبهم کردن اسکریپت خود اجرا کنید. نام اسکریپت خود را جایگزین main.py کنید.

pyarmor gen --output dist main.py

پس از اجرای دستور، Pyarmor یک پوشه جدید به نام dist ایجاد می کند. داخل آن اسکریپت امن شما قرار دارد.

خروجی نشان دهنده پوشه جدیدی است که توسط PyArmor در یک IDE ایجاد شده است

اسکریپت ایمن را باز کنید تا محتویات آن را ببینید.

محتویات یک اسکریپت رمزگذاری شده با PyArmor

اسکرین شات بالا خروجی را بعد از مبهم کردن و رمزگذاری اسکریپت اضافه ساده Pyarmor نشان می دهد. اکنون نمی‌توانید با نگاه کردن به فیلمنامه بفهمید چه کاری انجام می‌دهد.

برای اجرای اسکریپت ایمن، ترمینال یا خط فرمان خود را باز کنید و به مکانی که حاوی فهرست دور است بروید. سپس از دستور زیر برای اجرای اسکریپت استفاده کنید:

python dist/main.py

نام اسکریپت خود را جایگزین main.py کنید. اسکریپت باید همانطور که بدون ابهام اجرا می شود اجرا شود. آن را به طور کامل تست کنید تا مطمئن شوید که همه عملکردها همانطور که انتظار دارید کار می کنند.

حفاظت از کل بسته های پایتون

بسته ها بسته به هدفشان می توانند شامل چند ماژول یا صدها ماژول باشند. حفاظت از هر ماژول به طور جداگانه می تواند خسته کننده باشد. خوشبختانه، Pyarmor این توانایی را دارد که یک بسته کامل را بدون نیاز به تعیین هر ماژول جداگانه ایمن کند.

مطلب مرتبط:   انویدیا می گوید هوش مصنوعی کدنویسی را از بین می برد، اما در اینجا 5 دلیل برای اشتباه بودن آن وجود دارد.

فرض کنید یک بسته پایتون ساده با نام sample_package با ساختار زیر دارید:

sample_package/
|-- __init__.py
|-- module1.py
|-- module2.py

شما می توانید هر تعداد ماژول که می خواهید ایجاد کنید.

برای رمزگذاری و مبهم کردن بسته، ترمینال یا خط فرمان را باز کنید و به دایرکتوری که بسته شما در آن قرار دارد بروید. سپس دستور زیر را اجرا کنید:

pyarmor gen -O dist -r -i sample_package

نمونه_package را با نام بسته خود جایگزین کنید. این دستور دایرکتوری بسته شما را رمزگذاری و مبهم می کند و خروجی محافظت شده را در دایرکتوری dist ذخیره می کند. از بسته محافظت شده مانند سایر بسته های پایتون استفاده کنید.

مثلا. برای استفاده از بسته نمونه بالا، یک اسکریپت جدید در دایرکتوری dist ایجاد کنید:

from my_package import module1, module2

module1.say_hello()
module2.do_something()

وقتی کد را اجرا می کنید، بسته باید مانند قبل از ایمن کردن آن عمل کند.

کنترل دسترسی به اسکریپت شما

ممکن است بخواهید زمان اجرای اسکریپت شما توسط کاربر را محدود کنید. به عنوان مثال در دوره آزمایشی.

برای محدود کردن مدت زمان اجرای اسکریپت، هنگام مبهم کردن اسکریپت از دستور زیر استفاده کنید.

pyarmor gen -O dist -e 30 main.py

تعداد روزهایی را که می خواهید اسکریپت فعال باشد جایگزین 30 کنید. همچنین می توانید آن را با تاریخ دقیق جایگزین کنید. پس از گذشت روزها، فیلمنامه منقضی می شود.

می توانید این عملکرد را با تنظیم تاریخ گذشته آزمایش کنید. این باید باعث شود اجرای اسکریپت با خطا مواجه شود. از دستور زیر برای مبهم کردن اسکریپت با تاریخ انقضا استفاده کنید:

pyarmor gen -O dist -e 2022-01-01 main.py

سپس اسکریپت امن را اجرا کنید.

خطای انقضا کلید مجوز PyArmor

خطا نشان می دهد که کلید مجوز منقضی شده است، بنابراین اسکریپت نمی تواند اجرا شود.

مطلب مرتبط:   خطرات امنیتی مرتبط با ترک بی سر و صدا چیست؟

ایجاد تعادل بین امنیت و کارایی

در حالی که Pyarmor مکانیسم های مبهم سازی قوی را برای افزایش امنیت کد شما ارائه می دهد، مهم است که بین اقدامات امنیتی و حفظ کارایی و عملکرد نرم افزار خود تعادل برقرار کنید. شما می توانید به این هدف دست یابید:

  • ارزیابی نیاز به مبهم سازی: اگر نرم افزار شما شامل الگوریتم های اختصاصی، داده های حساس یا منطق تجاری منحصر به فرد باشد، مبهم سازی بسیار سودمند است. با این حال، برای اسکریپت های منبع باز با حداقل نگرانی های مالکیت معنوی، مبادله بین امنیت و عملکرد بیشتر به سمت کارایی متمایل است.
  • ارزیابی تاثیر عملکرد: مبهم سازی سربار زمان اجرا اضافی را به دلیل عملیات اضافی و تبدیل های اعمال شده به کد معرفی می کند. این تأثیر برای اسکریپت‌های کوچک ناچیز است، اما برای پروژه‌های بزرگتر بیشتر قابل توجه است. شما باید پیامدهای عملکرد مبهم سازی را به دقت ارزیابی کنید و آزمایش انجام دهید تا مطمئن شوید که نرم افزار شما پاسخگو و کارآمد باقی می ماند.
  • انجام به‌روزرسانی‌ها و نگهداری منظم: به‌طور مرتب کد، مجوزها و مکانیسم‌های امنیتی مبهم خود را به‌روزرسانی کنید تا از آسیب‌پذیری‌های احتمالی جلوتر بمانید. این را با نیاز به به حداقل رساندن اختلالات برای کاربران خود متعادل کنید.

آیا کسی می تواند کد مبهم را بشکند؟

کرک نرم افزار به عمل حذف حفاظت از کپی یا مکانیسم های مجوز یک برنامه نرم افزاری اشاره دارد. به منظور دسترسی غیرمجاز به عملکرد کامل آن بدون پرداخت هزینه. مهم است که توجه داشته باشید که مبهم کردن نرم افزار شما به طور کامل از آن در برابر کرکرها محافظت نمی کند.

با تصمیم و منابع کافی، کد مبهم را می توان کرک کرد. این دلیلی است که شما باید به‌روزرسانی‌ها و تعمیرات منظم را برای رفع هر گونه حفره مشکوک انجام دهید.