I always thought the better security practice is statically linked Go binary in a docker container for namespace isolation.
I always thought the better security practice is statically linked Go binary in a docker container for namespace isolation.
Golang tooling provides some reasonable mechanisms to keep dependencies up to date. Any given C program might or might not.
So that would not be less secure, but it would also not make it more secure than dynamic linking with a good mechanism, right?
They cite the main benefits being this: "Compared to dynamic linking, this is a simpler mechanism which eliminates problems with upgrading libraries, and results in completely self-contained binaries that can easily be copied to other systems".
Even that "easily be copied to other systems" sort of cites one of the security downsides. Is the system you're copying it to going to make any effort to keep the transient statically linked stuff in it up to date?