현재 라이브러리는 .sarif 파일과 함께 일하도록 지시 된 유틸리티 세트를 제공합니다.
SARIF- 정적 분석 결과 인터체인지 형식은 Microsoft가 자세히 설명한 정적 분석 도구의 출력을위한 표준 JSON 기반 형식입니다.
다른 정적 분석 도구가 있지만 일반적으로 소프트웨어 취약점을 감지하기 위해 하나의 개념으로 단합됩니다.
따라서 정적 분석 도구의 작업을 출력 할 때는 일련의 warnings 있을 것입니다.
코드 냄새를 가리 킵니다. 일부 도구는 더 나아가 기회를 제공했습니다
이러한 코드 냄새를 자동으로 fix .
따라서 정적 분석 도구의 보고서를위한 가능한 형식 중 하나 일 수있는 SARIF 파일에는 대상 파일의 해당 취약점을 가리키는 이러한 도구에 의해 얻은 warnings 및 fixes 에 대한 해당 섹션이 포함됩니다.
Fix-Patches 모듈은 SARIF 형식화 된 파일의 fix object 섹션과 함께 작동하도록 설정되었습니다.
fix object 도구로 표시된 문제에 대한 제안 된 수정을 나타냅니다.Fix-Patches 차례로 해당 섹션을 구문 분석하고 SARIF 에 제시된 대상 파일의 사본을 작성하고 이러한 사본에 자동으로 수정 사항을 적용합니다.결과 출력에는 적용된 수정 사항이있는 제공된 대상 파일의 사본에 대한 경로 목록이 포함됩니다.
참고 : SARIF 파일에 한 파일의 동일한 영역에 대한 여러 수정 사항이 포함 된 경우 첫 번째 수정 사항 만 app이됩니다.
라이브러리는 사용하기 쉬운 API를 사용하기 쉬운 고정 패치를 제공합니다. 적용되는 수정 패치를 제공합니다. 대상 파일에 대한 수정 목록 ( fix objects )과 이러한 파일의 경로 목록을 포함하여 SARIF 로 제공되는 방식 (절대/상대 경로를 통해)을 포함하는 SARIF 의 경로를 제공하면됩니다.
val processedFiles : List < Path > = SarifFixAdapter (
sarifFile = sarifFilePath,
targetFiles = listOfTargetFilesPaths,
testRoot = " /path/to/test/root/directory/ " .toPath()
).process()