{"id":400882,"date":"2024-06-29T15:31:26","date_gmt":"2024-06-29T15:31:26","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=400882"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=400882","title":{"rendered":"<span>\u041a\u0430\u043a \u043c\u044b \u043f\u0430\u0440\u0441\u0438\u043b\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445<\/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<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/875\/96d\/cb6\/87596dcb6c494bc34c90b62567468c21.png\" width=\"853\" height=\"628\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/875\/96d\/cb6\/87596dcb6c494bc34c90b62567468c21.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0418\u0442\u0430\u043a, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"http:\/\/vuldb.com\" rel=\"noopener noreferrer nofollow\">vuldb.com<\/a> \u0438\u043b\u0438 <a href=\"http:\/\/vulners.com\" rel=\"noopener noreferrer nofollow\">vulners.com<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 \u043f\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0437\u0430 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u043c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 3153 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0434\u043b\u044f \u0438\u0445 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0440\u0435\u0441\u0435\u0440\u0447\u0430. <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043e\u0442\u043a\u0440\u044b\u043b\u0438 \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e, \u0442\u043e \u044f \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0447\u0442\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u044b \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u043e\u043d\u044f\u0442\u0438\u044f\u043c\u0438 \u043a\u0430\u043a <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Common_Vulnerabilities_and_Exposures\" rel=\"noopener noreferrer nofollow\">cve<\/a>, <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Common_Vulnerability_Scoring_System\" rel=\"noopener noreferrer nofollow\">cvss<\/a>, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Common_Platform_Enumeration\" rel=\"noopener noreferrer nofollow\">cpe<\/a>, \u043d\u043e, \u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u0441\u0434\u0435\u043b\u0430\u043b \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043a\u043b\u0438\u043a\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u0412\u044b \u043c\u043e\u0433\u043b\u0438 \u043e\u0441\u0432\u0435\u0436\u0438\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c. <\/p>\n<p><em>\u0414\u0430\u043b\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u0439 \u043a\u043e\u0434, \u0438 \u0442\u0430\u043c \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0440\u043e\u043a, \u0434\u043b\u044f \u0412\u0430\u0448\u0435\u0433\u043e \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u044f \u0431\u0443\u0434\u0443 \u043f\u0440\u044f\u0442\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u044b<\/em><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0412\u044b \u043e\u0441\u0432\u0435\u0436\u0438\u043b\u0438 \u0437\u043d\u0430\u043d\u0438\u044f, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c\u0438:<\/p>\n<ul>\n<li>\n<p>\u041e\u0442\u043a\u0443\u0434\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445? <\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a\u0443\u044e \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445?<\/p>\n<\/li>\n<li>\n<p>\u0413\u0434\u0435 \u0438 \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u0441\u0451 \u0445\u0440\u0430\u043d\u0438\u0442\u044c?<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e \u0445\u043e\u0434\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u044f \u043e\u0442\u0432\u0435\u0447\u0443 \u043d\u0430 \u0432\u0441\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b. \u041d\u0443 \u0447\u0442\u043e \u0436, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c. <\/p>\n<p>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043d\u043e\u0432\u044b\u0445 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/safe-surf.ru\/specialists\/bulletins-nkcki\/\" rel=\"noopener noreferrer nofollow\">\u0411\u044e\u043b\u043b\u0435\u0442\u0435\u043d\u0438 \u041d\u041a\u0426\u041a\u0418<\/a> <\/p>\n<\/li>\n<li>\n<p>\u0421\u0430\u0439\u0442 <a href=\"http:\/\/opencve.io\" rel=\"noopener noreferrer nofollow\">opencve.io<\/a><\/p>\n<\/li>\n<li>\n<p>\u0421\u0430\u0439\u0442 <a href=\"http:\/\/cvetrends.com\" rel=\"noopener noreferrer nofollow\">cvetrends.com<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u0421 \u0432\u044b\u0448\u0435\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0430\u0439\u0442\u043e\u0432 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 CVE-2021-40444), \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0443 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u0430\u0439\u0442 <a href=\"http:\/\/nvd.nist.gov\" rel=\"noopener noreferrer nofollow\">nvd.nist.gov<\/a> (\u0447\u0435\u0440\u0435\u0437 \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443) \u0438 \u0443\u0436\u0435 \u043e\u0442\u0442\u0443\u0434\u0430 \u043c\u044b \u043f\u0430\u0440\u0441\u0438\u043c \u0432\u0441\u044e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u043d\u0430\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.<\/p>\n<p><strong>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043a\u0440\u0430\u043f\u0438\u043d\u0433\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0441 \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u043e\u0432 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438:<\/strong> <\/p>\n<h3>\u0411\u044e\u043b\u043b\u0435\u0442\u0435\u043d\u0438 \u041d\u041a\u0426\u041a\u0418<\/h3>\n<p>\u041d\u0443 \u0442\u0443\u0442 \u0432\u0441\u0451 \u043f\u043e\u043d\u044f\u0442\u043d\u043e &#8212; \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044e \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043e\u0442 \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u043f\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u043c \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u0430\u043c. <\/p>\n<p>\u0421\u0430\u043c\u0438 \u0431\u044e\u043b\u043b\u0435\u0442\u0435\u043d\u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 pdf, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0441\u043a\u0440\u0430\u043f\u0438\u043d\u0433\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># parse bulletine NKCKI------------------------------------------------------------------------------------------------ def get_cve_list(name_list):     cve_list = []     cve_list_repeat = []     for name in name_list:         pdf_file = open(f'{PATH}\/{name}', 'rb')         read_pdf = PyPDF2.PdfFileReader(pdf_file)         number_of_pages = read_pdf.getNumPages()         data = ''         for i in range(number_of_pages):             page = read_pdf.getPage(i)             page_content = page.extractText()             data1 = json.dumps(page_content)             data += data1          rez = ''         for n, item in enumerate(data, start=0):             if item != '\\\\':                 rez += data[n]          result = ''         for n, item in enumerate(rez, start=0):             if item != 'n':                 result += rez[n]         rez1 = result.replace(\" \", \"\")          regex = re.findall(r'CVE-\\d{4}-\\d{4,8}', rez1)         for cve in regex:             cve_list_repeat.append(cve)     for item in cve_list_repeat:         if item not in cve_list:             cve_list.append(item)     return cve_list   def get_links_for_bulletine():     links = []     for page in range(3):         r = requests.get(\"https:\/\/safe-surf.ru\/specialists\/bulletins-nkcki\/?PAGEN_1={}\".format(page))         soup = BeautifulSoup(r.text, \"html.parser\")         for vuln in soup.find_all(\"div\", \"blockBase blockBulletine\"):             bulletin_pdf_url = \"https:\/\/safe-surf.ru{}\".format(vuln.find('h4').find('a')['href'])             links.append(bulletin_pdf_url)     return links   def create_pdf_file(links):     for str in links:         get = requests.get(str)         name = str.replace(\"https:\/\/safe-surf.ru\/upload\/VULN\/\", \"\")         check_file = os.path.exists(f'{PATH}\/{name}')         if check_file == 0:             with open(f'{PATH}\/{name}', 'wb') as f:                 f.write(get.content)         else:             print(f'file {name} already exists')   def get_name_list(path):     name_list = os.listdir(path)     return name_list   def remove_pdf_file(path):     for item in path:         os.remove(item)  links = get_links_for_bulletine() create_pdf_file(links) name_list = get_name_list(PATH)  # \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u043d \u0441\u043a\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 cve_line = get_cve_list(name_list)  # \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 cve \u0438\u0437 \u0431\u0438\u043b\u043b\u044e\u0442\u0435\u043d\u044f \u041d\u041a\u0426\u041a\u0418 print(cve_line)  # remove pdf buffer---------------------------------------------------------------------------------------------------  time.sleep(1) path_to_remove_pdf = [] for item in name_list:     path_to_remove_pdf.append(f'{PATH}\/{item}') remove_pdf_file(path_to_remove_pdf)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434 \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0443\u0442\u044c \u0434\u043e \u043f\u0430\u043f\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c (\u0438 \u043f\u043e\u0442\u043e\u043c \u0443\u0434\u0430\u043b\u044f\u0442\u044c) \u0441\u0430\u043c\u0438 \u0431\u044e\u043b\u043b\u0435\u0442\u0435\u043d\u0438, \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u043d\u0443\u0436\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.<\/p>\n<p>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"python\">['CVE-2022-30472', 'CVE-2022-30473', 'CVE-2022-30475', 'CVE-2022-30476', 'CVE-2022-30477', 'CVE-2022-30474', 'CVE-2022-30190', 'CVE-2022-1888', 'CVE-2022-1934', 'CVE-2022-26700', 'CVE-2022-26716', 'CVE-2022-26719', 'CVE-2022-26709', 'CVE-2022-30294', 'CVE-2022-26717', 'CVE-2022-30293', 'CVE-2022-26945', 'CVE-2022-27184', 'CVE-2022-28690', 'CVE-2022-30540', 'CVE-2022-29078', 'CVE-2021-23820', 'CVE-2022-22963', 'CVE-2022-22965', 'CVE-2021-3634', 'CVE-2022-1154', 'CVE-2022-1271', 'CVE-2022-23772', 'CVE-2022-25235', 'CVE-2022-25313', 'CVE-2022-25314', 'CVE-2022-25315', 'CVE-2022-27871', 'CVE-2022-28463', 'CVE-2021-3254', 'CVE-2022-1517', 'CVE-2022-1518', 'CVE-2022-1519', 'CVE-2022-1521', 'CVE-2022-29897', 'CVE-2022-29898', 'CVE-2022-31479', 'CVE-2022-31480', 'CVE-2022-31481', 'CVE-2022-26134']<\/code><\/pre>\n<h3>\u0421\u0430\u0439\u0442 opencve.io<\/h3>\n<p>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0442\u0435\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\u043c \u0438 \u0432\u0435\u043d\u0434\u043e\u0440\u0430\u043c (\u0442\u0443\u0442 \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u043f\u0440\u043e \u0438\u043d\u0432\u0435\u043d\u0442\u0430\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u0430\u0448\u0438\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435 \u0432 \u0441\u0432\u043e\u0435\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u0435 (\u0434\u0430, \u043d\u0443\u0436\u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f, \u043d\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438). \u0421\u0430\u043c \u0441\u0430\u0439\u0442 \u0442\u0430\u043a\u0436\u0435 \u043f\u0430\u0440\u0441\u0438\u0442 <a href=\"http:\/\/nvd.nist.gov\" rel=\"noopener noreferrer nofollow\">nvd.nist.gov<\/a> \u0438 \u043b\u0438\u0431\u043e \u0437\u0430\u0432\u043e\u0434\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043d\u043e\u0432\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 (is a new CVE), \u043b\u0438\u0431\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u0436\u0435 \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0439 (has changed):<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/44e\/862\/dda\/44e862dda38ca475b4589261c7cf9ad0.png\" alt=\"\u0441\u0430\u0439\u0442 opencve.io\" title=\"\u0441\u0430\u0439\u0442 opencve.io\" width=\"1840\" height=\"566\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/44e\/862\/dda\/44e862dda38ca475b4589261c7cf9ad0.png\"\/><figcaption>\u0441\u0430\u0439\u0442 opencve.io<\/figcaption><\/figure>\n<p>\u041c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0442\u043e\u043b\u044c\u043a\u043e \u043e \u043d\u043e\u0432\u044b\u0445 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 (is a new CVE), \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u0436\u0435 \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u0441\u0430\u043c\u0438:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0441\u043a\u0440\u0430\u043f\u0438\u043d\u0433\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># parse opencve.io----------------------------------------------------------------------------------------------------  def parsing_opencve():     url1 = 'https:\/\/www.opencve.io\/login\/'     url2 = 'https:\/\/www.opencve.io\/login'     csrf_token = ''     s = requests.Session()     response = s.get(url1)     soup = BeautifulSoup(response.text, 'lxml')      # Get CSRF     for a in soup.find_all('meta'):         if 'name' in a.attrs:             if a.attrs['name'] == 'csrf-token':                 csrf_token = a.attrs['content']      # Authentication     s.post(         url2,         data={             'username': USERNAME,             'password': PASSWORD,             'csrf_token': csrf_token,         },         headers={'referer': 'https:\/\/www.opencve.io\/login'},         verify=False     )     # Get new CVE     cve_line = []     for page_num in range(1, 20):         pagination = f'https:\/\/www.opencve.io\/?page={page_num}'         resp = s.get(pagination)         parse = BeautifulSoup(resp.text, 'lxml')         for cve in parse.find_all('h3', class_='timeline-header'):             index = cve.text.find('has changed')             if index == -1:                 cve_line.append(cve.text.replace(' is a new CVE', ''))      cve_line_no_replic = []     for item in cve_line:         if item not in cve_line_no_replic:             cve_line_no_replic.append(item[:-1])     return cve_line_no_replic  cve_line = parsing_opencve()  # \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u043e\u0432\u044b\u0445 cve \u0441 \u0441\u0430\u0439\u0442\u0430 opencve.io print(cve_line)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434 \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0440\u0435\u0434\u044b (\u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c) \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0430 <a href=\"http:\/\/opencve.io\" rel=\"noopener noreferrer nofollow\">opencve.io<\/a>. <\/p>\n<p>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0442\u0430\u043a\u0436\u0435, \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439:<\/p>\n<pre><code class=\"python\">['CVE-2022-29170', 'CVE-2022-28660', 'CVE-2022-20795', 'CVE-2022-22191', 'CVE-2022-22193', 'CVE-2022-22197', 'CVE-2022-22196', 'CVE-2022-22185', 'CVE-2022-22186', 'CVE-2022-22182', 'CVE-2022-22188', 'CVE-2022-22181', 'CVE-2022-22198', 'CVE-2022-24828', 'CVE-2022-24812', 'CVE-2022-26148', 'CVE-2022-22943', 'CVE-2022-0711', 'CVE-2022-24329', 'CVE-2021-29220', 'CVE-2022-21824', 'CVE-2021-44531', 'CVE-2021-44532', 'CVE-2021-44533', 'CVE-2021-22041', 'CVE-2021-22040', 'CVE-2022-21703', 'CVE-2022-21713', 'CVE-2022-21702', 'CVE-2022-23601', 'CVE-2022-22938', 'CVE-2021-46088', 'CVE-2022-22176', 'CVE-2022-22156', 'CVE-2022-22153', 'CVE-2022-22154', 'CVE-2022-22177', 'CVE-2022-22172', 'CVE-2022-22167', 'CVE-2022-22170', 'CVE-2022-22166', 'CVE-2022-22163', 'CVE-2022-22176', 'CVE-2022-22160', 'CVE-2022-22170', 'CVE-2022-22180', 'CVE-2022-22167', 'CVE-2022-22172', 'CVE-2022-22161', 'CVE-2022-22171', 'CVE-2022-22154', 'CVE-2022-22173', 'CVE-2022-22169', 'CVE-2022-22177', 'CVE-2022-22178', 'CVE-2022-22156', 'CVE-2022-22168', 'CVE-2022-21673', 'CVE-2022-23134', 'CVE-2022-23133', 'CVE-2022-23132', 'CVE-2022-23131', 'CVE-2021-22045', 'CVE-2020-19316', 'CVE-2021-43815', 'CVE-2021-43813', 'CVE-2021-43803', 'CVE-2021-43808', 'CVE-2021-43798', 'CVE-2021-41270', 'CVE-2021-41267', 'CVE-2021-41268', 'CVE-2021-3935']<\/code><\/pre>\n<h3>\u0421\u0430\u0439\u0442 cvetrends.com:<\/h3>\n<p>\u041d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u0430\u0439\u0442\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043f-10 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. <br \/>\u0421 \u043d\u0435\u0433\u043e \u0442\u0430\u043a\u0436\u0435 &#171;\u0434\u0435\u0440\u0433\u0430\u0435\u043c&#187; \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0441\u043a\u0440\u0430\u043f\u0438\u043d\u0433\u0430 <\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># parse cvetrends.com-------------------------------------------------------------------------------------------------- def get_top_cve_list():     link = 'https:\/\/cvetrends.com\/api\/cves\/24hrs'     r = requests.get(link)     soup = BeautifulSoup(r.text, \"lxml\")     regex = re.findall(r'\"cve\": \"CVE-\\d{4}-\\d{4,8}\"', soup.get_text())     top_cve_list = []     for item in regex:         top_cve_list.append(re.search(r'CVE-\\d{4}-\\d{4,8}', item).group())      return top_cve_list  top_cve_list = get_top_cve_list()  # \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u043f\u0430 cve \u0441 cvetrends.com print(top_cve_list)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442, \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432:<\/p>\n<pre><code class=\"python\">['CVE-2022-30190', 'CVE-2022-26134', 'CVE-2022-32275', 'CVE-2022-32250', 'CVE-2022-30075', 'CVE-2022-32276', 'CVE-2202-26134', 'CVE-2022-29464', 'CVE-2020-3452', 'CVE-2021-40444']<\/code><\/pre>\n<p><strong>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u0443\u044e \u043d\u0430\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e:<\/strong><\/p>\n<ul>\n<li>\n<p>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>\u0414\u0430\u0442\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>\u0414\u0430\u0442\u0430 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Common_Platform_Enumeration\" rel=\"noopener noreferrer nofollow\">CPE<\/a> \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>CVSSv3 Score<\/p>\n<\/li>\n<li>\n<p>CVSSv3 Vector<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u0438 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 (\u0434\u0430\u043b\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0435)<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u044d\u043a\u0441\u043f\u043b\u043e\u0438\u0442\u043e\u0432 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u043c\u044f\u0433\u0447\u0430\u044e\u0449\u0438\u0445 \u043c\u0435\u0440 (\u0434\u0430\u043b\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0435)<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u044b\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0431\u043e \u0432\u0441\u0451\u043c \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443.<\/strong> <\/p>\n<h3>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/h3>\n<p>\u041d\u0443 \u0442\u0443\u0442 \u0432\u0441\u0451 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e. \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u043e\u0434\u043d\u0430\u043a\u043e \u043c\u044b \u043f\u043e\u0448\u043b\u0438 \u0447\u0443\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u0436\u0435 \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u0440\u0430\u0437\u0443 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c:<\/p>\n<pre><code class=\"python\">pattern = ['Stack-based buffer overflow', 'Arbitrary command execution', 'Obtain sensitive information',            'Local privilege escalation', 'Security Feature Bypass', 'Out-of-bounds read', 'Out of bounds read',            'Denial of service', 'Denial-of-service', 'Execute arbitrary code', 'Expose the credentials',            'Cross-site scripting (XSS)', 'Privilege escalation', 'Reflective XSS Vulnerability',            'Execution of arbitrary programs', 'Server-side request forgery (SSRF)', 'Stack overflow',            'Execute arbitrary commands', 'Obtain highly sensitive information', 'Bypass security',            'Remote Code Execution', 'Memory Corruption', 'Arbitrary code execution', 'CSV Injection',            'Heap corruption', 'Out of bounds memory access', 'Sandbox escape', 'NULL pointer dereference',            'Remote Code Execution', 'RCE', 'Authentication Error', 'Use-After-Free', 'Use After Free',            'Corrupt Memory', 'Execute Untrusted Code', 'Run Arbitrary Code', 'heap out-of-bounds write',            'OS Command injection', 'Elevation of Privilege', 'Race condition', 'Access violation', 'Infinite loop']<\/code><\/pre>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 \u0438\u043c\u0435\u0435\u043c <code>CVE-2021-40444<\/code>, \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c:<\/p>\n<pre><code class=\"bash\">CVE-2021-40444 - Remote Code Execution<\/code><\/pre>\n<h3>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/h3>\n<p>\u0422\u0443\u0442 \u0443\u0436\u0435 \u043c\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u043e\u0439 <a href=\"https:\/\/pypi.org\/project\/cpe\/\" rel=\"noopener noreferrer nofollow\">\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439<\/a>  <code>cpe<\/code>  \u0434\u043b\u044f \u043f\u0438\u0442\u043e\u043d\u0430:<\/p>\n<pre><code class=\"python\">def get_cve_data(cve):     r = nvdlib.getCVE(cve, cpe_dict=False)     cve_name = ''     cve_info = r.cve.description.description_data[0].value     for item in pattern:         if item.upper() in cve_info.upper():             cve_name = cve + \" - \" + item             break         else:             cve_name = cve<\/code><\/pre>\n<p>\u0412 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <code>cve_info<\/code> \u043a\u0430\u043a \u0440\u0430\u0437 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438. \u0410 \u0432\u043e\u0442 \u0446\u0438\u043a\u043b <code>for item in pattern:<\/code>  \u0442\u0443\u0442 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u043a \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u044b\u0448\u0435.<\/p>\n<h3>\u0414\u0430\u0442\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438  \u0438 \u0434\u0430\u0442\u0430 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/h3>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0442\u0430\u043a\u0436\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438  <code>cpe<\/code>  \u0432 \u0442\u0435\u043b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>get_cve_data<\/code> :<\/p>\n<pre><code class=\"python\">publishedDate = r.publishedDate[:-7] lastModifiedDate = r.lastModifiedDate[:-7]<\/code><\/pre>\n<h3>CPE<\/h3>\n<p>\u041a\u043e\u0434 \u0432 \u0442\u0435\u043b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>get_cve_data<\/code>:<\/p>\n<pre><code class=\"python\">cve_cpe_nodes = r.configurations.nodes cpe_nodes = ast.literal_eval(str(r.configurations))<\/code><\/pre>\n<h3>CVSSv3 Score \u0438 CVSSv3 Vector<\/h3>\n<p>\u041a\u043e\u0434 \u0432 \u0442\u0435\u043b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>get_cve_data<\/code>:<\/p>\n<pre><code class=\"python\">score = r.v3score vector = r.v3vector<\/code><\/pre>\n<h3>\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u0438 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c<\/h3>\n<p>\u041a\u043e\u0434 \u0432 \u0442\u0435\u043b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>get_cve_data<\/code> :<\/p>\n<pre><code class=\"python\">product_vendor_list = [] product_image_list = [] version_list = [] for cpe in cpe_for_product_vendors:     cpe_parsed = CPE(cpe)     product = cpe_parsed.get_product()     vendor = cpe_parsed.get_vendor()     product_vendor = vendor[0] + \" \" + product[0] if product != vendor else product[0]     product_vendor_list.append(product_vendor)     product_image_list.append(product[0])     version = cpe_parsed.get_version()     if version[0] != '-' and version[0] != '*':         version_list.append(f'{product[0]} - {version[0]}')<\/code><\/pre>\n<h3>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438<\/h3>\n<p>\u0422\u0443\u0442 \u043f\u043e\u0434 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 &#8212; \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f, \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u043a\u0441\u043f\u043b\u043e\u0438\u0442, \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 <s>\u0440\u0435\u0441\u0435\u0440\u0447<\/s> \u0440\u0430\u0437\u0431\u043e\u0440 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438. \u041d\u0430 <a href=\"http:\/\/nvd.nist.gov\" rel=\"noopener noreferrer nofollow\">nvd.nist.gov<\/a> \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c13\/276\/78d\/c1327678dc9db89ff926bfa96452d964.png\" alt=\"\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 nvd\" title=\"\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 nvd\" width=\"969\" height=\"191\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c13\/276\/78d\/c1327678dc9db89ff926bfa96452d964.png\"\/><figcaption>\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 nvd<\/figcaption><\/figure>\n<p>\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u0434\u0435 \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"python\">links.append(r.url)<\/code><\/pre>\n<h3>\u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u044d\u043a\u0441\u043f\u043b\u043e\u0438\u0442\u043e\u0432 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445<\/h3>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u044d\u043a\u0441\u043f\u043b\u043e\u0438\u0442 \u0438\u043b\u0438 PoC (proof-of-concept) \u043c\u044b \u043f\u0430\u0440\u0441\u0438\u043c \u0442\u0435\u0433\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 <a href=\"http:\/\/nvd.nist.gov\" rel=\"noopener noreferrer nofollow\">nvd.nist.gov<\/a> \u0438 <s>\u043f\u043e\u043a\u0430<\/s> \u0434\u0432\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cfd\/d6e\/5f6\/cfdd6e5f6e611c10f5cada6f71a3a86a.png\" alt=\"\u0422\u0435\u0433\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 nvd\" title=\"\u0422\u0435\u0433\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 nvd\" width=\"965\" height=\"88\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cfd\/d6e\/5f6\/cfdd6e5f6e611c10f5cada6f71a3a86a.png\"\/><figcaption>\u0422\u0435\u0433\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 nvd<\/figcaption><\/figure>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># check https:\/\/github.com\/nu11secur1ty\/ -----------------------------------------------------------------------------  def get_exploit_info(cve):     link = 'https:\/\/github.com\/nu11secur1ty\/CVE-mitre'     link_2 = 'https:\/\/github.com\/nu11secur1ty\/CVE-mitre\/tree\/main\/2022'     default_link = ''     poc_cve_list = []     r = requests.get(link)     soup = BeautifulSoup(r.text, \"html.parser\")     for cve_id in soup.find_all(\"span\", class_=\"css-truncate css-truncate-target d-block width-fit\"):         regex = re.findall(r'CVE-\\d{4}-\\d{4,8}', cve_id.text)         if regex:             poc_cve_list.append(str(regex[0]))      r = requests.get(link_2)     soup = BeautifulSoup(r.text, \"html.parser\")     for cve_id in soup.find_all(\"span\", class_=\"css-truncate css-truncate-target d-block width-fit\"):         regex = re.findall(r'CVE-\\d{4}-\\d{4,8}', cve_id.text)         if regex:             poc_cve_list.append(str(regex[0]))      for item in poc_cve_list:         if cve == item:             default_link = f'https:\/\/github.com\/nu11secur1ty\/CVE-mitre\/tree\/main\/{cve}'     return default_link   # check https:\/\/github.com\/trickest\/cve\/ -----------------------------------------------------------------------------  def get_exploit_info_2(cve):     # print('get_exploit_info_2') # DEBUG     year = cve.split('-')[1]     link = f'https:\/\/github.com\/trickest\/cve\/tree\/main\/{year}'     r = requests.get(link)     soup = BeautifulSoup(r.text, \"html.parser\")     default_link = ''     for cve_id in soup.find_all(\"span\", class_=\"css-truncate css-truncate-target d-block width-fit\"):         if f'{cve}.md' == cve_id.text:             default_link = f'**trickest\/cve** - https:\/\/github.com\/trickest\/cve\/tree\/main\/{year}\/{cve}.md'             break     return default_link   exploit_links = [] for t in r.cve.references.reference_data:     links.append(t.url)     if 'Exploit' in t.tags:         exploit_links.append(t.url) if get_exploit_info(cve):  # check https:\/\/github.com\/nu11secur1ty\/     exploit_links.append(get_exploit_info(cve)) if get_exploit_info_2(cve):  # check https:\/\/github.com\/trickest\/cve\/     exploit_links.append(get_exploit_info_2(cve))<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u043c\u044f\u0433\u0447\u0430\u044e\u0449\u0438\u0445 \u043c\u0435\u0440<\/h3>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ebd\/615\/804\/ebd615804fd92884ee17b81779b7c809.png\" width=\"670\" height=\"441\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ebd\/615\/804\/ebd615804fd92884ee17b81779b7c809.png\"\/><figcaption><\/figcaption><\/figure>\n<p><a href=\"https:\/\/attack.mitre.org\/mitigations\/enterprise\/\" rel=\"noopener noreferrer nofollow\"><em>Mitigations<\/em><\/a><em> (\u043c\u0435\u0440\u044b \u043f\u043e \u0441\u043c\u044f\u0433\u0447\u0435\u043d\u0438\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0439) &#8212; \u044d\u0442\u043e \u0442\u0438\u043f\u043e\u0432\u044b\u0435 \u043d\u0430\u0431\u043e\u0440\u044b \u043f\u0440\u0430\u0432\u0438\u043b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0445 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0440\u0438\u0441\u043a\u0438 \u043e\u0442 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/em>. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043c\u044b \u043f\u0430\u0440\u0441\u0438\u043c \u043f\u0443\u043b\u044c\u0441\u044b \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 <a href=\"http:\/\/otx.alienvault.com\" rel=\"noopener noreferrer nofollow\">otx.alienvault.com<\/a>. <em>\u041f\u0443\u043b\u044c\u0441\u044b &#8212; \u044d\u0442\u043e \u0440\u0435\u0441\u0435\u0440\u0447\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0442\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0442\u0435\u0445\u043d\u0438\u043a\u0438 \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 IoC-\u043a\u0438, \u043d\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f<\/em>. \u0421\u0442\u043e\u0438\u0442 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0442\u043e\u0447\u043d\u044b\u0439, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u044f \u0431\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0435\u0441\u044c \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 <a href=\"https:\/\/attack.mitre.org\/\" rel=\"noopener noreferrer nofollow\">Mitre Att&amp;ck<\/a>, \u0442\u043e \u044d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0434\u043b\u044f \u0432\u0430\u0441 \u043f\u043e\u043b\u0435\u0437\u043d\u0430. <\/p>\n<p>\u0418\u0442\u0430\u043a, \u0441\u043a\u0440\u0438\u043f\u0442:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0441\u043a\u0440\u0430\u043f\u0438\u043d\u0433\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># parse mitre.org-----------------------------------------------------------------------------------------------------  def get_mitigations(tactic_id):     # print(\"get_mitigations\") # DEBUG     tactic_url = f'https:\/\/attack.mitre.org\/techniques\/{tactic_id}'     r_get_tactic_info = requests.get(tactic_url)     s_get_tactic_info = BeautifulSoup(r_get_tactic_info.text, 'html.parser')      #  0 - Procedure Examples     #  1 - Mitigations     #  2 - Detection     try:         mitigations = s_get_tactic_info.find_all(\"table\", class_=\"table table-bordered table-alternate mt-2\")[1].text         buff_string_1 = str(mitigations).replace(\"ID\", \"\").replace(\"Mitigation\", \"\").replace(\"Description\", \"\").replace(             \"\\n\\n\", \"\")         buff_list = buff_string_1.split('\\n')         buff_list.pop(0)  # Remove empty element, index - 0         return_list = []         for count in range(int(len(buff_list) \/ 3)):             id_mit = buff_list[count * 3].rstrip().lstrip()             name_mit = buff_list[count * 3 + 1].rstrip().lstrip()             desc_mit = buff_list[count * 3 + 2].rstrip().lstrip()             return_list.append(f'[{id_mit} - {name_mit}](https:\/\/attack.mitre.org\/mitigations\/{id_mit}) - {desc_mit}')         return return_list     except:         pass   # parse alienvault.com------------------------------------------------------------------------------------------------  def get_ttp(cve):     # print('get_ttp') # DEBUG     headers_alienvault = {'X-OTX-API-KEY': API_KEY_ALIENVAULT}     url = f'https:\/\/otx.alienvault.com\/api\/v1\/indicators\/cve\/{cve}'     pattern_default_answer = '{\"detail\": \"endpoint not found\"}'     r_get_cve_info = requests.get(url, headers=headers_alienvault)     s_get_cve_info = BeautifulSoup(r_get_cve_info.text, 'lxml')     tactic_list = []     if str(s_get_cve_info.p.contents).replace(\"['\", \"\").replace(\"']\", \"\") == pattern_default_answer:         print(f'no information for {cve}')  # DEBUG     else:         content = json.loads(str(s_get_cve_info.p).replace(\"&lt;p>\", \"\").replace(\"&lt;\/p>\", \"\"))         count = int(content['pulse_info']['count'])         subs_list = []         for i in range(count):             subs_list.append(content['pulse_info']['pulses'][i]['subscriber_count'])         tactic_list = []         for i, item in enumerate(subs_list):             max_test = max(subs_list)             if content['pulse_info']['pulses'][i]['attack_ids']:                 for j in range(len(content['pulse_info']['pulses'][i]['attack_ids'])):                     tactic_list.append(content['pulse_info']['pulses'][i]['attack_ids'][j]['id'])                 break             else:                 subs_list.remove(max_test)         else:             return f'NO TTP'     tactic_list = list(set(tactic_list))  # replace replications     technique_list = []     for i, item in enumerate(tactic_list):         if len(str(item)) > 6:             technique_list.append(str(item).replace(\".\", \"\/\"))      result_list = []     if technique_list:         for tactic_id in technique_list:             if get_mitigations(tactic_id):                 for item in get_mitigations(tactic_id):                     result_list.append(item)         return list(set(result_list))     else:         for tactic_id in tactic_list:             if get_mitigations(tactic_id):                 for item in get_mitigations(tactic_id):                     result_list.append(item)         return list(set(result_list))<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434 \u043e\u043d \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 API-KEY \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0430 <a href=\"https:\/\/otx.alienvault.com\" rel=\"noopener noreferrer nofollow\">\u0441\u0430\u0439\u0442\u0435<\/a> (\u0434\u0430 \u0434\u0430, \u043e\u043f\u044f\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f, \u043d\u043e \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438) \u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438.<br \/>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043c\u0438\u0442\u0438\u0433\u0435\u0439\u0448\u0435\u043d\u043e\u0432 \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 (\u0432 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0435 markdown):<\/p>\n<pre><code class=\"python\">['[M1047 - Audit ](https:\/\/attack.mitre.org\/mitigations\/M1047)', '[M1017 - User Training ](https:\/\/attack.mitre.org\/mitigations\/M1017)', '[M1028 - Operating System Configuration ](https:\/\/attack.mitre.org\/mitigations\/M1028)', '[M1038 - Execution Prevention ](https:\/\/attack.mitre.org\/mitigations\/M1038)', '[M1040 - Behavior Prevention on Endpoint ](https:\/\/attack.mitre.org\/mitigations\/M1040)', '[M1018 - User Account Management ](https:\/\/attack.mitre.org\/mitigations\/M1018)', '[M1026 - Privileged Account Management ](https:\/\/attack.mitre.org\/mitigations\/M1026)', '[M1042 - Disable or Remove Feature or Program ](https:\/\/attack.mitre.org\/mitigations\/M1042)']<\/code><\/pre>\n<h3>\u0418\u043d\u044b\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438<\/h3>\n<p><a href=\"https:\/\/www.first.org\/epss\/model\" rel=\"noopener noreferrer nofollow\">EPSS scoring<\/a> (\u043e\u0446\u0435\u043d\u043a\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0430\u0442\u0430\u043a\u0430\u0445) \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0448\u0442\u0443\u043a\u0430, \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430 \u0434\u043e\u0441\u0443\u0433\u0435.<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">def get_data_file():     data_link = \"https:\/\/epss.cyentia.com\/epss_scores-current.csv.gz\"     response = requests.get(data_link)     with open(buffer, 'wb') as f:         f.write(response.content)     with gzip.open(buffer, 'rb') as f_in:         with open(filename, 'wb') as f_out:             shutil.copyfileobj(f_in, f_out)   def info_data(filename):     with open(filename) as csv_file:         csv_reader = csv.reader(csv_file, delimiter=',')         my_file = open(fileout, \"w\")         for row in csv_reader:             try:                 epss = str(round(float(str(100 \/ (1 \/ float(row[1])))[0:5]), 2))                 data = str(row[0] + ',' + epss + '\\n')                 my_file.write(data)             except:                 pass         my_file.close()  filename = f'{PATH}\/DATA.csv' fileout = f'{PATH}\/DATA1.csv' buffer = f'{PATH}\/tar.csv.gz' get_data_file() info_data(filename) cve_line = [] procent_line = [] with open(fileout) as csv_file:     csv_reader = csv.reader(csv_file, delimiter=',')     for row in csv_reader:         cve_line.append(row[0])         procent_line.append(row[1])<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434 \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0443\u0442\u044c \u0434\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c (\u0438 \u043f\u043e\u0442\u043e\u043c \u0443\u0434\u0430\u043b\u044f\u0442\u044c) csv \u0444\u0430\u0439\u043b \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438, \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u043d\u0443\u0436\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.<br \/>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u0432\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 epss.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u043f\u0430\u0440\u0441\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u0439\u0442\u043e\u0432 \u043c\u0430\u0439\u043a\u0440\u043e\u0441\u043e\u0444\u0442 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u0438 (\u0438\u043b\u0438) \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 (<a href=\"https:\/\/msrc.microsoft.com\" rel=\"noopener noreferrer nofollow\">KB<\/a>). <\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/881\/e0e\/2b2\/881e0e2b2dd071ee9fc28412668f2767.png\" width=\"511\" height=\"334\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/881\/e0e\/2b2\/881e0e2b2dd071ee9fc28412668f2767.png\"\/><figcaption><\/figcaption><\/figure>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">def get_kb(cve):      msrc_url = f\"https:\/\/api.msrc.microsoft.com\/cvrf\/v2.0\/Updates('{cve}')\"     get_cvrf_link = requests.get(msrc_url, verify=False)     id_for_cvrf = re.search(r'\\d{4}-\\w{3}', get_cvrf_link.text)     cvrf_url = f'https:\/\/api.msrc.microsoft.com\/cvrf\/v2.0\/document\/{id_for_cvrf[0]}'     get_info = requests.get(cvrf_url, verify=False)     soup = BeautifulSoup(get_info.text, \"lxml\")      parse_list = []     buff = ''     for item in soup.text:         if item == '\\n':             parse_list.append(buff)             buff = ''         else:             buff += item      parse_string = ''     for j, item in enumerate(parse_list):         regex = re.findall(cve, parse_list[j])         if regex:             parse_string = parse_list[j]      kb_list = re.findall(r'KB\\d{7}', parse_string)     not_remove_list_of_kb = []     for kb in kb_list:         if kb not in not_remove_list_of_kb:             not_remove_list_of_kb.append(kb)      link_list = []     for kb in not_remove_list_of_kb:         kb_url = f'https:\/\/catalog.update.microsoft.com\/v7\/site\/Search.aspx?q={kb}'         test = requests.get(kb_url, verify=False)         if test.status_code == 200:             url_get_product = f'https:\/\/www.catalog.update.microsoft.com\/Search.aspx?q={kb}'             get_product = requests.get(url_get_product, verify=False)             soup_get_product = BeautifulSoup(get_product.text, \"lxml\")             product_buff = ''             for item in soup_get_product.find_all('a', class_='contentTextItemSpacerNoBreakLink'):                 product_buff = item.text             product = product_buff.strip()             # Output: Windows 10 Version 1809 for x86-based Systems             #link_list.append(f'[{kb}]({kb_url}) - {(product.partition(\"for\")[2])[:-12]}')             if product:                 # Output: 2022-01 Cumulative Update for Windows 10 Version 1809 for x86-based Systems (KB5009557)                 link_list.append(f'[{kb}]({kb_url}) - {product[:-12]}')      return link_list<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434 \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"bash\">2022-04 Cumulative Update for Windows Server 2019 for x64-based Systems - https:\/\/catalog.update.microsoft.com\/v7\/site\/Search.aspx?q=KB5012647 2022-04 Cumulative Update for Windows 10 Version 1909 for x64-based Systems - https:\/\/catalog.update.microsoft.com\/v7\/site\/Search.aspx?q=KB5012591 2022-04 Dynamic Cumulative Update for Windows 10 Version 21H2 for x86-based Systems - https:\/\/catalog.update.microsoft.com\/v7\/site\/Search.aspx?q=KB5012599 ...<\/code><\/pre>\n<h2>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u0432\u0435\u0442\u0438\u043c \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441, \u0433\u0434\u0435 \u0432\u0441\u0451 \u044d\u0442\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c<\/h2>\n<p>\u0422\u0443\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043e\u0442 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0445 csv \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0434\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u0421\u0423\u0411\u0414. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5da\/699\/28e\/5da69928eaf65fd7ad8bcc8b96c946a1.png\" width=\"699\" height=\"600\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5da\/699\/28e\/5da69928eaf65fd7ad8bcc8b96c946a1.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041c\u044b \u0436\u0435 \u0440\u0435\u0448\u0438\u043b\u0438 \u0437\u0430\u0432\u043e\u0434\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u0442\u0440\u0435\u043a\u0435\u0440 \u0437\u0430\u0434\u0430\u0447 <a href=\"https:\/\/www.jetbrains.com\/ru-ru\/youtrack\/\" rel=\"noopener noreferrer nofollow\">YouTrack <\/a>\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 (\u0437\u0430 \u0442\u0430\u0432\u0442\u043e\u043b\u043e\u0433\u0438\u044e \u0438\u0437\u0432\u0438\u043d\u044f\u044e\u0441\u044c).<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u0438\u043d<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bcf\/47f\/ef7\/bcf47fef743407ca3cf820fe59c4ffa6.png\" width=\"1911\" height=\"2520\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bcf\/47f\/ef7\/bcf47fef743407ca3cf820fe59c4ffa6.png\"\/><figcaption><\/figcaption><\/figure>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0443 \u0432\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a, \u043c\u044b \u0432\u044b\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 <s>vulnerability managment`a<\/s> \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438. <\/p>\n<p>P.S. \u0410\u0432\u0442\u043e\u0440 \u043d\u0435 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u0443\u0435\u0442 \u043d\u0430 \u0437\u0432\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432 RU \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0441\u043b\u0430\u0431\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0430.<\/p>\n<p>P.S.S. <a href=\"https:\/\/github.com\/eeenvik1\/scripts_for_YouTrack\" rel=\"noopener noreferrer nofollow\">\u041c\u043e\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438<\/a> <\/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\/670314\/\"> https:\/\/habr.com\/ru\/articles\/670314\/<\/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<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0418\u0442\u0430\u043a, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"http:\/\/vuldb.com\" rel=\"noopener noreferrer nofollow\">vuldb.com<\/a> \u0438\u043b\u0438 <a href=\"http:\/\/vulners.com\" rel=\"noopener noreferrer nofollow\">vulners.com<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 \u043f\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0437\u0430 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u043c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 3153 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0434\u043b\u044f \u0438\u0445 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0440\u0435\u0441\u0435\u0440\u0447\u0430. <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043e\u0442\u043a\u0440\u044b\u043b\u0438 \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e, \u0442\u043e \u044f \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0447\u0442\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u044b \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u043e\u043d\u044f\u0442\u0438\u044f\u043c\u0438 \u043a\u0430\u043a <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Common_Vulnerabilities_and_Exposures\" rel=\"noopener noreferrer nofollow\">cve<\/a>, <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Common_Vulnerability_Scoring_System\" rel=\"noopener noreferrer nofollow\">cvss<\/a>, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Common_Platform_Enumeration\" rel=\"noopener noreferrer nofollow\">cpe<\/a>, \u043d\u043e, \u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u0441\u0434\u0435\u043b\u0430\u043b \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043a\u043b\u0438\u043a\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u0412\u044b \u043c\u043e\u0433\u043b\u0438 \u043e\u0441\u0432\u0435\u0436\u0438\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c. <\/p>\n<p><em>\u0414\u0430\u043b\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u0439 \u043a\u043e\u0434, \u0438 \u0442\u0430\u043c \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0440\u043e\u043a, \u0434\u043b\u044f \u0412\u0430\u0448\u0435\u0433\u043e \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u044f \u0431\u0443\u0434\u0443 \u043f\u0440\u044f\u0442\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u044b<\/em><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0412\u044b \u043e\u0441\u0432\u0435\u0436\u0438\u043b\u0438 \u0437\u043d\u0430\u043d\u0438\u044f, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c\u0438:<\/p>\n<ul>\n<li>\n<p>\u041e\u0442\u043a\u0443\u0434\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445? <\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a\u0443\u044e \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445?<\/p>\n<\/li>\n<li>\n<p>\u0413\u0434\u0435 \u0438 \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u0441\u0451 \u0445\u0440\u0430\u043d\u0438\u0442\u044c?<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e \u0445\u043e\u0434\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u044f \u043e\u0442\u0432\u0435\u0447\u0443 \u043d\u0430 \u0432\u0441\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b. \u041d\u0443 \u0447\u0442\u043e \u0436, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c. <\/p>\n<p>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043d\u043e\u0432\u044b\u0445 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/safe-surf.ru\/specialists\/bulletins-nkcki\/\" rel=\"noopener noreferrer nofollow\">\u0411\u044e\u043b\u043b\u0435\u0442\u0435\u043d\u0438 \u041d\u041a\u0426\u041a\u0418<\/a> <\/p>\n<\/li>\n<li>\n<p>\u0421\u0430\u0439\u0442 <a href=\"http:\/\/opencve.io\" rel=\"noopener noreferrer nofollow\">opencve.io<\/a><\/p>\n<\/li>\n<li>\n<p>\u0421\u0430\u0439\u0442 <a href=\"http:\/\/cvetrends.com\" rel=\"noopener noreferrer nofollow\">cvetrends.com<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u0421 \u0432\u044b\u0448\u0435\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0430\u0439\u0442\u043e\u0432 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 CVE-2021-40444), \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0443 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u0430\u0439\u0442 <a href=\"http:\/\/nvd.nist.gov\" rel=\"noopener noreferrer nofollow\">nvd.nist.gov<\/a> (\u0447\u0435\u0440\u0435\u0437 \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443) \u0438 \u0443\u0436\u0435 \u043e\u0442\u0442\u0443\u0434\u0430 \u043c\u044b \u043f\u0430\u0440\u0441\u0438\u043c \u0432\u0441\u044e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u043d\u0430\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.<\/p>\n<p><strong>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043a\u0440\u0430\u043f\u0438\u043d\u0433\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0441 \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u043e\u0432 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438:<\/strong> <\/p>\n<h3>\u0411\u044e\u043b\u043b\u0435\u0442\u0435\u043d\u0438 \u041d\u041a\u0426\u041a\u0418<\/h3>\n<p>\u041d\u0443 \u0442\u0443\u0442 \u0432\u0441\u0451 \u043f\u043e\u043d\u044f\u0442\u043d\u043e &#8212; \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044e \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043e\u0442 \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u043f\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u043c \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u0430\u043c. <\/p>\n<p>\u0421\u0430\u043c\u0438 \u0431\u044e\u043b\u043b\u0435\u0442\u0435\u043d\u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 pdf, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0441\u043a\u0440\u0430\u043f\u0438\u043d\u0433\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># parse bulletine NKCKI------------------------------------------------------------------------------------------------ def get_cve_list(name_list):     cve_list = []     cve_list_repeat = []     for name in name_list:         pdf_file = open(f'{PATH}\/{name}', 'rb')         read_pdf = PyPDF2.PdfFileReader(pdf_file)         number_of_pages = read_pdf.getNumPages()         data = ''         for i in range(number_of_pages):             page = read_pdf.getPage(i)             page_content = page.extractText()             data1 = json.dumps(page_content)             data += data1          rez = ''         for n, item in enumerate(data, start=0):             if item != '\\\\':                 rez += data[n]          result = ''         for n, item in enumerate(rez, start=0):             if item != 'n':                 result += rez[n]         rez1 = result.replace(\" \", \"\")          regex = re.findall(r'CVE-\\d{4}-\\d{4,8}', rez1)         for cve in regex:             cve_list_repeat.append(cve)     for item in cve_list_repeat:         if item not in cve_list:             cve_list.append(item)     return cve_list   def get_links_for_bulletine():     links = []     for page in range(3):         r = requests.get(\"https:\/\/safe-surf.ru\/specialists\/bulletins-nkcki\/?PAGEN_1={}\".format(page))         soup = BeautifulSoup(r.text, \"html.parser\")         for vuln in soup.find_all(\"div\", \"blockBase blockBulletine\"):             bulletin_pdf_url = \"https:\/\/safe-surf.ru{}\".format(vuln.find('h4').find('a')['href'])             links.append(bulletin_pdf_url)     return links   def create_pdf_file(links):     for str in links:         get = requests.get(str)         name = str.replace(\"https:\/\/safe-surf.ru\/upload\/VULN\/\", \"\")         check_file = os.path.exists(f'{PATH}\/{name}')         if check_file == 0:             with open(f'{PATH}\/{name}', 'wb') as f:                 f.write(get.content)         else:             print(f'file {name} already exists')   def get_name_list(path):     name_list = os.listdir(path)     return name_list   def remove_pdf_file(path):     for item in path:         os.remove(item)  links = get_links_for_bulletine() create_pdf_file(links) name_list = get_name_list(PATH)  # \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u043d \u0441\u043a\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 cve_line = get_cve_list(name_list)  # \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 cve \u0438\u0437 \u0431\u0438\u043b\u043b\u044e\u0442\u0435\u043d\u044f \u041d\u041a\u0426\u041a\u0418 print(cve_line)  # remove pdf buffer---------------------------------------------------------------------------------------------------  time.sleep(1) path_to_remove_pdf = [] for item in name_list:     path_to_remove_pdf.append(f'{PATH}\/{item}') remove_pdf_file(path_to_remove_pdf)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434 \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0443\u0442\u044c \u0434\u043e \u043f\u0430\u043f\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c (\u0438 \u043f\u043e\u0442\u043e\u043c \u0443\u0434\u0430\u043b\u044f\u0442\u044c) \u0441\u0430\u043c\u0438 \u0431\u044e\u043b\u043b\u0435\u0442\u0435\u043d\u0438, \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u043d\u0443\u0436\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.<\/p>\n<p>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"python\">['CVE-2022-30472', 'CVE-2022-30473', 'CVE-2022-30475', 'CVE-2022-30476', 'CVE-2022-30477', 'CVE-2022-30474', 'CVE-2022-30190', 'CVE-2022-1888', 'CVE-2022-1934', 'CVE-2022-26700', 'CVE-2022-26716', 'CVE-2022-26719', 'CVE-2022-26709', 'CVE-2022-30294', 'CVE-2022-26717', 'CVE-2022-30293', 'CVE-2022-26945', 'CVE-2022-27184', 'CVE-2022-28690', 'CVE-2022-30540', 'CVE-2022-29078', 'CVE-2021-23820', 'CVE-2022-22963', 'CVE-2022-22965', 'CVE-2021-3634', 'CVE-2022-1154', 'CVE-2022-1271', 'CVE-2022-23772', 'CVE-2022-25235', 'CVE-2022-25313', 'CVE-2022-25314', 'CVE-2022-25315', 'CVE-2022-27871', 'CVE-2022-28463', 'CVE-2021-3254', 'CVE-2022-1517', 'CVE-2022-1518', 'CVE-2022-1519', 'CVE-2022-1521', 'CVE-2022-29897', 'CVE-2022-29898', 'CVE-2022-31479', 'CVE-2022-31480', 'CVE-2022-31481', 'CVE-2022-26134']<\/code><\/pre>\n<h3>\u0421\u0430\u0439\u0442 opencve.io<\/h3>\n<p>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0442\u0435\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\u043c \u0438 \u0432\u0435\u043d\u0434\u043e\u0440\u0430\u043c (\u0442\u0443\u0442 \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u043f\u0440\u043e \u0438\u043d\u0432\u0435\u043d\u0442\u0430\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u0430\u0448\u0438\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435 \u0432 \u0441\u0432\u043e\u0435\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u0435 (\u0434\u0430, \u043d\u0443\u0436\u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f, \u043d\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438). \u0421\u0430\u043c \u0441\u0430\u0439\u0442 \u0442\u0430\u043a\u0436\u0435 \u043f\u0430\u0440\u0441\u0438\u0442 <a href=\"http:\/\/nvd.nist.gov\" rel=\"noopener noreferrer nofollow\">nvd.nist.gov<\/a> \u0438 \u043b\u0438\u0431\u043e \u0437\u0430\u0432\u043e\u0434\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043d\u043e\u0432\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 (is a new CVE), \u043b\u0438\u0431\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u0436\u0435 \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0439 (has changed):<\/p>\n<figure class=\"full-width\"><figcaption>\u0441\u0430\u0439\u0442 opencve.io<\/figcaption><\/figure>\n<p>\u041c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0442\u043e\u043b\u044c\u043a\u043e \u043e \u043d\u043e\u0432\u044b\u0445 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 (is a new CVE), \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u0436\u0435 \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u0441\u0430\u043c\u0438:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0441\u043a\u0440\u0430\u043f\u0438\u043d\u0433\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># parse opencve.io----------------------------------------------------------------------------------------------------  def parsing_opencve():     url1 = 'https:\/\/www.opencve.io\/login\/'     url2 = 'https:\/\/www.opencve.io\/login'     csrf_token = ''     s = requests.Session()     response = s.get(url1)     soup = BeautifulSoup(response.text, 'lxml')      # Get CSRF     for a in soup.find_all('meta'):         if 'name' in a.attrs:             if a.attrs['name'] == 'csrf-token':                 csrf_token = a.attrs['content']      # Authentication     s.post(         url2,         data={             'username': USERNAME,             'password': PASSWORD,             'csrf_token': csrf_token,         },         headers={'referer': 'https:\/\/www.opencve.io\/login'},         verify=False     )     # Get new CVE     cve_line = []     for page_num in range(1, 20):         pagination = f'https:\/\/www.opencve.io\/?page={page_num}'         resp = s.get(pagination)         parse = BeautifulSoup(resp.text, 'lxml')         for cve in parse.find_all('h3', class_='timeline-header'):             index = cve.text.find('has changed')             if index == -1:                 cve_line.append(cve.text.replace(' is a new CVE', ''))      cve_line_no_replic = []     for item in cve_line:         if item not in cve_line_no_replic:             cve_line_no_replic.append(item[:-1])     return cve_line_no_replic  cve_line = parsing_opencve()  # \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u043e\u0432\u044b\u0445 cve \u0441 \u0441\u0430\u0439\u0442\u0430 opencve.io print(cve_line)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434 \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0440\u0435\u0434\u044b (\u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c) \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0430 <a href=\"http:\/\/opencve.io\" rel=\"noopener noreferrer nofollow\">opencve.io<\/a>. <\/p>\n<p>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0442\u0430\u043a\u0436\u0435, \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439:<\/p>\n<pre><code class=\"python\">['CVE-2022-29170', 'CVE-2022-28660', 'CVE-2022-20795', 'CVE-2022-22191', 'CVE-2022-22193', 'CVE-2022-22197', 'CVE-2022-22196', 'CVE-2022-22185', 'CVE-2022-22186', 'CVE-2022-22182', 'CVE-2022-22188', 'CVE-2022-22181', 'CVE-2022-22198', 'CVE-2022-24828', 'CVE-2022-24812', 'CVE-2022-26148', 'CVE-2022-22943', 'CVE-2022-0711', 'CVE-2022-24329', 'CVE-2021-29220', 'CVE-2022-21824', 'CVE-2021-44531', 'CVE-2021-44532', 'CVE-2021-44533', 'CVE-2021-22041', 'CVE-2021-22040', 'CVE-2022-21703', 'CVE-2022-21713', 'CVE-2022-21702', 'CVE-2022-23601', 'CVE-2022-22938', 'CVE-2021-46088', 'CVE-2022-22176', 'CVE-2022-22156', 'CVE-2022-22153', 'CVE-2022-22154', 'CVE-2022-22177', 'CVE-2022-22172', 'CVE-2022-22167', 'CVE-2022-22170', 'CVE-2022-22166', 'CVE-2022-22163', 'CVE-2022-22176', 'CVE-2022-22160', 'CVE-2022-22170', 'CVE-2022-22180', 'CVE-2022-22167', 'CVE-2022-22172', 'CVE-2022-22161', 'CVE-2022-22171', 'CVE-2022-22154', 'CVE-2022-22173', 'CVE-2022-22169', 'CVE-2022-22177', 'CVE-2022-22178', 'CVE-2022-22156', 'CVE-2022-22168', 'CVE-2022-21673', 'CVE-2022-23134', 'CVE-2022-23133', 'CVE-2022-23132', 'CVE-2022-23131', 'CVE-2021-22045', 'CVE-2020-19316', 'CVE-2021-43815', 'CVE-2021-43813', 'CVE-2021-43803', 'CVE-2021-43808', 'CVE-2021-43798', 'CVE-2021-41270', 'CVE-2021-41267', 'CVE-2021-41268', 'CVE-2021-3935']<\/code><\/pre>\n<h3>\u0421\u0430\u0439\u0442 cvetrends.com:<\/h3>\n<p>\u041d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u0430\u0439\u0442\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043f-10 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. <br \/>\u0421 \u043d\u0435\u0433\u043e \u0442\u0430\u043a\u0436\u0435 &#171;\u0434\u0435\u0440\u0433\u0430\u0435\u043c&#187; \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0441\u043a\u0440\u0430\u043f\u0438\u043d\u0433\u0430 <\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># parse cvetrends.com-------------------------------------------------------------------------------------------------- def get_top_cve_list():     link = 'https:\/\/cvetrends.com\/api\/cves\/24hrs'     r = requests.get(link)     soup = BeautifulSoup(r.text, \"lxml\")     regex = re.findall(r'\"cve\": \"CVE-\\d{4}-\\d{4,8}\"', soup.get_text())     top_cve_list = []     for item in regex:         top_cve_list.append(re.search(r'CVE-\\d{4}-\\d{4,8}', item).group())      return top_cve_list  top_cve_list = get_top_cve_list()  # \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u043f\u0430 cve \u0441 cvetrends.com print(top_cve_list)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442, \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432:<\/p>\n<pre><code class=\"python\">['CVE-2022-30190', 'CVE-2022-26134', 'CVE-2022-32275', 'CVE-2022-32250', 'CVE-2022-30075', 'CVE-2022-32276', 'CVE-2202-26134', 'CVE-2022-29464', 'CVE-2020-3452', 'CVE-2021-40444']<\/code><\/pre>\n<p><strong>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u0443\u044e \u043d\u0430\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e:<\/strong><\/p>\n<ul>\n<li>\n<p>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>\u0414\u0430\u0442\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>\u0414\u0430\u0442\u0430 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Common_Platform_Enumeration\" rel=\"noopener noreferrer nofollow\">CPE<\/a> \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>CVSSv3 Score<\/p>\n<\/li>\n<li>\n<p>CVSSv3 Vector<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u0438 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u043e\u0431\u0445<\/p>\n<\/li>\n<\/ul>\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-400882","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/400882","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=400882"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/400882\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=400882"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=400882"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=400882"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}