
National Vulnerability Database에 직접 동기화되는 로컬 저장소를 사용하는 CVE 조회 라이브러리 및 유틸리티
CVEdb는 또 다른 Python CVE 데이터베이스 라이브러리이자 유틸리티입니다. 이미 많은 도구가 있습니다. 왜 또 하나를 만들었을까요? 대부분의 기존 라이브러리는 cve.circl.lu와 같은 제3자 API에 의존하는데, 이러한 API는 사용량을 제한하거나, 등록을 요구하거나, 인터넷 연결을 필요로 할 수 있습니다. 일부 라이브러리는 검색용 웹 인터페이스까지 포함해 비대합니다.
CVEdb 기능:
CVEdb가 갖지 않는 기능:
$ pip3 install cvedb
$ cvedb --help
from cvedb.db import CVEdb
with CVEdb.open() as db:
for cve in db.data():
print(cve)
기본적으로 NIST에서 다운로드한 CVE는 cvedb.db.DEFAULT_DB_PATH에 저장된 sqlite 데이터베이스에 저장되며, 이 경로는 ~/.config/cvedb/cvedb.sqlite로 설정됩니다. CVEdb.open에 db_path 인자를 전달하여 이 경로를 변경할 수 있습니다.
db.data() 함수는 cvedb.feed.Data 객체의 인스턴스를 반환하며, 이 객체에는 CVE를 쿼리하는 다양한 메서드가 있습니다. 예를 들어:
with CVEdb.open() as db:
for cve in db.data().search("search term"):
print(cve)
data().search(...) 함수는 문자열뿐만 아니라 모든 cvedb.search.SearchQuery 객체도 허용합니다.
NIST 국가 취약점 데이터베이스(National Vulnerability Database)는 새로운 REST API로 전환하는 과정에 있습니다. CVEdb가 기반으로 사용하는 데이터셋은 여전히 사용할 수 있지만, 더 이상 사용되지 않게 될지는 불분명합니다. 또한 NIST는 다운로드에 속도 제한을 적용하기 시작했으며, 이는 CVEdb 동기화에 영향을 줄 수 있습니다. 따라서 CVEdb는 데이터베이스가 미리 채워진 상태로 배포됩니다. 그 결과 CVEdb는 설치된 후 새 CVE 정의를 다운로드하는 경우를 제외하면 어떤 인터넷 연결도 필요하지 않습니다. 또한 CVEdb의 동작은 필요할 때 자동으로 업데이트를 확인하는 방식에서, 이제 사용자가 새 --update 인자로 명시적으로 업데이트를 요청해야 하는 방식으로 변경되었습니다. 새 REST API에 대한 지원은 이 GitHub 이슈에서 추적되고 있습니다.
CVEdb는 Trail of Bits가 만들었습니다. 이 프로젝트는 GNU Lesser General Public License v3.0에 따라 라이선스가 부여됩니다. 약관의 예외 조항이 필요하시면 문의해 주세요. © 2021, Trail of Bits.
CVEdb와 함께 제공되는 CVE 데이터베이스는 NIST가 만들고 유지 관리하며, 퍼블릭 도메인으로 공개되어 있습니다.