Ruleguard security rules
- HTTP without SSL
- old hash functions like: md5
- TLS insecureSkipVerify option usage
- Old TLS versions
- Old cipher functions usage: like RC4
- Swagger body validation function usage
Full installation example: https://github.com/peakle/dc-rules-example
- Install rules:
go get -v github.com/peakle/security-rules
- Create rules.go file in your project like in example
- Add linter to your pipeline:
-
Like another one check in golangci-lint (will work for golangci-lint >v1.27.0):
linters: enable: - gocritic linters-settings: gocritic: enabled-checks: - ruleguard settings: ruleguard: rules: "YourDir/rules.go"
-
Like file watcher in Goland IDE (will work for golangci-lint >v1.27.0):
- add golangci-lint as
File Watcher
in IDE (Preferences -> Tools -> File Watchers -> Add) - set
Arguments
field where.golangci.yml
file will be like example above:
run $FileDir$ --config=$ProjectFileDir$/.golangci.yml
- add golangci-lint as
-
- update rules version in your go.mod file
- download new rules version:
go get github.com/peakle/security-rules@newVersion
- if you using golangci-lint update cache:
golangci-lint cache clean
- Ruleguard tour for newbees: https://go-ruleguard.github.io/by-example
- Fork repo && open PR :D