Skip to content

3.7.0 - 2024-10-10

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 10 Oct 17:09

Release Notes

3.7.0 - 2024-10-10

UPCOMING: We Will No Longer Publish to Crates.io starting with 3.8.0

We recently merged RFD #7, "Simplified Release Procedures",
which explains that starting with version 3.8.0 (the next minor version), we'll
no longer be publishing Hipcheck itself to Crates.io. The reasons for this are
explained in the RFD, but essentially the need to publish to Crates.io has been
placing constraints on our ability to evolve Hipcheck in ways that are becoming
untenable.

Starting in 3.8.0, users will no longer be able to use cargo install or
cargo binstall to get the latest versions of Hipcheck.

Introduction of a Plugin SDK for Rust

With 3.7.0, we're introducing a new Plugin SDK for Rust, with the hipcheck-sdk
crate! This crate is intended to make it easier to write Hipcheck plugins in
Rust by handling the generation of proper gRPC handling code and of Hipcheck's
"query protocol," which coordinates the interaction between hc and each
plugin.

Improvements to Policy Expressions

Policy expressions are how Hipcheck users turn plugin output, which is JSON
data, into "pass/fail" results which can be used for risk scoring. In this
release, we added support for datetime and time span in policy expressions, and
improved the handling of JSON pointers for destructuring data from plugin
output. We also fixed some bugs associated with the handling of floating point
data.

  • add placeholder for JSON pointer late-binding in policy expr by @j-lanson in #399
  • Lex JSON Pointers in Policy Expressions by @cstepanian in #403
  • Allow any Expr at the top level of a Policy Expression by @cstepanian in #405
  • Parse JSON Pointers as Policy Expressions by @cstepanian in #406
  • Adds datetime and span primitives to the policy expression syntax by @mchernicoff in #419
  • Adds operations for datetime and span policy expression primitives by @mchernicoff in #441
  • policy expr type errors due to ".0" floating points in JSON being treated as ints by @j-lanson in #451

Improved Support for Other Architecture

With the plugin system, Hipcheck needs to match the architecture you're running
on with the architectures supported by plugins, to ensure that the plugins it
downloads can run on your machine. Previously, this involved some compile-time
checks which meant Hipcheck would fail to compile on architectures which were
not explicitly supported. These changes loosen those constraints to instead
permit the use of an --arch flag to specify the target triple to use.

  • add --arch flag to hc check subcommand to allow architecture detection override by @j-lanson in #433
  • allow use of unknown arches through commandline by @j-lanson in #434

Beginning to Split Existing Data Sources and Analyses into Plugins

With the introduction of the plugin system, we left our existing data sources
and analyses as built-ins. They pretend to be plugins in the interface exposed
to users, but are still built into hc itself. We've now started the process
of extracting these out into their own plugins. In the future we'd like to not
have any built in data sources or analyses, and to instead let hc be the
coordination and execution system which delegates the actual data collection
and analysis to plugins exclusively.

  • created plugin version of github api queries by @j-lanson in #475

Code Cleanup

The changes to introduce the plugin system left a lot of cruft on the table to
be removed, which we're now working on doing.

Bumping Dependency Versions

Full Changelog: hipcheck-v3.6.3...hipcheck-v3.7.0

Install hipcheck 3.7.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mitre/hipcheck/releases/download/hipcheck-v3.7.0/hipcheck-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy ByPass -c "irm https://github.com/mitre/hipcheck/releases/download/hipcheck-v3.7.0/hipcheck-installer.ps1 | iex"

Download hipcheck 3.7.0

File Platform Checksum
hipcheck-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
hipcheck-x86_64-apple-darwin.tar.xz Intel macOS checksum
hipcheck-x86_64-pc-windows-msvc.zip x64 Windows checksum
hipcheck-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum