Conversation
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
…dependency Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Signed-off-by: Mark Bolwell <info@krameff.com>
Feature/windows truthfulness
Signed-off-by: Mark Bolwell <info@krameff.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This runs formatting, vet, lint, tests, and a security scan (the same checks CI runs). Fix any issues it reports before requesting review.
Description of change
point of it: they were not being checked. Re-run your Windows specs after
upgrading, and read
the Windows page
for the full list and what to do instead
package: <name>: {installed: false}used to pass for every package name onWindows, having checked nothing at all. Windows has no package-manager
backend, so syver fell through to the RPM one, and a missing
rpmwas readas "not installed". It now reports an error naming the problem.
syver add packagefails the same way, because there is no honest "installed: unknown"to write
registry: <key>: {exists: false}used to report a key that exists butcannot be read as absent, which is backwards for the hardening specs
registry checks are usually written for. Access denied and genuinely absent
are now told apart
service: <name>: {enabled: false}/{running: false}used to pass for aservice that does not exist, so a typo in a service name looked like a
disabled service. It now errors. Detection no longer depends on
English-language Windows output, so it behaves the same in every locale
syver add service <name>fails for a service that does not exist ratherthan writing a plausible block for a name that was never there
syver add file <path>omitsmode,ownerandgroupon Windows ratherthan writing
"-1"for each. It still exits 0user:,group:andinterface:now tell "the lookup ran and foundnothing" apart from "the lookup could not run". A genuinely absent account
still reports
exists: falseexactly as before. A lookup that failed, suchas an unreachable domain controller on a domain-joined host, now errors
instead of being reported as absent
PowerShell command line using Go string quoting, which is not PowerShell
quoting. A name containing a PowerShell subexpression was executed rather
than treated as text. Anyone who could write or generate your gossfile could
run commands as syver on Windows. Names are now quoted so that nothing in
them is evaluated. This affects Windows only, and the defect predates this
release
user: <name>: {groups: ...}does not work on Windows and is now documentedas broken rather than partially working. It fails for every user, because
every Windows access token carries an entry that is not a group. It fails
loudly rather than returning a wrong list
uidandgidare documented as unavailable on Windows rather thanunimplemented. Windows identifies accounts by SID, and these attributes are
integers, so there is no value to report
--vars-inlinevalue is now rejected while the flag is parsed,and the error names the flag and quotes the value syver actually received.
It previously failed later, while loading vars, by which point a
shell-mangled command line has usually left a stray argument that gets read
as a subcommand, so the error pointed nowhere near the flag. This is not
Windows-only, but
cmd.exeis where it bites: it does not treat'as aquote character, so
--vars-inline '{inline: bar}'is split and the flagreceives only
{inline:. Seeing that fragment quoted back is what tells youthe shell split it. The
SYVER_VARS_INLINEandGOSS_VARS_INLINEenvironment variables are validated the same way and name the variable
golang.org/x/cryptoto v0.56.0,github.com/shirou/gopsutil/v4to v4.26.8 andgithub.com/prometheus/commonto v0.71.0. Nothing changes for a gossfile.The x/crypto advisories are in its SSH code, which syver does not use;
gopsutil backs
process:andport:, so both were re-run on Windows andLinux against the versions that ship
port:is documented as not implemented on Windows rather than untested.It was measured, and every assertion returns "not implemented yet", so the
matrix now says so instead of leaving a reader to find out
covering what works, what does not and why, which limits are permanent, and
what the Windows test suite actually exercises
syver servedocumentation now records that the endpoint isunauthenticated and that a failing check carries the underlying error text