Tin tức và phân tích của tất cả các thiết bị di động

Bảo vệ tập lệnh Python của bạn khỏi kỹ thuật đảo ngược bằng Pyarmor

Python rất dễ đọc và được sử dụng rộng rãi. Mặc dù khả năng đọc này khuyến khích sự hợp tác nhưng nó làm tăng nguy cơ truy cập trái phép và sử dụng sai mục đích. Đối thủ cạnh tranh hoặc tác nhân độc hại có thể sao chép thuật toán và logic độc quyền của bạn mà không có biện pháp bảo vệ thích hợp. Điều này sẽ ảnh hưởng tiêu cực đến tính toàn vẹn của phần mềm và sự tin tưởng của người dùng.

VIDEO MUO TRONG NGÀY

CUỘN ĐỂ TIẾP TỤC

Việc triển khai các biện pháp bảo mật mạnh mẽ như làm xáo trộn mã nguồn và xác minh giấy phép sẽ củng cố phần mềm trước các mối đe dọa tiềm ẩn. Bảo mật các tập lệnh Python không chỉ là một cách thực hành; đó là chiến lược quan trọng để giữ bí mật những đổi mới của bạn và duy trì niềm tin của người dùng trong môi trường kỹ thuật số.

Hiểu Pyarmor

Pyarmor là một thư viện dòng lệnh. Giúp bảo vệ và làm xáo trộn các tập lệnh và gói Python. Nó biến đổi mã Python gốc thành một dạng khó hiểu hơn trong khi vẫn duy trì chức năng của nó. Quá trình làm rối mã nguồn sẽ đổi tên các biến, hàm và lớp thành các tên không mang tính mô tả. Nó cũng loại bỏ các bình luận và cơ cấu lại mã. Điều này làm cho mã khó được đảo ngược, sửa đổi hoặc sao chép.

Pyarmor có thể bảo mật các tập lệnh Python riêng lẻ và toàn bộ gói, thậm chí thêm xác minh giấy phép vào mã của bạn.

Cài đặt Pyarmor

Pyarmor được liệt kê trong Chỉ mục gói Python (PyPI). Sử dụng pip để cài đặt nó bằng cách chạy lệnh sau:

 pip install pyarmor

Bạn không cần cài đặt Pyarmor trong cùng thư mục với dự án của bạn. Bạn có thể cài đặt nó ở bất cứ đâu trên máy tính của mình và có khả năng bảo mật mọi tập lệnh python từ bất kỳ thư mục nào.

Tuy nhiên, nếu bạn muốn chạy các tập lệnh bảo mật mà không cần phải cài đặt Pyarmor trên máy đích, bạn cần cài đặt nó trong cùng thư mục với dự án của mình. Điều này là do các tập lệnh được bảo mật sẽ chứa các tham chiếu đến thời gian chạy Pyarmor, cần phải có để các tập lệnh chạy.

Bảo mật các tập lệnh python riêng lẻ

Việc bảo mật các tập lệnh riêng lẻ bằng Parmor rất đơn giản. Kịch bản sau đây thêm hai số làm ví dụ.

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


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

Sử dụng dòng lệnh để điều hướng đến thư mục nơi bạn đã cài đặt Pyarmor. Sau đó chạy lệnh sau để mã hóa và làm xáo trộn tập lệnh. Thay thế main.py bằng tên tập lệnh của bạn.

 pyarmor gen --output dist main.py

Khi tôi chạy lệnh Pyarmor, nó sẽ tạo một thư mục mới tên là dist. Bên trong là tập lệnh bảo mật của bạn.

Mở tập lệnh được bảo mật để xem nội dung của nó.

Ảnh chụp màn hình ở trên hiển thị kết quả đầu ra sau khi Pyarmor làm xáo trộn và mã hóa một tập lệnh thêm đơn giản. Bây giờ bạn không thể biết kịch bản đang làm gì chỉ bằng cách nhìn vào nó.

Để chạy tập lệnh được bảo mật, hãy mở terminal hoặc dấu nhắc lệnh và điều hướng đến vị trí chứa thư mục dist. Sau đó sử dụng lệnh sau để chạy tập lệnh:

 python dist/main.py 

Thay thế main.py bằng tên tập lệnh của bạn. Tập lệnh sẽ hoạt động như bình thường mà không bị xáo trộn. Kiểm tra kỹ lưỡng để đảm bảo tất cả các tính năng hoạt động như mong đợi.

Bảo vệ toàn bộ gói Python

Các gói có thể chứa một số mô-đun hoặc hàng trăm mô-đun tùy theo mục đích của chúng. Việc bảo mật từng mô-đun riêng lẻ có thể gây mệt mỏi. May mắn thay, Pyarmor có khả năng bảo mật toàn bộ gói mà không cần phải chỉ định từng mô-đun riêng lẻ.

