Skip to content

Latest commit

 

History

History
184 lines (138 loc) · 4.57 KB

32-integrity_monitoring.md

File metadata and controls

184 lines (138 loc) · 4.57 KB
SPDX-FileCopyrightText SPDX-License-Identifier title author footer description keywords color class style
© 2024 Menacit AB <[email protected]>
CC-BY-SA-4.0
Logging course: Integrity monitoring
Joel Rangsmo <[email protected]>
© Course authors (CC BY-SA 4.0)
Introduction to file and system integrity monitoring in logging course
logging
siem
course
#ffffff
invert
section.center { text-align: center; } table strong { color: #d63030; } table em { color: #2ce172; }

Integrity monitoring

A somewhat gentle introduction

bg right:30%


So you wanna protect the integrity of your files and perhaps the whole system?

Several options besides simple FIMs.

Let's talk about some of them!

bg right:30%


General considerations

Storage or runtime detection/protection?

Protection/Flexibility of configuration?

Overlap with other software/security products?

Platform support?

bg right:30%


FOSS providing FIM

  • Tripwire Open Source
  • Samhain
  • OSSEC Wazuh
  • osquery
  • auditd
  • Auditbeat

bg right:30%


Knowing which files to include on the FIM watch-list can be tricky.

Disk/File system snapshots can be useful alternative/complement.

bg right:30%


The state of systems change over time as applications gets installed/updated and administrators modify configuration.

Properly managing a FIM database can be very time-consuming, making investigation and recovery after an incident challenging.

Usage of immutable systems, such as Docker containers, can greatly reduce the burden (especially when combined with a read-only file system configuration).

bg right:30%


How can we trust the FIM if the system has been compromised?

Let's talk a bit about boot and runtime integrity protection.

bg right:30%


What's "secure boot"?

Not just a thing to make neckbeards mad!

Utilizes cryptographic signatures during the computer's boot process to prevent execution of untrusted firmware and operating systems.

Most systems ship with a trust store managed by Microsoft, some support configuration of custom keys/CAs.

"Measured boot" is its upcoming sibling, focusing on logging/hashing executed code.

bg right:30%


Linux's IMA

Integrity Measurement Architecture.

Monitors execution of programs and performs hashing of their content ("measurement") before execution.

Can be used to verify runtime integrity and notify administrators if unexpected applications are run.

bg right:30%


Trusted Platform Module.

Common hardware chip (or CPU feature) capable of storing secrets and performing basic cryptographic operations.

Hash-chaining is used to store measurements in Platform Configuration Register.

The TPM can be configured to unlock a secret, such as a disk encryption key, when a PCR contains specific value/measurement, as a boot/runtime integrity check.

Even better: produce an attestation report!

bg right:30%


If you think this sounds cool/useful, checkout Keylime and the "System Transparency" project.

You can also check out Joel's talk from SEC-T, which is available on YouTube.

bg right:30%


Conclusions

Integrity protection ain't just about basic FIMs.

Usage of immutable systems surely simplifies monitoring of state changes.

TPM + Measured boot + IMA ~= <3

bg right:30%