























Yo!
New month, new update!
The start of this month was marked with FOSDEM! I held a talk about secure boot
and the tooling stuff I have written, sbctl. It’s a tool to help you manage
secure boot keys and signing files. With help from sbsigntools it also does
live enrollment of keys.
The talk went great (I think) and it was fun to see how FOSDEM pulled off the conference with matrix and jitsi. I gave me some inspiration for Arch Conf 2021 that I should try kick off some planning on.
The talk can be found here: https://fosdem.org/2021/schedule/event/firmware_itsblsg/
I also released the 0.1 of sbctl and packaged it up for Arch Linux. I have
sorta been planning for a 1.0 release, but I work too slowly for it to happen in
a reasonable time frame. Doing a beta release allows people to package it and
better provide some testing releases to people.
On the other side of things there has been a Go 1.16 release. This means we we do a rebuild of all the packages to get any recent improvements from the compiler. The status can be found on our todo list. You might be wondering what the changes are. And it’s a bit complicated.
Arch has been building with the pie buildmode for a while. This allowed us to
utilize CGO_LDFLAGS and other cgo flags to pass linker commands. This lets us
utilize binary hardening options like stack canaries, full relro and fortify. It
turns out that the PIE build mode for the compiler always included the cgo
runtime when build with the external linker. This was fixed in Go 1.16 which
limits the usability of the CGO_* flags for bypassing compiler flags in random
build systems upstreams have. Go doesn’t allow you to force cgo either (except
for an documented bug in the compiler).
Issue: https://github.com/golang/go/issues/44480
runtime/cgo fix: https://github.com/golang/go/commit/6c0135d377
Documented bug: https://github.com/golang/go/issues/31544
Effectively this means binary hardening is getting more complicated again.
GOFLAGS is a Go compiler flag which should let you pass compiler and linker
flags during building. The problem is that GOFLAGS has a broken parser which
doesn’t parse spaces that well. It also doesn’t help that multiple build systems
utilize the variable name for the command line flags itself. This makes it a
50/50 if you can use the env flag without breaking Makefiles upstreams provides.
That’s the gist of it but it’s annoying to say the least. I have been working on
a small patch to the go compiler that would enable full relro if possible which
would give us back some hardening abilities if we are able to specify
-buildmode=pie. But the situation is not really ideal.
Other then that I have packages up a few new packages. The most exciting has been GNU poke. It’s binary data editor and has it’s own domain specific language for working with formats. It allows you to edit and patch binary files with little fuzz. http://www.jemarch.net/poke
I have needed this since working with UEFI and Secure Boot stuff has been a lot of diffing hexdumps and looking at asn1parse output from openssl. This allows me to specify and programmatically check my data structures in an easier language then the manual code I have to write up for go.
Another interesting project is ImHex which is an complete editor. But the binary data parser language is more limited currently.
Poke: http://www.jemarch.net/poke
ImHex: https://github.com/WerWolv/ImHex
Some contributions for my UEFI and Secure Boot endeavours which I hope to upstream when more is done and I understand the language better. I’ll probably try write up a blog post on all of this whenever I’m done playing valheim :)
ImHex-Patterns PR: https://github.com/WerWolv/ImHex-Patterns/pull/8
poke-uefi: https://github.com/Foxboron/poke-uefi
If you have questions, want to reach out or suggestions for these posts please
poke me on IRC as Foxboron or email me on morten@linderud.pw.
Now rest of the post follows as usual :)
i3-gaps updated to 4.19.1tailscale updated to 1.4.2-1, 1.4.3-1, 1.4.4-1, 1.4.4-2, 1.4.5-1python-adblock updated to 0.4.2-1go updated to 2:1.15.8-1, 2:1.16-1helm updated to 3.5.2-1runc updated to 1.0.0rc93-1conmon updated to 1:2.0.26-1fzf updated to 0.25.1-1, 0.25.1-2lxd updated to 4.11-1, 4.11-2buildah updated to 1.19.4-1, 1.19.6-1, 1.19.6-2cni-plugins updated to 0.9.1-1, 0.9.1-2gopass updated to 1.12.0-1, 1.12.1-1python-google-api-core updated to 1.26.0-1python-autobahn updated to 21.2.1-1python-prompt_toolkit updated to 3.0.16-1podman updated to 3.0.0-1, 3.0.1-1, 3.0.1-2plocate updated to 1.1.4-1, 1.1.5-1, 1.1.5-2python-pandas updated to 1.2.2-1buildah updated to 1.19.6-1crun updated to 0.18-1docker-compose updated to 1:24.4-1, 1:20.10.3-3staticcheck updated to 2020.2.2-1, 2020.2.2-2step-ca updated to 0.15.8-1mypy updated to 0.812-1skopeo updated to 1.2.2-1python-docker updated to 4.4.3-1gopls updated to 0.6.4-2go-tools updated to 2:1.16+4895+c1934b75d0-3micro updated to 2.0.8-4toolbox updated to 0.0.99-2, 0.0.99.1-1lostfiles updated to 4.09-1archlinux-contrib updated to 20210221-1github-cli updated to 1.6.2-1slirp4netns updated to 1.1.9-1influxdb updated to 2.0.4-1salt updated to 3002.5-3docker updated to 1:20.10.4-1microb4pokesbctldeppython2-pyzmqoomdvgrepgit-publishpsi-notifyetcdgoseckindnomadThe security team has had a steady stream of advisories. This month we have published 43 of them. There are some mailing list issues for mailman, so if you want to find published advisories you might not find them through mailman and I’d much rather advice you to check the main website.
https://security.archlinux.org/
Cheers and see you next month!
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。