Any way to disable module signature checking for an individual module?

Yay! Thanks :sunglasses: Iā€™m glad that someone else thinks that this actually solves the problem that it was meant to solve!

And thatā€™s not what weā€™re trying to stop. Weā€™re just trying to make sure that people know that stuff has been changed. The CAUSE is security vulnerabilities.

We have a [email protected] email address that goes to lots of important people, and we take security very seriously - so seriously that Iā€™m happy to say we havenā€™t had to release a CVE this year. I really hate writing them, so we do our best not to have to :sunglasses:

Actually, itā€™s not! This is something that a lot of people donā€™t know but RPM (specifically, dpkg doesnā€™t do this, and I think itā€™s a terribly important missing feature) DOES do integrity checks. Try this:

rpm -qVa

That does an integrity check and alert of every file that has been changed on your system, that isnā€™t tagged as a config file in the spec.

Sorry, my nerd is creeping in here.

Exactly. And PREVENTING people changing our stuff kinda goes against the GPL, which is why we go out of our way to make it easy to do so! I <3 the GPL! In fact, Iā€™m one of those people who DONā€™T think the AGPL is crazy, and you may notice that weā€™ve been using it for a lot of our new modules.

If itā€™s actually happening that much, it might be worth you signing the indemnification and getting your own GPG key signed, so it stops complaining. The other thing is, youā€™re going to have to redo the changes every time you update, too, or, you need to stop updatingā€¦ Which then means you may miss a security fix.

Are your changes something that other people are going to want?

Thereā€™s an X in the top right hand corner of that box. Once you click on that, youā€™ll never see it again. I realise that the contrast could be slightly better on the X, and weā€™ve fixed that in 13, but the CSS in 12 makes it hard to see.

I think I have already written this down somewhere, but I canā€™t seem to find it, so hereā€™s the idea that @tm1000 and I were thinking about.

  • A new directory /etc/freepbx.d that contains a subtree of module names. (Thus /etc/freepbx.d/dialplaninjection)
  • Each module folder has a module.sig and a key file that must be owned by the root user
  • Before GPG checks for and validates the module.sig in the module folder, it checks for the existence and validates the ownership of the files in freepbx.d. If it finds it, it works from that, otherwise it works from the standard one.

Thatā€™s still going to require people who want to change code to pull the devtools repo and use the packaging tools, but it also removes the requirement for us to get involved.

I think we need to provide a way to let users do that. We canā€™t stop them from being stupid, we just need to give them as many alternatives as possible so they donā€™t think using a shotgun to remove a blackhead is their only option :sunglasses:

Weā€™re not even doing that. Thatā€™s why we put the ā€˜revoked keyā€™ stuff in there. If someone malicious DOES start publishing nasty modules, we revoke their key, and all their modules are blocked. Obviously, they can simply remove the module.sig and itā€™ll then start working again as an unsigned module, but this is all about alerting, and making noise about bad things, not blocking.

Hell no! This is great! Are you coming to Linux.conf.au in Feb? We can sit down and have a beer and you can tell me why my code sucks. (Those are the best kind of discussions!). As you know, security should never exist in a vacuum, which is why I love to talk about it. @tm1000 is a bit sick of it by now, but thatā€™s because heā€™s normal, and Iā€™m an anal-retentive security nazi who canā€™t stop talking about it :sunglasses:

I truly appreciate your input!

1 Like