DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

Synopsys, Sonatype, Snyk සහ White Source විසින් ප්‍රකාශයට පත් කරන ලද විවෘත මූලාශ්‍ර පුස්තකාලවල දුර්වලතා පිළිබඳ වාර්ෂික වාර්තා නිකුත් කිරීමත් සමඟ සංවර්ධන ක්‍රියාවලියේදී තෙවන පාර්ශවීය මෘදුකාංග සංරචක (මෘදුකාංග සංයුතිය විශ්ලේෂණය - SCA) විශ්ලේෂණය කිරීමේ වැදගත්කම වර්ධනය වේ. . වාර්තාවට අනුව විවෘත මූලාශ්‍ර ආරක්ෂණ අවදානම් තත්ත්වය 2020 2019 දී හඳුනාගත් විවෘත මූලාශ්‍ර අවදානම් සංඛ්‍යාව පෙර වසරට සාපේක්ෂව 1.5 ගුණයකින් පමණ වැඩි වී ඇති අතර විවෘත කේත සංරචක ව්‍යාපෘතිවලින් 60% සිට 80% දක්වා භාවිතා කරයි. ස්වාධීන පදනමක් මත, SCA ක්‍රියාවලීන් පරිණතභාවයේ දර්ශකයක් ලෙස OWASP SAMM සහ BSIMM හි වෙනම භාවිතයක් වන අතර, 2020 පළමු භාගයේදී, OWASP විසින් නව OWASP මෘදුකාංග සංරචක සත්‍යාපන ප්‍රමිතිය (SCVS) නිකුත් කරන ලද අතර, එය තෙවන සත්‍යාපනය සඳහා හොඳම භාවිතයන් සපයයි. සැපයුම් දාමයේ පාර්ශ්ව සංරචක BY.

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

වඩාත්ම නිදර්ශන අවස්ථා වලින් එකකි සිදු විය 2017 මැයි මාසයේදී Equifax සමඟ. නාඳුනන ප්‍රහාරකයින් සම්පූර්ණ නම්, ලිපිනයන්, සමාජ ආරක්ෂණ අංක සහ රියදුරු බලපත්‍ර ඇතුළුව ඇමරිකානුවන් මිලියන 143 ක් පිළිබඳ තොරතුරු ලබා ගත්හ. 209 නඩු වලදී, ලේඛනවලට ගොදුරු වූවන්ගේ බැංකු කාඩ්පත් පිළිබඳ තොරතුරු ද ඇතුළත් විය. මෙම කාන්දුව සිදු වූයේ Apache Struts 000 (CVE-2-2017) හි තීරනාත්මක අවදානමක් සූරාකෑමේ ප්‍රතිඵලයක් ලෙස වන අතර, නිවැරදි කිරීම 5638 මාර්තු මාසයේදී නිකුත් කරන ලදී. යාවත්කාලීනය ස්ථාපනය කිරීමට සමාගමට මාස දෙකක් තිබුණි, නමුත් කිසිවෙකු එයට කරදර වූයේ නැත.

විශ්ලේෂණ ප්රතිඵලවල ගුණාත්මකභාවය පිළිබඳ දෘෂ්ටි කෝණයෙන් SCA පැවැත්වීම සඳහා මෙවලමක් තෝරා ගැනීමේ ගැටළුව මෙම ලිපියෙන් සාකච්ඡා කරනු ඇත. මෙවලම්වල ක්රියාකාරී සැසඳීමක් ද ලබා දෙනු ඇත. CI/CD සහ ඒකාබද්ධ කිරීමේ හැකියාවන් වෙත ඒකාබද්ධ කිරීමේ ක්‍රියාවලිය පසුකාලීන ප්‍රකාශන සඳහා ඉතිරි වේ. OWASP විසින් පුළුල් පරාසයක මෙවලම් ඉදිරිපත් කරන ලදී ඔබේ වෙබ් අඩවියේ, නමුත් වත්මන් සමාලෝචනයේදී අපි වඩාත් ජනප්‍රිය විවෘත මූලාශ්‍ර මෙවලමක් වන Dependency Check, තරමක් අඩු ප්‍රසිද්ධ විවෘත මූලාශ්‍ර වේදිකාවක් වන Dependency Track සහ Enterprise විසඳුම Sonatype Nexus IQ මත පමණක් ස්පර්ශ කරන්නෙමු. මෙම විසඳුම් ක්‍රියාත්මක වන ආකාරය සහ ව්‍යාජ ධනාත්මක සඳහා ලබාගත් ප්‍රතිඵල සංසන්දනය කරන ආකාරය ද අපි තේරුම් ගනිමු.

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

එය ක්රියා කරන ආකාරය

යැපුම් පරීක්ෂාව ව්‍යාපෘති ගොනු විශ්ලේෂණය කරන, පරායත්තතා (පැකේජයේ නම, සමූහගත, පිරිවිතර මාතෘකාව, අනුවාදය...) පිළිබඳ තොරතුරු එකතු කරන උපයෝගිතා (CLI, maven, jenkins module, ant) ​​CPE (Common Platform Enumeration) රේඛාවක් ගොඩනඟයි. , පැකේජ URL ( PURL) සහ දත්ත සමුදායන් (NVD, Sonatype OSS Index, NPM Audit API...) වෙතින් CPE/PURL සඳහා වන දුර්වලතා හඳුනා ගනී, ඉන් පසුව එය HTML, JSON, XML ආකෘතියෙන් එක් වරක් වාර්තාවක් ගොඩනඟයි...

CPE පෙනුම කෙබඳුදැයි බලමු:

cpe:2.3:part:vendor:product:version:update:edition:language:sw_edition:target_sw:target_hw:other

  • කොටස: සංරචකය යෙදුමට (a), මෙහෙයුම් පද්ධතිය (o), දෘඪාංග (h) (අවශ්‍ය) සම්බන්ධ බවට ඇඟවීම
  • වෙළෙන්දා: නිෂ්පාදන නිෂ්පාදකයාගේ නම (අවශ්‍යයි)
  • නිෂ්පාදන: නිෂ්පාදනයේ නම (අවශ්‍යයි)
  • පිටපත: සංරචක අනුවාදය (යල් පැන ගිය අයිතමය)
  • යාවත්කාලීනය: පැකේජ යාවත්කාලීන කිරීම
  • සංස්කරණය: ලෙගසි අනුවාදය (අත් හරින ලද අයිතමය)
  • භාෂාව: RFC-5646 හි අර්ථ දක්වා ඇති භාෂාව
  • SW සංස්කරණය: මෘදුකාංග අනුවාදය
  • ඉලක්ක SW: නිෂ්පාදනය ක්‍රියාත්මක වන මෘදුකාංග පරිසරය
  • ඉලක්ක HW: නිෂ්පාදනය ක්‍රියාත්මක වන දෘඪාංග පරිසරය
  • වෙනත්: සැපයුම්කරු හෝ නිෂ්පාදන තොරතුරු

CPE උදාහරණයක් මේ වගේ ය:

cpe:2.3:a:pivotal_software:spring_framework:3.0.0:*:*:*:*:*:*:*

රේඛාව යනු CPE අනුවාදය 2.3 නිෂ්පාදකයාගෙන් යෙදුම් සංරචකය විස්තර කරයි pivotal_software මාතෘකාව සමඟ spring_framework අනුවාදය 3.0.0. අපි දුර්වලතාවයක් විවෘත කළොත් CVE-2014-0225 NVD හි, අපට මෙම CPE ගැන සඳහනක් දැකිය හැකිය. ඔබ වහාම අවධානය යොමු කළ යුතු පළමු ගැටළුව නම්, CPE ට අනුව, NVD හි CVE ගැටළුවක් වාර්තා කරන්නේ රාමුවේ මිස නිශ්චිත සංරචකයක නොවේ. එනම්, සංවර්ධකයින් රාමුවට තදින් බැඳී ඇත්නම් සහ සංවර්ධකයින් භාවිතා කරන මොඩියුලවලට හඳුනාගත් දුර්වලතාවය බලපාන්නේ නැත්නම්, ආරක්ෂක විශේෂඥයෙකුට එක් ආකාරයකින් හෝ වෙනත් ආකාරයකින් මෙම CVE විසුරුවා හැර යාවත්කාලීන කිරීම ගැන සිතීමට සිදුවේ.

URL එක SCA මෙවලම් මගින්ද භාවිතා කරයි. පැකේජ URL ආකෘතිය පහත පරිදි වේ:

