අවදානම් කළමනාකරණයේ වැදගත් කොටසක් වන්නේ නවීන පද්ධති සෑදෙන මෘදුකාංග සංරචකවල සැපයුම් දාමය හොඳින් අවබෝධ කර ගැනීම සහ සුරක්ෂිත කිරීමයි. Agile සහ DevOps කණ්ඩායම් සංවර්ධන කාලය සහ පිරිවැය අඩු කිරීම සඳහා විවෘත මූලාශ්ර පුස්තකාල සහ රාමු පුළුල් ලෙස භාවිතා කරයි. නමුත් මෙම පදක්කම ද අවාසියක් ඇත: අන් අයගේ වැරදි සහ දුර්වලතා උරුම කර ගැනීමේ අවස්ථාව.
පැහැදිලිවම, කණ්ඩායම එහි යෙදුම්වල ඇතුළත් කර ඇති විවෘත මූලාශ්ර සංරචක දැන ගැනීමට වග බලා ගත යුතුය, දන්නා විශ්වාසදායක අනුවාදයන් දන්නා විශ්වාසදායක මූලාශ්රවලින් බාගත කර ඇති බවට සහතික විය යුතුය, සහ අලුතින් සොයාගත් දුර්වලතා ගැලපීමෙන් පසුව සංරචකවල යාවත්කාලීන කළ අනුවාද බාගත කළ යුතුය.
මෙම පළකිරීමේදී, ඔබගේ කේතය සමඟ බරපතල ගැටළු අනාවරණය වුවහොත්, ගොඩනැගීම නවතා දැමීමට OWASP යැපුම් පරීක්ෂාව භාවිතා කිරීම අපි බලමු.
"Agile Projects හි සංවර්ධන ආරක්ෂාව" යන පොතේ එය පහත පරිදි විස්තර කෙරේ. OWASP යැපුම් පිරික්සුම යනු යෙදුමක භාවිතා වන සියලුම විවෘත මූලාශ්ර සංරචක ලැයිස්තුගත කර ඒවායේ ඇති දුර්වලතා පෙන්වන නිදහස් ස්කෑනරයකි. Java, .NET, Ruby (gemspec), PHP (composer), Node.js සහ Python සඳහා මෙන්ම සමහර C/C++ ව්යාපෘති සඳහාද අනුවාද ඇත. Ant, Maven සහ Gradle ඇතුළු පොදු ගොඩනැගීමේ මෙවලම් සහ Jenkins වැනි අඛණ්ඩ ඒකාබද්ධතා සේවාදායකයන් සමඟ යැපුම් පරීක්ෂාව ඒකාබද්ධ වේ.
යැපුම් පරීක්ෂාව NIST හි ජාතික අවදානම් දත්ත ගබඩාවෙන් (NVD) දන්නා අවදානම් සහිත සියලුම සංරචක වාර්තා කරන අතර NVD ප්රවෘත්ති සංග්රහවලින් දත්ත සමඟ යාවත්කාලීන වේ.
වාසනාවකට මෙන්, මේ සියල්ල OWASP යැපුම් පිරික්සුම් ව්යාපෘතිය හෝ වාණිජ වැඩසටහන් වැනි මෙවලම් භාවිතයෙන් ස්වයංක්රීයව සිදු කළ හැක.
විවෘත මූලාශ්ර පරායත්තතා ස්වයංක්රීයව ඉන්වෙන්ටරි කිරීමට, දන්නා දුර්වලතා සහිත පුස්තකාල සහ පුස්තකාලවල යල් පැන ගිය අනුවාද හඳුනා ගැනීමට සහ බරපතල ගැටළු අනාවරණය වුවහොත් ගොඩනැගීම් නවතා දැමීමට මෙම මෙවලම් නල මාර්ග ගොඩනැගීමට ඇතුළත් කළ හැකිය.
OWASP යැපුම් පරීක්ෂාව
යැපුම් පිරික්සුම ක්රියා කරන ආකාරය පරීක්ෂා කිරීමට සහ නිරූපණය කිරීමට, අපි මෙම ගබඩාව භාවිතා කරමු
HTML වාර්තාව බැලීම සඳහා, ඔබ ඔබේ gitlab-runner මත nginx වෙබ් සේවාදායකය වින්යාස කළ යුතුය.
අවම nginx වින්යාසයක උදාහරණය:
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 {
}
}
රැස්වීම අවසානයේ ඔබට මෙම පින්තූරය දැකිය හැකිය:
සබැඳිය අනුගමනය කර යැපුම් පිරික්සුම් වාර්තාව බලන්න.
පළමු තිර රුව සාරාංශයක් සහිත වාර්තාවේ ඉහළ කොටසයි.
දෙවන තිර රුව විස්තර CVE-2017-5638. මෙන්න අපි CVE මට්ටම සහ සූරාකෑම් සඳහා සබැඳි දකිමු.
තුන්වන තිර පිටපත log4j-api-2.7.jar හි විස්තර වේ. CVE මට්ටම් 7.5 සහ 9.8 බව අපට පෙනේ.
සිව්වන තිර පිටපත වන්නේ Commons-fileupload-1.3.2.jar හි විස්තර වේ. CVE මට්ටම් 7.5 සහ 9.8 බව අපට පෙනේ.
ඔබට gitlab පිටු භාවිතා කිරීමට අවශ්ය නම්, එය ක්රියා නොකරනු ඇත - වැටුණු කාර්යයක් පුරාවස්තුවක් නිර්මාණය නොකරයි.
උදාහරණය මෙතනින්
ප්රතිදානය ගොඩනැගීම: කෞතුක වස්තු නැත, මට html වාර්තාව නොපෙනේ. ඔබ කෞතුක භාණ්ඩය උත්සාහ කළ යුතුය: සෑම විටම
CVE අවදානම් මට්ටම නියාමනය කිරීම
gitlab-ci.yaml ගොනුවේ වැදගත්ම රේඛාව:
mvn $MAVEN_CLI_OPTS test org.owasp:dependency-check-maven:check -DfailBuildOnCVSS=7
failBuildOnCVSS පරාමිතිය සමඟින් ඔබට ප්රතිචාර දැක්වීමට අවශ්ය CVE අවදානම් මට්ටම වෙනස් කළ හැක.
NIST Vulnerability Database (NVD) අන්තර්ජාලයෙන් බාගත කිරීම
NIST නිරන්තරයෙන් අන්තර්ජාලයෙන් NIST අවදානම් දත්ත සමුදායන් (NVD) බාගත කරන බව ඔබ දැක තිබේද:
බාගත කිරීම සඳහා, ඔබට උපයෝගීතාව භාවිතා කළ හැකිය
අපි එය ස්ථාපනය කර දියත් කරමු.
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 මත).
අවම nginx වින්යාසයක උදාහරණය:
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 වෙනම විචල්යයකට ගෙන යන්නෙමු.
අවසාන අවම වින්යාසය .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
මූලාශ්රය: www.habr.com