분석 정확도와 프레임워크 지원 확대
Go, Java/Kotlin, JavaScript/TypeScript 지원을 넓히고 Rust 오탐을 줄였습니다.
교안에 영향
C/C++의 models-as-data 필드 표기와 일부 쿼리 판정 기준이 바뀌어 예전 안내 글의 설명이 맞지 않을 수 있습니다.
요약
- C/C++에서 models-as-data 흐름 요약이 완전한 필드 이름을 사용하도록 바뀌었습니다. - Go의 log/slog 패키지 모델링이 개선되어 structured logging 관련 커버리지가 넓어졌습니다. - Java/Kotlin에 org.apache.poi에 대한 source, sink, flow summary 모델이 추가되었습니다. - JavaScript/TypeScript의 Angular @HostListener 메시지 이벤트 지원이 추가되었고, Rust 오탐이 줄었습니다.
바뀐 것
새 기능
- Java/Kotlin에 org.apache.poi용 source, sink, flow summary 모델이 추가되었습니다.
- JavaScript/TypeScript에서 Angular의 @HostListener('window:message', ...)와 @HostListener('document:message', ...) 데코레이터를 지원합니다.
개선
- C/C++에서 models-as-data 흐름 요약이 이제 MyNamespace::MyStruct::myField 같은 완전한 필드 이름을 사용합니다.
- Go의 log/slog 패키지 모델링이 개선되어 slog.Logger 메서드, With, WithGroup, Attr, Value 지원이 넓어졌습니다.
- go/log-injection과 go/clear-text-logging 쿼리가 개선된 log/slog 모델링의 적용 범위를 넓게 반영합니다.
- java/path-injection 쿼리가 @javax.validation.constraints.Pattern으로 검증된 입력을 sanitized로 인식합니다.
- java/ssrf 쿼리가 Spring WebFlux의 WebClient.UriSpec.uri 메서드의 첫 번째 인자를 request forgery sink로 처리합니다.
- js/missing-origin-check 쿼리가 @HostListener로 선언된 Angular 메시지 이벤트 핸들러를 분석합니다.
- rust/hard-coded-cryptographic-value 쿼리가 산술, 비트 연산, 문자열 추가 연산을 barrier로 처리합니다.