Možda ne želite da vaše ključne Python skripte budu obrnuto projektirane od strane zlonamjernih aktera. Evo kako ga možete zaštititi.

Python je vrlo čitljiv i ima široku upotrebu. Iako ova čitljivost potiče suradnju, povećava rizik od neovlaštenog pristupa i zlouporabe. Vaši konkurenti ili zlonamjerni akteri mogu replicirati vaše algoritme i vlasničku logiku bez odgovarajućih zaštitnih mjera. To će negativno utjecati na integritet vašeg softvera i povjerenje vaših korisnika.

Provedba robusnih sigurnosnih mjera, kao što su maskiranje i provjera licence, jača vaš softver protiv potencijalnih prijetnji. Zaštita Python skripti nije samo praksa; ključna je strategija za osiguranje povjerljivosti vaših inovacija i održavanje povjerenja vaših korisnika u digitalnom okruženju.

Razumijevanje Pyarmora

Pyarmor je biblioteka naredbenog retka. Pomaže u zaštiti i maskiranju Python skripti i paketa. Pretvara izvorni Python kod u oblik koji je teže razumjeti, a istovremeno zadržava svoju funkcionalnost. Proces maskiranja preimenuje varijable, funkcije i klase u neopisna imena. Također uklanja komentare i restrukturira kod. To otežava kod za obrnuti inženjering, petljanje ili kopiranje.

instagram viewer

Pyarmor može osigurati pojedinačne Python skripte i cijele pakete, pa čak i dodati potvrdu licence vašem kodu.

Instaliranje biblioteke Pyarmor

Pyarmor je naveden na Python Package Indexu (PyPI). Koristite pip da ga instalirate pokretanjem sljedeće naredbe:

pip install pyarmor

Nije nužno instalirati Pyarmor u isti direktorij u kojem se nalazi vaš projekt. Možete ga instalirati bilo gdje na svom računalu i moći ćete osigurati sve Python skripte iz bilo kojeg direktorija.

Međutim, ako želite pokrenuti osigurane skripte bez potrebe za instaliranjem Pyarmora na ciljnom računalu, trebate ga instalirati u isti direktorij u kojem se nalazi vaš projekt. To je zato što će osigurane skripte sadržavati reference na Pyarmor runtime, koji će morati biti prisutan kako bi se pokrenule skripte.

Osiguravanje pojedinačnih Python skripti

Osiguravanje pojedinačnih skripti pomoću Pyarmora je jednostavno. Sljedeća skripta koja zbraja dva broja poslužit će kao primjer.

defadd_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)

Koristite naredbeni redak za navigaciju u direktorij u koji ste instalirali Pyarmor. Zatim pokrenite sljedeću naredbu za šifriranje i maskiranje vaše skripte. Zamijeniti glavni.py s nazivom vaše skripte.

pyarmor gen --output dist main.py

Nakon pokretanja naredbe, Pyarmor stvara novu mapu pod nazivom dist. U njemu se nalazi vaša zaštićena skripta.

Otvorite osiguranu skriptu da vidite njezin sadržaj.

Gornja snimka zaslona prikazuje izlaz nakon što Pyarmor maskira i šifrira jednostavnu skriptu dodavanja. Sada ne možete reći što skripta radi samo gledajući je.

Da biste pokrenuli osiguranu skriptu, otvorite svoj terminal ili naredbeni redak i idite do lokacije koja sadrži dist imenik. Zatim upotrijebite sljedeću naredbu za pokretanje skripte:

python dist/main.py

Zamijeniti glavni.py s nazivom vaše skripte. Skripta bi se trebala izvoditi kao i bez zamagljivanja. Temeljito ga testirajte kako biste bili sigurni da sve funkcije rade kako očekujete.

Zaštita cijelih Python paketa

Paketi mogu sadržavati nekoliko modula ili stotine modula ovisno o njihovoj namjeni. Zaštita svakog modula zasebno može biti zamorna. Srećom, Pyarmor ima mogućnost osigurati cijeli paket bez potrebe da specificirate svaki modul zasebno.

