Node.js:n lisensointiin ja tietoturvaan liittyviä näkökohtia

, Author

Node.js:n ajoympäristöstä on tulossa yhä suositumpi niiden tiimien keskuudessa, joiden on rakennettava dynaamisia, palvelinpuolen verkkosovelluksia. Node.js:ää ylläpitää tällä hetkellä OpenJS Foundation, ja sillä on lähes 2 500 osallistujaa, ja se on nopeimmin kasvava avoimen lähdekoodin hanke, jota on tähän mennessä ladattu yli miljardi kertaa.

Node.js:ää käytetään sen vuonna 2009 tapahtuneen julkaisun jälkeen monissa suurissa organisaatioissa yrityssovellusten rakentamiseen ja sovellusten suorituskyvyn parantamiseen. Yksi niistä on PayPal, joka lyhensi sivujensa vasteaikoja noin 35 %, kun se otti Node.js:n käyttöön. Muita Node.js:n käyttäjiä ovat muun muassa IBM, NASA, Uber, Netflix ja jopa Microsoft.

Vaikka Node.js:stä on tulossa suosituin verkkopalvelinkehityskieli, käyttäjien on syytä olla tietoisia siitä, että Node.js:n lisensointiin ja tietoturvaan liittyy ongelmia.

Lisälisenssejä, joita sovelletaan jäljellä oleviin kolmannen osapuolen kirjastoihin, ovat Zero Clause BSD-lisenssi ja ISC-lisenssi, joiden täydellinen lisenssitiedosto on saatavilla täältä.

Nämä lisenssit sallivat kenen tahansa käyttää, muokata ja levittää ohjelmistoa milloin tahansa, ja ainoastaan maininta vaaditaan, mutta samalla vaaditaan korvaus tekijöille. Verrattuna GNU GPL:ään MIT-lisenssi ei vaadi kehittäjiä asettamaan omaa lähdekoodiaan saataville, kun he jakavat ohjelmistojaan uudelleen.

Mitkä ovat Node.js:n lisensointi- ja tietoturvariskit?

Node.js käyttää pakettihallintaohjelmaa (npm), jossa on yli 1 000 000 pakettia saatavilla. Node.js:n kehittäjäyhteisö on yksi tuottavimmista, ja vuoteen 2019 mennessä npm-alusta oli kasvanut 250 %. Yksi Node.js:n tietoturvan haasteista kehittäjille on varmistaa, että kaikki tuotannossa käytettävät paketit ja kaikki niihin liittyvät riippuvuudet saavat säännöllisesti päivityksiä ja korjauksia.

Node.js käyttää pakettihallintaa (npm), jonka haavoittuvuuksien määrä on kasvanut vuosi vuodelta

Kehittäjien on tarkastettava kaikki pakettien riippuvuudet usein, jotta he löytävät kaikki hiljattain löydetyt haavoittuvuudet. Uusia ominaisuuksia rakentaessaan kehittäjien on varmistettava, että he käyttävät turvallisia paketteja ja paikkaavat kaikki tunnetut haavoittuvuudet ennen koodinsa julkaisemista.

Kuinka paljon Node.js:n lisensoinnista on avointa lähdekoodia?

Yritykset rakastavat Node.js:n lisenssimallia, koska se antaa niille mahdollisuuden haarukoida koodipohjaa, rakentaa omia palvelinpuolen pätkiä ja päivittää linkitettyjä pakettejaan vain tarvittaessa. Sallitut lisenssit antavat tiimeille mahdollisuuden tehdä koodipohjastaan tulevaisuudessa omaa, toisin kuin GNU GPL:n copyleft-periaate.

Lisenssiehdoissa kehittäjien on tiedettävä, mitä ohjelmistolisenssejä heidän pakettinsa käyttävät, sillä npm:ssä on tarjolla runsaasti GPL:n alaisia paketteja. Joissakin tapauksissa kehittäjät tarjoavat samaa pakettia kaupallisella lisenssillä, mikä estäisi GPLv3:n vastavuoroisuuslausekkeen laukeamisen.

Mitkä ovat Node.js:n lisenssimallin edut?