scheme:type/namespace/name@version?qualifiers#subpath

  • යෝජනා ක්රමය: මෙය පැකේජ URL එකක් බව හඟවන 'pkg' සැමවිටම ඇත (අවශ්‍යයි)
  • වර්ගය: පැකේජයේ "වර්ගය" හෝ පැකේජයේ "ප්‍රොටෝකෝලය", එනම් maven, npm, nuget, gem, pypi, ආදිය. (අවශ්‍ය)
  • නාම අවකාශය: Maven සමූහ හැඳුනුම්පතක්, ඩොකර් රූප හිමිකරු, GitHub පරිශීලක, හෝ සංවිධානය වැනි සමහර නාම උපසර්ග. විකල්ප සහ වර්ගය මත රඳා පවතී.
  • නම: පැකේජයේ නම (අවශ්‍යයි)
  • පිටපත: පැකේජ අනුවාදය
  • සුදුසුකම්: පැකේජය සඳහා අමතර සුදුසුකම් දත්ත, එනම් OS, ගෘහ නිර්මාණ ශිල්පය, බෙදා හැරීම, ආදිය. විකල්ප සහ වර්ගය-විශේෂිත.
  • උප මාර්ගය: පැකේජ මූලයට සාපේක්ෂව පැකේජයේ අමතර මාර්ගය

උදාහරණ වශයෙන්:

pkg:golang/google.golang.org/genproto#googleapis/api/annotations
pkg:maven/org.apache.commons/[email protected]
pkg:pypi/[email protected]

යැපුම් පථය - ජනනය කරන ලද සූදානම් කළ ද්‍රව්‍ය බිල්පත (BOM) පිළිගන්නා පරිශ්‍රයේ වෙබ් වේදිකාවකි CycloneDX и එස්පීඩීඑක්ස්, එනම්, පවතින පරායත්තතා පිළිබඳ සූදානම් කළ පිරිවිතර. මෙය පරායත්තතා විස්තර කරන XML ගොනුවකි - නම, හෑෂ්, පැකේජ url, ප්‍රකාශකයා, බලපත්‍රය. මීළඟට, Dependency Track BOM විග්‍රහ කරයි, අවදානම් දත්ත ගබඩාවෙන් (NVD, Sonatype OSS Index...) හඳුනාගත් පරායත්තයන් සඳහා ඇති CVEs දෙස බලයි, ඉන් පසුව එය ප්‍රස්ථාර ගොඩනඟයි, ප්‍රමිතික ගණනය කරයි, සංරචකවල අවදානම් තත්ත්වය පිළිබඳ දත්ත නිතිපතා යාවත්කාලීන කරයි. .

XML ආකෘතියෙන් BOM එකක් පෙනෙන්නේ කෙසේද යන්න පිළිබඳ උදාහරණයක්:

<?xml version="1.0" encoding="UTF-8"?>
<bom xmlns="http://cyclonedx.org/schema/bom/1.2" serialNumber="urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79" version="1">
  <components>
    <component type="library">
      <publisher>Apache</publisher>
      <group>org.apache.tomcat</group>
      <name>tomcat-catalina</name>
      <version>9.0.14</version>
      <hashes>
        <hash alg="MD5">3942447fac867ae5cdb3229b658f4d48</hash>
        <hash alg="SHA-1">e6b1000b94e835ffd37f4c6dcbdad43f4b48a02a</hash>
        <hash alg="SHA-256">f498a8ff2dd007e29c2074f5e4b01a9a01775c3ff3aeaf6906ea503bc5791b7b</hash>
        <hash alg="SHA-512">e8f33e424f3f4ed6db76a482fde1a5298970e442c531729119e37991884bdffab4f9426b7ee11fccd074eeda0634d71697d6f88a460dce0ac8d627a29f7d1282</hash>
      </hashes>
      <licenses>
        <license>
          <id>Apache-2.0</id>
        </license>
      </licenses>
      <purl>pkg:maven/org.apache.tomcat/[email protected]</purl>
    </component>
      <!-- More components here -->
  </components>
</bom>

BOM යැපුම් පථය සඳහා ආදාන පරාමිතීන් ලෙස පමණක් නොව, සැපයුම් දාමයේ මෘදුකාංග සංරචක ඉන්වෙන්ටරි කිරීම සඳහා ද භාවිතා කළ හැකිය, උදාහරණයක් ලෙස, පාරිභෝගිකයෙකුට මෘදුකාංග සැපයීම සඳහා. 2014 දී එක්සත් ජනපදයේ නීතියක් පවා යෝජනා විය "2014 සයිබර් සැපයුම් දාම කළමනාකරණ සහ විනිවිදභාවය පිළිබඳ පනත", මෘදුකාංග මිලදී ගැනීමේදී, ඕනෑම රාජ්යයක් බව ප්රකාශ විය. අවදානමට ලක්විය හැකි සංරචක භාවිතය වැළැක්වීම සඳහා ආයතනය BOM ඉල්ලා සිටිය යුතුය, නමුත් පනත තවමත් බලාත්මක වී නොමැත.

SCA වෙත ආපසු යාම, Dependency Track හි Slack වැනි දැනුම්දීම් වේදිකා, Kenna Security වැනි අවදානම් කළමනාකරණ පද්ධති සමඟ සූදානම් ඒකාබද්ධ කිරීම් ඇත. Dependency Track, වෙනත් දේ අතර, පැකේජවල යල් පැන ගිය අනුවාද හඳුනාගෙන බලපත්‍ර පිළිබඳ තොරතුරු සපයන බව පැවසීම වටී (SPDX සහාය හේතුවෙන්).

අපි SCA හි ගුණාත්මකභාවය ගැන විශේෂයෙන් කතා කරන්නේ නම්, මූලික වෙනසක් ඇත.

යැපුම් පථය ව්‍යාපෘතිය ආදානය ලෙස පිළිගන්නේ නැත, නමුත් BOM. මෙයින් අදහස් කරන්නේ අපට ව්‍යාපෘතිය පරීක්ෂා කිරීමට අවශ්‍ය නම්, අපි මුලින්ම bom.xml උත්පාදනය කළ යුතු බවයි, උදාහරණයක් ලෙස CycloneDX භාවිතයෙන්. මේ අනුව, යැපුම් පථය සෘජුවම CycloneDX මත රඳා පවතී. ඒ සමගම, එය අභිරුචිකරණයට ඉඩ සලසයි. OZON කණ්ඩායම ලිව්වේ මෙයයි CycloneDX මොඩියුලය Dependency Track හරහා තවදුරටත් පරිලෝකනය කිරීම සඳහා Golang ව්‍යාපෘති සඳහා BOM ගොනු එකලස් කිරීම සඳහා.

Nexus IQ Nexus Repository Manager ද ඇතුළත් වන Sonatype පරිසර පද්ධතියේ කොටසක් වන Sonatype වෙතින් වාණිජ SCA විසඳුමකි. Nexus IQ හට වෙබ් අතුරු මුහුණත හෝ API, සහ BOM හරහා යුධ ලේඛනාගාර දෙකම (java ව්‍යාපෘති සඳහා) ආදානය ලෙස පිළිගත හැක, ඔබේ සංවිධානය තවමත් CycloneDX වෙතින් නව විසඳුමකට මාරු වී නොමැති නම්. විවෘත මූලාශ්‍ර විසඳුම් මෙන් නොව, IQ යනු CP/PURL සඳහා හඳුනාගත් සංරචකයට සහ දත්ත සමුදායේ අනුරූප අවදානමට පමණක් නොව, එහිම පර්යේෂණ ද සැලකිල්ලට ගනී, උදාහරණයක් ලෙස, අවදානමට ලක්විය හැකි ශ්‍රිතයේ හෝ පන්තියේ නම. IQ හි යාන්ත්‍රණ ප්‍රතිඵල විශ්ලේෂණයේදී පසුව සාකච්ඡා කෙරේ.

අපි ක්‍රියාකාරී විශේෂාංග කිහිපයක් සාරාංශ කරමු, සහ විශ්ලේෂණය සඳහා සහාය දක්වන භාෂා ද සලකා බලමු:

භාෂාව
Nexus IQ
යැපුම් පරීක්ෂාව
යැපුම් පථය

ජාවා
+
+
+

C / C ++
+
+
-

C#
+
+
-

.ශුද්ධ
+
+
+

අර්ලන්ග්
-
-
+

JavaScript (NodeJS)
+
+
+

PHP
+
+
+

Python මීට උදාහරණ
+
+
+

රූබි
+
+
+

පර්ල්
-
-
-

පරිමාණය
+
+
+

පරමාර්ථය සී
+
+
-

ඉක්මන්
+
+
-

R
+
-
-

Go
+
+
+

ක්‍රියාකාරීත්වය

ක්‍රියාකාරීත්වය
Nexus IQ
යැපුම් පරීක්ෂාව
යැපුම් පථය

මූලාශ්‍ර කේතයේ භාවිතා වන සංරචක බලපත්‍රලාභී සංශුද්ධතාවය සඳහා පරීක්ෂා කර ඇති බව සහතික කිරීමේ හැකියාව
+
-
+

