{"id":369842,"date":"2024-05-21T04:12:21","date_gmt":"2024-05-21T04:12:21","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=369842"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=369842","title":{"rendered":"<span>\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e SCA: \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f SBOM, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \u043e\u0442\u043b\u0438\u0447\u0438\u044f<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0410\u043d\u0430\u043b\u0438\u0437 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u041f\u041e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u0441\u0451 \u0431\u043e\u043b\u0435\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u0432 \u0441\u0432\u0435\u0442\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0447\u0438\u0441\u043b\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435. \u041f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0431\u043e\u043b\u0435\u0435 <a href=\"https:\/\/www.kaspersky.ru\/about\/press-releases\/2023_na-tekushij-moment-v-populyarnyh-repozitoriyah-vyyavleno-bolee-20-tysyach-potencialno-opasnyh-paketov-s-otkrytym-ishodnym-kodom\">20 \u0442\u044b\u0441\u044f\u0447<\/a> \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0432 \u0448\u0438\u0440\u043e\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u0447\u0430\u0441\u0442\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u043b\u0430\u044e\u0442 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c \u0432\u0435\u0441\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442. <\/p>\n<p>\u0421 \u0432\u0430\u043c\u0438 \u0412\u0435\u0440\u0430 \u0411\u0430\u0433\u043d\u043e, AppSec-\u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Swordfish Security. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 SBOM (Software Bill of Material) \u0438 \u043a\u0430\u043a \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u0422\u0430\u043a\u0436\u0435 \u043e\u0431\u0441\u0443\u0434\u0438\u043c, \u0432 \u043a\u0430\u043a\u0438\u0445 \u0441\u0444\u0435\u0440\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f SBOM, \u043a\u0430\u043a\u0438\u043c\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u043c\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0438 \u043a\u0430\u043a\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0432 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 SCA-\u0430\u043d\u0430\u043b\u0438\u0437\u0430. <\/p>\n<p>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u043a\u0430\u043a \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430\u043c \u0418\u0411, \u0442\u0430\u043a \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0435\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a58\/c47\/a4b\/a58c47a4b4868863ef201fc1a25492f7.png\" width=\"1200\" height=\"409\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a58\/c47\/a4b\/a58c47a4b4868863ef201fc1a25492f7.png\"\/><\/figure>\n<h2>SBOM: \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0438\u0445 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 \u0438 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438   <\/h2>\n<p>\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u2013 \u044d\u0442\u043e \u041f\u041e, \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c, \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c (\u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u2013 \u043e\u0431 \u044d\u0442\u043e\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u0432 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445). \u0421\u043e\u0437\u0434\u0430\u044e\u0442 \u0438\u0445 \u043a\u0430\u043a \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u044b, \u0442\u0430\u043a \u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0446\u0438\u0439. \u041e\u043d\u0438 \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043d\u0430 Github \u0438\u043b\u0438 \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, maven \u0438\u043b\u0438 npm. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u044d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0438 \u0434\u0435\u043d\u044c\u0433\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u041e\u043d\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u044e\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0432 \u0441\u0432\u043e\u0439 \u043a\u043e\u0434 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442 \u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<p>\u0412 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u041f\u041e \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u043d\u0435\u0441\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0440\u0438\u0441\u043a\u0438. \u041f\u043e\u043c\u0438\u043c\u043e \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0437\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0434\u043b\u044f \u043d\u0430\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0443\u0449\u0435\u0440\u0431\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438, \u0442\u0430\u043a\u043e\u0435 \u041f\u041e \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043a\u043e\u0434, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445). \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u041e\u0434\u0438\u043d \u0438\u0437 \u044f\u0440\u043a\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u2013 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c <a href=\"https:\/\/xakep.ru\/2023\/12\/12\/log4shell-stats\/\">Log4shell<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430 (\u043f\u0440\u0438\u0447\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437) \u0432 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 Java \u2013 Log4j. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0439 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0441\u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0438 \u0442\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0435\u0435 \u0432 \u0441\u0432\u043e\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0438\u043b\u0438 \u043f\u0435\u0440\u0438\u043c\u0435\u0442\u0440\u0435. \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u043c \u0432\u0430\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c\u0438 \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0442\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043d\u0438\u0445 \u043d\u0430\u0445\u043e\u0434\u044f\u0442. \u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 SBOM.<\/p>\n<p>SBOM \u2013 \u044d\u0442\u043e \u0444\u0430\u0439\u043b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON \u0438\u043b\u0438 XML, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0438\u043d\u0432\u0435\u043d\u0442\u0430\u0440\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 (\u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b. <\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 CycloneDX, SPDX (Software Packet Data Exchange) \u0438 SWID (Software Identification). \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e CycloneDX. <\/p>\n<p>SBOM \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0431\u043b\u043e\u043a\u043e\u0432. \u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435:<\/p>\n<ol>\n<li>\n<p>\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 SBOM: \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f, \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440, \u0432\u0440\u0435\u043c\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 (\u043c\u0435\u0442\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438);<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 SBOM (\u0431\u043b\u043e\u043a externalReferences);<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0432\u044f\u0437\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 (\u0431\u043b\u043e\u043a dependencies).<\/p>\n<\/li>\n<\/ol>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f SBOM \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0431\u0448\u0438\u0440\u043d\u0430\u044f \u0438 \u0433\u0438\u0431\u043a\u0430\u044f, \u0432 \u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u043a\u0446\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435.<\/p>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442 CycloneDX \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0444\u0430\u0439\u043b JSON \u0438\u043b\u0438 XML. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u043d \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a (JSON, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 cdxgen): <\/p>\n<pre><code class=\"json\">{   \"bomFormat\": \"CycloneDX\",   \"specVersion\": \"1.4\",   \"serialNumber\": \"urn:uuid:53b800be-812c-4d28-aca4-9a492cedd258\",   \"version\": 1,   \"metadata\": {     \"timestamp\": \"2023-10-12T10:51:41.885Z\",     \"tools\": [       {         \"vendor\": \"cyclonedx\",         \"name\": \"cdxgen\",         \"version\": \"8.6.0\"       }     ],     \"authors\": [       {         \"name\": \"Prabhu Subramanian\",         \"email\": \"prabhu@appthreat.com\"       }     ],     \"component\": {       \"author\": \"\",       \"publisher\": \"\",       \"group\": \"com.appsecco\",       \"name\": \"dvja\",       \"version\": \"1.0-SNAPSHOT\",       \"description\": \"\",       \"licenses\": [],       \"purl\": \"pkg:maven\/com.appsecco\/dvja@1.0-SNAPSHOT?type=war\",       \"type\": \"library\",       \"bom-ref\": \"pkg:maven\/com.appsecco\/dvja@1.0-SNAPSHOT?type=war\"     }   },   \"components\": [     {       \"author\": \"\",       \"publisher\": \"Apache Software Foundation\",       \"group\": \"org.apache.struts\",       \"name\": \"struts2-core\",       \"version\": \"2.3.30\",       \"description\": \"Apache Struts 2\",       \"scope\": \"required\",       \"hashes\": [         {           \"alg\": \"MD5\",           \"content\": \"e775580415dfa3a77e92f0ce6229268d\"         },         {           \"alg\": \"SHA-1\",           \"content\": \"0d2281c1a99f65b1ab19a5efd83a00a00995166d\"         },         {           \"alg\": \"SHA-256\",           \"content\": \"21161cc0b5056f34e0afca1feb42ebcc4bbcba0e2b075aa241c9be76b890fc65\"         },         {           \"alg\": \"SHA-512\",           \"content\": \"3a3c4083e8b0947f760f5f3d216450a62b7048247bc705939f255203ab721e343cd68d52233fb2240db3d8066435d922acf32a10c6cb28d132194c97d4025895\"         },         {           \"alg\": \"SHA-384\",           \"content\": \"ef2df3a2388461c384e842ee90eb4eabf562596aada15a784d7fc0c2ffc3b38915dd4cd1f2c896226501760b88e4ad64\"         },         {           \"alg\": \"SHA3-384\",           \"content\": \"655ee6e71047b5403957ab0c063b83a39294bae20cbe5cd72599d9c5371a03e05d6eabca5ae1a14a6d0e5eb08f00831c\"         },         {           \"alg\": \"SHA3-256\",           \"content\": \"46aaa149a8f9f0e2de483bb49c7932b9bd44d6416d3c572e46f89cc2d19a8c4f\"         },         {           \"alg\": \"SHA3-512\",           \"content\": \"1b39134ed5c8df0adffb610113b46c7b7fa51eeb1a9bad1159c16670f27931c772ca6e05576742c2dfd8f77a1e5940517adb194376811f2d7b97569fdb20c034\"         }       ],       \"licenses\": [         {           \"license\": {             \"id\": \"Apache-2.0\"           }         }       ],       \"purl\": \"pkg:maven\/org.apache.struts\/struts2-core@2.3.30?type=jar\",       \"type\": \"framework\",       \"bom-ref\": \"pkg:maven\/org.apache.struts\/struts2-core@2.3.30?type=jar\"     }, \"dependencies\": [     {       \"ref\": \"pkg:maven\/org.apache.struts\/struts2-core@2.3.30?type=jar\",       \"dependsOn\": [         \"pkg:maven\/org.apache.struts.xwork\/xwork-core@2.3.30?type=jar\",         \"pkg:maven\/org.freemarker\/freemarker@2.3.22?type=jar\",         \"pkg:maven\/ognl\/ognl@3.0.19?type=jar\",         \"pkg:maven\/commons-fileupload\/commons-fileupload@1.3.2?type=jar\",         \"pkg:maven\/commons-io\/commons-io@2.2?type=jar\"       ]     },     {       \"ref\": \"pkg:maven\/org.apache.commons\/commons-lang3@3.2?type=jar\",       \"dependsOn\": []     }, \"externalReferences\": [     {       \"type\": \"other\",       \"url\": \".\",       \"comment\": \"Base path\"     },     {       \"type\": \"other\",       \"url\": \"\/home\/kali\/Downloads\/dvja\/pom.xml\",       \"comment\": \"Package file\"     }   ] }<\/code><\/pre>\n<p>\u0412 components SBOM \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u0440 \u043f\u0430\u043a\u0435\u0442\u0430, purl (Package URL), \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f, \u0445\u044d\u0448 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, CPE (Common Platform Enumeration) \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b. <\/p>\n<p>\u0411\u043b\u043e\u043a dependencies \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u0430 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0435\u043c\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u044b\u0445 dependencies \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0433\u0440\u0430\u0444 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u0438\u0432\u043d\u044b\u0445. <\/p>\n<p>\u042d\u0442\u043e \u043f\u043e\u043b\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a (\u0443 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0434\u0432\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u0443 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u2013 \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437-\u0437\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044f dependsOn):<\/p>\n<pre><code class=\"json\">{       \"ref\": \"pkg:npm\/config-chain@1.1.13\",       \"dependsOn\": [         \"pkg:npm\/ini@1.3.8\",         \"pkg:npm\/proto-list@1.2.4\"       ]     },     {       \"ref\": \"pkg:npm\/core-util-is@1.0.2\"     },<\/code><\/pre>\n<p>\u041d\u0435 \u0432\u0441\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0432 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u0441\u0431\u043e\u0440\u043a\u0438. \u041e\u0434\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u0430, \u0434\u0440\u0443\u0433\u0438\u0435 \u2013 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0430. \u0410 \u0442\u0440\u0435\u0442\u044c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 \u0441\u0440\u0435\u0434\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u043e \u043d\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u044c\u044e.<\/p>\n<h2>\u0417\u0430\u0447\u0435\u043c SBOM \u043d\u0443\u0436\u0435\u043d \u0432 \u0441\u0444\u0435\u0440\u0435 \u0418\u0411? <\/h2>\n<p>SBOM \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0448\u0438\u0442\u044c \u0434\u0432\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438: <\/p>\n<ol>\n<li>\n<p>\u0418\u043d\u0432\u0435\u043d\u0442\u0430\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0435 (\u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435, \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0435, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435) \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b; <\/p>\n<\/li>\n<li>\n<p>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437 \u0438\u0445 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 SCA (Software Composition Analysis). \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0433\u0443\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432 \u0441\u0435\u0431\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u044d\u0442\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u043d\u0430 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u0443\u044e \u0447\u0438\u0441\u0442\u043e\u0442\u0443, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430 \u0434\u0430\u0442\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0438\u043c\u044f \u0430\u0432\u0442\u043e\u0440\u0430 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b.<\/p>\n<\/li>\n<\/ol>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u0431\u0435\u0438\u0445 \u0437\u0430\u0434\u0430\u0447 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0440\u0438\u0441\u043a \u0430\u0442\u0430\u043a\u0438 \u043d\u0430 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u043f\u043e\u0441\u0442\u0430\u0432\u043e\u043a \u041f\u041e. <\/p>\n<p>\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 SCA \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 Open Source \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438. \u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 SCA. \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u043e\u043d\u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043a\u0430\u043d\u0438\u0440\u0443\u044e\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434, \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u0438 \u0444\u0430\u0439\u043b\u044b \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430, \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0432 \u0432\u0438\u0434\u0435 SBOM \u0438\u043b\u0438 \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 (Dependency-Check). \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 SCA \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 SBOM-\u0444\u0430\u0439\u043b (Dependency-Track). <\/p>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 SCA \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0438\u0441\u043a \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u2013 CPE \u0438\u043b\u0438 purl. \u0415\u0441\u043b\u0438 \u043e\u043d\u0438 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0441\u043f\u0440\u043e\u0432\u043e\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0436\u043d\u043e\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 (False Positive) \u0438\u043b\u0438 \u0435\u0433\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 (False Negative). \u0422\u0430\u043a\u0436\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0445\u044d\u0448 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043e\u043f\u0430\u0441\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u0435\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0434\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u043b\u0438 \u0432\u043d\u0435\u0441\u0442\u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434. \u0414\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435 \u043f\u043e\u043b\u0435\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445. <\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u041f\u041e \u0435\u0449\u0435 \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0443\u044f\u0437\u0432\u0438\u043c\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u0430 \u0438\u0437 \u043a\u043e\u0434\u0430, \u0438 \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0440\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u044b \u043a \u0434\u0430\u043d\u043d\u044b\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u0442\u0430\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 SCA \u043d\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438, \u0437\u0434\u0435\u0441\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0432\u044c\u044e AppSec-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 \u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u0436\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0438 \u043a\u043e\u0434, \u0438 \u043d\u0430\u0431\u043e\u0440 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0447\u0442\u043e\u0431\u044b \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e False Positive \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0439 \u0438 \u043e\u0431\u044a\u0435\u043c \u0440\u0443\u0447\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0438\u0445 \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044e.<\/p>\n<h2>\u041a\u0430\u043a\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u0437\u0430\u0434\u0430\u0447?<\/h2>\n<p>\u0414\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0432\u0430\u0436\u043d\u043e \u0443\u0447\u0435\u0441\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430: <\/p>\n<ol>\n<li>\n<p>\u042f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0432\u0430\u0448 \u043f\u0440\u043e\u0434\u0443\u043a\u0442;<\/p>\n<\/li>\n<li>\n<p>\u0424\u0430\u0439\u043b\u044b \u0441 \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 (\u043e\u0434\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u044b \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u043e\u0432, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a pom.xml \u0438\u043b\u0438 requirements.txt, \u0434\u0440\u0443\u0433\u0438\u0435 \u2013 \u0438\u0441\u043a\u0430\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0431\u043e\u043b\u044c\u0448\u0435\u043c \u0447\u0438\u0441\u043b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432);<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u044a\u0435\u043a\u0442 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f: \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442, Docker-\u043e\u0431\u0440\u0430\u0437, \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430; <\/p>\n<\/li>\n<li>\n<p>\u041e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435: \u043a\u0430\u043a\u043e\u0439 SCA-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u0430\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 SBOM (CycloneDX, SPDX) \u0438 \u0442\u0438\u043f \u0444\u0430\u0439\u043b\u0430 (XML, JSON) \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434;<\/p>\n<\/li>\n<li>\n<p>\u0426\u0435\u043b\u0438: \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u043b\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u0442\u044c \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0435 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<\/ol>\n<h2>\u041a\u0430\u043a \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c SBOM \u0434\u043b\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430?<\/h2>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 SBOM, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 <a href=\"https:\/\/github.com\/awesomeSBOM\/awesome-sbom#tools-and-classification\">GitHub<\/a>. \u041c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0441\u0430\u043c\u044b\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u2013 Cdxgen, Trivy \u0438 Syft.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442<\/strong><\/p>\n<\/td>\n<th data-colwidth=\"180\" width=\"180\">\n<p>Cdxgen 10.1.0 <\/p>\n<\/th>\n<td>\n<p align=\"left\"><strong>Trivy 0.47<\/strong>   <\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Syft 0.104.0<\/strong>   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>\u0421\u0441\u044b\u043b\u043a\u0430<\/strong><\/p>\n<\/td>\n<th data-colwidth=\"180\" width=\"180\">\n<p><a href=\"https:\/\/github.com\/CycloneDX\/cdxgen\">Cdxgen<\/a>      <\/p>\n<\/th>\n<td>\n<p align=\"left\"><a href=\"https:\/\/github.com\/aquasecurity\/trivy\"><strong>Trivy<\/strong><\/a><\/p>\n<\/td>\n<td>\n<p align=\"left\"><a href=\"https:\/\/github.com\/anchore\/syft\"><strong>Syft<\/strong><\/a>   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>\u041d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">JavaScript<\/p>\n<\/td>\n<td>\n<p align=\"left\">Go<\/p>\n<\/td>\n<td>\n<p align=\"left\">Go<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u042f\u041f<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\"><a href=\"https:\/\/github.com\/CycloneDX\/cdxgen#supported-languages-and-package-format\">\u0421\u0441\u044b\u043b\u043a\u0430<\/a>   <\/p>\n<\/td>\n<td>\n<p align=\"left\"><a href=\"https:\/\/aquasecurity.github.io\/trivy\/v0.47\/docs\/coverage\/language\/\">\u0421\u0441\u044b\u043b\u043a\u0430<\/a>      <\/p>\n<\/td>\n<td>\n<p align=\"left\"><a href=\"https:\/\/github.com\/anchore\/syft#supported-ecosystems\">\u0421\u0441\u044b\u043b\u043a\u0430<\/a>      <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>\u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>\u0424\u043e\u0440\u043c\u0430\u0442 SBOM<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">CycloneDX   <\/p>\n<\/td>\n<td>\n<p align=\"left\">CycloneDX, SPDX, KBOM in CycloneDX format   <\/p>\n<\/td>\n<td>\n<p>CycloneDX, SPDX, Syft\u2019s<br \/> own format<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Apk<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>C \/ C++<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+\/+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+\/+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+\/+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Clojure<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Dart<\/strong> <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Debian<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>.NET<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Objective-C<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Elixir<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Erlang<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Go<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Haskell<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Java<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>JavaScript<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Perl<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>PHP<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Python<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>R<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Ruby<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Rust<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Swift<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"191\" width=\"191\">\n<p align=\"left\"><strong>Docker<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"180\" width=\"180\">\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>Cdxgen: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430<\/strong><\/p>\n<p>Cdxgen \u2013 CLI-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 JavaScript. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u0430\u043a \u0438 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430. Cdxgen \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u043c, \u0447\u0442\u043e \u0443\u043c\u0435\u0435\u0442 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u044b \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u043e\u0432, \u043d\u043e \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u2013 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u0448\u0438\u0440\u043d\u044b\u043c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/459\/7f2\/1da\/4597f21da41c03febd1b31bc8bd0ec0a.png\" alt=\"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u2013 SBOM Benchmark\" title=\"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u2013 SBOM Benchmark\" width=\"974\" height=\"586\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/459\/7f2\/1da\/4597f21da41c03febd1b31bc8bd0ec0a.png\"\/><\/p>\n<div><figcaption>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u2013 <a href=\"https:\/\/sbombenchmark.dev\/tools\/cdxgen\">SBOM Benchmark<\/a><\/figcaption><\/div>\n<\/figure>\n<p>\u0411\u0435\u043d\u0447\u043c\u0430\u0440\u043a \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439:   <\/p>\n<ul>\n<li>\n<p><strong>NTIA<\/strong>&#8212;<strong>Minimum-Elements<\/strong>: \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u0435\u0442\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 SBOM;  <\/p>\n<\/li>\n<li>\n<p><strong>Quality<\/strong>: \u043d\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0435\u043b\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u0438\u0441\u0442\u0435\u043a\u0448\u0438\u0445 \u0438\u043b\u0438 \u043d\u0435\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\u0445;   <\/p>\n<\/li>\n<li>\n<p><strong>Semantic<\/strong>: \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0435 \u0441\u0443\u043c\u043c\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p><strong>Sharing<\/strong>: \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f SBOM.   <\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 cdxgen:<\/strong><\/p>\n<pre><code>sudo npm install -g @cyclonedx\/cdxgen<\/code><\/pre>\n<p><strong>\u0417\u0430\u043f\u0443\u0441\u043a cdxgen \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f:<\/strong><\/p>\n<pre><code>cdxgen -t &lt;language> -o &lt;output-file> --spec-version 1.4<\/code><\/pre>\n<p>-t (&#8212;type) \u2013 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f (\u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0441\u043e\u0431\u0435\u0440\u0435\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0441\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043c\u043e\u0436\u0435\u0442. \u0412\u0437\u044f\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0437\u0434\u0435\u0441\u044c: <a href=\"https:\/\/github.com\/CycloneDX\/cdxgen#supported-languages-and-package-format\">https:\/\/github.com\/CycloneDX\/cdxgen#supported-languages-and-package-format<\/a>);<\/p>\n<p>-o (&#8212;output) \u2013 \u0444\u0430\u0439\u043b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c SBOM (\u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445 XML, JSON);   <\/p>\n<p>&#8212;spec-version 1.4 \u2013 \u0432\u0435\u0440\u0441\u0438\u044f SBOM, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432;<\/p>\n<p>&#8212;required-only \u2013 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439.   <\/p>\n<p><strong>\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 cdxgen \u043d\u0430 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 (\u0432 \u044d\u0442\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043d\u0430\u0439\u0434\u0435\u0442 \u0432\u0441\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u041e\u0421):<\/strong><\/p>\n<pre><code>cdxgen -t os -o &lt;output-file><\/code><\/pre>\n<p><strong>\u0417\u0430\u043f\u0443\u0441\u043a cdxgen \u0434\u043b\u044f \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 war:<\/strong>   <\/p>\n<pre><code>cdxgen -t java app.war -o &lt;output-file><\/code><\/pre>\n<p><a href=\"https:\/\/github.com\/CycloneDX\/cdxgen#supported-languages-and-package-format\">\u0422\u0430\u0431\u043b\u0438\u0446\u0430<\/a> \u0444\u0430\u0439\u043b\u043e\u0432, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 cdxgen \u0432\u0435\u0440\u0441\u0438\u0438 10.1.0: <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\"><strong>Language\/ Platform<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\"><strong>Package format<\/strong>   <\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Transitive dependencies<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">Node.js   <\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">npm-shrinkwrap.json, package-lock.json, pnpm-lock.yaml, yarn.lock, rush.js, bower.json, .min.js   <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430, \u043a\u0440\u043e\u043c\u0435 .min.js   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">Java   <\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">maven (pom.xml), gradle (build.gradle, .kts), scala (sbt), bazel   <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430, \u043a\u0440\u043e\u043c\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043a\u043e\u0433\u0434\u0430 pom.xml \u043f\u0430\u0440\u0441\u0438\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u0437-\u0437\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 maven \u0438\u043b\u0438 \u043e\u0448\u0438\u0431\u043e\u043a   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">Android<\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">apk, aab<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">PHP   <\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">composer.lock   <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">Python<\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">pyproject.toml, setup.py, requirements.txt, Pipfile.lock, poetry.lock, pdm.lock, bdist_wheel, .whl, .egg-info   <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430, \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e pip install\/freeze. \u0415\u0441\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e, \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Pipfile.lock \u0438 poetry.lock    <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">Go<\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">binary, go.mod, go.sum, Gopkg.lock<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430, \u043a\u0440\u043e\u043c\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">Ruby   <\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">Gemfile.lock, gemspec   <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Gemfile.lock   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">Rust   <\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">binary, Cargo.toml, Cargo.lock   <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Cargo.lock   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">.NET   <\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">.csproj, packages.config, project.assets.json, packages.lock.json, .nupkg, paket.lock   <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f project.assets.json, packages.lock.json, paket.lock   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">Dart   <\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">pubspec.lock, pubspec.yaml   <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f pubspec.lock   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">Haskell   <\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">cabal.project.freeze   <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">Elixir   <\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">mix.lock   <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">C\/C++\/ Objective C   <\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">conan.lock, conanfile.txt, *.cmake, CMakeLists.txt, meson.build, \u043a\u043e\u0434\u043e\u0432\u044b\u0435 \u0431\u0430\u0437\u044b \u0431\u0435\u0437 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0445 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u0432!   <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430, \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f conan.lock. \u041b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u043b\u044f cmake \u0431\u0435\u0437 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0432\u0435\u0440\u0441\u0438\u0439.   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">Clojure   <\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">Clojure CLI (deps.edn), Leiningen (project.clj)   <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430, \u0435\u0441\u043b\u0438 \u0444\u0430\u0439\u043b\u044b \u043d\u0435 \u043f\u0430\u0440\u0441\u044f\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u0437-\u0437\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 clojure cli \u0438\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b Leiningen   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"153\" width=\"153\">\n<p align=\"left\">Swift   <\/p>\n<\/td>\n<td data-colwidth=\"316\" width=\"316\">\n<p align=\"left\">Package.resolved, Package.swift (swiftpm)   <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>Trivy: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430<\/h3>\n<p>Trivy \u2013 CLI-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 Go. \u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e Trivy \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0438 \u0430\u0433\u0435\u043d\u0442\u0430\u0445 CI\/CD \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439. \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u0441 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u043c\u0438 git-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u043c\u0438 \u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438, \u0442\u0430\u043a \u0438 \u0441 Docker-\u043e\u0431\u0440\u0430\u0437\u0430\u043c\u0438, Kubernetes, \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u0430\u0448\u0438\u043d\u0430\u043c\u0438 \u0438 AWS.<\/p>\n<p>Trivy \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u0432\u0438\u0434\u0435 SBOM \u0438\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0441 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0430\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0430 \u0432\u0445\u043e\u0434 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bf0\/3e0\/50b\/bf03e050bdeb4bbdb69d4702f486e014.png\" width=\"974\" height=\"372\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bf0\/3e0\/50b\/bf03e050bdeb4bbdb69d4702f486e014.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f87\/dc9\/05c\/f87dc905c7cad4e7fa0dff3c6aad3031.png\" alt=\"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u2013 SBOM Benchmark \" title=\"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u2013 SBOM Benchmark \" width=\"974\" height=\"589\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f87\/dc9\/05c\/f87dc905c7cad4e7fa0dff3c6aad3031.png\"\/><\/p>\n<div><figcaption>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u2013 <a href=\"https:\/\/sbombenchmark.dev\/tools\/trivy\">SBOM Benchmark<\/a> <\/figcaption><\/div>\n<\/figure>\n<p>\u0411\u0435\u043d\u0447\u043c\u0430\u0440\u043a \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439:   <\/p>\n<ul>\n<li>\n<p><strong>NTIA-Minimum-Elements<\/strong>: \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u0435\u0442\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438;<\/p>\n<\/li>\n<li>\n<p><strong>Quality<\/strong>: \u043d\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u0438\u0441\u0442\u0435\u043a\u0448\u0438\u0445 \u0438\u043b\u0438 \u043d\u0435\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0435\u043b\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430;   <\/p>\n<\/li>\n<li>\n<p><strong>Semantic<\/strong>: \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0435 \u0441\u0443\u043c\u043c\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p><strong>Sharing<\/strong>: \u043d\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f SBOM.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Trivy \u0438\u0437 apt \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f:<\/strong><\/p>\n<pre><code>sudo apt-get install trivy<\/code><\/pre>\n<p>\u0411\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 Trivy \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 <a href=\"https:\/\/github.com\/aquasecurity\/trivy#get-trivy\">GitHub<\/a>. \u00a0<\/p>\n<p><strong>\u0417\u0430\u043f\u0443\u0441\u043a Trivy \u0434\u043b\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f docker-\u043e\u0431\u0440\u0430\u0437\u0430:<\/strong><\/p>\n<pre><code>trivy image --format cyclonedx --output &lt;output-file> &lt;image><\/code><\/pre>\n<p>&#8212;format \u2013 \u0444\u043e\u0440\u043c\u0430\u0442 SBOM;<\/p>\n<p>&#8212;output \u2013 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 SBOM.<\/p>\n<p><strong>\u0417\u0430\u043f\u0443\u0441\u043a Trivy \u0434\u043b\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u043f\u043a\u0438:<\/strong>   <\/p>\n<pre><code>trivy fs --format cyclonedx --output &lt;output-file> &lt;\/path\/to\/dir><\/code><\/pre>\n<p><strong>\u0417\u0430\u043f\u0443\u0441\u043a Trivy \u0434\u043b\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f (\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043b\u0438 \u043f\u043e URL):<\/strong><\/p>\n<p>\u0412\u044b\u0432\u043e\u0434 \u0432 \u0432\u0438\u0434\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438:<\/p>\n<pre><code>trivy repository -t json &lt;url><\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 SBOM:<\/p>\n<pre><code>trivy repo --list-all-pkgs --format cyclonedx --output &lt;output-file> &lt;repository> <\/code><\/pre>\n<p>&#8212;list-all-pkgs \u2013 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0432\u0441\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043d\u0430 <a href=\"https:\/\/aquasecurity.github.io\/trivy\/v0.47\/getting-started\/installation\/\">GitHub<\/a>.<\/p>\n<p><a href=\"https:\/\/aquasecurity.github.io\/trivy\/v0.47\/docs\/coverage\/language\/\">\u0422\u0430\u0431\u043b\u0438\u0446\u0430<\/a> \u0444\u0430\u0439\u043b\u043e\u0432, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 Trivy \u0432\u0435\u0440\u0441\u0438\u0438 0.47:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\"><strong>Language<\/strong>   <\/p>\n<\/td>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\"><strong>File<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Image<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Rootfs<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Filesystem<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Repository<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\" data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">Ruby<\/p>\n<\/td>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">Gemfile.lock<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">Gemspec   <\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"6\" data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">Python<\/p>\n<\/td>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">Pipfile.lock   <\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">poetry.lock   <\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">requirements.txt   <\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">egg package   <\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">wheel package   <\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">conda package   <\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">PHP<\/p>\n<\/td>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">composer.lock   <\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"4\" data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">Node.js<\/p>\n<\/td>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">package-lock.json   <\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">yarn.lock   <\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">pnpm-lock.yarn   <\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">package.json   <\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"3\" data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">.NET<\/p>\n<\/td>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">packages.lock.json   <\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">packages.config   <\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">.deps.json   <\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"3\" data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">Java<\/p>\n<\/td>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">JAR\/WAR\/PAR\/EAR   <\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">pom.xml   <\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">*gradle.lockfile   <\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\" data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">Go<\/p>\n<\/td>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">Binaries built by Go   <\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">go.mod   <\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\" data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">Rust<\/p>\n<\/td>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">Cargo.lock   <\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">Binaries built with cargo-auditable   <\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">C\/C++<\/p>\n<\/td>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">conan.lock   <\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">Elixir<\/p>\n<\/td>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">mix.lock   <\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">Dart<\/p>\n<\/td>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">pubspec.lock   <\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\" data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">Swift<\/p>\n<\/td>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">Podfile.lock   <\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"116\" width=\"116\">\n<p align=\"left\">Package.resolved   <\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<td>\n<p align=\"left\">+<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>Syft: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430<\/h3>\n<p>Syft \u2013 CLI-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f SBOM. \u041e\u043d \u043c\u043e\u0436\u0435\u0442 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0442\u0430\u043a \u0438 \u043e\u0431\u0440\u0430\u0437\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0fc\/b8a\/423\/0fcb8a42312e2d60a5710d011b5126ba.png\" alt=\"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u2013 SBOM Benchmark \" title=\"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u2013 SBOM Benchmark \" width=\"974\" height=\"588\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0fc\/b8a\/423\/0fcb8a42312e2d60a5710d011b5126ba.png\"\/><\/p>\n<div><figcaption>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u2013 <a href=\"https:\/\/sbombenchmark.dev\/tools\/syft\">SBOM Benchmark<\/a> <\/figcaption><\/div>\n<\/figure>\n<p>\u0411\u0435\u043d\u0447\u043c\u0430\u0440\u043a \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439:   <\/p>\n<ul>\n<li>\n<p><strong>NTIA-Minimum-Elements<\/strong>: \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u0435\u0442\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438;<\/p>\n<\/li>\n<li>\n<p><strong>Quality<\/strong>: \u0437\u0430\u043a\u0440\u044b\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430 \u0441\u0447\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 CPE \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044f evidence;<\/p>\n<\/li>\n<li>\n<p><strong>Semantic<\/strong>: \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0435 \u0441\u0443\u043c\u043c\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 SBOM \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0443\u0434\u043e\u0431\u043d\u0430;<\/p>\n<\/li>\n<li>\n<p><strong>Sharing<\/strong>: \u043d\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f SBOM.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Syft \u0438\u0437 apt \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f:<\/strong><\/p>\n<pre><code>sudo apt-get install syft<\/code><\/pre>\n<p><strong>\u0417\u0430\u043f\u0443\u0441\u043a Syft \u043d\u0430 docker-\u043e\u0431\u0440\u0430\u0437\u0435:<\/strong><\/p>\n<pre><code>syft --output cyclonedx-json=&lt;output-file.json> &lt;image><\/code><\/pre>\n<p>&#8212;output &#8212; \u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u044b\u0432\u043e\u0434\u0430 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e SBOM-\u0444\u0430\u0439\u043b\u0430;<\/p>\n<p><strong>\u0417\u0430\u043f\u0443\u0441\u043a Syft \u0434\u043b\u044f .tar-\u0430\u0440\u0445\u0438\u0432\u0430 docker-\u043e\u0431\u0440\u0430\u0437\u0430:<\/strong>  <\/p>\n<pre><code>syft --output cyclonedx-json=&lt;output-file.json> &lt;path\/to\/image>.tar<\/code><\/pre>\n<p><strong>\u0417\u0430\u043f\u0443\u0441\u043a Syft \u0434\u043b\u044f .sif \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430:<\/strong><\/p>\n<pre><code>syft --output cyclonedx-json=&lt;output-file.json> &lt;path\/to\/image>.sif<\/code><\/pre>\n<p><strong>\u0417\u0430\u043f\u0443\u0441\u043a Syft \u0434\u043b\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0432 \u043f\u0430\u043f\u043a\u0435:<\/strong><\/p>\n<pre><code>syft --output cyclonedx-json==&lt;output-file.json> dir:&lt;path\/to\/dir><\/code><\/pre>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0444\u0430\u0439\u043b\u043e\u0432, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 Syft \u0432\u0435\u0440\u0441\u0438\u0438 0.104.0:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\"><strong>Language\/Platform<\/strong>   <\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Image<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Directory<\/strong>   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">Node.js   <\/p>\n<\/td>\n<td>\n<p align=\"left\">javascript-package   <\/p>\n<\/td>\n<td>\n<p align=\"left\">javascript-lock   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">Java   <\/p>\n<\/td>\n<td>\n<p>apkdb<\/p>\n<p>java<\/p>\n<p>graalvm-native-image<\/p>\n<\/td>\n<td>\n<p>Java<\/p>\n<p>java-pom<\/p>\n<p>java-gradle-lockfile<\/p>\n<p>graalvm-native-image<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">PHP<\/p>\n<\/td>\n<td>\n<p align=\"left\">php-composer-installed   <\/p>\n<\/td>\n<td>\n<p align=\"left\">php-composer-lock   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">Python<\/p>\n<\/td>\n<td>\n<p align=\"left\">python-package<\/p>\n<\/td>\n<td>\n<p>python-index<\/p>\n<p>python-package<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">Go<\/p>\n<\/td>\n<td>\n<p align=\"left\">Alpmdb<\/p>\n<p align=\"left\">go-module-binary<\/p>\n<\/td>\n<td>\n<p>Alpmdb<\/p>\n<p>go-mod-file<\/p>\n<p>go-module-binary<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">Ruby<\/p>\n<\/td>\n<td>\n<p align=\"left\">ruby-gemspec   <\/p>\n<\/td>\n<td>\n<p align=\"left\">ruby-gemfile   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">Rust<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p>rust-cargo-lock<\/p>\n<p>cargo-auditable-binary (non-default)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">.NET<\/p>\n<\/td>\n<td>\n<p align=\"left\">dotnet-deps   <\/p>\n<\/td>\n<td>\n<p align=\"left\">dotnet-deps   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">Dart<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">dartlang-lock   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">Haskell<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">Haskell   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">Elixir<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">elixir-mix-lock   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">Erlang<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">erlang-rebar-lock   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">C\/C++\/Objective C<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">cocoapods, conan   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">Swift<\/p>\n<\/td>\n<td>\n<p align=\"left\">&#8212;<\/p>\n<\/td>\n<td>\n<p align=\"left\">swift-package-manager   <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">Other<\/p>\n<\/td>\n<td>\n<p>apkdb<\/p>\n<p>binary<\/p>\n<p>linux-kernel<\/p>\n<p>nix-store<\/p>\n<p>sbom<\/p>\n<p>rpm-db<\/p>\n<p>portage<\/p>\n<p>dpkgdb<\/p>\n<\/td>\n<td>\n<p>apkdb<\/p>\n<p>binary<\/p>\n<p>dpkgdb<\/p>\n<p>linux-kernel<\/p>\n<p>nix-store<\/p>\n<p>rpm-db<\/p>\n<p>rpm-file<\/p>\n<p>portage<\/p>\n<p>sbom<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u041f\u041e \u0438\u0433\u0440\u0430\u0435\u0442 \u0432\u0430\u0436\u043d\u0443\u044e \u0440\u043e\u043b\u044c \u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 SCA. SBOM \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u0442 \u0432\u0441\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435, \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438\u0445 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u2013 \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u0438 \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c SBOM \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0432\u0441\u0435\u043c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u043c.<\/p>\n<p>\u041d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 SBOM \u043f\u043e\u0434 \u0432\u0430\u0448\u0438 \u043d\u0443\u0436\u0434\u044b \u0438 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432.<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/797801\/\"> https:\/\/habr.com\/ru\/articles\/797801\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0410\u043d\u0430\u043b\u0438\u0437 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u041f\u041e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u0441\u0451 \u0431\u043e\u043b\u0435\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u0432 \u0441\u0432\u0435\u0442\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0447\u0438\u0441\u043b\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435. \u041f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0431\u043e\u043b\u0435\u0435 <a href=\"https:\/\/www.kaspersky.ru\/about\/press-releases\/2023_na-tekushij-moment-v-populyarnyh-repozitoriyah-vyyavleno-bolee-20-tysyach-potencialno-opasnyh-paketov-s-otkrytym-ishodnym-kodom\">20 \u0442\u044b\u0441\u044f\u0447<\/a> \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0432 \u0448\u0438\u0440\u043e\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u0447\u0430\u0441\u0442\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u043b\u0430\u044e\u0442 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c \u0432\u0435\u0441\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442. <\/p>\n<p>\u0421 \u0432\u0430\u043c\u0438 \u0412\u0435\u0440\u0430 \u0411\u0430\u0433\u043d\u043e, AppSec-\u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Swordfish Security. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 SBOM (Software Bill of Material) \u0438 \u043a\u0430\u043a \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u0422\u0430\u043a\u0436\u0435 \u043e\u0431\u0441\u0443\u0434\u0438\u043c, \u0432 \u043a\u0430\u043a\u0438\u0445 \u0441\u0444\u0435\u0440\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f SBOM, \u043a\u0430\u043a\u0438\u043c\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u043c\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0438 \u043a\u0430\u043a\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0432 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 SCA-\u0430\u043d\u0430\u043b\u0438\u0437\u0430. <\/p>\n<p>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u043a\u0430\u043a \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430\u043c \u0418\u0411, \u0442\u0430\u043a \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0435\u0435.<\/p>\n<figure class=\"full-width\"><\/figure>\n<h2>SBOM: \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0438\u0445 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 \u0438 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438   <\/h2>\n<p>\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u2013 \u044d\u0442\u043e \u041f\u041e, \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c, \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c (\u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u2013 \u043e\u0431 \u044d\u0442\u043e\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u0432 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445). \u0421\u043e\u0437\u0434\u0430\u044e\u0442 \u0438\u0445 \u043a\u0430\u043a \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u044b, \u0442\u0430\u043a \u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0446\u0438\u0439. \u041e\u043d\u0438 \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043d\u0430 Github \u0438\u043b\u0438 \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, maven \u0438\u043b\u0438 npm. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u044d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0438 \u0434\u0435\u043d\u044c\u0433\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u041e\u043d\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u044e\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0432 \u0441\u0432\u043e\u0439 \u043a\u043e\u0434 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442 \u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<p>\u0412 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u041f\u041e \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u043d\u0435\u0441\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0440\u0438\u0441\u043a\u0438. \u041f\u043e\u043c\u0438\u043c\u043e \u0432\u0440\u0435\u0434\u043e\u043d\u043e\u0441\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0437\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0434\u043b\u044f \u043d\u0430\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0443\u0449\u0435\u0440\u0431\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438, \u0442\u0430\u043a\u043e\u0435 \u041f\u041e \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043a\u043e\u0434, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445). \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u041e\u0434\u0438\u043d \u0438\u0437 \u044f\u0440\u043a\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u2013 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c <a href=\"https:\/\/xakep.ru\/2023\/12\/12\/log4shell-stats\/\">Log4shell<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430 (\u043f\u0440\u0438\u0447\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437) \u0432 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 Java \u2013 Log4j. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0439 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0441\u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0438 \u0442\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0435\u0435 \u0432 \u0441\u0432\u043e\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0438\u043b\u0438 \u043f\u0435\u0440\u0438\u043c\u0435\u0442\u0440\u0435. \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u043c \u0432\u0430\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c\u0438 \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0442\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043d\u0438\u0445 \u043d\u0430\u0445\u043e\u0434\u044f\u0442. \u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 SBOM.<\/p>\n<p>SBOM \u2013 \u044d\u0442\u043e \u0444\u0430\u0439\u043b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON \u0438\u043b\u0438 XML, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0438\u043d\u0432\u0435\u043d\u0442\u0430\u0440\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 (\u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b. <\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 CycloneDX, SPDX (Software Packet Data Exchange) \u0438 SWID (Software Identification). \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e CycloneDX. <\/p>\n<p>SBOM \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0431\u043b\u043e\u043a\u043e\u0432. \u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435:<\/p>\n<ol>\n<li>\n<p>\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 SBOM: \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f, \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440, \u0432\u0440\u0435\u043c\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 (\u043c\u0435\u0442\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438);<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 SBOM (\u0431\u043b\u043e\u043a externalReferences);<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0432\u044f\u0437\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 (\u0431\u043b\u043e\u043a dependencies).<\/p>\n<\/li>\n<\/ol>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f SBOM \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0431\u0448\u0438\u0440\u043d\u0430\u044f \u0438 \u0433\u0438\u0431\u043a\u0430\u044f, \u0432 \u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u043a\u0446\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435.<\/p>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442 CycloneDX \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0444\u0430\u0439\u043b JSON \u0438\u043b\u0438 XML. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u043d \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a (JSON, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 cdxgen): <\/p>\n<pre><code class=\"json\">{   \"bomFormat\": \"CycloneDX\",   \"specVersion\": \"1.4\",   \"serialNumber\": \"urn:uuid:53b800be-812c-4d28-aca4-9a492cedd258\",   \"version\": 1,   \"metadata\": {     \"timestamp\": \"2023-10-12T10:51:41.885Z\",     \"tools\": [       {         \"vendor\": \"cyclonedx\",         \"name\": \"cdxgen\",         \"version\": \"8.6.0\"       }     ],     \"authors\": [       {         \"name\": \"Prabhu Subramanian\",         \"email\": \"prabhu@appthreat.com\"       }     ],     \"component\": {       \"author\": \"\",       \"publisher\": \"\",       \"group\": \"com.appsecco\",       \"name\": \"dvja\",       \"version\": \"1.0-SNAPSHOT\",       \"description\": \"\",       \"licenses\": [],       \"purl\": \"pkg:maven\/com.appsecco\/dvja@1.0-SNAPSHOT?type=war\",       \"type\": \"library\",       \"bom-ref\": \"pkg:maven\/com.appsecco\/dvja@1.0-SNAPSHOT?type=war\"     }   },   \"components\": [     {       \"author\": \"\",       \"publisher\": \"Apache Software Foundation\",       \"group\": \"org.apache.struts\",       \"name\": \"struts2-core\",       \"version\": \"2.3.30\",       \"description\": \"Apache Struts 2\",       \"scope\": \"required\",       \"hashes\": [         {           \"alg\": \"MD5\",           \"content\": \"e775580415dfa3a77e92f0ce6229268d\"         },         {           \"alg\": \"SHA-1\",           \"content\": \"0d2281c1a99f65b1ab19a5efd83a00a00995166d\"         },         {           \"alg\": \"SHA-256\",           \"content\": \"21161cc0b5056f34e0afca1feb42ebcc4bbcba0e2b075aa241c9be76b890fc65\"         },         {           \"alg\": \"SHA-512\",           \"content\": \"3a3c4083e8b0947f760f5f3d216450a62b7048247bc705939f255203ab721e343cd68d52233fb2240db3d8066435d922acf32a10c6cb28d132194c97d4025895\"         },         {           \"alg\": \"SHA-384\",           \"content\": \"ef2df3a2388461c384e842ee90eb4eabf562596aada15a784d7fc0c2ffc3b38915dd4cd1f2c896226501760b88e4ad64\"         },         {           \"alg\": \"SHA3-384\",           \"content\": \"655ee6e71047b5403957ab0c063b83a39294bae20cbe5cd72599d9c5371a03e05d6eabca5ae1a14a6d0e5eb08f00831c\"         },         {           \"alg\": \"SHA3-256\",           \"content\": \"46aaa149a8f9f0e2de483bb49c7932b9bd44d6416d3c572e46f89cc2d19a8c4f\"         },         {           \"alg\": \"SHA3-512\",           \"content\": \"1b39134ed5c8df0adffb610113b46c7b7fa51eeb1a9bad1159c16670f27931c772ca6e05576742c2dfd8f77a1e5940517adb194376811f2d7b97569fdb20c034\"         }       ],       \"licenses\": [         {           \"license\": {             \"id\": \"Apache-2.0\"           }         }       ],       \"purl\": \"pkg:maven\/org.apache.struts\/struts2-core@2.3.30?type=jar\",       \"type\": \"framework\",       \"bom-ref\": \"pkg:maven\/org.apache.struts\/struts2-core@2.3.30?type=jar\"     }, \"dependencies\": [     {       \"ref\": \"pkg:maven\/org.apache.struts\/struts2-core@2.3.30?type=jar\",       \"dependsOn\": [         \"pkg:maven\/org.apache.struts.xwork\/xwork-core@2.3.30?type=jar\",         \"pkg:maven\/org.freemarker\/freemarker@2.3.22?type=jar\",         \"pkg:maven\/ognl\/ognl@3.0.19?type=jar\",         \"pkg:maven\/commons-fileupload\/commons-fileupload@1.3.2?type=jar\",         \"pkg:maven\/commons-io\/commons-io@2.2?type=jar\"       ]     },     {       \"ref\": \"pkg:maven\/org.apache.commons\/commons-lang3@3.2?type=jar\",       \"dependsOn\": []     }, \"externalReferences\": [     {       \"type\": \"other\",       \"url\": \".\",       \"comment\": \"Base path\"     },     {       \"type\": \"other\",       \"url\": \"\/home\/kali\/Downloads\/dvja\/pom.xml\",       \"comment\": \"Package file\"     }   ] }<\/code><\/pre>\n<p>\u0412 components SBOM \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u0440 \u043f\u0430\u043a\u0435\u0442\u0430, purl (Package URL), \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f, \u0445\u044d\u0448 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, CPE (Common Platform Enumeration) \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b. <\/p>\n<p>\u0411\u043b\u043e\u043a dependencies \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u0430 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0435\u043c\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u044b\u0445 dependencies \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0433\u0440\u0430\u0444 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u0438\u0432\u043d\u044b\u0445. <\/p>\n<p>\u042d\u0442\u043e \u043f\u043e\u043b\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a (\u0443 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0434\u0432\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u0443 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u2013 \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437-\u0437\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044f dependsOn):<\/p>\n<pre><code class=\"json\">{       \"ref\": \"pkg:npm\/config-chain@1.1.13\",       \"dependsOn\": [         \"pkg:npm\/ini@1.3.8\",         \"pkg:npm\/proto-list@1.2.4\"       ]     },     {       \"ref\": \"pkg:npm\/core-util-is@1.0.2\"     },<\/code><\/pre>\n<p>\u041d\u0435 \u0432\u0441\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0432 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u0441\u0431\u043e\u0440\u043a\u0438. \u041e\u0434\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u0430, \u0434\u0440\u0443\u0433\u0438\u0435 \u2013 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0430. \u0410 \u0442\u0440\u0435\u0442\u044c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 \u0441\u0440\u0435\u0434\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u043e \u043d\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u044c\u044e.<\/p>\n<h2>\u0417\u0430\u0447\u0435\u043c SBOM \u043d\u0443\u0436\u0435\u043d \u0432 \u0441\u0444\u0435\u0440\u0435 \u0418\u0411? <\/h2>\n<p>SBOM \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0448\u0438\u0442\u044c \u0434\u0432\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438: <\/p>\n<ol>\n<li>\n<p>\u0418\u043d\u0432\u0435\u043d\u0442\u0430\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0435 (\u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435, \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0435, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435) \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b; <\/p>\n<\/li>\n<li>\n<p>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437 \u0438\u0445 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 SCA (Software Composition Analysis). \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0433\u0443\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432 \u0441\u0435\u0431\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u044d\u0442\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u043d\u0430 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u0443\u044e \u0447\u0438\u0441\u0442\u043e\u0442\u0443, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430 \u0434\u0430\u0442\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0438\u043c\u044f \u0430\u0432\u0442\u043e\u0440\u0430 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b.<\/p>\n<\/li>\n<\/ol>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u0431\u0435\u0438\u0445 \u0437\u0430\u0434\u0430\u0447 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0440\u0438\u0441\u043a \u0430\u0442\u0430\u043a\u0438 \u043d\u0430 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u043f\u043e\u0441\u0442\u0430\u0432\u043e\u043a \u041f\u041e. <\/p>\n<p>\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 SCA \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 Open Source \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438. \u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 SCA. \u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u043e\u043d\u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043a\u0430\u043d\u0438\u0440\u0443\u044e\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434, \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u0438 \u0444\u0430\u0439\u043b\u044b \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430, \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0432 \u0432\u0438\u0434\u0435 SBOM \u0438\u043b\u0438 \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 (Dependency-Check). \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 SCA \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 SBOM-\u0444\u0430\u0439\u043b (Dependency-Track). <\/p>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 SCA \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0438\u0441\u043a \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u2013 CPE \u0438\u043b\u0438 purl. \u0415\u0441\u043b\u0438 \u043e\u043d\u0438 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0441\u043f\u0440\u043e\u0432\u043e\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0436\u043d\u043e\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 (False Positive) \u0438\u043b\u0438 \u0435\u0433\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 (False Negative). \u0422\u0430\u043a\u0436\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0445\u044d\u0448 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043e\u043f\u0430\u0441\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u0435\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0434\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u043b\u0438 \u0432\u043d\u0435\u0441\u0442\u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434. \u0414\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435 \u043f\u043e\u043b\u0435\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445. <\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u041f\u041e \u0435\u0449\u0435 \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0443\u044f\u0437\u0432\u0438\u043c\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u0430 \u0438\u0437 \u043a\u043e\u0434\u0430, \u0438 \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0440\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u044b \u043a \u0434\u0430\u043d\u043d\u044b\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u0442\u0430\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 SCA \u043d\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438, \u0437\u0434\u0435\u0441\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0432\u044c\u044e AppSec-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 \u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u0436\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0438 \u043a\u043e\u0434, \u0438 \u043d\u0430\u0431\u043e\u0440 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0447\u0442\u043e\u0431\u044b \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e False Positive \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0439 \u0438 \u043e\u0431\u044a\u0435\u043c \u0440\u0443\u0447\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0438\u0445 \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044e.<\/p>\n<h2>\u041a\u0430\u043a\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u0437\u0430\u0434\u0430\u0447?<\/h2>\n<p>\u0414\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0432\u0430\u0436\u043d\u043e \u0443\u0447\u0435\u0441\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430: <\/p>\n<ol>\n<li>\n<p>\u042f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0432\u0430\u0448 \u043f\u0440\u043e\u0434\u0443\u043a\u0442;<\/p>\n<\/li>\n<li>\n<p>\u0424\u0430\u0439\u043b\u044b \u0441 \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u0435\u0442 <\/p>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-369842","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/369842","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=369842"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/369842\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=369842"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=369842"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=369842"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}