koodinlaatuskanneri-appsec

Koodin laatu ja Code Security On elänyt kahdessa eri työkalussa. Heidän ei tarvitse.

Useimmat suunnittelutiimit käyvät kaksi erillistä keskustelua samasta koodikannasta. Toinen koskee tietoturvaa: onko olemassa SQL-injektioriski, kovakoodattu salaisuus tai hyödynnettävä riippuvuus. Toinen koskee ylläpidettävyyttä: onko tämä funktio liian monimutkainen, onko tämä koodi kopioitu kolme kertaa, onko olemassa kuollutta koodia, jota kukaan ei uskalla poistaa.

Nämä keskustelut käydään yleensä eri työkaluilla, eri tiimien toimesta, eri aikatauluilla. Tietoturvaskanneri merkitsee, mikä on hyödynnettävissä. Erillinen laatutyökalu, joka usein ostetaan ja jota hallinnoidaan itsenäisesti, merkitsee, minkä ylläpito on kallista. Kaksi lisenssiä, kaksi dashboards, kaksi jäsennintä kulkee samaa abstraktia syntaksipuuta pitkin vastatakseen kahteen eri kysymykseen.

Tällä jaolla on hintansa. Luotettavuusviat (sellaiset, jotka aiheuttavat ajonaikaisia ​​​​häiriöitä, eivät tietomurtoja) eivät saa samaa prioriteettikuria kuin tietoturvalöydökset, koska ne sijaitsevat tietoturvatiimin ulkopuolella. dashboardJa kun tiimillä on jo staattinen analyysimoottori, joka jäsentää jokaisen tiedoston turvallisuussyistä, toisen, toisiinsa liittymättömän moottorin pystyttäminen vain koodin laadun tarkistamiseksi on tarpeetonta työtä, josta ei ole yhteistä hyötyä.

Miksi koodin laatu on tärkeää (ja miten se eroaa muista Code Security)

Koodin laatu ja code security vastaa kahteen eri kysymykseen. Code security kysyy: voidaanko tätä koodia hyödyntää? Koodin laatu kysyy: voidaanko tätä koodia ylläpitää? Funktio voi olla täysin turvallinen ja silti olla viidensadan rivin mittainen sekamelska, johon kukaan ei halua koskea, ja hyvin organisoitu, helppolukuinen moduuli voi silti toimittaa kriittisen injektiovirheen kanssa. Kumpikaan tieteenala ei korvaa toista.

Koodin laadun laiminlyönnin hinta ei näy tietomurrona. Se näkyy hitaammin: uudella työntekijällä kestää kaksi viikkoa kahden päivän sijaan tehdä turvallinen muutos, rutiininomainen ominaisuus kestää kolme sprinttiä, koska kukaan ei voi ennustaa, minkä verran monistettu lohko rikkoutuu muualla, päivystävä insinööri käyttää tunnin jäljittäen vikaa kuolleesta koodista, joka olisi pitänyt poistaa vuosi sitten. Mikään tästä ei laukaise tietoturvahälytystä. Kaikki tämä näkyy nopeudella, ja siihen mennessä, kun se on näkyvissä sprinttiretrossa, sen korjaaminen on jo kallista.

Näin on asian laita, kun laatua käsitellään samalla tarkkuudella kuin turvallisuutta: ei siksi, että koodin haju olisi uhka, vaan koska ylläpidettävyysvelan kasaantuminen valvomatta johtaa siihen, että koodikannasta tulee paikka, jossa ominaisuudet kuolevat.

Parempi tapa: Yksi moottori, kaksi sääntöluetteloa

Xygenin koodinlaatuskanneri analysoi lähdekoodia ylläpidettävyys- ja luotettavuusvirheiden varalta: koodin hajut, monimutkaisuusvirheet, kuollut koodi ja päällekkäisyydet – kaavat, jotka eivät aiheuta tietomurtoa, mutta aiheuttavat käyttökatkoksia, regressioita ja hitaasti eteneviä tiimejä.

