sweep: verify pool host keys on the driver
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
Research direction
Start with generatedSSHConfig() in benchkit/cmd/sweep/driver.go and trace how sweep options reach the release workflows and cluster-check probe. Add a pool known_hosts option, pass the pool keys from the proposed cluster secret, and check the probe’s behavior for unknown or changed keys. Done means release checks reject untrusted pool keys while interactive sweeps keep their current default.
Written by the indexing model from the issue text.
Description
The driver dials the pool hosts with host-key checking turned off. generatedSSHConfig() in benchkit/cmd/sweep/driver.go writes StrictHostKeyChecking no and UserKnownHostsFile /dev/null for every host.
This matters for the release smoke gate in #449. The runner pins the host keys of the jump host and the driver, but nothing pins the pool hosts. A machine on the cluster network that can impersonate a pool host can accept the SSH session from the driver. It can then fake the -check diagnostics or the benchmark output, and a release could pass the gate on fabricated results.
Proposal
- Add a sweep option that gives the driver a
known_hostsfile for the pool, and switches the generated config toStrictHostKeyChecking yeswhen the option is set. - In the release workflows, pass the pool host keys from a new
clusterenvironment secret, for exampleCLUSTER_POOL_KNOWN_HOSTS. - Make
cluster-checkfail when a pool key is unknown or has changed, and test that failure in the probe. - Keep the current behavior as the default for interactive sweeps, unless we decide otherwise.
The change touches the SSH config that sweep generates for every user, so it is kept out of the #446/#447/#449 stack.
Raised in review of #449.
- Dominant language
- Go
- Stars
- 149
- Forks
- 15
- Avg merge
- 1d 54m
- Merged PRs (30d)
- 53
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from relab/gorums
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 15/100
Maintainers usually reply within 1 day
-
cleanup performance
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
doc
Difficulty 3/5 Half a day Newbie friendliness 45/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
multica-ai/multica#10081 ·
Maintainers usually reply within 1 day
-
csp-probe needs efqdn to probe CSP domainsPossibly taken @unknownhackerworld claimed this 1 day ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
projectdiscovery/httpx#2725 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
stefanpejcic/OpenPanel#1321 ·
Maintainers usually reply within 1 day
-
bug triage/pending
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 1 day