Deploying Osquery for Endpoint Monitoring

Deploys and configures osquery for real-time endpoint monitoring using SQL-based queries to inspect running

What Is This

Deploying Osquery for Endpoint Monitoring is a skill that enables security practitioners and IT administrators to deploy, configure, and manage osquery agents across a fleet of endpoints. Osquery is an open-source tool that exposes an endpoint’s system state as a virtual SQL database, allowing users to query running processes, open ports, scheduled tasks, installed software, and system configurations using familiar SQL syntax. This skill is particularly valuable for gaining real-time visibility into endpoints, supporting threat hunting, compliance monitoring, and integration with centralized security monitoring solutions.

Why Use It

Modern organizations face an ever-increasing need to understand and monitor the security posture of their endpoints. Traditional endpoint monitoring tools can be costly, proprietary, or limited in flexibility. Osquery addresses these challenges by offering:

  • Cross-platform support: Osquery runs on Windows, macOS, and Linux, ensuring consistent monitoring across diverse environments.
  • SQL-based querying: Security and IT teams can use standard SQL queries to retrieve precise system information, streamlining investigations and compliance checks.
  • Extensibility and integration: Osquery can be integrated with SIEM platforms and fleet management solutions like Kolide Fleet or FleetDM, enabling centralized data collection, analysis, and alerting.
  • Open-source and actively maintained: Osquery is free to use and benefits from a strong open-source community, making it a cost-effective and future-proof solution.

By deploying osquery, organizations can perform rapid endpoint investigations, detect misconfigurations or unauthorized changes, monitor for indicators of compromise, and ensure compliance with internal and regulatory standards.

How to Use It

1. Download and Install

Osquery

Start by downloading the appropriate osquery package for your target operating system from the official downloads page. Installation should be performed with administrator privileges.

Example (Linux - Ubuntu):

sudo apt-get update
sudo apt-get install osquery

Example (Windows - PowerShell):

choco install osquery

2. Basic

Configuration

Osquery is configured via the osquery.conf file (typically located in /etc/osquery/ on Linux or C:\Program Files\osquery\ on Windows). At a minimum, define the schedule for queries and logging preferences.

Example osquery.conf:

{
  "options": {
    "logger_plugin": "filesystem",
    "logger_path": "/var/log/osquery"
  },
  "schedule": {
    "processes": {
      "query": "SELECT pid, name, path FROM processes WHERE on_disk = 1;",
      "interval": 3600
    },
    "listening_ports": {
      "query": "SELECT * FROM listening_ports;",
      "interval": 3600
    }
  }
}

3. Deploying at Scale with Fleet

Management

For enterprise environments, deploying and managing osquery across many endpoints is best achieved using a fleet management server such as Kolide Fleet or FleetDM. These platforms allow you to:

  • Deploy osquery agents with standardized configuration
  • Send scheduled and ad-hoc queries to endpoints
  • Collect and aggregate results for analysis
  • Manage agent enrollment and security via TLS certificates

Fleet enrollment steps (Linux example):

  1. Install Fleet server and generate TLS certificates.
  2. Configure osquery.flags to point to your Fleet server:
    --tls_hostname=fleet.example.com:8080
    --enroll_secret_path=/etc/osquery/enroll_secret
    --tls_server_certs=/etc/osquery/server.pem
    --config_plugin=tls
  3. Distribute the enrollment secret and certificate files to each endpoint.

4. Running and Querying

Osquery

Once deployed, osquery can be run in two primary modes:

  • osqueryi: Interactive shell for manual ad-hoc SQL queries.
  • osqueryd: Daemon mode for scheduled queries and fleet management.

Example manual query:

SELECT username, description FROM users WHERE shell != '/usr/sbin/nologin';

Example scheduled query (in config):

"scheduled_query": {
  "query": "SELECT name, version FROM programs WHERE name LIKE '%antivirus%';",
  "interval": 86400
}

5. Integrating with

SIEM

Osquery logs can be forwarded to a SIEM platform for centralized monitoring and correlation with other security events. Use syslog, filebeat, or the logger_plugin setting to send logs to your SIEM of choice.

When to Use It

Deploy this skill when you need:

  • Real-time visibility into the state of endpoints across your organization
  • To hunt for threats or anomalies using SQL-based queries
  • To monitor endpoint compliance (software inventory, open ports, configuration drift)
  • To integrate endpoint data with SIEM, Kolide, or FleetDM for centralized management

Do not use osquery for real-time alerting or active endpoint defense. Osquery operates periodically or on-demand, and is best used for visibility, investigation, and compliance rather than active blocking or alerting. For real-time detection and response, pair osquery with an EDR solution.

Important Notes

  • Security: Always use TLS certificates to secure communication between endpoints and your fleet management server.
  • Performance: Carefully tune the frequency and complexity of scheduled queries to avoid impacting endpoint performance.
  • Configuration Management: Use configuration management tools (e.g., Ansible, Puppet, SCCM) to deploy and update osquery configurations at scale.
  • Compliance: Osquery is mapped to several MITRE ATT&CK techniques (T1547, T1049, T1620, T1053.003, T1548.001, T1552) and NIST CSF controls (PR.PS-01, PR.PS-02, DE.CM-01, PR.IR-01).
  • Limitations: Osquery does not provide real-time event streaming; it is designed for periodic data collection and should be complemented with other monitoring tools for comprehensive endpoint security.

By deploying osquery using this skill, organizations can gain comprehensive, flexible, and scalable endpoint visibility to support security operations, compliance, and threat hunting initiatives.