ඩොකර් පින්තූර සඳහා අවදානම් සහ බලපත්‍ර පිරිසිදුකම සඳහා ස්කෑන් කිරීමට සහ විශ්ලේෂණය කිරීමට හැකියාව
+ ක්ලෙයාර් සමඟ ඒකාබද්ධ වීම
-
-

විවෘත මූලාශ්‍ර පුස්තකාල භාවිතා කිරීමට ආරක්ෂක ප්‍රතිපත්ති සැකසීමේ හැකියාව
+
-
-

අවදානමට ලක්විය හැකි සංරචක සඳහා විවෘත මූලාශ්‍ර ගබඩාවන් පරිලෝකනය කිරීමේ හැකියාව
+ RubyGems, Maven, NPM, Nuget, Pypi, Conan, Bower, Conda, Go, p2, R, Yum, Helm, Docker, CocoaPods, Git LFS
-
+ Hex, RubyGems, Maven, NPM, Nuget, Pypi

විශේෂිත පර්යේෂණ කණ්ඩායමක් තිබීම
+
-
-

සංවෘත ලූප මෙහෙයුම
+
+
+

තෙවන පාර්ශවීය දත්ත සමුදායන් භාවිතා කිරීම
+ සංවෘත Sonatype දත්ත සමුදාය
+ Sonatype OSS, NPM මහජන උපදේශකයින්
+ Sonatype OSS, NPM මහජන උපදේශකයින්, RetireJS, VulnDB, තමන්ගේම අවදානම් දත්ත ගබඩාව සඳහා සහාය

වින්‍යාසගත ප්‍රතිපත්තිවලට අනුව සංවර්ධන ලූපයට පැටවීමට උත්සාහ කරන විට විවෘත මූලාශ්‍ර සංරචක පෙරීමේ හැකියාව
+
-
-

දුර්වලතා නිවැරදි කිරීම සඳහා නිර්දේශ, නිවැරදි කිරීම් සඳහා සබැඳි ලබා ගැනීම
+
+- (පොදු දත්ත සමුදායේ විස්තරය මත රඳා පවතී)
+- (පොදු දත්ත සමුදායේ විස්තරය මත රඳා පවතී)

බරපතලකම අනුව හඳුනාගත් දුර්වලතා ශ්‍රේණිගත කිරීම
+
+
+

භූමිකාව මත පදනම් වූ ප්රවේශ ආකෘතිය
+
-
+

CLI සහාය
+
+
+- (CycloneDX සඳහා පමණි)

නිර්වචනය කරන ලද නිර්ණායක අනුව දුර්වලතා නියැදීම/වර්ග කිරීම
+
-
+

යෙදුම් තත්ත්වය අනුව උපකරණ පුවරුව
+
-
+

PDF ආකෘතියෙන් වාර්තා උත්පාදනය කිරීම
+
-
-

JSONCSV ආකෘතියෙන් වාර්තා උත්පාදනය කිරීම
+
+
-

රුසියානු භාෂා සහාය
-
-
-

ඒකාබද්ධ කිරීමේ හැකියාවන්

අනුකලනය
Nexus IQ
යැපුම් පරීක්ෂාව
යැපුම් පථය

LDAP/Active Directory ඒකාබද්ධ කිරීම
+
-
+

අඛණ්ඩ ඒකාබද්ධ කිරීමේ පද්ධතිය සමඟ ඒකාබද්ධ කිරීම උණ බම්බු
+
-
-

අඛණ්ඩ ඒකාබද්ධතා පද්ධතිය සමඟ ඒකාබද්ධ වීම TeamCity
+
-
-

GitLab අඛණ්ඩ ඒකාබද්ධ කිරීමේ පද්ධතිය සමඟ ඒකාබද්ධ වීම
+
+- (GitLab සඳහා ප්ලගිනයක් ලෙස)
+

ජෙන්කින්ස් අඛණ්ඩ ඒකාබද්ධතා පද්ධතිය සමඟ ඒකාබද්ධ වීම
+
+
+

IDE සඳහා ප්ලගීන තිබීම
+ IntelliJ, Eclipse, Visual Studio
-
-

මෙවලමෙහි වෙබ් සේවා (API) හරහා අභිරුචි ඒකාබද්ධ කිරීම සඳහා සහාය
+
-
+

යැපුම් පරීක්ෂාව

මුලින්ම ආරම්භය

අපි හිතාමතාම අවදානමට ලක්විය හැකි යෙදුමක් මත යැපුම් පරීක්ෂාව ධාවනය කරමු DVJA.

මේ සඳහා අපි භාවිතා කරමු යැපුම් පරීක්ෂා Maven ප්ලගිනය:

mvn org.owasp:dependency-check-maven:check

එහි ප්‍රතිඵලයක් ලෙස, ඩිපෙන්ඩන්සි-චෙක්-රිපෝට්.html ඉලක්ක නාමාවලියෙහි දිස්වනු ඇත.

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

අපි ගොනුව විවෘත කරමු. සම්පූර්ණ අවදානම් සංඛ්‍යාව පිළිබඳ සාරාංශ තොරතුරු වලින් පසුව, පැකේජය, CPE සහ CVE ගණන සඳහන් කරමින්, ඉහළ මට්ටමේ බරපතලකම සහ විශ්වාසය සහිත අවදානම් පිළිබඳ තොරතුරු අපට දැකිය හැකිය.

ඊළඟට වඩාත් සවිස්තරාත්මක තොරතුරු පැමිණේ, විශේෂයෙන් තීරණය ගත් පදනම (සාක්ෂි), එනම් නිශ්චිත BOM.

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

ඊළඟට CPE, PURL සහ CVE විස්තරය පැමිණේ. මාර්ගය වන විට, NVD දත්ත ගබඩාවේ නොමැති වීම හේතුවෙන් නිවැරදි කිරීම් සඳහා නිර්දේශ ඇතුළත් නොවේ.

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

ස්කෑන් ප්‍රතිඵල ක්‍රමානුකූලව බැලීම සඳහා, ඔබට අවම සිටුවම් සහිතව Nginx වින්‍යාසගත කළ හැක, නැතහොත් ප්‍රතිඵලයක් ලෙස ඇතිවන දෝෂ යැපීම සඳහා සම්බන්ධක සඳහා සහය දක්වන දෝෂ කළමනාකරණ පද්ධතියකට යැවිය හැක. උදාහරණයක් ලෙස, Defect Dojo.

යැපුම් පථය

ස්ථාපනය

යැපුම් පථය, අනෙක් අතට, සංදර්ශක ප්‍රස්ථාර සහිත වෙබ් පාදක වේදිකාවක් වන අතර, එබැවින් තෙවන පාර්ශවීය විසඳුමක දෝෂ ගබඩා කිරීමේ දැවෙන ප්‍රශ්නය මෙහිදී මතු නොවේ.
ස්ථාපනය සඳහා සහය දක්වන ස්ක්‍රිප්ට් නම්: ඩොකර්, වෝර්, ක්‍රියාත්මක කළ හැකි වෝර්.

මුලින්ම ආරම්භය

අපි ධාවනය වන සේවාවේ URL වෙත යන්නෙමු. අපි පරිපාලක / පරිපාලක හරහා ලොග් වී, පිවිසුම් සහ මුරපදය වෙනස් කරන්න, ඉන්පසු උපකරණ පුවරුව වෙත යන්න. අපි ඊළඟට කරන්නේ ජාවා හි පරීක්ෂණ යෙදුමක් සඳහා ව්‍යාපෘතියක් නිර්මාණය කිරීමයි නිවස/ව්‍යාපෘති → ව්‍යාපෘතිය සාදන්න . අපි උදාහරණයක් ලෙස DVJA ගනිමු.

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

Dependency Track හට BOM ආදානය ලෙස පමණක් පිළිගත හැකි බැවින්, මෙම BOM නැවත ලබාගත යුතුය. ප්‍රයෝජනය ගනිමු CycloneDX Maven ප්ලගිනය:

mvn org.cyclonedx:cyclonedx-maven-plugin:makeAggregateBom

අපි bom.xml ලබාගෙන සාදන ලද ව්යාපෘතියේ ගොනුව පූරණය කරමු DVJA → යැපීම් → BOM උඩුගත කරන්න.

අපි පරිපාලනය → විශ්ලේෂක වෙත යමු. අප සතුව ඇත්තේ NVD ඇතුළු අභ්‍යන්තර විශ්ලේෂකය පමණක් සක්‍රීය කර ඇති බව අපට වැටහේ. Sonatype OSS Index ද සම්බන්ධ කරමු.

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

මේ අනුව, අපගේ ව්‍යාපෘතිය සඳහා අපට පහත පින්තූරය ලැබේ:

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

ලැයිස්තුවේ ඔබට Sonatype OSS සඳහා අදාළ වන එක් අවදානමක් සොයාගත හැකිය:

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

