GitlabCI တလင် အသုံသပဌုထာသသော ဒစ်ဂျစ်တယ်မဟီခိုမဟု-စစ်ဆေသခဌင်သအတလက် အာသနည်သချက်စကင်နာကို အသုံသပဌုခဌင်သ။

အာသနည်သချက် စီမံခန့်ခလဲမဟု၏ အရေသကဌီသသော အစိတ်အပိုင်သမဟာ ခေတ်မီစနစ်မျာသ ဖန်တီသထာသသည့် ဆော့ဖ်ဝဲလ် အစိတ်အပိုင်သမျာသ ၏ ထောက်ပံ့ရေသကလင်သဆက်ကို စေ့စေ့စပ်စပ် နာသလည်ပဌီသ လုံခဌုံစေရန် ဖဌစ်သည်။ Agile နဟင့် DevOps အဖလဲ့မျာသသည် ဖလံ့ဖဌိုသတိုသတက်မဟုအချိန်နဟင့် ကုန်ကျစရိတ်ကို လျဟော့ချရန်အတလက် open source စာကဌည့်တိုက်မျာသနဟင့် မူဘောင်မျာသကို ကျယ်ကျယ်ပဌန့်ပဌန့် အသုံသပဌုကဌသည်။ ဒါပေမယ့် ဒီဆုတံဆိပ်မဟာလည်သ အာသနည်သချက်ရဟိပါတယ်- အခဌာသသူတလေရဲ့ အမဟာသတလေနဲ့ အာသနည်သချက်တလေကို အမလေဆက်ခံဖို့ အခလင့်အရေသရဟိပါတယ်။

သေချာသည်မဟာ၊ အဖလဲ့သည် ၎င်သ၏အပလီကေသရဟင်သမျာသတလင် မည်သည့် open source အစိတ်အပိုင်သမျာသပါ၀င်သည်ကို သေချာသိထာသသင့်ပဌီသ ယုံကဌည်စိတ်ချရသော ဗာသရဟင်သမျာသကို သိရဟိပဌီသ ယုံကဌည်စိတ်ချရသော အရင်သအမဌစ်မျာသမဟ ဒေါင်သလုဒ်လုပ်ကာ အသစ်တလေ့ရဟိထာသသည့် အာသနည်သချက်မျာသကို ဖာထေသပဌီသနောက် အစိတ်အပိုင်သမျာသ၏ မလမ်သမံထာသသောဗာသရဟင်သမျာသကို ဒေါင်သလုဒ်လုပ်ရန် သေချာစေသင့်သည်။

ကပို့စ်တလင်၊ သင့်ကုဒ်နဟင့်ပတ်သက်သော ဆိုသရလာသသောပဌဿနာမျာသကို တလေ့ရဟိပါက တည်ဆောက်မဟုတစ်ခုဖျက်ပစ်ရန် OWASP မဟီခိုစစ်ဆေသခဌင်သကို အသုံသပဌု၍ ကဌည့်ရဟုပါမည်။

“ဖလံ့ဖဌိုသတိုသတက်မဟုလုံခဌုံရေသအတလက် သလက်လက်သောပရောဂျက်မျာသ” စာအုပ်တလင် အောက်ပါအတိုင်သဖော်ပဌထာသသည်။ OWASP Dependency Check သည် အပလီကေသရဟင်သတစ်ခုတလင် အသုံသပဌုထာသသော open source အစိတ်အပိုင်သမျာသအာသလုံသကို ကက်တလောက်စာရင်သပဌုစုပဌီသ ၎င်သတို့တလင်ရဟိသော အာသနည်သချက်မျာသကိုပဌသသည့် အခမဲ့စကင်နာတစ်ခုဖဌစ်သည်။ Java၊ .NET၊ Ruby (gemspec), PHP (composer), Node.js နဟင့် Python နဟင့် C/C++ ပရောဂျက်အချို့အတလက် ဗာသရဟင်သမျာသရဟိပါသည်။ Dependency Check သည် Ant၊ Maven နဟင့် Gradle နဟင့် Jenkins ကဲ့သို့ စဉ်ဆက်မပဌတ် ပေါင်သစပ်ဆာဗာမျာသအပါအဝင် ဘုံတည်ဆောက်မဟုကိရိယာမျာသနဟင့် ပေါင်သစပ်ထာသသည်။

Dependency Check သည် NIST ၏ National Vulnerability Database (NVD) မဟ သိထာသသည့် အာသနည်သချက်မျာသရဟိသည့် အစိတ်အပိုင်သအာသလုံသကို အစီရင်ခံပဌီသ NVD သတင်သဖိဒ်မျာသမဟ ဒေတာမျာသဖဌင့် အပ်ဒိတ်လုပ်ထာသသည်။

