Flock 2026 From Compliance to Containers: Managing Fedora Fleets in the Atomic Era
Watch on YouTubeVideo summary
Adam and Jonathan from Fleet present a comprehensive solution for managing Linux fleets in an era of increasing compliance demands, focusing on how to transition from traditional mutable systems to immutable atomic distributions like Fedora Silverblue, Bluefin, and CoreOS. The core challenge addressed is the difficulty auditors face when verifying Linux security, as standard management tools are often limited to shell scripts or static files that lack dynamic evidence. Fleet overcomes this by leveraging OSquery, an open-source agent originally developed at Meta, which exposes operating system data as SQL tables. This allows administrators to define policies using simple SQL queries that can be version-controlled in Git via a GitOps workflow, ensuring that every compliance check is transparent, auditable, and capable of providing real-time evidence rather than just assertions of security.
The presentation details specific strategies for auditing NIST controls on both standard Fedora systems and atomic hosts where the root filesystem is read-only. On atomic systems, traditional methods like `rpm -q` only reflect the currently booted state and miss staged changes, making them insufficient for compliance reporting. To solve this, the speakers demonstrate how they built a custom OSquery extension that reads directly from the RPM-OSTree database to report on three distinct states: what was previously deployed, what is currently running, and what is staged for the next boot. This capability allows Fleet to generate accurate inventories of disk encryption status, SSH key configurations, and package versions without modifying the read-only filesystem, effectively bridging the gap between immutable infrastructure and dynamic compliance requirements.
Beyond basic inventory, the talk explores advanced use cases such as vulnerability scanning, threat hunting, and automated remediation across heterogeneous environments including Linux, macOS, and Windows. The system supports scoring mechanisms where policies can fail only if specific thresholds of weak signals are met, reducing noise in alerts while maintaining strict security standards. Furthermore, Fleet enables the distribution of software updates and scripts through its policy engine, which can automatically remediate non-compliant systems or trigger webhooks for orchestration. The speakers also highlight practical examples, such as detecting malicious Chrome extensions and monitoring memory poisoning, illustrating how SQL-based queries can be used to secure endpoints against evolving threats while maintaining full visibility into the fleet's health.
The session concludes with a discussion on the technical hurdles encountered when deploying Fleet on atomic distributions, such as handling read-only directories and managing services that assume writable file systems. The team shares their approach of creating lightweight extensions in Go that can be easily added to the OSTree image to expose new data points like container references and layered packages. They emphasize that while containerizing the agent itself offers limited benefits due to the need for deep filesystem access, building custom extensions remains a powerful way to adapt OSquery to atomic architectures. Ultimately, the talk advocates for an open-source, self-hostable platform that empowers organizations to maintain rigorous compliance standards regardless of whether their infrastructure is mutable or immutable, providing a unified view for auditors and security teams alike.
Read the full video transcript
Welcome.
>> Um
We're uh
Adam and Jonathan. Adam's from Fleet,
I'm from Red Hat. Um this talk's going
to be in two halves.
Uh first we're going to talk a little
bit about uh NIST controls
and um uh the sort of things that
auditors will be looking at. Um and uh
how we use
uh use OSquery on Fedora
um as a kind of transparent SQL engine
to uh audit systems.
Um then we're going to move on to atomic
hosts like Silverblue, uh
Bluefin, CoreOS, where user is a uh
slash user is a read-only file system.
And rpm -q
only respect reflects the currently
booted operating system, but not might
might not reflect any uh staged changes.
Um
and then uh we're going to show how that
uh we can reflect the visibility in
OSquery.
Uh and then the whole stack is open
source, so uh
want to talk about it?
>> Yeah, of course. Thank you.
I happen to work
Uh there we go, it's come back. Good
stuff.
So um yeah, what we'll be presenting um
essentially.
>> [snorts]
>> So I I work at Fleet as a customer
solutions architect. So I work mainly on
macOS, Windows, and the next fleets. Um
we're going to be talking a bit about
the OSquery, um how we can use it, and
that visibility. Um
I think here we'll just go kick off, and
we'll talk about the compliance
challenge.
>> Yep.
>> Cheers, Jonathan.
>> Uh so really the core problem is that
Linux
uh often fails audit because
uh because not because it's insecure,
but because it's difficult for it for
you to prove to the auditors that it's
secure.
Um there's not really a whole lot of MDM
software for Linux.
Quite often
uh you rely on things like shell scripts
and
um you know
bespoke
uh scripts that you will generate, you
know, CSV files or YAML or something
like that that you can hand to the
auditors.
Um really they want the evidence. They
don't want you to just say that it's
secure.
Um and we really want to have some sort
of open source visibility into the
process.
Um
every check is queryable, forkable, and
on GitHub.
Um
and I guess the next the thesis for the
next 15 minutes is going to be about
that.
So, what is Fleet?
Thank you, Joe. So, yeah. Um so, Fleet,
what is it? It's an open source
self-hostable platform. Um you can
manage, secure macOS, Windows, Linux
from one place.
Um you run it, so the data stays yours.
You can self-host that.
It's built on OSQuery. I'm not sure if
everyone's familiar with OSQuery. It was
built at Meta a while back.
The whole point is like a operating
system query.
Um
>> [clears throat]
>> so, what it does, it's an agent that
exposes the operating system as SQL
tables.
A query is just a SQL question over
those tables.
Um a policy is a query with a pass or
fail rule that we kind of use for
automation. So, one or more rows means
um
that it's a pass.
Um [snorts]
for example, disk encryption.
Uh you can kind of just simply check is
the device encrypted or not? And if it's
not, either have a user message, or have
a auto remediation, whether that's a
script or a package for a software.
Um GitOps, that I will talk about a
little bit and I'll show you some
examples, is the kind of how whole
fleets are configured. It's how we
define a fleet report, a policy, and all
those controls live in Git as YAML. So,
it's super auditable.
Um changes are pull request, it's
reviewed, it's version controlled, and
then the CI applies them with our
binary.
Um
and yeah, that will be
most of the bits we'll go over.
And over to you for the next Yes.
>> So, one of the things that we're often
uh
looking at are to uh show to the
auditors that we are following the NIST
guidelines and looking at partic- and
we're going to look at a couple
particular NIST controls
that we have for the OSQuery.
Um
for example, uh this is how we would be
uh installing deploying Fleet uh
on a regular Fedora system, you can just
create a package and install it.
On Silverblue, it's a little bit more
complicated because you can't just RPM
install, you have to do uh RPM-OSTree,
and of course our package has
some issues with that just because of
the directories that you use, but it
does get installed, and we are actually
have several systems already in Fleet
that are running uh
atomic distributions, so
um
here's one of the policies that we can
look at. Here, it's a really simple I
don't know, can people see this? But,
there's a you just basically select one
from disk encryption, which is a table
in the OSQuery,
uh where the name is slash dev slash dm
wildcard, and it's encrypted, and that
will return paths
if it's uh if it has an encrypted disk
and it will fail if it doesn't. And the
action when we do this with Fleet you
can actually have actions where a script
can run to to remediate it, but when
you've got an encrypted disk that really
means you have to go and talk to the the
person who owns the system, make sure it
gets reinstalled.
But we could definitely do a
do things with Ansible or something like
that to fix it.
Um
Here's another set of policies that are
that's really useful for checking. You
can look at a variety of
checks for
the SSH authorized keys files on the
system.
And like for the first query up there
that looks for really old certificates
that it's over a year old.
Um and I can go and poke it over to the
Fleet page to show you what these look
like.
Um the middle one it looks for
keys where there isn't actually a user
on the box.
And the third one is looking for keys
that are using a
non-compliant algorithm.
Let's see if I can pop it over to the
Let's see where's the console.
Policies.
>> Yeah. Yeah.
>> So here's an example. Do you want to
walk through that?
Thank you.
>> So [snorts]
essentially here all we've done is as
per the slides, we just have a policy
for each one.
And we can see that the two hosts that
we have in there
are passing.
And here I'll just show you what the
query actually just looks like.
As per the slides.
Nothing too complicating. We're just
using a a join with the user table as
well so we can actually get the right
information.
And what we can also see is as this is a
policy
and I have it all managed in GitHubs,
what we have is
just this policies.
We can list a few of them together. So,
I've actually got multiple that I'm
calling out.
And then when I need to make a change,
we review this,
merge it,
and then this will be in fact in the GUI
ready to report on live status
um for your policies.
Cheers. Done.
Oh.
>> Uh how does it work with the uh
centralized user
How does How does it work with the uh
centralized user management? For
example, these old file authorized keys
files are missing there, so you would
not see them and still users might have
outdated keys in the centralized store.
>> So, the question is how we handle it on
it for a centralized user. So, it's like
LDAP,
Active Directory, something like that.
Well, in those sorts of cases, you'd be
able to audit it from the data uh from
the
you'd be actually looking at the uh
directory to look at those sorts of
things.
Um this is on a per host system, so
you'd be looking at stuff on the local
host. Uh and this actually looks at only
local users. If your users are actually
being
managed in SSSD with uh Active Directory
or you know, at Red Hat we use Red Hat
Directory Server. Um
uh we'd have to be using something else
to do that uh because those things are
stored in LDAP. So, you But those are
definitely things that you can audit.
It's just
this is for uh looking at individual
workstations, things like that.
>> And in theory,
you can go crazy with this. So, this is
what our default tables do,
but if there's a way for you to generate
an artifact on the device,
you can then use other tables like JSON
files
table or just files table to actually
just extract that information. So, if
it's maybe too difficult, the teams
don't communicate too well, it's hard to
get that information from the central
team, um there's always ways. And later
on, we're going to show some of the
stuff we've built with extensions that
allows you to kind of do that.
>> Yes.
So, actually one of the things I do
whenever I need to look at local users
table and things are in the directory,
uh there's a last table which populates
records from the last DB on your
computer. And so, I just look at people
who have logged into the system and then
query using those users to look at their
home directories and things like that.
So, it's it's very possible. It's just
this is kind of generic how you would do
it.
Oh, actually.
Yeah, just
>> So, yeah, we were talking about this
yesterday and
we were saying there's some other
queries I built out I think about 3 4
months ago
for Open Claw. So,
the beauty obviously with those queries,
you can do this for Linux, Mac, Windows.
As long as it's got OS query on there,
there's a table and we can detect that.
So, what we kind of did is we have four
score indicators and we can do scoring
in policies. It doesn't just need to be
a yes or no. So, with this one, it's if
a host has three or more, um
that will fail. If it's a single weak
signal, we don't want to necessarily
raise an alarm.
So, we can score it that way. So,
separate policies, they'll catch system
D, launch deeper systems,
uh that's our agents that will kind of
survive a reboot. Um we've got reports
that back it up. So, an investigation
snapshot for the current state of the
device. We've got threat huntings which
will show differentials. So, with some
of the reporting we can send, depending
on how you want to adjust it and you'll
see them, you can have a full snapshot,
which will have everything. Maybe you
want it less noisy, and you can then use
it just a differential. So, when
something does switch, that will
actually create the alert.
Um
>> [snorts]
>> And then, yeah, it runs, like I said, on
Linux, macOS from just one config. And
later on, I'll do a bit of a demo and
show you some of those slides and how
that works.
>> This one's up to you. Cheers.
So, we also want to be able to do
vulnerability scanning.
Um
In Fleet, it's all fully uh
self-hostable. It uh that doesn't
There's no telemetry leaving your
network.
Uh osquery reports on RPM packages and
the OS version needs check-in. And then,
Fleet evaluates each of these against
Red Hat Oval.
Um since we're talking about Fedora, we
actually kind of pair those up with
particular rail releases, since we're
using rail's oval data.
Um it it does sync from rail uh from the
rail oval uh database.
Um but then, it kind of fills in things
from the uh
the NVD CPE, as well.
Um
and
There's basically here we've got all the
various exports that you can do. And
then, that's useful for uh doing sort of
audit compliances, as well as just
looking to see what your fleet of
systems have installed and whether you
have any issues that need to be
resolved.
So,
how do you go from these uh policies to
what the actual auditors want?
Um you can report basically a
point-in-time snapshot of what you have.
Uh you can uh
have these queries
return results.
Basically,
uh,
in the same answer.
There's, uh, when you're using something
like get ops,
you can look at the get history of every
policy, see who made the changes,
when they went into effect.
And, uh, you can,
uh, export all this information into a
JSON or CSV file to hand to your
auditors.
And here on the side, if here's just an
example of what the, uh, policy looks
like
from the API, you can pull the
information right there. It shows the
that that one there is basically the
query that you get the policy for
what the,
uh, disk encryption,
whether it's systems that does You can
see that there's 142 passing hosts and
two failing.
And it even shows the update time, uh,
last time you updated that policy.
So, now we're going to talk a little bit
about,
uh,
Atomic Linux
and how to manage those things. We're
going to shift, uh, from the mutable
Fedora to Atomic.
Um, we
are just going to kind of go over the
basics of what we've discovered and some
of the issues that we did and some of
the things we've done to address them.
Um, so on
DNF,
as we talked about, you know, it's
really is DNF update,
uh, RP, uh, RPM OSTree
has, uh,
a variety of ways of being able to get
that information. Actually, there's
three truths that you get. You have what
it was, what it is now, and what it will
be in the future.
Um, this These all these three states
um, will coexist at the same time on a
running system. You have like the commit
that you were
booted into, the the commit you're
booted into right now, and the commit
you will be next. Um,
don't get anything like that on Fedora
uh standard because you just see what
you have. You might be able to look at
the get history or I'm sorry, the DNF
history and see what was packaged.
But, you have these three states and
here the
talking about here.
So, we have the next boot, what's going
to be the next boot,
what's right now, and what it was.
And uh we also want to be able to look
at stuff that like what's pinned and
things like that.
Um, these assumptions that we've made
kind of break
break down when we're looking at atomic
systems. We
uh
us- assume things like that we have a
uh that the Etsy lives forever,
um, that DNF is the way you install
something. There's lots of
But, you you understand that it's a lot
different than what it used to be.
And that, you know, {slash} user is not
writable. A lot of a lot of things
assumes they can drop files in {slash}
user.
And uh yeah, that RPM QA is going to be
the source of truth. Doesn't really help
whenever your next boot's going to be a
different thing. Also, there you can
have things that are layered on top of
that commit.
Thank you.
So,
here what we're going to look at is how
Touched it and I've broken it. There we
go.
is how we do it with fleet
considering that all of this has
changed.
So, what we uh what we ended up doing is
I'll give a bit of background about what
the query is doing.
But, osquery is not a database, right?
Each table is from essentially a virtual
table
um that's being generated.
So, SQLite calls the generator at query
time, whether that's a policy or a
report.
Um the generator collects the live
state. So, we've got some examples over
here for like processes, listening
ports. This is essentially what it's
just kind of getting the output from.
Um once it's collected all of that,
SQLite runs the join and where over
those kind of fresh rows just in memory.
Nothing persists between the runs. So,
rerunning returns current truths. It's
not like a cached uh result.
And that's what makes it really good for
audit evidence.
So, the reports push SQL to the fleet D
agent and orbit over a web socket.
Um scheduled queries and reports, they
kind of sit in the config just waiting
for an interval.
And then
um when we look at this, a generator,
key point, is a read-only collector,
right? So, everything it's doing isn't
actually changing anything on the
device. It's just getting a read from
it. So, it just observes. It doesn't
change the host. Um and this is going to
set us up for the extension that we've
built out. If you can see every table,
RPM osquery deployment doesn't exist.
So,
what we'll talk about is how
we've essentially built that.
So, with with osquery, there's the
ability to just read files, like I was
saying from files table, JSONs.
But, you'd have to get the fresh output.
So, that's like multiple steps, maybe
not ideal.
So, what you can do is with osquery,
just build an extension for something
you're interested in.
And we were really interested in um
being able to get RPM OS tree info.
So, it's a couple lines of go, I think
like 200 lines. Probably be less if I
could code properly.
Um
I'm a CSA, so I normally just do helping
customers after. Our engineers probably
a million times better, but um it just
shows you the ability and how simple it
is. And what we've uh done essentially
with this
it's 200 lines, like I said. It just
looks at the RPM OS tree status and then
JSON output.
We get one row per deployment. Um it's
built and signed through GitHub. Um and
then the fleet policy can then utilize
that extension.
Um
if it doesn't detect it, it'll run a
script to actually install it on the
hosts, so we can deploy it across
everyone.
And then after that table, it's
queryable. It's in the fleet UI.
Um columns include stuff like version,
booted, staged, container image
reference, any layered packages we can
start to see as well. And
uh [snorts] yeah, we'll show you around,
I guess.
So,
let's see it running in the fleet. And I
think it might be easier at this point
if I swap from
this view
over to
shared view. Let me just change that.
To the entire screen.
Super duper.
So,
first thing we'll look at is the
extension. So,
we'll look at our hosts. We've got a
bluefin and we've got a silverblue,
right? So, this one you can see is
offline because it's in John's bag.
This top one is just running on UTM on
my device. So, what we'll we at is first
of all the policy we've written. Right?
Actually, no. Let's go to the report
>> [snorts]
>> and we'll look at this one. So, it's
atomic deployment inventory RPM OS tree.
And what we're doing
there's a lot of red and red is what we
do to help me mainly for spell checking
because I spell things wrong.
But, it's because these tables and
columns don't exist. They're not native
to fleet. It's something that we've
added, so that's why they're showing
red.
So, we'll do a live report.
We'll select it to the Linux hosts.
We'll run this. Obviously, it's going to
go terribly wrong cuz it's live, but
we'll [snorts] we'll see. Can take about
20 to 30 seconds to get the query back
from the device.
>> [snorts]
>> It did show my device was online, so
that should be should be good.
Do some elevator music.
>> You know, I do this all the time because
I use fleet at work, and so I'm always
doing queries like this.
You're always like, will it work?
>> Will it, yeah, yeah. In this moment,
definitely won't work, right?
Um so, here we can see my device there.
We can see which one is booted, right,
from the value.
Um we can see the SHA value for it.
We can see when it deployed.
We can see the layered packages, so you
can see that I've layered fleet OS query
onto that. So, it's on both images.
And we can see which one is staged as
well. So then, because we have all of
this information in columns, we can now
create a policy
that says, "Okay, we want it to be on
this version. If it's not, the policy
will fail."
And then, essentially, just have a
little script to kick off
and get them to the latest.
Um I think there was some other examples
that we had put in and I'll just show
you this one essentially what it is. You
You don't need to write these reports
every time, right? Cuz SQL's hard, I
guess, for most people.
>> [laughter]
>> Um So, what you have is you just have
them here installed. So, I have a report
here in my YAML.
I give it a simple name, a description.
This is just uh so you can kind of see
that. A description of the the meaning
as well. You can be as verbose as you
want.
And then I have an interval at the rate
that it kind of runs. So, I can have
that constantly happening.
Sending a snapshot if I want it for
logging.
>> [snorts]
>> And there here I just put in the actual
SQL block.
We need to make a change, we'll edit
that,
prove it, merge it, and it's in the OS.
So, that was one of them that I was
going to show. And I think we had some
other examples that we were going to
talk about which were some of the ones
that we have for for example open claw.
And it just shows you the power of SQL
and with these tables what we can do.
So, you know, I'm looking at for
example, let me filter it so we can only
look at what's relevant to here, Linux
today. So, we can look at
MDNS auto discovery. We can look at if
we see some memory poisoning.
We can see some world mutable secrets.
And all it is
super like query. Uh maybe not this one.
Again, doing a join with the users. But
again, these purple tables are all
native fleet tables. And then with these
columns, we can then start looking for
anything that's open claw. Um
and any other variants. Again, for
memory poisoning.
Slightly different one. We're looking at
some of the directories, looking for any
modifications to the sole file and
memory files.
Readable secrets.
What we're looking at for is again
here through the files, looking at
certain directories like motd as well,
file names looking at that and seeing if
anything's visible in that.
So,
what other examples? I think that was
the main bit.
I'm going to swap the screen back
into this
extended display.
And
we should be good
to look at a bit of this. Thank you.
>> So, what's the road ahead here?
Uh we've had a couple problems getting
the fleet package installed on Bluefin
and Silverblue. It crashed.
Yes. Actually, we spent quite a few
hours this morning trying to figure some
things out. So, yes.
Um for example, it tries to open
uh opt orbit and um
it was an a read-only system until
uh we fixed that.
Um
it
Uh it will try to start the file system
or it will it tries to start the service
as part of the package, which is not
what Fedora packages are supposed to do,
but it's what the fleet package does.
Um so, we need to fix that, too. Uh you
can't you can't start a service in a
overlaid package because that's not
actually running on your system yet.
Um
we needed to kind of point at different
directories like var lib fleetd instead
of /user.
Um
so, some of the things we fixed. We
already uh it has a parameter the the
orbit root there.
We just need to switch it over.
Um and there's an Etsy
configuration file in Etsy default.
Um
There's obviously this uh the uh OS tree
RPM OS tree uh deployments table or
extension rather
uh that doesn't yet exist upstream, but
it lives in your Git repository right
now.
Um it's not that hard to add.
Um
And some of the things we want to do I
want to also track flat packs because
people install flat packs on atomic
distros and it would be good to be able
to track them and we need to both track
system level flat packs and each user's
flat packs that are installed.
Um
Oh, yes. Also, one of the things I was
at the Boot C
uh
BoF yesterday and I heard a lot of
things about how a lot of the a lot of
these assumptions that we're making
about RPM OS tree might not be the
might not be the case in the future. So,
we'll have to be able to handle those in
the future.
Um and then, you know, we have the uh
the root directory will definitely need
to be moved for image mode systems.
>> Yep.
So.
Yeah.
So, thank you very much. The the code is
uh public. There's his Git repository as
well. Um here's some information about
how to contact us.
Um
Yeah.
Does anyone have any questions?
>> [applause]
>> Um
maybe it's like a stupid question now,
but uh is anybody except uh Red Hat
interested in Boot C or uh do you have
other
folks interested from other companies?
Like there are some folks here from
other companies who are super interested
in having managed
workstation
and so on so on. I'm just wondering if
more people are interested in it except
Red Hat.
>> I think that segues pretty well to um
to uh thank you very much. To
all of our kind of product is in GitHub.
All of our issues uh there. And so what
customers can just do is just open
feature requests.
Um so far I think before this talk I
looked there was some questions not in
our repo but in the OSQuery repo. Um so
that's why I thought it would be cool to
to put this together. Um but but
definitely if there's if there's
interest let us know.
Post it and I mean feel free also to
write an extension. Um
we we take community uh contributions
all the time.
>> So thanks for the presentation. I have
two questions. One uh maybe I missed
something but can it distribute
software?
And the second one is
um is there
any kind of like or are you thinking
about any kind of portal where users
could update their upload their custom
policy for the benefit of the community?
>> Brilliant. Thank you. So to answer your
first question um
we talked about policies and what they
do is automation here is just like a
script but what we do for macOS,
Windows, Linux, all of them um well
apart from the mobiles is
is we can distribute and attach the
software. So a simple policy we've added
something called auto patch. It's not
for Linux, though. It's macOS and
Windows. So, we use Homebrew for Windows
ingestion and for macOS ingestion and
Winget for um
for Windows. And essentially, we
maintain those apps. We look at when
there's a new one, update the SQL query
itself so that it's on the latest. And
if you're not on the latest, it'll fail
and automatically remediate. Um so,
there's a lot of automations. That's one
of them. There's also instead of just
having software or a script, you can
send a webhook. And if you emit the
webhook with whatever orchestration
system you have, you can kind of take
actions that way as well. Um for your
second one on queries, so we do have a
page
on fleets.
And my links obviously don't work,
right? Because that would be useful.
Okay.
Let's not go to pricing. That is
definitely not what I wanted to do.
And under solutions,
ooh, more docs, sorry.
We have a full list of reports that have
been pre-created.
And
everything on our page can be just
contributed to. So, if you want to add
some more, share them. Some people put
them in like GitHub issues for a
specific workaround. But um yeah, we try
to maintain that.
So,
thank you.
Anyone else?
>> Hey, thanks.
Um had anyone ever looked at
containerizing the Orbit or Fleet the
client? Like instead of having it come
as an RPM,
basically.
>> So, the problem whenever you're going to
containerize the Orbit, it needs to
still be able to reach out and look at a
lot of things on the file system. It
needs to be able to look at devices. It
needs to be able to look at running
processes.
And so we really don't get a whole lot
of benefit out of running it in a
container.
Uh the sandboxing and and namespace
Uh you would you would basically be
doing
the the least amount of containerization
in a container you could possibly do. So
Um it is something that it would be nice
if we could do it that kind of
distribution.
Uh it would be a lot easier on Atomic
systems, obviously.
Um
but in this
I mean I I I was at the at the Atomic
buff and I was like maybe I should make
a system D sys 6.
>> [laughter]
>> But uh yeah, there's
I I actually wanted to go back to the
previous one with this. I wanted to
mention that we actually used the Chrome
extension query and we used that to find
um people who had installed uh malicious
extensions at our business. So it's
actually
we used this to actually find some
pretty useful stuff. So this is this is
really powerful if you weren't aware of
it.
>> Yeah, yeah, super simple query, right?
So if we just look at it, it's just
looking at the Chrome extensions table.
That's certainly not a table. We adjust
all of that
and then you can display it up.
So then again, you can
even report on it
or automate it into a fix.
>> Yeah, we actually look for specific IDs.
We don't want to collect We're for you
know, we don't want to look at what
everyone has installed. We just look for
specific IDs just to make sure that
they're not
a list of known malicious uh Chrome and
uh Firefox extensions.
>> There's there's known lists around on
the web where they've got kind of the
whole
whole list of identifiers that you can
just pop into a report and policy. And
then look at it through that.
>> Yeah, so Infosec comes to us and says,
"Hey, does anyone have this extension
installed?" And we're like, "Hmm, I
don't know. Let's see."
>> Um in the deployment so, and definitely
relating to BootC, I think one thing
architecturally, right? Like so, Windows
and macOS are proprietary OSs, right?
So, like
you get you get forced into an
architecture where the OS vendor
provides the OS update service, and you
can only build stuff alongside, right?
Like you But, um I kind of think about
BootC that's definitely different in
emphasis from our PMOS tree, right? Is
this concept that you can just make your
own derivative OS that just derives from
a base image from the uh your Linux OS
vendor, right? And then so,
the concretely, this creates a lot of
different architectural things. Like in
this specific case, like did anyone look
at installing Fleet or Orbit? And this
is obviously a different
thing than the containerization, but
just installing it in a base image, and
I guess backing all the way up, let me
just ask a couple questions. Maybe we'll
try and track it. So, less back back and
forth, but um
how many use cases do you see for
managed systems where you can really
discourage the Linux user in particular
from being root or pseudo at all?
And you know, that kind of combines,
right? Like if you um build in this uh
like the management agent and all that
stuff into your base OS, and kind of
like try and get away from the
mutability at least at the OS level, um
you know, it can reduce the need for
some of this drift query, right? Because
like you know you're booted into uh into
what you expect, right?
>> So, um yes, I have looked at uh doing a
container file that builds on top of the
uh
I guess the uh the uh boot C workstation
base container puts uh the fleet
package. Actually, this is for my job,
so I also tried to get some things like
Splunk working in it as well.
Um, and of course, neither of them
worked out of the box because they make
a bunch of assumptions that this is a
running system trying to run the actual
processes in the post scripts.
So, half time I'm just extracting the
contents and then doing an RPM dash
blah blah blah no scripts.
Um
and it works. I I I actually had that
working easier than doing the layering
in RPM OS tree just because
in a container file, you can do whatever
you want.
>> [laughter]
>> Um, and whenever I was thinking about
this uh because my users at Red Hat are
very interested in running whatever they
need on their system. And they
definitely will need root.
Um, how will we be able to have
visibility into the fact that it is
running
uh a container that contains the tools
that it needs to. Does it have uh
Does it have
a layer on top of it that has malicious
data? Did they use uh
another source that might have had been
compromised or something like that when
it was layered? Um, these are all
good questions and are very difficult to
solve at this point because the
visibility of it
is hard to get to. And on top of that
we have toolboxes. What if someone has a
malicious
uh container in their toolbox? Well, you
don't see that if you're looking just at
the OS. The toolboxes live in the user's
home directory. Now, there are uh
infosec tools that will scan containers
that we can use to scan those sorts of
things. So,
um
we don't use it, but that's something
that we can use to do that.
Um and you want to talk about
We're good? We're good? Okay.
Did we answer the question you were
looking at? Okay.
Last chance?
Okay. Thank you very much.