ප්‍රධාන බලාපොරොත්තු සුන්වීම නම් Dependency Track තවදුරටත් Dependency Check xml වාර්තා පිළි නොගැනීමයි. මම 1.0.0 පරීක්‍ෂා කරන අතරතුර යැපුම් පිරික්සුම් අනුකලනයෙහි නවතම සහය දක්වන අනුවාද 4.0.2 - 5.3.2 විය.

මෙහි видео (හා බලන්නකෝ) එය තවමත් හැකි වූ විට.

Nexus IQ

මුලින්ම ආරම්භය

Nexus IQ ස්ථාපනය කරන්නේ ලේඛනාගාරයෙන් ලියකියවිලි, නමුත් අපි මෙම අරමුණු සඳහා Docker රූපයක් ගොඩනගා ඇත.

කොන්සෝලයට ඇතුළු වූ පසු, ඔබ සංවිධානයක් සහ යෙදුමක් සෑදිය යුතුය.

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

ඔබට පෙනෙන පරිදි, IQ හි සැකසුම තරමක් සංකීර්ණ වේ, මන්ද අපි විවිධ "අදියර" (dev, build, stage, release) සඳහා අදාළ වන ප්‍රතිපත්ති නිර්මාණය කළ යුතු බැවිනි. මෙය නිෂ්පාදනයට ආසන්නව නල මාර්ගය හරහා ගමන් කරන විට අවදානමට ලක්විය හැකි සංරචක අවහිර කිරීමට හෝ සංවර්ධකයින් විසින් බාගත කරන විට Nexus Repo වෙත පැමිණි වහාම ඒවා අවහිර කිරීමට අවශ්‍ය වේ.

විවෘත මූලාශ්‍රය සහ ව්‍යවසාය අතර වෙනස දැනීමට, අපි Nexus IQ හරහා එකම ස්කෑන් එක ඒ ආකාරයෙන්ම සිදු කරමු. මාවන් ප්ලගිනය, මීට පෙර NexusIQ අතුරුමුහුණත තුළ පරීක්ෂණ යෙදුමක් නිර්මාණය කර ඇත dvja-test-and-compare:

mvn com.sonatype.clm:clm-maven-plugin:evaluate -Dclm.applicationId=dvja-test-and-compare -Dclm.serverUrl=<NEXUSIQIP> -Dclm.username=<USERNAME> -Dclm.password=<PASSWORD>

IQ වෙබ් අතුරු මුහුණතෙහි ජනනය කරන ලද වාර්තාවට URL එක අනුගමනය කරන්න:

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

මෙහිදී ඔබට විවිධ වැදගත්තා මට්ටම් (තොරතුරු සිට ආරක්ෂක විවේචන දක්වා) පෙන්නුම් කරන සියලුම ප්‍රතිපත්ති කඩ කිරීම් දැකිය හැක. සංරචකය අසල ඇති D අකුරෙන් අදහස් වන්නේ සංරචකය සෘජු පරායත්තතාවය වන අතර, එම සංරචකය අසල ඇති T අකුරෙන් අදහස් වන්නේ සංරචකය සංක්‍රාන්ති යැපීම, එනම් එය සංක්‍රාන්ති බවයි.

මාර්ගය වන විට, වාර්තාව විවෘත මූලාශ්‍ර රාජ්‍ය ආරක්ෂක වාර්තාව 2020 Node.js, Java සහ Ruby හි ​​සොයා ගන්නා ලද විවෘත මූලාශ්‍ර අවදානම් වලින් 70%කට වඩා සංක්‍රාන්ති පරායත්තතා වල පවතින බව Snyk වාර්තා කරයි.

අපි Nexus IQ ප්‍රතිපත්ති කඩකිරීම් වලින් එකක් විවෘත කළහොත්, අපට සංරචකයේ විස්තරයක් මෙන්ම අනුවාද ප්‍රස්තාරයක් දැක ගත හැක, එය කාල ප්‍රස්ථාරයේ වත්මන් අනුවාදයේ පිහිටීම පෙන්නුම් කරයි, එමෙන්ම අවදානම නතර වන්නේ කුමන අවස්ථාවේදීද යන්න පෙන්වයි. අවදානමට ලක් විය හැක. ප්රස්ථාරයේ ඉටිපන්දම් උස මෙම සංරචකය භාවිතා කිරීමේ ජනප්රියත්වය පෙන්නුම් කරයි.

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

ඔබ අවදානම් අංශයට ගොස් CVE පුළුල් කරන්නේ නම්, ඔබට මෙම අවදානම, ඉවත් කිරීම සඳහා නිර්දේශ මෙන්ම මෙම සංරචකය උල්ලංඝනය වීමට හේතුව, එනම් පන්තියේ සිටීම පිළිබඳ විස්තරයක් කියවිය හැකිය. DiskFileitem.class.

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

js සංරචක ඉවත් කර තෙවන පාර්ශවීය ජාවා සංරචක වලට අදාළ ඒවා පමණක් සාරාංශ කරමු. වරහන් තුළ අපි NVD වලින් පිටත සොයාගත් දුර්වලතා ගණන දක්වයි.

සම්පූර්ණ Nexus IQ:

  • පරිලෝකනය කළ පරායත්තතා: 62
  • අවදානමට ලක්විය හැකි යැපීම්: 16
  • හමු වූ දුර්වලතා: 42 (8 Sonatype db)

සම්පූර්ණ යැපුම් පරීක්ෂාව:

  • පරිලෝකනය කළ පරායත්තතා: 47
  • අවදානමට ලක්විය හැකි යැපීම්: 13
  • හමු වූ දුර්වලතා: 91 (14 සොනාටයිප් ඕස්)

සම්පූර්ණ යැපුම් පථය:

  • පරිලෝකනය කළ පරායත්තතා: 59
  • අවදානමට ලක්විය හැකි යැපීම්: 10
  • හමු වූ දුර්වලතා: 51 (1 සොනාටයිප් ඕස්)

මීළඟ පියවරේදී, අපි ලබාගත් ප්‍රතිඵල විශ්ලේෂණය කර මෙම දුර්වලතාවලින් සැබෑ දෝෂයක් සහ ව්‍යාජ ධනාත්මක කුමක්දැයි සොයා බලමු.

වියාචනය

මෙම සමාලෝචනය අවිවාදිත සත්‍යයක් නොවේ. වෙනත් අයගේ පසුබිමට එරෙහිව වෙනම මෙවලමක් ඉස්මතු කිරීමට කතුවරයාට ඉලක්කයක් නොතිබුණි. සමාලෝචනයේ කාරණය වූයේ SCA මෙවලම් ක්‍රියාත්මක කිරීමේ යාන්ත්‍රණය සහ ඒවායේ ප්‍රතිඵල පරීක්ෂා කිරීමේ ක්‍රම පෙන්වීමයි.

ප්රතිඵල සංසන්දනය කිරීම

කොන්දේසි:

තෙවන පාර්ශවීය සංරචක දුර්වලතා සඳහා ව්‍යාජ ධනාත්මක එකක් වන්නේ:

  • හඳුනාගත් සංරචකයට CVE නොගැලපීම
  • උදාහරණයක් ලෙස, struts2 රාමුව තුළ අවදානමක් හඳුනාගෙන ඇති අතර, මෙවලම මෙම අවදානම අදාළ නොවන struts-tiles රාමුවේ සංරචකයකට යොමු කරයි නම්, මෙය ව්‍යාජ ධනයකි.
  • සංරචකයේ හඳුනාගත් අනුවාදයට CVE නොගැලපීම
  • උදාහරණයක් ලෙස, අවදානම python අනුවාදය > 3.5 සමඟ බැඳී ඇති අතර මෙවලම 2.7 අනුවාදය අවදානමට ලක්විය හැකි ලෙස සලකුණු කරයි - මෙය ව්‍යාජ ධනයකි, මන්ද ඇත්ත වශයෙන්ම අවදානම අදාළ වන්නේ 3.x නිෂ්පාදන ශාඛාවට පමණි.
  • අනුපිටපත් CVE
  • උදාහරණයක් ලෙස, SCA විසින් RCE සක්‍රීය කරන CVE එකක් සඳහන් කරන්නේ නම්, SCA විසින් එම RCE මගින් බලපෑමට ලක් වූ Cisco නිෂ්පාදන සඳහා අදාළ වන එම සංරචකය සඳහාම CVE එකක් නියම කරයි. මෙම අවස්ථාවේ දී, එය වැරදි ධනාත්මක වනු ඇත.
  • උදාහරණයක් ලෙස, වසන්ත-වෙබ් සංරචකයක CVE එකක් හමු වූ අතර, ඉන් පසුව SCA විසින් Spring Framework හි අනෙකුත් සංරචකවල එකම CVE වෙත යොමු කරයි, CVE වෙනත් සංරචක සමඟ කිසිදු සම්බන්ධයක් නැත. මෙම අවස්ථාවේ දී, එය වැරදි ධනාත්මක වනු ඇත.

