ყველა სტატია

OWASP Dependency-Check: CVE-ს განახლება წუთებში NVD-ის სტატიკური სარკით

გამოქვეყნდა

OWASP Dependency-Check პროექტში ცნობილი სისუსტეების (CVE) მქონე ბიბლიოთეკებს პოულობს. მონაცემებს ის აშშ-ის სისუსტეების ეროვნული მონაცემთა ბაზიდან (NVD) იღებს. NVD-ის API-ით ჩამოტვირთვა ნელია: პირველ განახლებას საათები სჭირდება, საჭიროა API გასაღები და მოთხოვნების სიხშირე შეზღუდულია – ქეშის გარეშე CI პაიპლაინი კი ყოველ ჯერზე თავიდან იწყებს.

ამიტომ საჯარო სარკე გავუშვით: nvd.epicsoft.one.

სტატიკური ფაილები API-ის ნაცვლად

ყოველ ღამით CI ამოცანა vulnz-ით (open-vulnerability-cli) NVD-ის ცვლილებებს იღებს და მონაცემთა სრულ ნაკადს სტატიკური, შეკუმშული JSON ფაილების სახით აქვეყნებს. კლიენტები მათ ჩვეულებრივი HTTP-ით ტვირთავენ: API გასაღების, გვერდებად დაყოფისა და შეზღუდვების გარეშე. რადგან ყოველი გაშვება მხოლოდ ცვლილებებს იღებს, მას რამდენიმე წუთი სჭირდება.

dependency-check --updateonly \
  --nvdDatafeed https://nvd.epicsoft.one/nvdcve-{0}.json.gz

მზა მონაცემთა ბაზები

მონაცემთა ბაზის თავად აწყობის ნაცვლად Dependency-Check-ს შეუძლია მზა ბაზით დაიწყოს. ყოველ ღამით სარკე ახალ ნაკადს სუფთა მონაცემთა ბაზებში ტვირთავს – CISA-ს ცნობილი ექსპლუატირებული სისუსტეების კატალოგის ჩათვლით – და მათ ნაკადის გვერდით აქვეყნებს:

  • H2, Dependency-Check-ის ჩაშენებული მონაცემთა ბაზა
  • MariaDB და MySQL
  • PostgreSQL

თითოეულ ფაილს SHA-256 საკონტროლო ჯამი ახლავს; db/db.json მიუთითებს Dependency-Check-ის ვერსიას, მონაცემების მდგომარეობასა და ჩანაწერების რაოდენობას. ფაილები მხოლოდ Dependency-Check-ის ამ ვერსიას შეესაბამება.

შექმნილია უსაფრთხო ჩავარდნისთვის

  • გაშვება მონაცემებს მხოლოდ მაშინ აქვეყნებს, როცა ნაკადის ყოველი წელი სრული და წაკითხვადია; წინააღმდეგ შემთხვევაში ის წყდება და ონლაინ წინა მდგომარეობა რჩება.
  • მონაცემთა ბაზა, რომელიც ვერ აიწყო ან სხვებს არ ემთხვევა, ნაკადს არასოდეს აჩერებს – ასეთ დროს სარკე წინა ღამის ბაზებს ინარჩუნებს.
  • ნაკადის ფაილები უცვლელად მიეწოდება, ასე რომ კლიენტები ზუსტად იმ შეკუმშულ მონაცემებს იღებენ, რასაც ელოდებიან.

თავისუფალი გამოყენება

სარკით სარგებლობა თავისუფალია. NVD-ის მონაცემები და CISA-ს კატალოგი საზოგადოებრივ საკუთრებას წარმოადგენს; ჩვენი სკრიპტები და CI-ის კონფიგურაცია ღია კოდია MIT ლიცენზიით GitLab-სა და GitHub-ზე. პრობლემების შესახებ შეგვატყობინეთ issue-ს სახით, უსაფრთხოების პრობლემების შესახებ კი – კონფიდენციალური issue-თი GitLab-ზე.

დამოკიდებულებების შემოწმება ყველა პაიპლაინს სჭირდება – დაგეხმარებით მის დაყენებაში.

მზად ხართ შემდეგი ნაბიჯისთვის?

დასაწყებად უკეთესი დრო არასდროს ყოფილა. მოგვიყევით თქვენი პროექტის შესახებ.

დაგვიკავშირდით