Keskustelut sallitusta vs. copyleft-lisensoinnista jatkuvat, mutta Node.js näyttää todistavan, että kaupallisten intressien ei tarvitse estää yhteistyötä. Tiimeille, jotka työskentelevät erittäin salaisissa ympäristöissä (kuten NASA), Node.js ja npm-ekosysteemi on osoittautunut arvokkaaksi resurssiksi. Malli, jossa yksittäiset tiimit voivat itse päättää, onko niiden koko lähdekoodi saatavilla vai ei, antaa Node.js:n käyttäjille maksimaalisen vapauden.

Node.js:n kehityshyötyjä ovat myös:

  • Tarjoaa palvelinpuolen JavaScript-ohjelmointiratkaisun
  • Pysyy erittäin skaalautuvana sekä horisontaalisesti että vertikaalisesti
  • Antaa kehittäjille yhden ainoan ohjelmointikielen front- ja back-end-sovelluksia varten
  • Lisäävät sovellusten suorituskykyä lukkiutumattomien I/O-operaatioiden avulla
  • Tukee toimialan johtavilta tahoilta, joilla on edustajaa npm:ssä
  • .js Foundation

Voi käyttää Node.js:n lisensoituja paketteja kaupallisissa ohjelmistoissa?

Heti kun tiimi on ladannut ja muokannut Node.js:ää, heillä on vapaus tekijänoikeudellisesti suojata oma versionsa ohjelmistosta milloin tahansa ja soveltaa rajoittavampaa lisenssiä omaan työhönsä.

Suuri osa Node.js-projekteista pysyy avoimena lähdekoodina, ja yritykset käyttävät sitä kehyksiin, kirjastoihin ja työkaluihin. Kaikilla tiimeillä, jotka käyttävät npm-lähteisiä paketteja, ei saa olla minkään moduulin sisältämiä vastavuoroisia lisenssejä (ellei niitä ole tarkoitettu). Jokaisen linkitetyn paketin ja moduulin on kuuluttava MIT-lisenssin tai jonkin BSD-tyylisen lisenssin, myös ISC-lisenssin, piiriin.

Miten Node.js:n lisenssiä käytetään?

Jokainen Node.js-kirjastoon rakennettu komponentti voi käyttää mitä tahansa saatavilla olevaa ohjelmistolisenssiä jakelun yhteydessä. Osallistujat käyttävät mieluiten sallivia lisenssejä, koska se antaa myöhemmille käyttäjille vapauden tehdä omia päätöksiä ohjelmistostaan tulevaisuudessa. Kun tiimi alkaa tukeutua muihin paketteihin, heidän on varmistettava, että heidän työnsä on näiden moduulien sisältämien muiden rajoitusten mukaista.

Npm:ssä on erityinen komento, jolla lisenssiteksti voidaan lisätä kaikkiin projektitiedostoihin. Kehittäjät voivat määrittää lisenssin nimen ja tekijän nimen, ja täydellinen luettelo yhteensopivista lisensseistä löytyy täältä.

Miten Node.js käsittelee pakettien tietoturvariskejä?

Kunhan kehittäjä tai tietoturvaryhmä löytää uuden haavoittuvuuden, Node.js julkaisee tietoturvapäivitetyn version. Joissakin tapauksissa tarvitaan manuaalinen korjaus. Kehittäjien on tarkistettava pakettiensa haavoittuvuudet usein audit-komennolla, joka antaa suositellun korjauksen tietoturva-aukkoon.

Huolehdi koodipohjan riippuvuuksista Snykillä

Jokaista tuotantokäytössä olevaa projektia tulisi tarkastaa säännöllisesti kaikkien riippuvuuksien haavoittuvuuksien ja lisenssien osalta.

Snyk auttaa tiimejä skannaamaan kaikki riippuvuudet ja varmistamaan, että he voivat hallita lisenssien noudattamista koko projektin ajan. Node.js-kehitystiimillä kaikkien pakettien selkeä valvonta ja lisenssien noudattamisen varmistaminen projektin kaikissa vaiheissa voi auttaa estämään suurten ongelmien hiipimisen koodipohjaan.

Katso, miten Snyk voi auttaa tiimiäsi hallitsemaan lisenssien noudattamista – varaa demo jo tänään.

Vastaa

Sähköpostiosoitettasi ei julkaista.