danielmichaels / danielmichaels/gecko

DNSSEC assessor depth + NSEC/NSEC3 scanning

Open
#75 0 comments 0 reactions 0 assignees View on GitHub
assessor dnssec enhancement scanner
Dominant language
Go
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Part of #61 · Tier 6 · `scanner` `assessor` `dnssec` · Effort: **M**

Deepen DNSSEC assessment and wire up the dormant `dnssec_compliance_findings` table. Current `assess_dnssec.go` checks chain-present + deprecated algorithm only.

### Checks to add
- **DS-in-parent matches DNSKEY** — validate the delegation chain to the parent (DS at registry corresponds to a published KSK).
- **RRSIG validity window** — flag RRSIGs near expiry or already expired (broken validation imminent).
- **NSEC vs NSEC3 zone-walking exposure** — NSEC permits trivial zone enumeration; flag NSEC (recommend NSEC3) and weak NSEC3 (low iteration / no opt-out where appropriate).
- Key-length adequacy (KSK/ZSK).
- Algorithm consistency / rollover sanity.
- **Compliance framing** → `dnssec_compliance_findings`.

### Scanner change
- Collect NSEC/NSEC3 records (not currently fetched). The existing inline DNSSEC validation logic in `scan_dnssec.go` is already tagged `// todo: move to assessor` — good moment to refactor.

### Cost flag
Extra DNSKEY/RRSIG/parent-DS queries — bounded, rate-limited.

### Wiring
- [ ] scanner: collect NSEC/NSEC3 + parent DS
- [ ] extend `assess_dnssec.go`; wire `dnssec_compliance_findings` (sqlc, observer, UNION/service/UI)
- [ ] `task sqlc`; extend `assess_dnssec_test.go`

### Decisions for owner
- Severity of NSEC zone-walking (medium?).
- RRSIG-expiry warning window.

Contributor guide

No contributing guide indexed for this repository

Research direction

Read scan_dnssec.go and assess_dnssec.go to trace the existing DNSSEC collection and assessment flow, then inspect the dormant dnssec_compliance_findings table wiring. Run task sqlc and review assess_dnssec_test.go before extending coverage. Done means NSEC/NSEC3 and parent-DS data are collected, the listed checks are assessed, findings flow through sqlc, observer, UNION/service/UI, and tests pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
database, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.