Giả sử bạn có một gói python đơn giản có tên sample_package với cấu trúc sau:

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

Bạn có thể tạo bao nhiêu mô-đun tùy thích.

Để mã hóa và làm xáo trộn một gói, hãy mở một thiết bị đầu cuối hoặc dấu nhắc lệnh và điều hướng đến thư mục chứa gói đó. Sau đó chạy lệnh sau:

 pyarmor gen -O dist -r -i sample_package 

Thay thế sample_package bằng tên gói của bạn. Lệnh này sẽ mã hóa và làm xáo trộn thư mục gói và ghi đầu ra được bảo vệ vào thư mục dist. Sử dụng gói được bảo vệ như mọi gói python khác.

Ví dụ. Để sử dụng gói ví dụ ở trên, hãy tạo một tập lệnh mới trong thư mục dist:

 from my_package import module1, module2

module1.say_hello()
module2.do_something()

Sau khi chạy mã, gói sẽ hoạt động như trước khi được bảo vệ.

Kiểm soát quyền truy cập vào tập lệnh của bạn

Bạn có thể muốn giới hạn thời gian người dùng chạy tập lệnh của bạn. Ví dụ, trong thời gian dùng thử.

Để giới hạn thời gian chạy của tập lệnh, hãy sử dụng lệnh sau khi làm xáo trộn tập lệnh.

 pyarmor gen -O dist -e 30 main.py 

Thay thế 30 bằng số ngày bạn muốn tập lệnh hoạt động. Bạn cũng có thể thay thế nó bằng ngày chính xác. Sau những ngày này, tập lệnh sẽ hết hạn.

Bạn có thể kiểm tra chức năng này bằng cách đặt ngày trong quá khứ. Điều này sẽ khiến tập lệnh bị lỗi. Sử dụng lệnh sau để làm xáo trộn tập lệnh với ngày hết hạn:

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

Sau đó chạy tập lệnh được bảo mật.

Lỗi báo key bản quyền đã hết hạn nên không chạy được script.

Cân bằng bảo mật và hiệu suất

Mặc dù Pyarmor cung cấp các cơ chế mã hóa mạnh mẽ để giúp mã của bạn an toàn hơn nhưng điều quan trọng là phải đạt được sự cân bằng giữa các biện pháp bảo mật và giữ cho phần mềm của bạn hoạt động hiệu quả. Bạn có thể đạt được điều này bằng cách:

  • Đánh giá nhu cầu che giấu: Nếu phần mềm chứa các thuật toán độc quyền, dữ liệu nhạy cảm hoặc logic nghiệp vụ duy nhất, thì việc che giấu sẽ rất có lợi. Tuy nhiên, đối với các tập lệnh nguồn mở có mối lo ngại tối thiểu về sở hữu trí tuệ, sự đánh đổi giữa bảo mật và hiệu suất nghiêng về hiệu suất nhiều hơn.
  • Đánh giá tác động hiệu suất: Tính năng xáo trộn gây ra tải bổ sung trong thời gian chạy do các hoạt động và chuyển đổi bổ sung được áp dụng cho mã. Tác động này không đáng kể đối với các tập lệnh nhỏ nhưng trở nên đáng chú ý hơn đối với các dự án lớn hơn. Bạn nên đánh giá cẩn thận tác động đến hiệu suất của tính năng che giấu mã nguồn và chạy thử nghiệm để đảm bảo phần mềm của bạn vẫn phản hồi nhanh và hiệu quả.
  • Thực hiện cập nhật và bảo trì thường xuyên: Thường xuyên cập nhật mã, giấy phép và cơ chế bảo mật bị xáo trộn để đón đầu các lỗ hổng bảo mật tiềm ẩn. Cân bằng điều này với nhu cầu giảm thiểu sự gián đoạn cho người dùng.

Ai đó có thể giải mã mã bị xáo trộn không?

Bẻ khóa phần mềm đề cập đến việc loại bỏ các cơ chế bảo vệ bản sao hoặc cấp phép ứng dụng. Để có được quyền truy cập trái phép vào đầy đủ chức năng của nó mà không phải trả tiền. Cần lưu ý rằng phần mềm làm xáo trộn không hoàn toàn bảo vệ nó khỏi tin tặc.

Với đủ quyết tâm và nguồn lực, mã bị xáo trộn có thể bị bẻ khóa. Đây là lý do tại sao bạn nên thực hiện cập nhật và bảo trì thường xuyên để vá bất kỳ lỗ hổng đáng ngờ nào.