Files
kernelstub-Ferrum/modules/policy/module.go
T
2026-06-13 15:48:59 +02:00

35 lines
817 B
Go

package policy
import (
"fmt"
"ferrum/core"
win "ferrum/windows/facade"
)
func init() { core.Register(Module{}) }
type Module struct{}
func (Module) Name() string { return "policy" }
func (Module) Description() string {
return "Summarize hardening policy posture such as UAC, AppLocker, and WDAC"
}
func (Module) Run(ctx *core.Context) error {
ctx.Logger.Info("Checking hardening policy posture...")
findings, err := win.EnumeratePolicyFindings()
if err != nil {
return err
}
for _, finding := range findings {
ctx.Logger.Success(fmt.Sprintf("%s %s > %s", finding.Severity, finding.Name, finding.Reason))
ctx.Logger.Verbose(fmt.Sprintf("%s = %s", finding.Name, finding.Value))
}
if len(findings) == 0 {
ctx.Logger.Info("No policy findings returned from configured checks.")
}
return nil
}