OpenFGA
v1.17.0Security2026년 6월 3일
v1.17.0은 캐시 키 생성 방식을 TLV 인코딩으로 교체해 해시 플러딩 공격을 차단하고, OpenTelemetry 트레이스 샘플러를 설정 가능하게 만들었습니다.
security해시 플러딩 방어를 위해 즉시 업그레이드
기존 문자열 연결 방식의 캐시 키는 해시 플러딩 공격과 키 충돌 위험에 노출되어 있었습니다. TLV 인코딩과 프로세스별 해시 시딩으로 두 문제를 모두 해결했으며, 설정 변경 없이 버전 업그레이드만으로 적용됩니다. 멀티테넌트 환경이나 외부에 노출된 OpenFGA를 운영 중이라면 이번 릴리스를 우선 적용하세요.
enhancementAPI 게이트웨이나 서비스 메시 뒤에서 운영한다면 parent-based 샘플링 설정 권장
기존에는 OpenFGA가 업스트림의 샘플링 결정을 따르지 못해 스택 전체에서 트레이스가 일관되지 않게 수집되는 문제가 있었습니다. `OPENFGA_TRACE_SAMPLER=parentbased_always_on` 또는 `parentbased_traceidratio`로 설정하면 호출 서비스의 샘플링 결정을 그대로 따릅니다. OpenFGA가 대형 트레이싱 시스템의 다운스트림에 위치한다면, 불필요한 트레이스 노이즈를 줄이고 기존 옵저버빌리티 전략과 일관성을 맞출 수 있습니다.
주요 변경 (5)
- 캐시 키 생성을 문자열 연결에서 TLV 바이너리 인코딩으로 전환해 충돌 위험 제거
- 프로세스별 해시 시딩 추가로 해시 플러딩 공격 방어
- `trace.sampler` / `OPENFGA_TRACE_SAMPLER` / `OTEL_TRACES_SAMPLER`로 트레이스 샘플러 설정 가능
- parent-based 변형 포함 모든 표준 OTel 샘플링 전략 지원
- 기본 샘플러는 `traceidratio`로 기존 동작 유지