Per vulnerability scanner usus est bibliothecarum Dependency-Reprehendo in GitlabCI

Magna pars administrationis vulnerabilitatis est ad intellegendum et confirmandum copiam catenae elementorum programmatum quae modernorum systemata componunt. Agiles et DevOps teams late patentes fons bibliothecas et compages usum faciunt ad progressionem temporis et sumptus reducendi. Sed hoc numisma etiam downside habet: opportunitas aliorum errata et passibilitates possidendi.

Patet, turmas certas scire debet quae aperta elementa in suis applicationibus comprehenduntur, ut notae certae versiones ex notis certis fontibus receptae sint, et versiones novarum partium recentium inventarum nuditatum resarciantur.

In hoc poste, videbimus uti OWASP Dependentiae Moderare ad aboriendum aedificare si graves difficultates cum codice tuo detexerit.

In libro "Provectio Securitatis in Agile Projects" sic describitur. OWASP Dependentia Perscriptio libera scanner est qui catalogi omnium partium apertarum in applicatione adhibita demonstrat et vulnerabilitates quas continent. Exstant versiones Javae, NET, Ruby (gemspec), PHP (componentis), Node.js et Python, nec non aliquot incepta C/C++. Dependentia Moderare integrat instrumenta communibus constructis, incluso Ant, Maven et Gradle, et servientes continua integratio sicut Jenkins.

Dependentia Moderare omnia elementa refert cum vulneribus notis ex NIST in National Vulnerability Database (NVD) et renovatur cum notitia ex NVD nuntiorum feeds.

Feliciter, haec omnia sponte fieri possunt instrumentis utentes sicut OWASP Dependency Moderare consilium seu programmata commercialia similia nigrum Duck, JFrog Xray, Snyk, Nexus Lifecycle Sonatype or SourceClear.

Haec instrumenta in fabricandis pipelines includi possunt ad automatice inventarium apertum fontem dependentiarum, versiones bibliothecarum ac bibliothecarum notarum vulnerabilitates continentium notarum notarum factas recognoscendas, et si graves deteguntur difficultates, abortum construit.

OWASP Dependency Moderare

Ad probandum et demonstrandum quomodo Dependentia Perscriptio opera, hoc Repositorio utimur dependentia-reprehendo-exemplum.

Ad relationem HTML speculandam, debes nginx telae server in gitlab-cursor configurare.

Exemplum minimae nginx config;

server {
    listen       9999;
    listen       [::]:9999;
    server_name  _;
    root         /home/gitlab-runner/builds;

    location / {
        autoindex on;
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

In fine conventus hanc imaginem videre potes:

Per vulnerability scanner usus est bibliothecarum Dependency-Reprehendo in GitlabCI

Sequere nexum et videre Dependency Reprehendo fama.

Prima tortor summa pars relationis cum summario est.

Per vulnerability scanner usus est bibliothecarum Dependency-Reprehendo in GitlabCI

Secundus screenshots details CVE-2017-5638. Hic CVE gradum videmus et nexus rerum gestarum.

Per vulnerability scanner usus est bibliothecarum Dependency-Reprehendo in GitlabCI

Tertium tortor est singularia log4j-api-2.7.jar. CVE gradus 7.5 et 9.8.

Per vulnerability scanner usus est bibliothecarum Dependency-Reprehendo in GitlabCI

Quartum emissarium est singularum personarum fasciculi-1.3.2.jar. CVE gradus 7.5 et 9.8.

Per vulnerability scanner usus est bibliothecarum Dependency-Reprehendo in GitlabCI

Si gitlabibus uti voles, tunc non laborabit - opus lapsus artificium non creabit.

Exemplum hic https://gitlab.com/anton_patsev/dependency-check-example-gitlab-pages.

Aedificare output: nulla artificia, famam html non video. Artificium conetur: semper

https://gitlab.com/anton_patsev/dependency-check-example-gitlab-pages/-/jobs/400004246

Per vulnerability scanner usus est bibliothecarum Dependency-Reprehendo in GitlabCI

Ordinans gradu CVE vulnerabilities

Praecipua linea in fasciculo gitlab-ci.yaml:

mvn $MAVEN_CLI_OPTS test org.owasp:dependency-check-maven:check -DfailBuildOnCVSS=7

Cum modulo failBuildOnCVSS accommodare potes gradum vulnerum CVE cui respondere debes.

Download NIST Passibilitatem Database (NVD) ex Internet

Animadvertisti NIST constanter e NIST vulnerabilitatem databases (NVD) ex Interrete downloads:

Per vulnerability scanner usus est bibliothecarum Dependency-Reprehendo in GitlabCI

Ad download, utilitate uti potes nist_data_mirror_golang

Let's install and launch it.

yum -y install yum-plugin-copr
yum copr enable antonpatsev/nist_data_mirror_golang
yum -y install nist-data-mirror
systemctl start nist-data-mirror

Speculum nist-datae uploads NIST JSON CVE ad /var/www/repos/nist-data-speculum/ in startup ac notitias singulis 24 horis renovat.

Ad detrahendum CVE JSON NIST, debes nginx interretialem configurare (exempli gratia, in cursore gitlab tuo).

Exemplum minimae nginx config;

server {
    listen       12345;
    listen       [::]:12345;
    server_name  _;
    root         /var/www/repos/nist-data-mirror/;

    location / {
        autoindex on;
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }

}

Ne longam lineam ubi mvn emittitur, parametros movebimus in distinctos DEPENDENCY_OPTS variabiles.

Ultima minimalis config .gitlab-ci.yml sic erit:

variables:
  MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
  MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
  DEPENDENCY_OPTS: "-DfailBuildOnCVSS=7 -DcveUrlModified=http://localhost:12345/nvdcve-1.1-modified.json.gz -DcveUrlBase=http://localhost:12345/nvdcve-1.1-%d.json.gz"

cache:
  paths:
    - .m2/repository

verify:
  stage: test
  script:
    - set +e
    - mvn $MAVEN_CLI_OPTS install org.owasp:dependency-check-maven:check $DEPENDENCY_OPTS || EXIT_CODE=$?
    - export PATH_WITHOUT_HOME=$(pwd | sed -e "s//home/gitlab-runner/builds//g")
    - echo "************************* URL Dependency-check-report.html *************************"
    - echo "http://$HOSTNAME:9999$PATH_WITHOUT_HOME/target/dependency-check-report.html"
    - set -e
    - exit ${EXIT_CODE}
  tags:
    - shell

Curabitur telegraphum de DevOps et Securitatis
Telegraphum alveum DevSecOps / SSDLC - Secure development

Source: www.habr.com