SafeHold er et DNS-styrt sikkerhetssystem som midlertidig kan blokkere eller omdirigere åpning av filtyper som anses sårbare. Systemet består av to hovedkomponenter:
- SafeHoldLauncher – reagerer når brukeren åpner en fil
- SafeHoldAgent – setter og rydder opp i filassosiasjoner basert på DNS-policy
SafeHold er designet for å være:
- reversibelt
- robust
- idempotent
- enkelt å distribuere (GPO, Intune, manuell installasjon)
All dokumentasjon ligger i docs/:
docs/README.md– hoveddokumentasjondocs/state-machine/state-machine.md– full state-machinedocs/testmatrix/testmatrix.md– testmatrisedocs/diagrams/safehold-agent.drawio– arkitekturdiagram
Kildekode ligger i src/:
src/launcher/– SafeHoldLaunchersrc/agent/– SafeHoldAgentsrc/installer/– installasjons- og avinstallasjonsskriptsrc/utils/– fellesfunksjoner
SafeHold styres 100% via DNS TXT-records.
Eksempel:
extensions.safehold.internal.test → "pdf;zip;7z"
zip.safehold.internal.test → "status=hold;reason=ZIP blokkert;alt=7-Zip"
Eksempler ligger i dns/examples/.
Testoppsett ligger i tests/:
tests/scenarios/– manuelle scenariertests/simulator/– simulator for mock-DNS
GitHub Actions workflow ligger i:
.github/workflows/ci.yml
Workflowen kjører:
- PSScriptAnalyzer
- Linting av PowerShell-kode
- Strukturkontroll
SafeHold/
├── src/
│ ├── launcher/
│ ├── agent/
│ ├── installer/
│ └── utils/
├── docs/
│ ├── diagrams/
│ ├── state-machine/
│ └── testmatrix/
├── dns/
│ └── examples/
├── tests/
│ ├── scenarios/
│ └── simulator/
└── .github/
└── workflows/
Dette prosjektet kan lisensieres etter behov (MIT anbefales for enkelhet).