Erottuva suunnitteluvalinta on arkkitehtoninen, ei kosmeettinen. Code Quality jakaa staattisen analyysin moottorinsa Xygenin SAST skannerisamat jäsentimet, sama AST-rakenne, sama tiedostojen etsintä. Se, mitä se ei jaa, on sääntöluettelo. Laatusäännöt kohdistuvat laatuun, eivät tietoturvaan, ja löydökset näkyvät Xygeni-alustan erillisessä laatuosiossa, joka pidetään erillään muista säännöistä. SAST ja muut tietoturvariskitaulukot.

Tulos: tiimit saavat ylläpidettävyysnäkymän ja tietoturvanäkymän samasta pohjana olevasta analyysikierroksesta yhdistämättä kahta eri ongelmaa yhdeksi kohinaiseksi kokonaisuudeksi. dashboard.

Kaksi tapaa saada laadukas signaali laitteeseesi Pipeline

Kaikki ”koodin laatua” parantavat ominaisuudet eivät toimi samalla tavalla konepellin alla. Monet CI/CD-natiivit laatutyökalut ovat aggregointikerroksia: he eivät analysoi koodiasi itse; ne tuovat tuloksia jo suoritetusta lintteristä (JavaScript-linter, Python-linter, duplikaatioiden ilmaisin), joista jokainen on muotoiltu uudelleen jaetuksi JSON-skeemaksi ja jokainen on kytketty omaksi pipeline vaihe. Se on joustavaa, mutta tarkoittaa, että laatusignaalisi on vain niin yhdenmukainen kuin on yhdistämiäsi erillisiä työkaluja, formaatteja ja ylläpitäjiä, yksi kieltä kohden.

Xygenin koodinlaatuskanneri valitsee toisen vaihtoehdon: yksi natiivi moottori, joka on jo käynnissä turvallisuuden takaamiseksi, laajennettuna laatusääntöluettelolla. Ei ole asennettavaa kielikohtaista linteriä, ei uudelleenmuotoiltavaa raporttimuotoa eikä erillistä työkalukohtaista ylläpitotyötä. Saat yhden komennon, yhden yhdenmukaisen vakavuusmallin ja yhden... dashboard osiossa, koska analyysia ei alun perinkään jaettu työkalujen kesken.

Kuinka se toimii?

Code Quality toimii omana CLI-komentoinaan:

xygeni laatu -d [asetukset] (xygeni code-quality toimii aliaksena.)

Se jakaa optiomallinsa xygeni sast, joten kuka tahansa, jolla on jo Xygenin tietoturvaskanneri käytössä, tunnistaa käyttöliittymän välittömästi:

Vaihtoehto Mitä se tekee
-d, --dir Analysoitava hakemisto
--detectors Suorita tiettyjä ilmaisintunnuksia tai vakavuusaste ja kaikki sen yläpuolella olevat arvot
--fail-on Poistu nollasta poikkeavasta tietyllä vakavuusasteella, esim. CI/CD portaat
--baseline Vertaa lähtötilanteeseen ja palauta vain uudet löydökset
--upload Lähetä tulokset Xygeni-alustalle

Koodin laaturaportin luominen

Skannaus tuottaa koodin laaturaportin, jonka voit lähettää alustalle, viedä JSON-muodossa CI-artefakteja varten tai antaa tiiminvetäjälle antamatta heille tietoja. dashboard käyttöoikeus. Molemmat ovat yhden rivin komentoja:

# Skannaa ja lataa suoraan Xygeni-alustalle

xygeni quality -n OmaProjekti –lataus

# Vie koodin laaturaportti JSON-muodossa, vain kriittiset löydökset

xygeni laatu -d –ilmaisimet kriittiset –json-tiedostomuoto –tulosteen laatu.json

Kun sama koodin laaturaportti on ladattu, se täyttää Laatu-osion. dashboardsuodatettava, liu'utettavat tiedot löydöksittain, lähtötasot ja sama raportointikäytäntö, jota tiimit jo käyttävät SAST.

Laadunvalvonta tietoturvaskannauksen rinnalla

Joukkueille, jotka haluavat molemmat signaalit yhdestä syötöstä, SAST skanneri hyväksyy –sisällytä-laatu lippu:

xygeni sast -d –sisällytä-laatu

Koska SAST ja koodin laatu jakavat jäsennysvaiheen, mikä on tehokkaampaa kuin kahden skannerin suorittaminen peräkkäin. Se tuottaa kaksi erillistä raporttia, tietoturvan ja laadun, ja kumpikin päätyy silti omaan raporttiinsa. dashboard osiossa. Lippu muuttaa skannauksen suoritustapaa, ei tulosten järjestelyä.

