hogyan lehet megvédeni a forráskódot GitLab és Jscrambler

a fejlesztő csapatok gyorsabban építik, tesztelik és szállítják a kódot, mint valaha. Ma már tudjuk, hogy a biztonságnak szerepe van a DevOps munkafolyamatának korai szakaszában, de ezek a biztonsági ellenőrzések többnyire a hibák és sebezhetőségek megtalálására és kijavítására összpontosítanak a fejlesztés során.

ebben az oktatóanyagban megvizsgáljuk az ügyféloldali alkalmazáskód futásidejű védelmének fontosságát, és végigvezeti Önt a GitLab példányában a jscrambler integrációjával.

a futásidejű kódvédelem fontossága

az egyre érzékenyebb adatokkal foglalkozó webes és mobil alkalmazások esetében az alkalmazás támadási felületének kezelése további fenyegetéseket igényel, amelyek nem kapcsolódnak közvetlenül a biztonsági résekhez.

ezt a problémát széles körben tárgyalja a NIST, az ISO 27001 és az OWASP útmutatók néhány legújabb iterációja, például a mobilalkalmazás-biztonsági ellenőrzési szabvány. Ezek az információbiztonsági szabványok kiemelik, hogy azok a támadók, akik indokolatlan hozzáférést kapnak az alkalmazás forráskódjához, képesek lehetnek saját kód lekérésére, az alkalmazáskorlátozások megkerülésének módjaira, és nagyobb előrehaladást érhetnek el az adatkiürítési támadások tervezése/automatizálása során.

mint ilyen, fontos, hogy a vállalatok egy további biztonsági réteget vezessenek be (az alkalmazásbiztonsági legjobb gyakorlatok mellett) az alkalmazás forráskódjának manipulálásával és visszafejtésével kapcsolatos fenyegetések kezelésére.

első lépések a Jscrambler + GitLab használatával

a robusztus kódvédelmi megközelítésnek több réteget kell tartalmaznia, hogy megemelje a mércét a visszafejtési és manipulációs kísérletekhez. A Jscrambler ezt kódvédelmi technikák kombinációjával éri el, beleértve az obfuscációt, a kódzárakat, a futásidejű védelmet és a fenyegetésfigyelést.

lássuk, hogyan lehet könnyen beállítani ezt a réteges forráskód védelem segítségével Jscrambler a GitLab például.

amire szüksége van a Jscrambler integrációhoz

a jscrambler integrációjának használatához győződjön meg arról, hogy megfelel az alábbi előfeltételeknek:

  • egy JavaScript-alapú projekt, mivel a Jscrambler képes megvédeni a JavaScript-alapú webes és hibrid mobilalkalmazásokat
  • egy Jscrambler fiók
  • egy GitLab példány, ahol a Jscrambler integráció fut

a Jscrambler konfigurálása

az első lépés ennek az integrációnak az a célja, hogy meghatározza a használni kívánt jscrambler kódvédelmi technikákat. Ennek legjobb módja a Jscrambler webalkalmazás. Kiválaszthatja az előre meghatározott sablonok egyikét, vagy egyesével választhat technikákat. Tekintse át a Jscrambler útmutatót a Jscrambler technikák kiválasztásával kapcsolatos további utasításokért. Nem számít, mit választ, töltse le a Jscrambler JSON konfigurációs fájlját az alkalmazás beállításai melletti Letöltés gombra kattintva, az alábbiak szerint.

Jscrambler_download_JSON a Jscrambler JSON konfigurációjának letöltése.

helyezze az imént letöltött fájlt a projekt gyökérmappájába, és nevezze át .jscramblerrc névre. Most nyissa meg a fájlt, és győződjön meg róla, hogy eltávolítja a hozzáférési és titkos kulcsokat a konfigurációs fájlból a következő sorok eltávolításával.

 "keys": { "accessKey": "***********************", "secretKey": "***********************" },

ez megakadályozza, hogy keménykódolt API-kulcsok legyenek, amelyek biztonsági problémákat vethetnek fel. Ezeket az API kulcsokat a GitLab CI környezeti változók használatával kell tárolnia, az alábbiak szerint.

Jscrambler API kulcsok GitLab környezeti változókként hol lehet A Jscrambler API kulcsait a GitLab-ban szerezni.

és ez minden, amire szüksége van a Jscrambler oldalán!

Jscrambler feladat konfigurálása a GitLab CI-n belül