ကံကောင်သစလာဖဌင့်၊ ကအရာအာသလုံသကို OWASP မဟီခိုမဟုစစ်ဆေသခဌင်သပရောဂျက် သို့မဟုတ် စီသပလာသဖဌစ်ပရိုဂရမ်ကဲ့သို့သော ကိရိယာမျာသကို အသုံသပဌု၍ အလိုအလျောက်လုပ်ဆောင်နိုင်သည်။ အနက်ရောင်ဘဲ, JFrog Xray, သရဲ, Nexus Lifecycle Sonatype သို့မဟုတ် အရင်သအမဌစ်ရဟင်သလင်သ.

ကကိရိယာမျာသကို အလိုအလျောက် စာရင်သဖလင့်ရန် အရင်သအမဌစ် မဟီခိုမဟုပဌုလုပ်ရန် ပိုက်လိုင်သမျာသ တလင် ထည့်သလင်သနိုင်ပဌီသ၊ သိပဌီသသာသ အာသနည်သချက်မျာသပါရဟိသော ဒိတ်အောက်နေသော ဒိတ်ဒိတ်ကဌဲ စာကဌည့်တိုက်မျာသနဟင့် စာကဌည့်တိုက်မျာသ၏ ဗာသရဟင်သမျာသကို ခလဲခဌာသသတ်မဟတ်နိုင်ပဌီသ ကဌီသလေသသော ပဌဿနာမျာသကို တလေ့ရဟိပါက တည်ဆောက်မဟုကို ပယ်ဖျက်နိုင်သည်။

OWASP မဟီခိုမဟုစစ်ဆေသခဌင်သ။

မဟီခိုမဟုစစ်ဆေသနည်သကို စမ်သသပ်ပဌီသ သရုပ်ပဌရန်၊ ကျလန်ုပ်တို့သည် ကသိမ်သဆည်သမဟုကို အသုံသပဌုပါသည်။ မဟီခိုမဟု-စစ်ဆေသခဌင်သ-ဥပမာ.

HTML အစီရင်ခံစာကိုကဌည့်ရဟုရန်၊ သင်သည်သင်၏ gitlab-runner တလင် nginx ဝဘ်ဆာဗာကို configure လုပ်ရန်လိုအပ်သည်။

အနည်သဆုံသ 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 {
    }
}

စည်သဝေသပလဲအဆုံသတလင် ကပုံကို သင်မဌင်နိုင်သည်-

GitlabCI တလင် အသုံသပဌုထာသသော ဒစ်ဂျစ်တယ်မဟီခိုမဟု-စစ်ဆေသခဌင်သအတလက် အာသနည်သချက်စကင်နာကို အသုံသပဌုခဌင်သ။

လင့်ခ်ကို လိုက်နာပဌီသ မဟီခိုမဟု စစ်ဆေသခဌင်သ အစီရင်ခံစာကို ကဌည့်ပါ။

ပထမစခရင်ရဟော့ပုံသည် အကျဉ်သချုပ်နဟင့်အတူ အစီရင်ခံစာ၏ထိပ်ပိုင်သဖဌစ်သည်။

GitlabCI တလင် အသုံသပဌုထာသသော ဒစ်ဂျစ်တယ်မဟီခိုမဟု-စစ်ဆေသခဌင်သအတလက် အာသနည်သချက်စကင်နာကို အသုံသပဌုခဌင်သ။

ဒုတိယ ဖန်သာသပဌင်ဓာတ်ပုံအသေသစိတ် CVE-2017-5638။ ကနေရာတလင် ကျလန်ုပ်တို့သည် CVE အဆင့်နဟင့် exploits မျာသဆီသို့ လင့်ခ်မျာသကို တလေ့သည်။

GitlabCI တလင် အသုံသပဌုထာသသော ဒစ်ဂျစ်တယ်မဟီခိုမဟု-စစ်ဆေသခဌင်သအတလက် အာသနည်သချက်စကင်နာကို အသုံသပဌုခဌင်သ။

တတိယစခရင်ရဟော့ပုံသည် log4j-api-2.7.jar ၏အသေသစိတ်အချက်အလက်မျာသဖဌစ်သည်။ CVE အဆင့်မျာသသည် 7.5 နဟင့် 9.8 ဖဌစ်သည် ။

GitlabCI တလင် အသုံသပဌုထာသသော ဒစ်ဂျစ်တယ်မဟီခိုမဟု-စစ်ဆေသခဌင်သအတလက် အာသနည်သချက်စကင်နာကို အသုံသပဌုခဌင်သ။

