linux-hardened VS goprotobuf

Compare linux-hardened vs goprotobuf and see what are their differences.

linux-hardened

Minimal supplement to upstream Kernel Self Protection Project changes. Features already provided by SELinux + Yama and archs other than multiarch arm64 / x86_64 aren't in scope. Only tags have stable history. Shared IRC channel with KSPP: irc.libera.chat #linux-hardening (by anthraxx)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
linux-hardened goprotobuf
16 13
538 9,546
- 0.8%
0.0 2.8
10 days ago about 1 month ago
C Go
GNU General Public License v3.0 or later BSD 3-clause "New" or "Revised" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

linux-hardened

Posts with mentions or reviews of linux-hardened. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-06.
  • Question about immutability
    8 projects | /r/linuxquestions | 6 Jun 2023
    Glossing over their hardening guide, we notice that the kernel-hardened package is mentioned. This is a fork of what once was the kernel of GrapheneOS. While this hardened kernel can be used on a variety of distros, unfortunately this doesn't apply to Fedora Silverblue. Furthermore, I haven't seen any mention of the hardened kernel being used on openSUSE Tumbleweed. Therefore I see no reason to believe that this is possible on openSUSE Aeon either. Though, I'd love to be corrected on this!
  • How to obtain hardened kernel?
    2 projects | /r/debian | 21 Apr 2023
  • Is there a security focused Linux distro for desktop users?
    1 project | /r/linuxquestions | 20 Apr 2023
    Here's the GitHub page for the linux-hardened package in the official Arch repos. You will find that lots of changes come from GrapheneOS. "Forked from GrapheneOS" is in tiny, tiny text near the top-left of the web page underneath the project name.
  • Let's Play with the Linux Kernel
    2 projects | dev.to | 8 Dec 2022
    Here is the source code for the hardened Linux kernel.
  • Deploying Firecracker VMs
    5 projects | dev.to | 5 Oct 2022
    so that we can use it liberally in CLI) > **Additionally, here's a 'building from the source section** - https://github.com/firecracker-microvm/firecracker/blob/main/docs/getting-started.md#building-from-source ### Running Firecracker > "*In production, Firecracker is designed to be run securely, inside an execution jail, carefully set up by the jailer binary. This is how our integration test suite does it. However, if you just want to see Firecracker booting up a guest Linux machine, you can do that as well.*" 1. We need to first obtain an "uncompressed Linux kernel binary, and an ext4 file system image (to use as rootfs)" ; great, these are two things that we need to seek out before we move forward in our 'adventure' (*this really feels like a "quest" of some sort, like the ones that they forced you to play on Runescape back in the days*) **How to Decompress Linux Kernel** (explicit instructions to be honest here) - https://0xax.gitbooks.io/linux-insides/content/Booting/linux-bootstrap-5.html **Linux-Hardened Kernel** - https://github.com/anthraxx/linux-hardened (this is something that they're all still actively working on at this very point in time) They also say that we need an 'ext4 file system image' (where do we obtain this from?) - found it **Full Guide on How to Create an EXT4 filesystem image here** -https://fabianlee.org/2020/01/13/linux-mounting-a-loopback-ext4-xfs-filesystem-to-isolate-or-enforce-storage-limits/ Assuming that the above has been handled, the directions insist that we create two separate shell prompts, (one to run Firecracker, and another one to control it [by writing to the API socket]; both shells have to run "in the same directory where the firecracker binary was placed") ^^ What? - This is a pain in the ass because this is something that they should've mentioned earlier (obv. everyone is going to move a binary where the rest of their binaries go ; and you're not going to just load up some random project to be used in that manner) - Not even sure what the end goal of opening up an API socket here would really be But fuck it, let's just assume that we play ball and we adhere to all of these (additional) steps that we're being put through (just for the setup up this virtualization tool!). ### Following Through on the Next Steps 1. Ensuring that Firecracker can create its own API ``` bash rm -f /tmp/firecracker.socket
  • The flashing screen bug seems to be fixed with the 5.19.13 kernel
    3 projects | /r/archlinux | 4 Oct 2022
    Officially supported kernels Community support on forum and bug reporting is available for officially supported kernels. Stable — Vanilla Linux kernel and modules, with a few patches applied. https://www.kernel.org/ || linux Hardened — A security-focused Linux kernel applying a set of hardening patches to mitigate kernel and userspace exploits. It also enables more upstream kernel hardening features than linux. https://github.com/anthraxx/linux-hardened || linux-hardened Longterm — Long-term support (LTS) Linux kernel and modules. https://www.kernel.org/ || linux-lts Zen Kernel — Result of a collaborative effort of kernel hackers to provide the best Linux kernel possible for everyday systems. Some more details can be found on https://liquorix.net (which provides kernel binaries based on Zen for Debian). https://github.com/zen-kernel/zen-kernel || linux-zen
  • Kernels: xanmod vs tkg vs lqx vs zen vs hardened
    1 project | /r/archlinux | 29 May 2022
    Overall those patches do protect you in a lot of cases. Per default upstream features are chose to honor security first. Furthermore patches do frequently protect against upstream failures and vulnerabilities. One of the latest examples is CVE-2022-1729 https://seclists.org/oss-sec/2022/q2/122 a local privilege vulnerability that linux-hardened simply protects since before day 0: https://github.com/anthraxx/linux-hardened/commit/4dd6bdf3b079ef73e597661ee961d225bfccbe2a On top the approach in several places of fail-early instead of potentially continuing with known corruption or certain use-after-free regularly uncovers problems that get fixed upstream and where the vanilla kernels just keep on running, which include exploitable problems. One example of a faulty very recent commit that has been bisected and fixed because of linux-hardened: https://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev.git/commit/?h=for-next&id=acde4003efc16480375543638484d8f13f2e99a3
  • When and why did linux-hardened move to lts branch?
    1 project | /r/archlinux | 25 Mar 2022
  • windows kernel patch guard-like for linux ?
    3 projects | /r/linuxquestions | 16 Feb 2022
    Those two don't protect the kernel itself from "misuse". To do that, there are ways like kernel hardening 3, using hardened kernel 4 5.
  • Is Arch dangerously out of date?
    3 projects | /r/archlinux | 2 Feb 2022

