Otázka prichádza ako licenčná, ale odpoveď začína inventúrou. VPN rozhranie, engine OpenVPN, ktorý poháňa, knižnica TLS a inštalátor môžu mať štyri rôzne sady podmienok a vzhľad produktu vám nič nepovie o tom, ktorý súbor patrí ktorej sade. Prejdite artefakty v poradí, v akom sa dodávajú, a právna otázka sa výrazne zúži, keď ju odovzdáte niekomu kvalifikovanému na odpoveď. Každý krok ju ďalej zužuje: čo sa distribuuje, čo bolo zmenené a ako časti komunikujú.

Začnite tým, čo inštalátor umiestni na disk

Vezmite vydaný inštalátor alebo balík, nie vývojovú kópiu, a vypíšte každý súbor, ktorý umiestni na čistý stroj. Zaznamenajte verzie rozhrania, enginu a knižnice TLS a poznamenajte, či je engine samostatný spustiteľný súbor alebo knižnica načítaná do rovnakého procesu.

Tento posledný fakt formuje všetko, čo nasleduje. Samostatný spustiteľný súbor spustený cez soket kladie inú sadu otázok ako kód skompilovaný do jedného binárneho súboru a inštalátor, ktorý oba len položí vedľa seba, vec nerozhodne ani jedným smerom. Zlučovanie je rozhodnutie o balení, zatiaľ čo vzťah medzi programami je architektonický.

Zapíšte zoznam s pripojenými verziami, pretože podmienky sa medzi hlavnými vydaniami líšia.

dpkg -L openvpn | head -n 40
openssl version -a

Oddeľte rozhranie od enginu

Súbor s kopírovacími podmienkami OpenVPN uvádza GPL verziu 2 a dokumentuje výnimku pre linkovanie s OpenSSL, čo je konkrétne povolenie s vymedzeným rozsahom, nie všeobecná licencia na miešanie podmienok.

Zachytte text licencie, ktorý sa dodáva s vaším buildom, nie ten, ktorý je dnes na webe projektu. Vydanie, ktoré pripnuté staršiu vetvu, nesie dokument tejto vetvy. Snímky obrazovky stránky repozitára nie sú náhradou, pretože súbor, ktorý potrebujete, je ten vo vnútri artefaktu. Uložte ho vedľa inštalátora, aby bol balík úplný.

Potom opíšte integráciu čestne: spúšťa rozhranie engine ako podriadený proces a hovorí textovým protokolom, alebo linkuje knižnicu a vymieňa interné štruktúry? Druhé usporiadanie je blízke spôsobom, akým prvé nie je, a tento rozdiel je to, na čo sa recenzent opýta najskôr.

Poznamenajte, ktoré súbory ste zmenili

Zmenený zdrojový kód mení analýzu viac než akýkoľvek detail balenia. Ak ste engine záplatovali, záplata samotná je odvodené dielo a povinnosť leží na tom, kto výsledok distribuuje.

Zaznamenajte každú záplatu, jej účel a či bola odoslaná upstream, pretože záplata, ktorá nikdy neopustila váš repozitár, je stále súčasťou toho, čo dodávate, ak dodávate binárku.

Konfiguračné súbory, témy a preklady zvyčajne žijú s rozhraním, ale preklad, ktorý vkladá reťazce zdrojového kódu enginu, je malou pripomienkou, že hranica je podľa súborov, nie podľa adresárov. Udržujte rozdiel medzi upstream vydaním a vaším buildom, aby bola odpoveď k dispozícii na vyžiadanie a nemusela sa neskôr rekonštruovať. Tento rozdiel je aj najužitočnejší artefakt, keď sa audítor pýta, čo sa zmenilo.

Skontrolujte verziu OpenSSL samostatne

OpenSSL 3.0 a novšie sa distribuujú pod Apache License 2.0, kým staršie vydania nesú podmienky OpenSSL/SSLeay. Sú to rôzne dokumenty s rôznymi povinnosťami a zabudovaný engine môže linkovať ktorýkoľvek z nich, ktorý našiel váš build systém.

Potvrďte verziu, ktorá sa skutočne dodáva, nie tú uvedenú v skripte buildu.

Závislosť na OpenVPN nepremieňa každú úpravu OpenSSL na kód GPL a výnimka pre linkovanie neodstraňuje ostatné povinnosti, ktoré prináša redistribúcia knižnice. Berte výnimku ako jednu klauzulu v širšej analýze a zaznamenajte vlastné oznámenia knižnice TLS spolu so všetkým ostatným.

Zostavte balík dôkazov

Balík má štyri časti: inventúru súborov s verziami, opis integrácie, zoznam zmien s rozdielmi a texty licencií tak, ako sa dodávajú. Pridajte súbor oznámení, ktorý distribuujete, a miesto, kde sa ponúka zdrojový kód, ak vaše povinnosti vyžadujú ponuku.

Držte balík pod jedným vlastníkom, aby žiadne vydanie nemohlo vyjsť bez neho.

Nič z toho nerozhoduje právnu otázku a o to ide: dáva kvalifikovanému recenzentovi fakty namiesto zhrnutia, ktoré niekto zostavil z pamäti. Marketingový opis dodávateľa nie je dôkazom o jeho architektúre a ani váš vlastný odhad o nej nie je dôkazom.

Súvisiace články