 
            
            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 :)
 
Package Updates to [community]
- i3-gapsupdated to- 4.19.1
- tailscaleupdated to- 1.4.2-1,- 1.4.3-1,- 1.4.4-1,- 1.4.4-2,- 1.4.5-1
- python-adblockupdated to- 0.4.2-1
- goupdated to- 2:1.15.8-1,- 2:1.16-1
- helmupdated to- 3.5.2-1
- runcupdated to- 1.0.0rc93-1
- conmonupdated to- 1:2.0.26-1
- fzfupdated to- 0.25.1-1,- 0.25.1-2
- lxdupdated to- 4.11-1,- 4.11-2
- buildahupdated to- 1.19.4-1,- 1.19.6-1,- 1.19.6-2
- cni-pluginsupdated to- 0.9.1-1,- 0.9.1-2
- gopassupdated to- 1.12.0-1,- 1.12.1-1
- python-google-api-coreupdated to- 1.26.0-1
- python-autobahnupdated to- 21.2.1-1
- python-prompt_toolkitupdated to- 3.0.16-1
- podmanupdated to- 3.0.0-1,- 3.0.1-1,- 3.0.1-2
- plocateupdated to- 1.1.4-1,- 1.1.5-1,- 1.1.5-2
- python-pandasupdated to- 1.2.2-1
- buildahupdated to- 1.19.6-1
- crunupdated to- 0.18-1
- docker-composeupdated to- 1:24.4-1,- 1:20.10.3-3
- staticcheckupdated to- 2020.2.2-1,- 2020.2.2-2
- step-caupdated to- 0.15.8-1
- mypyupdated to- 0.812-1
- skopeoupdated to- 1.2.2-1
- python-dockerupdated to- 4.4.3-1
- goplsupdated to- 0.6.4-2
- go-toolsupdated to- 2:1.16+4895+c1934b75d0-3
- microupdated to- 2.0.8-4
- toolboxupdated to- 0.0.99-2,- 0.0.99.1-1
- lostfilesupdated to- 4.09-1
- archlinux-contribupdated to- 20210221-1
- github-cliupdated to- 1.6.2-1
- slirp4netnsupdated to- 1.1.9-1
- influxdbupdated to- 2.0.4-1
- saltupdated to- 3002.5-3
- dockerupdated to- 1:20.10.4-1
Package additions to [community]
- micro
- b4
- poke
- sbctl
Package removals from [community]
- dep
- python2-pyzmq
Potential new packages for
- oomd
- vgrep
- git-publish
- psi-notify
- etcd
- gosec
- kind
- nomad
Bugfixes
Security Team
The 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!