goprotobuf

Posts with mentions or reviews of goprotobuf. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-19.
  • Protoc Plugins with Go
    2 projects | dev.to | 19 Aug 2023
    Now let’s take a look at the source code of the protoc-gen-go plugin:
  • How Turborepo is porting from Go to Rust
    7 projects | news.ycombinator.com | 21 Jul 2023
  • The Tragic Death of Inheritance
    2 projects | /r/programmingcirclejerk | 5 Jul 2023
    Wait, you say, in Go you can embed a struct with default method implementations to "inherit" them in your composed struct... sure, except any methods called by those methods are early-bound in the original struct, completely ignoring your wrapper, so the best you can do is "not implemented" rather than actually implement something. It is at least a way to prevent semver-major breakage, which the gRPC generator uses, but that's about as far as it gets you.
  • Protobuf - Go support for Google's protocol buffers
    1 project | /r/github_trends | 27 May 2022
  • Passing large amounts of data between processes via a file?
    1 project | /r/golang | 24 Mar 2022
    The classic answer is protobufs. You can serialize out to binary format.
  • 2022-01-11 gRPC benchmark results
    3 projects | /r/grpc | 12 Jan 2022
    Seems like go is pretty middle of the road. I can only guess as to why but it probably has to do with heavy usage of pointers and reflection which are much slower than other implementations. Gogo/protobuf (RIP) solved this performance with code generation, but the the official go protobuf implementation has essentially eschewed it. I do wonder how the benchmark would look using the new vitess proto library for Go (which has many of the benefits of gogo but with active development and an API built on top of the Google one)
  • A complete yet beginner friendly guide on how to secure Linux
    17 projects | /r/linux | 4 Jun 2021
  • A new ProtoBuf generator for Go
    7 projects | news.ycombinator.com | 3 Jun 2021
    Maybe I'm missing something, but my read of [golang/protobuf#364](https://github.com/golang/protobuf/issues/364) was that the re-organization in protobuf-go v2 was allow for optimizations like gogoprotobuf to be developed without requiring a complete fork. I totally understand that the authors of gogoprotobuf do not have the time to re-architect their library to use these hooks, but best I can figure this generator does not use these hooks either. Instead it defines additional member functions, and wrappers that look for those specialized functions and fallback to the generic ones if not found.

    I am thinking about stuff like the [ProtoMethods](https://pkg.go.dev/google.golang.org/[email protected]/reflec...) API.

    I wonder why not? Did the authors of the vtprotobuf extension not want to bite off that much work? Is the new API not sufficient to do what they want (thus failing some of the goals expressed in golang/protobuf#364?

  • How to Auto Generate JavaScript code using GO
    2 projects | /r/golang | 9 May 2021
    In this case try approach with line by line generation. Very much like what protoc-gen-go does for Go code: https://github.com/golang/protobuf/blob/ae97035608a719c7a1c1c41bed0ae0744bdb0c6f/protoc-gen-go/grpc/grpc.go#L142, need to implement this kind of generator yourself.
  • Writing a code generator in Go
    3 projects | /r/golang | 26 Apr 2021
    Something like this: https://github.com/golang/protobuf/blob/master/internal/gengogrpc/grpc.go

What are some alternatives?

When comparing linux-hardened and goprotobuf you can also consider the following projects:

zen-kernel - Zen Patched Kernel Sources

colfer - binary serialization format

vaultwarden - Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs

gogoprotobuf - [Deprecated] Protocol Buffers for Go with Gadgets

checksec.sh - Checksec.sh

jsoniter - A high-performance 100% compatible drop-in replacement of "encoding/json"

hardened-kernel - Hardened kernel configuration optimized for virtual machines. - https://www.kicksecure.com/wiki/Hardened-kernel

cbor - CBOR codec (RFC 8949) with CBOR tags, Go struct tags (toarray, keyasint, omitempty), float64/32/16, big.Int, and fuzz tested billions of execs.

steam-for-linux - Issue tracking for the Steam for Linux beta client

mapstructure - Go library for decoding generic map values into native Go structures and vice versa.

kernel-hardening-checker - A tool for checking the security hardening options of the Linux kernel

asn1