Skannaus ilman yhteyttä

Ilmarakoisissa ympäristöissä tai CI-juoksujärjestelmissä, joissa ei ole pääsyä Xygeni-alustalle, laatuskannaukset voidaan suorittaa paikallisesti ja ladata myöhemmin:

xygeni laatu -d -n OmaProjekti

# …myöhemmin, isännältä, jolla on yhteys:

xygeni report-upload -n OmaProjekti -r depsdoctor-quality.json

Löydökset päätyvät Laatu-osioon täsmälleen samalla tavalla kuin reaaliaikaisessa skannauksessa: sama triage, sama käytäntö, sama lähtötilanteen käyttäytyminen.

Miksi laatu ja turvallisuusasiat pidetään erillään

Koodin haavoittuvuudet olisi helppo sisällyttää samaan vakavuuslistaan ​​kuin hyödynnettävät haavoittuvuudet. Xygeni ei tee niin tarkoituksella. Kahdennettu funktio ja SQL-injektio eivät ole samanlaisia ​​riskejä, ja niiden käsittely samalla tavalla kouluttaa tiimejä joko ylireagoimaan ylläpidettävyysmeluun tai alireagoimaan todellisiin tietoturvahavaintoihin. Sääntöluetteloiden, raporttien ja... dashboard Näkymät erikseen ja alla oleva moottori jaettuna tarkoittavat, että jokainen tiimi saa itselleen tärkeän signaalin maksamatta toisesta staattisesta analyysityökalusta.

Kokeile sitä: Koodilaatu on saatavilla tänään Xygeni CLI:n kautta. Tiimit ovat jo käynnissä. xygeni sast voi lisätä –sisällytä-laatu heidän olemassa oleviin pipeline yhdellä rivillä, ei uutta työkalua, ei toista dashboard tarkistaa.

FAQ

Mitä on Xygeni-koodin laatu?

Xygeni Code Quality on staattinen analyysiskanneri, joka havaitsee ylläpidettävyys- ja luotettavuusvirheitä, mukaan lukien koodin hajut, monimutkaisuusvirheet, kuolleen koodin ja päällekkäisyydet. Se toimii omana komentona (xygeni-laatu) ja raportoi Xygeni-alustan erilliseen laatuosioon, erillään tietoturvahavainnoista.

Onko koodin laatu sama kuin SAST?

Nro. Koodin laatu ja SAST jakavat saman taustalla olevan jäsennysmoottorin, mutta käyttävät erillisiä sääntöluetteloita ja tuottavat erillisiä raportteja. SAST etsii tietoturvahaavoittuvuuksia; koodin laatu etsii ylläpidettävyys- ja luotettavuusvikoja.

Voinko suorittaa laatuskannauksen ja tietoturvaskannauksen samanaikaisesti?

Kyllä. Juokseminen xygeni sast -d –sisällytä-laatu suorittaa molemmat sääntöjoukot yhdellä kertaa, mikä on tehokkaampaa kuin kahden skannerin suorittaminen erikseen, koska ne jakavat jäsennysvaiheen. Tulokset tuottavat silti kaksi erillistä raporttia ja näkyvät kahdessa erillisessä dashboard osissa.

Tarvitsenko erillisen lisenssin koodin laatua varten?

Laatutulosten lataaminen ja tarkasteleminen edellyttää koodin laatuun liittyvää käyttöoikeutta, samaa jota tarvitaan skannauksen suorittamiseen.

Voiko Code Quality toimia ilman internetyhteyttä?

Kyllä. Skannaukset voidaan suorittaa paikallisesti ilman –lataa lippu, ja tuloksena oleva raportti voidaan ladata myöhemmin yhdistetystä isännästä käyttämällä xygeni-raportin lataus.

sca-työkalut-ohjelmisto-koostumusanalyysityökalut
Priorisoi, korjaa ja suojaa ohjelmistoriskisi
Hanki ilmainen tili.
Luottokorttia ei vaadita.

Turvaa ohjelmistokehityksesi ja -toimituksesi

Xygeni-tuotepaketin kanssa