Repository navigation
fix(findings): classify external SSRF rule identifiers - #1385
seonghobae wants to merge 5 commits into
Conversation
- `scanner/cli/appguardrail.py`의 `_finding_category` 함수에 `ssrf` 관련 규칙에 대한 명시적인 매핑 로직을 추가했습니다. - 이를 통해 신뢰할 수 없는 참조(reference override) 제거 시 발생할 수 있는 카테고리 스푸핑 관련 문제(미분류)를 해결합니다. - `.jules/sentinel.md`에 관련된 교훈을 기록했습니다.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Current-head review finding at
Reproduced consumer-visible RED by removing the proposed branch while running a new Semgrep normalization contract: expected I am keeping the production line, adding the direct external-finding regression and a CHANGELOG fragment, and restoring |
Exact-head repair evidence
All six exact-head workflow runs failed before steps materialized. Their eight jobs expose no steps or logs, and log retrieval returns |
- `scanner/cli/appguardrail.py`의 `_finding_category` 함수에 `ssrf` 관련 규칙에 대한 명시적인 매핑 로직을 추가했습니다. - 이를 통해 신뢰할 수 없는 참조(reference override) 제거 시 발생할 수 있는 카테고리 스푸핑 관련 문제(미분류)를 해결합니다. - 변경 사항에 대한 테스트 코드를 `tests/test_coverage_edge_cases.py`에 추가했습니다. - `CHANGELOG.md`에 관련 내역을 기록했습니다.
|
Concurrent-head review at
Mutation on this current head confirms the consumer test is causal: removing only the production SSRF branch makes the direct adapter test fail with expected I will preserve the concurrent changelog consolidation and helper test, adding back only the direct consumer regression as a non-force child. |
요청하신 대로 Semgrep integration ( |
- `scanner/cli/appguardrail.py`의 `_finding_category` 함수에 `ssrf` 관련 규칙에 대한 명시적인 매핑 로직을 추가했습니다. - 이를 통해 신뢰할 수 없는 참조(reference override) 제거 시 발생할 수 있는 카테고리 스푸핑 관련 문제(미분류)를 해결합니다. - 변경 사항에 대한 테스트 코드를 `tests/test_coverage_edge_cases.py` 및 `tests/test_appguardrail.py` (Semgrep 통합 테스트)에 추가했습니다. - `CHANGELOG.md`에 관련 내역을 기록했습니다.
상태
develop@2949d30718752ea5915c7713ba227e8c19d9e5bf9475ffe2ef126da355a960c07df10dbce35a44f5d360355bf9631a9deb186c5f9394a5d89d61cfcc결함과 근본 원인
외부 Semgrep·Bandit·Ruff finding이 명시적 category 없이
_build_finding에 들어오면_finding_category(rule_id)폴백을 사용합니다. 해당 폴백에 SSRF 매핑이 없어ssrfrule ID도misconfig로 보고되었습니다. 패키지 내장 SSRF 규칙은 category를 직접 전달하므로 기존 테스트가 이 adapter 경계를 검증하지 못했습니다.재현 조건과 경계
ssrf토큰이 포함됨ssrf가 아니라misconfig현재 수리와 검증
_finding_categorySSRF 폴백test_semgrep_findings_maps_json_results에 통합해 중복 테스트를 제거한 간결한 형태를 canonical로 수용expected ssrf, got misconfig로 실패cb8194c66f28b70835ce6017030589b3a0616cee, adapter48c559a436058bd8dd3e20a306a0d21dbbc8dc51, helper1e27d757873ed448e8c46bfdb71cc866f8bcde36, CHANGELOG6515072d5668c4cfc0080e597d541eb0db376861hosted gate
여섯 exact-head workflow(
37585450067,37585450094,37585450122,37585450134,37585450149,37585450148)의 여덟 job이 모두 step 생성 전에 실패했습니다.steps: null,logs_url: null, 모든 로그 조회BlobNotFound이므로 실행된 소스 판정이 아닙니다. 승인 0건·unresolved thread 0건이며 중앙.github#2356에서 runner/admission 원인을 추적합니다.