අධ්‍යයනයේ පරමාර්ථය වූයේ විවෘත මූලාශ්‍ර ව්‍යාපෘතිය DVJA ය. අධ්‍යයනයට සම්බන්ධ වූයේ java සංරචක පමණි (js නොමැතිව).

සාරාංශ ප්රතිඵල

හඳුනාගත් දුර්වලතා පිළිබඳ හස්තීය සමාලෝචනයක ප්‍රතිඵල වෙත කෙලින්ම යමු. එක් එක් CVE සඳහා සම්පූර්ණ වාර්තාව උපග්‍රන්ථයෙන් සොයාගත හැකිය.

සියලුම දුර්වලතා සඳහා සාරාංශ ප්‍රතිඵල:

පරාමිතිය
Nexus IQ
යැපුම් පරීක්ෂාව
යැපුම් පථය

සම්පූර්ණ දුර්වලතා හඳුනාගෙන ඇත
42
91
51

වැරදි ලෙස හඳුනාගත් දුර්වලතා (ව්‍යාජ ධනාත්මක)
2 (4.76%)
62 (68,13%)
29 (56.86%)

අදාළ දුර්වලතා හමු නොවීය (ව්‍යාජ සෘණාත්මක)
10
20
27

සංරචක අනුව සාරාංශ ප්රතිඵල:

පරාමිතිය
Nexus IQ
යැපුම් පරීක්ෂාව
යැපුම් පථය

සම්පූර්ණ සංරචක හඳුනාගෙන ඇත
62
47
59

සම්පූර්ණ අවදානමට ලක්විය හැකි සංරචක
16
13
10

අවදානමට ලක්විය හැකි සංරචක වැරදි ලෙස හඳුනාගෙන ඇත (ව්‍යාජ ධනාත්මක)
1
5
0

අවදානමට ලක්විය හැකි සංරචක වැරදි ලෙස හඳුනාගෙන ඇත (ව්‍යාජ ධනාත්මක)
0
6
6

සම්පූර්ණ අවදානම් සංඛ්‍යාවට ව්‍යාජ ධනාත්මක සහ ව්‍යාජ සෘණ අනුපාතය ඇගයීමට දෘශ්‍ය ප්‍රස්ථාර ගොඩනඟමු. සංරචක තිරස් අතට සලකුණු කර ඇති අතර, ඒවායේ හඳුනාගත් දුර්වලතා සිරස් අතට සලකුණු කර ඇත.

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

සංසන්දනය කිරීම සඳහා, සමාන අධ්‍යයනයක් Sonatype කණ්ඩායම විසින් OWASP යැපුම් පිරික්සුම භාවිතයෙන් සංරචක 1531 ක ව්‍යාපෘතියක් පරීක්ෂා කරන ලදී. අපට පෙනෙන පරිදි, නිවැරදි ප්‍රතිචාර සඳහා ශබ්දයේ අනුපාතය අපගේ ප්‍රතිඵල සමඟ සැසඳිය හැකිය.

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස
මූලාශ්රය: www.sonatype.com/why-precision-matters-ebook

මෙම ප්‍රතිඵල සඳහා හේතුව තේරුම් ගැනීමට අපගේ ස්කෑන් ප්‍රතිඵලවලින් සමහර CVEs බලමු.

තවත්

අංක 1

අපි මුලින්ම Sonatype Nexus IQ ගැන රසවත් කරුණු කිහිපයක් බලමු.

Nexus IQ විසින් Spring Framework තුළ RCE ක්‍රියාත්මක කිරීමේ හැකියාව සමඟ deserialization සමඟ ගැටලුවක් පෙන්වා දෙයි. CVE-2016-1000027 වසන්ත-වෙබ්:3.0.5 පළමු වරට, සහ CVE-2011-2894 වසන්ත-සන්දර්භය:3.0.5 සහ වසන්ත-core:3.0.5. මුලදී, බහු CVEs හරහා අවදානම් අනුපිටපත් ඇති බව පෙනේ. මන්ද, ඔබ NVD දත්ත ගබඩාවේ CVE-2016-1000027 සහ CVE-2011-2894 දෙස බැලුවහොත්, සියල්ල පැහැදිලි බව පෙනේ.

සංරචකය
අවදානම

වසන්ත-වෙබ්: 3.0.5
CVE-2016-1000027

වසන්ත සන්දර්භය:3.0.5
CVE-2011-2894

වසන්ත හරය:3.0.5
CVE-2011-2894

විස්තර CVE-2011-2894 NVD වෙතින්:
DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

විස්තර CVE-2016-1000027 NVD වෙතින්:
DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

CVE-2011-2894 ඉතා ප්‍රසිද්ධය. වාර්තාවේ සුදු මූලාශ්රය 2011 මෙම CVE වඩාත් පොදු එකක් ලෙස හඳුනාගෙන ඇත. CVE-2016-100027 සඳහා විස්තර, ප්‍රතිපත්තිමය වශයෙන්, NVD හි ස්වල්පයක් වන අතර, එය වසන්ත රාමුව 4.1.4 සඳහා පමණක් අදාළ වන බව පෙනේ. අපි බලමු යොමුව සහ මෙහි සෑම දෙයක්ම අඩු වැඩි වශයෙන් පැහැදිලි වේ. සිට ටෙන්බල් ලිපි තුළ ඇති අවදානමට අමතරව අපි එය තේරුම් ගනිමු RemoteInvocationSerializingExporter CVE-2011-2894 හි, අවදානම නිරීක්ෂණය කරනු ලැබේ HttpInvokerServiceExporter. Nexus IQ අපට පවසන්නේ මෙයයි:

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

කෙසේ වෙතත්, NVD හි මෙවැනි කිසිවක් නොමැත, ඒ නිසා යැපුම් පරීක්ෂාව සහ යැපුම් පථය යන දෙකටම ව්‍යාජ සෘණාත්මකව ලැබේ.

CVE-2011-2894 විස්තරයෙන් ද අවධානම ඇත්ත වශයෙන්ම වසන්ත-සන්දර්භය:3.0.5 සහ වසන්ත-core:3.0.5 යන දෙකෙහිම පවතින බව තේරුම් ගත හැක. මෙය තහවුරු කිරීම මෙම අවදානම සොයාගත් පුද්ගලයාගේ ලිපියකින් සොයාගත හැකිය.

අංක 2

සංරචකය
අවදානම
ප්රතිඵලය

struts2-core:2.3.30
CVE-2016-4003
අසත්‍යය

අපි අවදානම් CVE-2016-4003 අධ්‍යයනය කරන්නේ නම්, එය 2.3.28 අනුවාදයේ සවි කර ඇති බව අපට වැටහෙනු ඇත, කෙසේ වෙතත්, Nexus IQ එය අපට වාර්තා කරයි. අවදානම පිළිබඳ විස්තරයේ සටහනක් ඇත:

DevSecOps: SCA හි මෙහෙයුම් සහ සංසන්දනයේ මූලධර්ම. පළමු කොටස

එනම්, අවදානම පවතින්නේ ඔවුන් අපට අනතුරු ඇඟවීමට තීරණය කළ JRE හි යල් පැන ගිය අනුවාදයක් සමඟ පමණි. කෙසේ වෙතත්, නරකම නොවුනත්, අපි මෙම වැරදි ධනාත්මක ලෙස සලකමු.

3

සංරචකය
අවදානම
ප්රතිඵලය

xwork-core:2.3.30
CVE-2017-9804
සැබෑ

xwork-core:2.3.30
CVE-2017-7672
අසත්‍යය

CVE-2017-9804 සහ CVE-2017-7672 හි විස්තර දෙස බැලුවහොත්, ගැටළුව බව අපට වැටහෙනු ඇත. URLValidator class, CVE-2017-9804 සමඟ CVE-2017-7672 සිට. දෙවන අවදානම පැවතීම එහි බරපතලකම ඉහළ මට්ටමකට වැඩි වීම හැර වෙනත් කිසිදු ප්‍රයෝජනවත් බරක් ගෙන නොයනු ඇත, එබැවින් අපට එය අනවශ්‍ය ශබ්දයක් ලෙස සැලකිය හැකිය.

සමස්තයක් වශයෙන්, Nexus IQ සඳහා වෙනත් ව්‍යාජ ධනාත්මක කිසිවක් හමු නොවීය.

අංක 4

IQ වෙනත් විසඳුම් වලින් කැපී පෙනෙන කරුණු කිහිපයක් තිබේ.

සංරචකය
අවදානම
ප්රතිඵලය

වසන්ත-වෙබ්: 3.0.5
CVE-2020-5398
සැබෑ

