Linux server with UEFI Secure Boot and LKRG
UEFI Secure Boot is an useful control to prevent trojanizing of a server and strongly recommended whenever you actually run a physical machine, either as a standalone server or host for virtual machines. On its own it’s not particularly difficult to configure with mainstream Linux distributions thanks to the fact that signing keys for distributions like Ubuntu are already distributed along with any modern BIOS. There’s one particular scenario where some customisations are required — when you run a Linux kernel in Secure Boot mode and want to load additional kernel modules.
Trusted software supply chains with SigStore
Trojanised libraries are an increasingly growing problem in sofware supply chain due to the fact that almost every Java, PHP, Python or Node project typically uses a dozen of third-party libraries which then chain-load further libraries. A compilation of a Java project or installation of Node or Python project is continous stream of third-party libraries loaded from repositories such as Maven, NPM or Pypi — and abuse is just matter of statistics.
Current state of security scanners for C/C++
A lot has improved over the last few years in terms of availability of C/C++ source code security scanners. Many scanners are now available for free for open-source projects, not only improving the security of commons code, but also allowing developers to get some hands-on experience and learn how they operate. In this part I’m discussing Synopsys Coverity, clang-analyzer and AddressSanitizer.
PRECIS, the next step in Unicode validation
PRECIS (Preparation, Enforcement, and Comparison of Internationalized Strings) is a framework for consistent and secure management of Unicode strings in web applications.
Why “only security updates” approach is not sufficient?
Many organisations by principle only apply product updates that are explicitly marked as security fixes. I argue why this policy is not sufficient with examples on how general updates also have impact on security.
State of web micropayments
As of 2021 there is little doubt that the world of web advertising is toxic and abusive for both the end users and content publishers, and negatively impacts web security. Are there any reasonable alternatives out there?
Invalid Unicode encodings in Facebook data exports
An interesting case study of how even a large company can get Unicode encoding wrong in their data export format.
DNSSEC, systemd-resolved and general user friendliness
DNSSEC is perceived as difficult to deploy, but it’s actually the client-facing side that is more of a challenge, as my recent experience with systemd-resolved demonstrates.
Easy nonce-based Content-Security-Policy with Nginx
Content-Security-Policy
is a powerful mechanism that can mitigate some of the web attacks, mostly related to user-generated content and vulnerable libraries. We publish a general guidance on deploying CSP based on our experience while developing this website, but here we would like to describe a simple trick we used to deal with a specific CSP usage scenario being whitelisting by nonce
.
W3C Trusted Types in practical web development
Trusted Types are an emerging DOM API specification that attempt to prevent a whole range of attacks resulting from web browsers being tricked into execution of untrusted content, for example XSS.