Pretpostavimo da imate jednostavan Python paket pod nazivom uzorak_paketa sa sljedećom strukturom:

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

Možeš kreirajte onoliko modula koliko želite.

Za šifriranje i maskiranje paketa, otvorite terminal ili naredbeni redak i dođite do direktorija u kojem se nalazi vaš paket. Zatim pokrenite sljedeću naredbu:

pyarmor gen -O dist -r -i sample_package

Zamijeniti uzorak_paketa s nazivom vašeg paketa. Ova naredba će šifrirati i maskirati vaš direktorij paketa i spremiti zaštićeni izlaz u dist imenik. Koristite zaštićeni paket kao što biste to učinili za bilo koji drugi Python paket.

Na primjer. Za korištenje gornjeg uzorka paketa, stvorite novu skriptu unutar dist imenik:

from my_package import module1, module2

module1.say_hello()
module2.do_something()

Kada pokrenete kôd, paket bi trebao funkcionirati kao prije nego što ga osigurate.

Kontrola pristupa vašoj skripti

Možda ćete htjeti ograničiti vrijeme u kojem korisnik pokreće vašu skriptu. Na primjer tijekom probnog roka.

Kako biste ograničili vrijeme izvođenja skripte, upotrijebite sljedeću naredbu prilikom maskiranja skripte.

pyarmor gen -O dist -e 30 main.py

Zamijeniti 30 s brojem dana za koje želite da skripta bude aktivna. Možete ga zamijeniti i točnim datumom. Nakon isteka dana skripta će isteći.

Ovu funkciju možete testirati postavljanjem prošlog datuma. Ovo bi trebalo pokrenuti skriptu kao pogrešku. Upotrijebite sljedeću naredbu da biste maskirali skriptu s isteklim datumom:

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

Zatim pokrenite osiguranu skriptu.

Pogreška pokazuje da je licencni ključ istekao pa se skripta ne može pokrenuti.

Usklađivanje sigurnosti i učinkovitosti

Iako Pyarmor nudi robusne mehanizme zamagljivanja za poboljšanje sigurnosti vašeg koda, to jest važno je uspostaviti ravnotežu između sigurnosnih mjera i održavanja učinkovitosti i performansi vašeg softver. To možete postići na sljedeći način:

  • Procjena potrebe za zamagljivanjem: Ako vaš softver uključuje vlasničke algoritme, osjetljive podatke ili jedinstvenu poslovnu logiku, maskiranje je vrlo korisno. Međutim, za skripte otvorenog koda s minimalnim problemima intelektualnog vlasništva, kompromis između sigurnosti i performansi više naginje prema učinkovitosti.
  • Procjena učinka na izvedbu: Zamagljivanje uvodi dodatno opterećenje za vrijeme izvođenja zbog dodatnih operacija i transformacija primijenjenih na kod. Ovaj utjecaj je zanemariv za male skripte, ali postaje vidljiviji za veće projekte. Trebali biste pažljivo procijeniti implikacije zamagljivanja na izvedbu i provesti testiranje kako biste bili sigurni da vaš softver ostaje brz i učinkovit.
  • Provođenje redovitih ažuriranja i održavanja: Redovito ažurirajte svoj maskirani kod, licence i sigurnosne mehanizme kako biste bili ispred potencijalnih ranjivosti. Uravnotežite to s potrebom da smanjite smetnje za svoje korisnike.

Može li netko razbiti zamagljeni kod?

Krekiranje softvera odnosi se na radnju uklanjanja zaštite od kopiranja ili mehanizama licenciranja softverske aplikacije. Kako bi se neovlašteno pristupilo njegovoj punoj funkcionalnosti bez plaćanja za to. Važno je napomenuti da maskiranje softvera ne štiti ga u potpunosti od krekera.

Uz dovoljno odlučnosti i resursa zamagljeni kod se može probiti. To je razlog zašto biste trebali ciljati na provođenje redovitih ažuriranja i održavanja kako biste zakrpali sve sumnjive rupe.