구글은 코드 인텔리전스(Code Intelligence)의 퍼저인 재저(Jazzer)를 OSS-퍼즈와 통합해 자바와 JVM에 대한 퍼징을 활성화했다고 설명했다. 재저를 사용하면 C/C++로 작성된 코드에서 했던 것처럼 LLVM 프로젝트의 립퍼저(libFuzzer)를 통해 JVM 기반 언어로 작성된 코드를 퍼징할 수 있다.
재저는 자바(Java), 클로저(Clojure), 코틀린(Kotlin), 스칼라(Scala)를 지원한다. 코드 커버리지 피드백은 JVM 바이트코드에서 립퍼저로 제공되며, 재저는 다음과 같은 립퍼저 기능을 지원한다.
• ‘FuzzedDataProvider’: 바이트 배열을 허용하지 않는 퍼징 코드
• 8-bit 엣지 카운터를 기반으로 한 코드 커버리지 평가
• 충돌 입력 최소화
• 가치 프로필
구글은 JVM 언어로 작성된 오픈소스 프로젝트를 OSS-퍼즈에 추가하는 방법을 설명하는 문서를 제공했다. 구글은 궁극적으로 재저가 모든 립퍼저 기능을 지원할 계획이라고 전했다.
재저는 자바 네이티브 인터페이스(Java Native Interface; JNI)를 통해 실행되는 네이티브 코드에서 커버리지 피드백을 제공할 수도 있다. 이를 통해 메모리가 보안되지 않는 네이티브 코드에서 메모리 손상 취약점을 발견할 수 있다. 이 밖에 OSS-퍼즈에서 지원되는 언어는 고(Go), 파이썬(Python), C/C++, 러스트(Rust) 등이 포함된다. ciokr@idg.co.kr