NVD හි CVE සඳහන් කරන්නේ එය අදාළ වන්නේ 5.2 ට පෙර 5.2.3.x, 5.1 ට පෙර 5.1.13.x සහ 5.0 ට පෙර 5.0.16.x අනුවාද සඳහා පමණක් බවයි, කෙසේ වෙතත්, අපි Nexus IQ හි CVE විස්තරය දෙස බැලුවහොත්. , එවිට අපි පහත දකිමු:
උපදේශන අපගමන දැන්වීම: Sonatype ආරක්ෂක පර්යේෂණ කණ්ඩායම විසින් මෙම අවදානම හඳුන්වා දී ඇත්තේ උපදේශනයේ සඳහන් පරිදි 3.0.2.x නොව 5.0.RELEASE අනුවාදයෙන් බව සොයා ගන්නා ලදී.

මෙම අවදානම සඳහා PoC එකක් අනුගමනය කරයි, එය 3.0.5 අනුවාදයේ පවතින බව සඳහන් කරයි.

අසත්‍ය සෘණ යැපීම සහ යැපුම් පථය වෙත යවනු ලැබේ.

අංක 5

යැපුම් පරීක්ෂාව සහ යැපුම් පථය සඳහා ව්‍යාජ ධනාත්මක දෙස බලමු.

යැපුම් පිරික්සුම කැපී පෙනෙන්නේ එය NVD හි සම්පූර්ණ රාමුවට අදාළ වන එම CVEs මෙම CVEs අදාළ නොවන සංරචකවලට පිළිබිඹු වන බැවිනි. මෙය CVE-2012-0394, CVE-2013-2115, CVE-2014-0114, CVE-2015-0899, CVE-2015-2992, CVE-2016-1181, CVE-2016 පරීක්ෂා කර ඇත ” ට struts-taglib:1182 සහ struts-tiles-1.3.8. මෙම සංරචක CVE හි විස්තර කර ඇති දේ සමඟ කිසිදු සම්බන්ධයක් නැත - ඉල්ලීම් සැකසීම, පිටු වලංගු කිරීම සහ යනාදිය. මෙයට හේතුව මෙම CVEs සහ සංරචක පොදු වන්නේ රාමුව පමණක් වීමයි, එබැවින් යැපුම් පරීක්ෂාව එය අවදානමක් ලෙස සැලකේ.

එම තත්වයම වසන්ත-tx:3.0.5 සමඟද, struts-core:1.3.8 සමඟද සමාන තත්වයක් වේ. struts-core සඳහා, Dependency Check සහ Dependency Track මගින් struts2-core සඳහා සැබවින්ම අදාළ වන බොහෝ දුර්වලතා සොයාගෙන ඇත, එය අත්‍යවශ්‍යයෙන්ම වෙනම රාමුවකි. මෙම අවස්ථාවෙහිදී, Nexus IQ විසින් පින්තූරය නිවැරදිව වටහාගෙන ඇති අතර එය නිකුත් කරන ලද CVEs හි, එය struts-core ජීවිතයේ අවසානයට පැමිණ ඇති අතර එය struts2-core වෙත යාමට අවශ්‍ය බව පෙන්නුම් කළේය.

අංක 6

සමහර අවස්ථා වලදී, පැහැදිලි යැපුම් පිරික්සුම සහ යැපුම් පථයේ දෝෂයක් අර්ථ නිරූපණය කිරීම අසාධාරණ ය. විශේෂයෙන්ම CVE-2013-4152, CVE-2013-6429, CVE-2013-6430, CVE-2013-7315, CVE-2014-0054, CVE-2014-0225, CVE-2014-Dpendency සහ Dependency පරීක්ෂා කරන්න Spring-core:0225 වෙත ආරෝපණය කරන ලද ධාවන පථය ඇත්ත වශයෙන්ම වසන්ත-වෙබ්:3.0.5 ට අයත් වේ. ඒ අතරම, මෙම CVEs සමහරක් Nexus IQ විසින් ද සොයා ගන්නා ලදී, කෙසේ වෙතත්, IQ ඒවා වෙනත් සංරචකයකට නිවැරදිව හඳුනාගෙන ඇත. මෙම දුර්වලතා ස්ප්‍රිං-මූර්‍යය තුළ හමු නොවූ නිසා, ඒවා ප්‍රතිපත්තිමය වශයෙන් රාමුවේ නොමැති බව තර්ක කළ නොහැකි අතර විවෘත මූලාශ්‍ර මෙවලම් මෙම දුර්වලතා නිවැරදිව පෙන්වා දී ඇත (ඒවාට ටිකක් මග හැරී ඇත).

සොයා ගැනීම්

අපට පෙනෙන පරිදි, අතින් සමාලෝචනය මගින් හඳුනාගත් දුර්වලතා වල විශ්වසනීයත්වය නිර්ණය කිරීම නිසැක ප්රතිඵල ලබා නොදේ, මතභේදාත්මක ගැටළු මතු වන්නේ එබැවිනි. ප්රතිඵලය වන්නේ Nexus IQ විසඳුම අවම ව්යාජ ධනාත්මක අනුපාතය සහ ඉහළම නිරවද්යතාවයි.

පළමුවෙන්ම, මෙයට හේතුව වන්නේ Sonatype කණ්ඩායම එහි දත්ත සමුදායන් තුළ NVD වෙතින් එක් එක් CVE අවදානම සඳහා විස්තරය පුළුල් කර ඇති අතර, අමතර පර්යේෂණ සිදු කරමින් පන්තියේ හෝ ක්‍රියාකාරීත්වයේ විශේෂිත අනුවාදයක් සඳහා වන අවදානම් පෙන්නුම් කරයි (උදාහරණයක් ලෙස. , පැරණි මෘදුකාංග අනුවාද වල දුර්වලතා පරීක්ෂා කිරීම).

NVD හි ඇතුළත් නොවූ, නමුත් SONATYPE ලකුණ සමඟින් Sonatype දත්ත ගබඩාවේ පවතින දුර්වලතා ද ප්‍රතිඵල කෙරෙහි වැදගත් බලපෑමක් ඇති කරයි. වාර්තාවට අනුව විවෘත මූලාශ්‍ර ආරක්ෂණ අවදානම් තත්ත්වය 2020 සොයාගත් විවෘත මූලාශ්‍ර අවදානම් වලින් 45%ක් NVD වෙත වාර්තා නොවේ. WhiteSource දත්ත සමුදායට අනුව, NVD වලින් පිටත වාර්තා වන සියලුම විවෘත මූලාශ්‍ර අවදානම් වලින් 29%ක් පමණක් එහි ප්‍රකාශනය කරනු ලැබේ, එම නිසා වෙනත් මූලාශ්‍රවල ඇති දුර්වලතා සොයා බැලීම වැදගත් වේ.

එහි ප්‍රතිඵලයක් වශයෙන්, Dependency Check බොහෝ ඝෝෂාවක් ඇති කරයි, සමහර අවදානම් සහිත සංරචක අතුරුදහන් වේ. යැපුම් පථය අඩු ශබ්දයක් නිපදවන අතර වෙබ් අතුරු මුහුණතේ ඇස්වලට දෘශ්‍යමය වශයෙන් හානියක් නොවන සංරචක විශාල සංඛ්‍යාවක් හඳුනා ගනී.

කෙසේ වෙතත්, පරිණත DevSecOps සඳහා විවෘත මූලාශ්‍රය පළමු පියවර විය යුතු බව ප්‍රායෝගිකව පෙන්වයි. SCA සංවර්ධනයට අනුකලනය කිරීමේදී ඔබ සිතිය යුතු පළමු දෙය නම් ක්‍රියාවලි, එනම්, කළමනාකරණය සහ අදාළ දෙපාර්තමේන්තු සමඟ එක්ව ඔබේ සංවිධානයේ පරමාදර්ශී ක්‍රියාවලීන් කෙබඳු විය යුතුද යන්න පිළිබඳව සිතීමයි. ඔබේ සංවිධානය සඳහා, මුලදී, යැපුම් පරීක්ෂාව හෝ යැපුම් පථය මගින් සියලු ව්‍යාපාරික අවශ්‍යතා ආවරණය වන අතර, සංවර්ධනය වෙමින් පවතින යෙදුම්වල වැඩෙන සංකීර්ණත්වය හේතුවෙන් ව්‍යවසාය විසඳුම් තාර්කික අඛණ්ඩ පැවැත්මක් වනු ඇත.

උපග්රන්ථය A: සංරචක ප්රතිඵල
පුරාවෘත්තය:

  • සංරචකයේ ඉහළ-ඉහළ සහ විවේචනාත්මක මට්ටමේ දුර්වලතා
  • මධ්‍යම - සංරචකයේ මධ්‍යම විවේචනාත්මක මට්ටමේ දුර්වලතා
  • සත්‍ය - සැබෑ ධනාත්මක ප්‍රශ්නයක්
  • FALSE - වැරදි ධනාත්මක ගැටලුවක්

සංරචකය
Nexus IQ
යැපුම් පරීක්ෂාව
යැපුම් පථය
ප්රතිඵලය