először ellenőrizze, hogy a .gitlab-ci.yml fájlt a projekt gyökerébe helyezte-e. Ebben a fájlban meg kell határoznia a build fokozatot, valamint hozzá kell adnia egy új protect fokozatot, az alábbiak szerint.

stages: - build - protect # - deploy # ...

a build fokozatot a következőképpen kell konfigurálni:

build:production: stage: build artifacts: when: on_success paths: - build script: - npm i - npm run build

ez a konfiguráció futtatja a npm run build parancsot, amely az alkalmazás gyártásra való felépítésének szokásos módja, az eredményül kapott termelési fájlokat a /build mappába helyezve. Ezenkívül biztosítja, hogy a /build mappa elérhetővé váljon GitLab CI artifactként, hogy később más feladatokban is használható legyen.

itt győződjön meg arról, hogy a build parancsokat és a build mappát a saját projektjének megfelelően állította be, mivel ezek változhatnak.

Ezután állítsa be a protect fokozatot az alábbiak szerint:

build:production:obfuscated: stage: protect before_script: - npm i -g jscrambler dependencies: - build:production artifacts: name: "$CI_JOB_NAME" when: on_success paths: - build expire_in: 1 week script: # By default, all artifacts from previous stages are passed to each job. - jscrambler -a $JSCRAMBLER_ACCESS_KEY -s $JSCRAMBLER_SECRET_KEY -o ./ build/**/*.*

ez a szakasz a jscrambler npm csomag globális telepítésével kezdődik. Ezután úgy van konfigurálva, hogy minden új gyártási folyamat végén végrehajtsa a Jscrambler programot. Általában azt szeretné biztosítani, hogy a jscrambler az építési folyamat utolsó szakasza legyen, mert a Jscrambler nagymértékben átalakítja a forráskódot, és hozzáadhatja az illetéktelen beavatkozás elleni védelmet is. Ez azt jelenti, hogy a fájlok megváltoztatása, miután a Jscrambler védte őket, megszakíthatja az alkalmazás funkcionalitását.

ez a protect szakasz úgy van konfigurálva, hogy hozzáférjen a GitLab környezeti változóként betöltött Jscrambler API kulcsokhoz. Végül a védelem kimenete ugyanabba a /build mappába kerül, és elérhetővé válik GitLab CI artifactként utólagos használatra (pl. telepítési feladat).

vegye figyelembe, hogy míg ez a példa bemutatja, hogyan kell használni a jscrambler CLI klienst a kód védelmére, a Jscrambler kompatibilis más kliensekkel, mint például a Grunt, Gulp, webpack, Ember és Metro (React Native).

és ennyi az egész! A deploy fokozatot a szokásos módon konfigurálhatja, amelynek elérnie kell a build/ mappa tartalmát, és biztosítania kell, hogy a védett fájlok élő termelési környezetben is elérhetők legyenek.

a védelmi eredmény ellenőrzése

utolsó (opcionális) lépésként érdemes ellenőrizni az ÉLŐ alkalmazást, és megnézni, hogy néz ki a forráskódja. Ezt egyszerűen megteheti egy böngésző hibakeresővel, és megnyithatja a fájlokat a “Források” lapon. A védett kódnak teljesen érthetetlennek kell lennie, hasonlóan az alább bemutatotthoz.

Jscrambler által védett forráskód példa a jscrambler által védett zavaros forráskódra.

ne feledje, hogy abban az esetben, ha a Jscrambler hibakeresés elleni átalakításait használja, a böngésző hibakeresője valószínűleg összeomlik vagy kisiklik az alkalmazás végrehajtása. Ez a szándékolt viselkedés, ami nagyon hasznos a kód visszafejtésének megakadályozására.

záró gondolatok

amint azt ebben a bemutatóban láttuk, a Jscrambler és a GitLab közötti integráció beállítása nagyon egyszerű. Bevezet egy új protect szakaszt, ahol a JavaScript forráskódját a jscrambler védi a telepítés előtt.

a Jscrambler jóval túlmutat a JavaScript ködösítésén, mivel olyan futásidejű védelmi technikákat biztosít, mint az önvédelem és az öngyógyítás, amelyek illetéktelen beavatkozás és hibakeresés elleni képességeket, valamint kódzárakat biztosítanak. További részletek A Jscrambler transzformációkról, tekintse át a Jscrambler dokumentációs oldalát.

nézze meg a bemutatót

Leave a Reply