코드 퍼징 테스트를 구성하는 시스템, ClusterFuzzLite

최근에 Google 공개 블로그 게시물을 통해 퍼징 테스트를 구성할 수 있는 ClusterFuzzLite 프로젝트 지속적인 통합 시스템의 운영 단계에서 잠재적인 취약점을 조기에 탐지하기 위한 코드입니다.

현재 ClusterFuzz는 GitHub Actions에서 pull 요청의 퍼지 테스트를 자동화하는 데 사용할 수 있습니다., Google Cloud 빌드 및 Prow, 그러나 미래에는 다른 IC 시스템과 호환될 것으로 예상됩니다. 이 프로젝트는 테스트 클러스터 퍼징 작업을 조정하기 위해 생성된 ClusterFuzz 플랫폼을 기반으로 하며 Apache 2.0 라이선스에 따라 배포됩니다.

구글이 2016년 OSS-Fuzz 서비스를 도입한 후, 500개 이상의 주요 오픈 소스 프로젝트가 지속적인 퍼징 테스트 프로그램에 수락되었다는 점에 유의해야 합니다. 수행된 검사에서 6.500개 이상의 확인된 취약점이 제거되었고 21.000개 이상의 오류가 수정되었습니다.

ClusterFuzzLite 정보

ClusterFuzzLite는 계속해서 퍼징 테스트 메커니즘을 개발하고 있습니다. 제안된 변경 사항의 동료 검토 단계 초기에 문제를 식별할 수 있는 기능. ClusterFuzzLite는 이미 systemd 및 curl 프로젝트의 변경 검토 프로세스에 도입되었습니다., 새로운 코드 검증 초기 단계에서 사용했던 정적 분석기 및 린터에서 감지되지 않은 오류를 식별할 수 있게 되었습니다.

오늘, 그 어느 때보다 빠르게 취약점을 찾기 위해 CI/CD 워크플로의 일부로 실행되는 지속적인 퍼징 솔루션인 ClusterFuzzLite를 발표하게 된 것을 기쁘게 생각합니다. 몇 줄의 코드로 GitHub 사용자는 ClusterFuzzLite를 워크플로에 통합하고 버그가 발생하기 전에 잡아내도록 요청을 퍼징하여 소프트웨어 공급망의 전반적인 보안을 개선할 수 있습니다.
2016년 출시 이후 500개 이상의 중요한 오픈 소스 프로젝트가 Google의 OSS-Fuzz 프로그램에 통합되어 6.500개 이상의 취약점과 21.000개 이상의 기능 버그가 수정되었습니다. ClusterFuzzLite는 OSS-Fuzz와 함께 사용하여 개발 프로세스에서 훨씬 더 일찍 회귀 오류를 감지합니다.

ClusterFuzzLite는 C, C ++, Java에서 프로젝트 유효성 검사를 지원합니다. (및 기타 JVM 기반 언어), Go, Python, Rust 및 Swift. 퍼징 테스트는 LibFuzzer 엔진을 사용하여 수행됩니다. AddressSanitizer, MemorySanitizer 및 UBsan(UndefinedBehaviorSanitizer) 도구를 호출하여 메모리 오류 및 이상을 감지할 수도 있습니다.

주요 기능 예를 들어 ClusterFuzzLite 하이라이트 제안된 변경 사항의 빠른 확인 코드 수락 이전 단계에서 오류를 찾는 것뿐만 아니라 충돌 발생 조건에 대한 보고서 다운로드, 이동하는 능력 고급 퍼징 테스트 코드 변경을 확인한 후 나타나지 않은 더 깊은 오류를 식별하기 위해 테스트 중 코드의 적용 범위를 평가하기 위한 적용 보고서 생성 및 필요한 기능을 선택할 수 있는 모듈식 아키텍처를 제공합니다.

systemd 및 curlya를 포함한 대규모 프로젝트는 코드 검토 중에 ClusterFuzzLite를 사용하여 긍정적인 결과를 얻었습니다. curl의 저자인 Daniel Stenberg에 따르면, “검토자가 동의하고 코드를 승인하고 정적 코드 분석기 및 린터가 더 이상 문제를 감지할 수 없을 때 퍼징은 코드 성숙도와 견고성을 다음 단계로 끌어 올리는 것입니다. OSS-Fuzz 및 ClusterFuzzLite는 하루 종일, 매일, 모든 참여에서 컬을 양질의 프로젝트로 유지하는 데 도움이 됩니다.

퍼징 테스트는 실제 데이터(예: 임의의 태그 매개변수가 있는 html 페이지, 비정상적인 헤더가 있는 파일 또는 이미지 등)에 가까운 입력 데이터의 모든 종류의 임의 조합 스트림을 생성하고 프로세스에서 가능한 오류를 수정한다는 것을 기억해야 합니다.

시퀀스가 실패하거나 예상 응답과 일치하지 않는 경우 이 동작은 버그나 취약점을 나타낼 가능성이 큽니다.

최종적으로 그것에 대해 더 많이 알고 싶다면, 당신은 세부 사항을 확인할 수 있습니다 다음 링크에서.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.