dom4j: 1.6.1
අධි
අධි
අධි
සැබෑ

log4j-core: 2.3
අධි
අධි
අධි
සැබෑ

log4j: 1.2.14
අධි
අධි
-
සැබෑ

පොදු එකතු කිරීම්:3.1
අධි
අධි
අධි
සැබෑ

commons-fileupload:1.3.2
අධි
අධි
අධි
සැබෑ

commons-beanutils:1.7.0
අධි
අධි
අධි
සැබෑ

commons-codec:1:10
මධ්යම
-
-
සැබෑ

mysql-connector-java:5.1.42
අධි
අධි
අධි
සැබෑ

වසන්ත-ප්‍රකාශනය:3.0.5
අධි
සංරචකය හමු නොවීය

සැබෑ

වසන්ත-වෙබ්: 3.0.5
අධි
සංරචකය හමු නොවීය
අධි
සැබෑ

වසන්ත සන්දර්භය:3.0.5
මධ්යම
සංරචකය හමු නොවීය
-
සැබෑ

වසන්ත හරය:3.0.5
මධ්යම
අධි
අධි
සැබෑ

struts2-config-browser-plugin:2.3.30
මධ්යම
-
-
සැබෑ

වසන්ත-tx: 3.0.5
-
අධි
-
අසත්‍යය

struts-core:1.3.8
අධි
අධි
අධි
සැබෑ

xwork-core: 2.3.30
අධි
-
-
සැබෑ

struts2-core: 2.3.30
අධි
අධි
අධි
සැබෑ

struts-taglib:1.3.8
-
අධි
-
අසත්‍යය

struts-tiles-1.3.8
-
අධි
-
අසත්‍යය

උපග්රන්ථය B: අවදානම් ප්රතිඵල
පුරාවෘත්තය:

  • සංරචකයේ ඉහළ-ඉහළ සහ විවේචනාත්මක මට්ටමේ දුර්වලතා
  • මධ්‍යම - සංරචකයේ මධ්‍යම විවේචනාත්මක මට්ටමේ දුර්වලතා
  • සත්‍ය - සැබෑ ධනාත්මක ප්‍රශ්නයක්
  • FALSE - වැරදි ධනාත්මක ගැටලුවක්

සංරචකය
Nexus IQ
යැපුම් පරීක්ෂාව
යැපුම් පථය
බරපතලකම
ප්රතිඵලය
අදහස්

dom4j: 1.6.1
CVE-2018-1000632
CVE-2018-1000632
CVE-2018-1000632
අධි
සැබෑ

CVE-2020-10683
CVE-2020-10683
CVE-2020-10683
අධි
සැබෑ

log4j-core: 2.3
CVE-2017-5645
CVE-2017-5645
CVE-2017-5645
අධි
සැබෑ

CVE-2020-9488
CVE-2020-9488
CVE-2020-9488
අඩු
සැබෑ

log4j: 1.2.14
CVE-2019-17571
CVE-2019-17571
-
අධි
සැබෑ

-
CVE-2020-9488
-
අඩු
සැබෑ

SONATYPE-2010-0053
-
-
අධි
සැබෑ

පොදු එකතු කිරීම්:3.1
-
CVE-2015-6420
CVE-2015-6420
අධි
අසත්‍යය
අනුපිටපත් RCE(OSSINDEX)

-
CVE-2017-15708
CVE-2017-15708
අධි
අසත්‍යය
අනුපිටපත් RCE(OSSINDEX)

SONATYPE-2015-0002
RCE (OSSINDEX)
RCE(OSSINDEX)
අධි
සැබෑ

commons-fileupload:1.3.2
CVE-2016-1000031
CVE-2016-1000031
CVE-2016-1000031
අධි
සැබෑ

SONATYPE-2014-0173
-
-
මධ්යම
සැබෑ

commons-beanutils:1.7.0
CVE-2014-0114
CVE-2014-0114
CVE-2014-0114
අධි
සැබෑ

-
CVE-2019-10086
CVE-2019-10086
අධි
අසත්‍යය
අවදානම අදාළ වන්නේ 1.9.2+ අනුවාද සඳහා පමණි

commons-codec:1:10
SONATYPE-2012-0050
-
-
මධ්යම
සැබෑ

mysql-connector-java:5.1.42
CVE-2018-3258
CVE-2018-3258
CVE-2018-3258
අධි
සැබෑ

CVE-2019-2692
CVE-2019-2692
-
මධ්යම
සැබෑ

-
CVE-2020-2875
-
මධ්යම
අසත්‍යය
CVE-2019-2692 ට සමාන අවදානමක් ඇත, නමුත් “ප්‍රහාර අතිරේක නිෂ්පාදනවලට සැලකිය යුතු ලෙස බලපෑ හැකිය” යන සටහන සමඟ

-
CVE-2017-15945
-
අධි
අසත්‍යය
mysql-connector-java වලට අදාල නැත

-
CVE-2020-2933
-
අඩු
අසත්‍යය
CVE-2020-2934 අනුපිටපත

CVE-2020-2934
CVE-2020-2934
-
මධ්යම
සැබෑ

වසන්ත-ප්‍රකාශනය:3.0.5
CVE-2018-1270
සංරචකය හමු නොවීය
-
අධි
සැබෑ

CVE-2018-1257
-
-
මධ්යම
සැබෑ

වසන්ත-වෙබ්: 3.0.5
CVE-2016-1000027
සංරචකය හමු නොවීය
-
අධි
සැබෑ

CVE-2014-0225
-
CVE-2014-0225
අධි
සැබෑ

CVE-2011-2730
-
-
අධි
සැබෑ

-
-
CVE-2013-4152
මධ්යම
සැබෑ

CVE-2018-1272
-
-
අධි
සැබෑ

CVE-2020-5398
-
-
අධි
සැබෑ
IQ සඳහා නිදර්ශනාත්මක උදාහරණයක්: "Sonatype ආරක්ෂක පර්යේෂණ කණ්ඩායම මෙම අවදානම හඳුන්වා දී ඇත්තේ 3.0.2.RELEASE අනුවාදයෙන් මිස උපදේශනයේ සඳහන් පරිදි 5.0.x නොවන බව සොයා ගන්නා ලදී."

CVE-2013-6429
-
-
මධ්යම
සැබෑ

CVE-2014-0054
-
CVE-2014-0054
මධ්යම
සැබෑ

CVE-2013-6430
-
-
මධ්යම
සැබෑ

වසන්ත සන්දර්භය:3.0.5
CVE-2011-2894
සංරචකය හමු නොවීය
-
මධ්යම
සැබෑ

වසන්ත හරය:3.0.5
-
CVE-2011-2730
CVE-2011-2730
අධි
සැබෑ

CVE-2011-2894
CVE-2011-2894
CVE-2011-2894
මධ්යම
සැබෑ

-
-
CVE-2013-4152
මධ්යම
අසත්‍යය
වසන්ත-වෙබ් හි එකම අවදානමේ අනුපිටපත

-
CVE-2013-4152
-
මධ්යම
අසත්‍යය
අවදානම වසන්ත-වෙබ් සංරචකයට සම්බන්ධ වේ

-
CVE-2013-6429
CVE-2013-6429
මධ්යම
අසත්‍යය
අවදානම වසන්ත-වෙබ් සංරචකයට සම්බන්ධ වේ

-
CVE-2013-6430
-
මධ්යම
අසත්‍යය
අවදානම වසන්ත-වෙබ් සංරචකයට සම්බන්ධ වේ

-
CVE-2013-7315
CVE-2013-7315
මධ්යම
අසත්‍යය
CVE-2013-4152 සිට SPLIT. + අවදානම වසන්ත-වෙබ් සංරචකයට සම්බන්ධ වේ

-
CVE-2014-0054
CVE-2014-0054
මධ්යම
අසත්‍යය
අවදානම වසන්ත-වෙබ් සංරචකයට සම්බන්ධ වේ

-
CVE-2014-0225
-
අධි
අසත්‍යය
අවදානම වසන්ත-වෙබ් සංරචකයට සම්බන්ධ වේ

-
-
CVE-2014-0225
අධි
අසත්‍යය
වසන්ත-වෙබ් හි එකම අවදානමේ අනුපිටපත

-
CVE-2014-1904
CVE-2014-1904
මධ්යම
අසත්‍යය
අවදානම වසන්ත-වෙබ්-mvc සංරචකයට සම්බන්ධ වේ

-
CVE-2014-3625
CVE-2014-3625
මධ්යම
අසත්‍යය
අවදානම වසන්ත-වෙබ්-mvc සංරචකයට සම්බන්ධ වේ

-
CVE-2016-9878
CVE-2016-9878
අධි
අසත්‍යය
අවදානම වසන්ත-වෙබ්-mvc සංරචකයට සම්බන්ධ වේ