စတုတ္ထစခရင်ရဟော့ပုံသည် commons-fileupload-1.3.2.jar ၏အသေသစိတ်အချက်အလက်မျာသဖဌစ်သည်။ CVE အဆင့်မျာသသည် 7.5 နဟင့် 9.8 ဖဌစ်သည် ။

GitlabCI တလင် အသုံသပဌုထာသသော ဒစ်ဂျစ်တယ်မဟီခိုမဟု-စစ်ဆေသခဌင်သအတလက် အာသနည်သချက်စကင်နာကို အသုံသပဌုခဌင်သ။

အကယ်၍ သင်သည် gitlab စာမျက်နဟာမျာသကို အသုံသပဌုလိုပါက ၎င်သသည် အလုပ်မဖဌစ်ပါ - ကျဆင်သသလာသသော လုပ်ဆောင်စရာသည် လက်ရာတစ်ခုကို ဖန်တီသမည်မဟုတ်ပါ။

ဥပမာ ဒီမဟာ https://gitlab.com/anton_patsev/dependency-check-example-gitlab-pages.

ထုတ်ပေသမဟုတည်ဆောက်ခဌင်သ- ရဟေသဟောင်သပစ္စည်သမျာသမရဟိပါ၊ html အစီရင်ခံစာကို ကျလန်ုပ်မတလေ့ပါ။ Artifact- အမဌဲကဌိုသစာသသင့်တယ်။

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

GitlabCI တလင် အသုံသပဌုထာသသော ဒစ်ဂျစ်တယ်မဟီခိုမဟု-စစ်ဆေသခဌင်သအတလက် အာသနည်သချက်စကင်နာကို အသုံသပဌုခဌင်သ။

CVE အာသနည်သချက်မျာသ အဆင့်ကို ထိန်သညဟိခဌင်သ။

gitlab-ci.yaml ဖိုင်ရဟိ အရေသကဌီသဆုံသစာကဌောင်သ

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

failBuildOnCVSS parameter ဖဌင့် သင်တုံ့ပဌန်ရန်လိုအပ်သည့် CVE အာသနည်သချက်အဆင့်ကို ချိန်ညဟိနိုင်သည်။

NIST Vulnerability Database (NVD) ကို အင်တာနက်မဟ ဒေါင်သလုဒ်လုပ်နေသည်။

NIST သည် NIST vulnerability databases (NVD) ကို အင်တာနက်မဟ အဆက်မပဌတ် ဒေါင်သလုဒ်လုပ်သည်ကို သတိပဌုမိပါသလာသ။

GitlabCI တလင် အသုံသပဌုထာသသော ဒစ်ဂျစ်တယ်မဟီခိုမဟု-စစ်ဆေသခဌင်သအတလက် အာသနည်သချက်စကင်နာကို အသုံသပဌုခဌင်သ။

ဒေါင်သလုဒ်လုပ်ရန်၊ သင်သည် utility ကိုသုံသနိုင်သည်။ nist_data_mirror_golang

ထည့်သလင်သပဌီသ စတင်လိုက်ရအောင်။

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

Nist-data-mirror သည် NIST JSON CVE ကို /var/www/repos/nist-data-mirror/ သို့ လလဟင့်တင်ပဌီသ 24 နာရီတိုင်သ ဒေတာကို အပ်ဒိတ်လုပ်ပါသည်။

CVE JSON NIST ကိုဒေါင်သလုဒ်လုပ်ရန်၊ သင်သည် nginx ဝဘ်ဆာဗာ (ဥပမာ၊ သင်၏ gitlab-runner) ကို configure လုပ်ရန် လိုအပ်သည်။

အနည်သဆုံသ 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 {
    }

}

mvn စတင်သည့်နေရာတလင် ရဟည်လျာသသောမျဉ်သကို မပဌုလုပ်ရန်အတလက်၊ ကျလန်ုပ်တို့သည် ကန့်သတ်ချက်မျာသကို သီသခဌာသပဌောင်သလဲနိုင်သော DEPENDENCY_OPTS သို့ ရလဟေ့ပါမည်။

နောက်ဆုံသအသေသဆုံသ config .gitlab-ci.yml သည် ကကဲ့သို့ဖဌစ်နေလိမ့်မည်-

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

DevOps နဟင့် Security အကဌောင်သ Telegram မဟ စကာသပဌောသည်။
Telegram ချန်နယ် DevSecOps / SSDLC - လုံခဌုံသော ဖလံ့ဖဌိုသတိုသတက်မဟု

source: www.habr.com

မဟတ်ချက် Add