Vincent Lefevre via cfarm-users wrote:
On 2022-03-30 18:52:23 -0500, Jacob Bachmeyer via cfarm-users wrote:
Vincent Lefevre via cfarm-users wrote:
On 2022-03-29 22:01:26 -0500, Jacob Bachmeyer via cfarm-users wrote:
Jeffrey Walton via cfarm-users wrote:
When I try git://github.com/weidai11/cryptopp/:
$ git pull
fatal: remote error:
The unauthenticated git protocol on port 9418 is no longer supported.
While this does not help you, the root of this latter problem seems to be
that GitHub has decided to deliberately break compatibility with one of
Git's standard features using "security" as an excuse. This is, of course,
ridiculous for public repositories, since public repositories are, well,
public.
Even though they are public, you still need to have a way to
authenticate the host to ensure that you will not connect to
a fake server (in particular with "git clone").
Actually an attack is also possible for "git pull".
Yes, but the solution is the same: review the code/changes in your
local repository, then make sure the commit IDs match at the farm.
Failing to review changes from upstream is how the recent node-ipc
incident did damage. (Of course, about no one actually does fully
review patches pulled from upstream, which is why those violations of
trust do so much damage...)
Easily solved by checking the HEAD commit against a known-good ID; either
the origin tracking branch in your local copy, or as I have done in the past
with GitHub, by looking at the (HTTPS) Web page. If those IDs match, you
have the correct data, with overwhelming probability. If they do not match,
find the differences and you have just caught an attacker in the act.
AFAIK, this also needs to be done for every branch that will
potentially be used.
Yes, but for cfarm that should not be a problem, since you should be
comparing against your local copy. Also, most of the repositories I
have used from GitHub have few branches, often only the default "master"
(now often renamed "main" in a fit of slacktivist stupidity) so these
checks are usually trivial. Generally, I avoid GitHub; they get a very
solid "F" on the FSF's rating scale because the site does not work
without running nonfree JavaScript, and I make heavy use of NoScript as
part of my general security policy.
This may actually be another workaround: keep local copies of
repositories that you use and push from those to the farm. Then you
never need to pull from GitHub on the farm machines, only from your farm
mirrors, which you update via SSH "git push" from your own machine. Git
clones on the same filesystem use hardlinks to share the actual object
pool, so there is minimal overhead with this setup.
Most users will not do such checks, so it's quite understandable
that GitHub disabled an insecure protocol. Nowadays, I don't see
the point of not using a secure protocol.
Security is always a trade-off and is never entirely without costs. I
stand by my original position that GitHub removing choice from the user
here is bad and wrong. Rightly, it is up to you to balance risk vs.
effort to mitigate same as they apply to _your_ situation.
There are also possibilities of attacks effective against HTTP(S) that
cannot work against other other protocols. At least one example is
known. "Man on the Side" exploits the option of returning a redirect in
HTTP by racing origin server latency. A similar attack _may_ be
possible on HTTPS, if the attacker can complete a TLS negotiation before
the first origin server reply arrives. Similar attacks are definitely
_not_ possible on FTP and the 9418 Git protocol, which do not allow
servers to refer clients to other servers. Against this particular type
of attack, therefore, those plaintext protocols may offer _greater_
security than the encrypted HTTPS.
-- Jacob
_______________________________________________
cfarm-users mailing list
[email protected]
https://lists.tetaneutral.net/listinfo/cfarm-users