-
CVE-2018-1270
CVE-2018-1270
අධි
අසත්‍යය
වසන්ත-ප්‍රකාශනය/වසන්ත-පණිවිඩ සඳහා

-
CVE-2018-1271
CVE-2018-1271
මධ්යම
අසත්‍යය
අවදානම වසන්ත-වෙබ්-mvc සංරචකයට සම්බන්ධ වේ

-
CVE-2018-1272
CVE-2018-1272
අධි
සැබෑ

CVE-2014-3578
CVE-2014-3578 (OSSINDEX)
CVE-2014-3578
මධ්යම
සැබෑ

SONATYPE-2015-0327
-
-
අඩු
සැබෑ

struts2-config-browser-plugin:2.3.30
SONATYPE-2016-0104
-
-
මධ්යම
සැබෑ

වසන්ත-tx: 3.0.5
-
CVE-2011-2730
-
අධි
අසත්‍යය
අවදානම වසන්ත-tx සඳහා විශේෂිත නොවේ

-
CVE-2011-2894
-
අධි
අසත්‍යය
අවදානම වසන්ත-tx සඳහා විශේෂිත නොවේ

-
CVE-2013-4152
-
මධ්යම
අසත්‍යය
අවදානම වසන්ත-tx සඳහා විශේෂිත නොවේ

-
CVE-2013-6429
-
මධ්යම
අසත්‍යය
අවදානම වසන්ත-tx සඳහා විශේෂිත නොවේ

-
CVE-2013-6430
-
මධ්යම
අසත්‍යය
අවදානම වසන්ත-tx සඳහා විශේෂිත නොවේ

-
CVE-2013-7315
-
මධ්යම
අසත්‍යය
අවදානම වසන්ත-tx සඳහා විශේෂිත නොවේ

-
CVE-2014-0054
-
මධ්යම
අසත්‍යය
අවදානම වසන්ත-tx සඳහා විශේෂිත නොවේ

-
CVE-2014-0225
-
අධි
අසත්‍යය
අවදානම වසන්ත-tx සඳහා විශේෂිත නොවේ

-
CVE-2014-1904
-
මධ්යම
අසත්‍යය
අවදානම වසන්ත-tx සඳහා විශේෂිත නොවේ

-
CVE-2014-3625
-
මධ්යම
අසත්‍යය
අවදානම වසන්ත-tx සඳහා විශේෂිත නොවේ

-
CVE-2016-9878
-
අධි
අසත්‍යය
අවදානම වසන්ත-tx සඳහා විශේෂිත නොවේ

-
CVE-2018-1270
-
අධි
අසත්‍යය
අවදානම වසන්ත-tx සඳහා විශේෂිත නොවේ

-
CVE-2018-1271
-
මධ්යම
අසත්‍යය
අවදානම වසන්ත-tx සඳහා විශේෂිත නොවේ

-
CVE-2018-1272
-
මධ්යම
අසත්‍යය
අවදානම වසන්ත-tx සඳහා විශේෂිත නොවේ

struts-core:1.3.8
-
CVE-2011-5057 (OSSINDEX)

මධ්යම
FASLE
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

-
CVE-2012-0391 (OSSINDEX)
CVE-2012-0391
අධි
අසත්‍යය
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

-
CVE-2014-0094 (OSSINDEX)
CVE-2014-0094
මධ්යම
අසත්‍යය
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

-
CVE-2014-0113 (OSSINDEX)
CVE-2014-0113
අධි
අසත්‍යය
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

CVE-2016-1182
3VE-2016-1182
-
අධි
සැබෑ

-
-
CVE-2011-5057
මධ්යම
අසත්‍යය
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

-
CVE-2012-0392 (OSSINDEX)
CVE-2012-0392
අධි
අසත්‍යය
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

-
CVE-2012-0393 (OSSINDEX)
CVE-2012-0393
මධ්යම
අසත්‍යය
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

CVE-2015-0899
CVE-2015-0899
-
අධි
සැබෑ

-
CVE-2012-0394
CVE-2012-0394
මධ්යම
අසත්‍යය
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

-
CVE-2012-0838 (OSSINDEX)
CVE-2012-0838
අධි
අසත්‍යය
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

-
CVE-2013-1965 (OSSINDEX)
CVE-2013-1965
අධි
අසත්‍යය
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

-
CVE-2013-1966 (OSSINDEX)
CVE-2013-1966
අධි
FASLE
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

-
CVE-2013-2115
CVE-2013-2115
අධි
FASLE
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

-
CVE-2013-2134 (OSSINDEX)
CVE-2013-2134
අධි
FASLE
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

-
CVE-2013-2135 (OSSINDEX)
CVE-2013-2135
අධි
FASLE
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

CVE-2014-0114
CVE-2014-0114
-
අධි
සැබෑ

-
CVE-2015-2992
CVE-2015-2992
මධ්යම
අසත්‍යය
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

-
CVE-2016-0785 (OSSINDEX)
CVE-2016-0785
අධි
අසත්‍යය
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

CVE-2016-1181
CVE-2016-1181
-
අධි
සැබෑ

-
CVE-2016-4003 (OSSINDEX)
CVE-2016-4003
අධි
අසත්‍යය
ස්ට්‍රට්ස් වලට ඇති අවදානම 2

xwork-core:2.3.30
CVE-2017-9804
-
-
අධි
සැබෑ

SONATYPE-2017-0173
-
-
අධි
සැබෑ

CVE-2017-7672
-
-
අධි
අසත්‍යය
CVE-2017-9804 හි අනුපිටපත

SONATYPE-2016-0127
-
-
අධි
සැබෑ

struts2-core:2.3.30
-
CVE-2016-6795
CVE-2016-6795
අධි
සැබෑ

-
CVE-2017-9787
CVE-2017-9787
අධි
සැබෑ

-
CVE-2017-9791
CVE-2017-9791
අධි
සැබෑ

-
CVE-2017-9793
-
අධි
අසත්‍යය
CVE-2018-1327 අනුපිටපත

-
CVE-2017-9804
-
අධි
සැබෑ

-
CVE-2017-9805
CVE-2017-9805
අධි
සැබෑ

CVE-2016-4003
-
-
මධ්යම
අසත්‍යය
2 අනුවාදය වන 2.3.28 දක්වා Apache Struts 2.3.30.x සඳහා අදාළ වේ. කෙසේ වෙතත්, විස්තරය මත පදනම්ව, JRE 2 හෝ ඊට අඩු භාවිතා කරන්නේ නම්, Struts 1.7 හි ඕනෑම අනුවාදයක් සඳහා CVE වලංගු වේ. පෙනෙන විදිහට ඔවුන් අපව මෙහි නැවත රක්ෂණය කිරීමට තීරණය කර ඇත, නමුත් එය අසත්‍ය බව පෙනේ

-
CVE-2018-1327
CVE-2018-1327
අධි
සැබෑ

CVE-2017-5638
CVE-2017-5638
CVE-2017-5638
අධි
සැබෑ
Equifax හැකර්වරුන් 2017 දී ගසාකෑමට ලක් වූ එම අවදානමම

CVE-2017-12611
CVE-2017-12611
-
අධි
සැබෑ

CVE-2018-11776
CVE-2018-11776
CVE-2018-11776
අධි
සැබෑ

struts-taglib:1.3.8
-
CVE-2012-0394
-
මධ්යම
අසත්‍යය
struts2-core සඳහා

-
CVE-2013-2115
-
අධි
අසත්‍යය
struts2-core සඳහා

-
CVE-2014-0114
-
අධි
අසත්‍යය
Commons-beanutils සඳහා

-
CVE-2015-0899
-
අධි
අසත්‍යය
ටැග්ලිබ් සඳහා අදාළ නොවේ

-
CVE-2015-2992
-
මධ්යම
අසත්‍යය
struts2-core වෙත යොමු වේ

-
CVE-2016-1181
-
අධි
අසත්‍යය
ටැග්ලිබ් සඳහා අදාළ නොවේ

-
CVE-2016-1182
-
අධි
අසත්‍යය
ටැග්ලිබ් සඳහා අදාළ නොවේ

struts-tiles-1.3.8
-
CVE-2012-0394
-
මධ්යම
අසත්‍යය
struts2-core සඳහා

-
CVE-2013-2115
-
අධි
අසත්‍යය
struts2-core සඳහා

-
CVE-2014-0114
-
අධි
අසත්‍යය
Commons-beanutils යටතේ

-
CVE-2015-0899
-
අධි
අසත්‍යය
ටයිල් සඳහා අදාළ නොවේ

-
CVE-2015-2992
-
මධ්යම
අසත්‍යය
struts2-core සඳහා

-
CVE-2016-1181
-
අධි
අසත්‍යය
ටැග්ලිබ් සඳහා අදාළ නොවේ

-
CVE-2016-1182
-
අධි
අසත්‍යය
ටැග්ලිබ් සඳහා අදාළ නොවේ

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න