INITIALIZING...
Security Automation

SENTINEL — Self-Hosted Endpoint Security & DLP Platform for Source-Code Protection

July 27, 2026 10 min read 2 Months
KPL-Internal Security Checker

SENTINEL by KolpolokWatch, detect, and respond across every company device. One console for endpoint visibility, data-loss prevention, and real-time response.

Project Overview

ClientKolpolok Limited (Internal Security Platform)
LocationDhaka, Bangladesh
Date2026, v1.0.1 released
RoleSecurity Architect & Platform Owner
Core StackPython backend · async task queue · relational + search datastores · TypeScript single-page console · containerised deployment
Detection ApproachIntegrity monitoring · host state collection · per-OS threat scanning · repository secret scanning · posture assessment
ScopeThree-tier endpoint security platform — agent fleet, policy/detection server, and SOC console — for Windows, macOS, and Linux company devices
StatusReleased — v1.0.1, self-hosted on-premise

Project Summary

SENTINEL is a self-hosted endpoint security and data-loss-prevention platform I designed and delivered to solve a problem most commercial EDR products handle badly for software companies: protecting source code, secrets, and credentials on developer machines without turning monitoring into surveillance.

The platform gives the security team a single console to see what every company-owned device is doing, detect sensitive data leaving those devices, and respond in real time — remote lock, malware scan, USB block — with every action written to an append-only audit log. Detection runs across three operating systems from one codebase, and the whole system is deployed on-premise on a single self-hosted server, so no telemetry ever leaves company infrastructure.

The design constraint that shaped every decision was data minimisation: SENTINEL collects metadata and cryptographic hashes only. Never file contents. Never keystrokes. Never personal accounts. That constraint is not a limitation bolted on for compliance — it is the reason the platform was accepted by the engineering team it monitors.

Confidentiality note: SENTINEL is proprietary software owned by Kolpolok Limited. This write-up covers architecture, design decisions, and engineering outcomes only. No source code, detection rule content, configuration, or internal identifier is published. Screenshots are redacted.

The Problem

A software company’s most valuable asset is code it has not shipped yet — repositories, API keys, cloud credentials, customer schemas. That asset sits on laptops, gets copied to USB drives, gets pasted into public repositories, and walks out of the building inside a backpack. The available options were all bad:

OptionWhy it failed the requirement
Commercial EDR/DLP suitesPer-seat licensing at enterprise pricing; telemetry leaves the org to a vendor cloud
Full-content DLPRequires reading file contents and clipboard — unacceptable privacy trade-off
MDM-only controlsManages devices, does not detect exfiltration or scan for leaked secrets
NothingZero visibility into USB copies, secret leakage, or code egress

The requirement was therefore: self-hosted, cross-platform, metadata-only, and capable of responding — not just alerting.

Architecture — Three Tiers

SENTINEL is a three-tier system: an agent fleet on the endpoints, a policy and detection server on the LAN, and a browser console for the security team. It is built as a modular monolith with clean internal service boundaries, so components can be separated later without a rewrite.

The description below is deliberately architectural. Specific components, libraries, and detection engines are internal implementation detail and are not published.

Tier 1 — Endpoint Layer

A lightweight cross-platform agent runs on Windows, macOS, and Linux from a single codebase. Its design principle is integration over invention: rather than writing collectors, it orchestrates established, well-audited telemetry and scanning components already trusted in production environments, and delivers their output in one normalised stream.

Responsibilities:

  • Integrity telemetry — change detection on administrator-defined paths, plus device posture assessment
  • Host state collection — running processes, connected devices, installed software, and user context
  • Threat scanning — dispatched to the platform-appropriate scanning engine per operating system, so each host uses the engine best supported on it
  • Self-update — cryptographically signed packages; the agent installs nothing it cannot verify against a trusted key

The agent maintains a single outbound heartbeat on a short interval. That one channel carries status up, and commands plus signed updates down. The consequence is architectural, not incidental: no endpoint runs an inbound listener, and no developer laptop needs a firewall exception. The highest-risk surface in any agent architecture — the channel that can install code — is reduced to one authenticated, signed, outbound-initiated path.

Tier 2 — Server Layer

A single self-hosted server on the LAN, containerised for deployment, running four logical concerns:

  1. Ingestion — receives agent telemetry and normalises it into a common event shape
  2. Policy engine — evaluates normalised events against administrator-defined rules and decides what constitutes an alert, at what severity
  3. Asynchronous execution — queued background work for scans, scheduled repository sweeps, and report generation, so long-running jobs never block the live event path
  4. API surface — a request/response interface for the console and a streaming channel for live updates

Persistence is split by access pattern: structured operational state (devices, policies, alerts, audit records) in a relational store, and high-volume event history in a search-optimised store built for retention and query at scale. Splitting these was a deliberate decision — one store optimised for both is a store that is good at neither.

Authorisation, session handling, and audit are enforced at the server boundary, on every action, not inside individual features.

The privacy model is also enforced here, in code. An allow-list ingestion model means the server persists only the fields policy explicitly permits. Anything an agent sends that is not on the allow-list is discarded before it reaches storage. The server never trusts agent-supplied schema — so even a compromised agent cannot widen what the platform collects. Data minimisation is a code path, not a policy document.

Tier 3 — Console Layer

A single-page browser application served behind a reverse proxy, updating live over a streaming connection rather than polling. It presents severity-ranked alerts with an acknowledge and resolve workflow, device inventory and live status, findings, and one-click response actions — each gated by role and each written to the audit log.

                    SENTINEL — HIGH-LEVEL DATA FLOW

  ┌──────────────────────┐  events ▸   ┌─────────────────────┐  live ▸  ┌──────────────────┐
  │      ENDPOINTS       │────────────▸│  SELF-HOSTED SERVER │─────────▸│  SECURITY TEAM   │
  │                      │             │       (LAN)         │          │                  │
  │  Windows·macOS·Linux │             │  ingest →           │          │  SOC console     │
  │  single agent        │◂────────────│  normalise →        │          │  alerts, devices │
  │  codebase            │  commands + │  policy engine →    │          │  findings,       │
  │                      │  signed     │  alert              │          │  one-click       │
  │                      │  updates    │                     │          │  response        │
  └──────────────────────┘             │  operational store  │          └──────────────────┘
                                       │  + event store      │
   short-interval outbound             └─────────────────────┘
   heartbeat, no inbound listener

Why this shape

DecisionRationale
Three tiers, clear boundariesEach tier is independently testable and independently replaceable
Integrate proven components rather than write collectorsEngineering effort goes into policy, correlation, and response — the parts that are specific to us — instead of re-solving cross-platform telemetry
Single outbound heartbeat for both status and commandsNo inbound listener on any endpoint; one signed, authenticated path for anything that can change an agent
Split persistence by access patternOperational queries and high-volume event search have genuinely different requirements
Allow-list ingestion at the server boundaryPrivacy enforced in code, and the server never trusts what an agent claims to send
Modular monolith, horizontal-scale path preservedOne host to operate today, without foreclosing scale-out later

Capabilities Delivered

Monitor — Visibility

  • File integrity monitoring — real-time alerts on create / edit / delete of secrets and sensitive documents inside watched folders
  • USB activity — drive attach plus mass-copy detection, with folder copies and loose files flagged as separate event classes
  • Device status — online / idle / uptime, agent version, top applications, streamed live
  • Path management — admin-defined watch folders applied at three levels (global → group → device) plus keyword auto-discovery, pushed to agents with no reinstall required

Detect — Threats & Leakage

  • Data-loss / egress DLP — flags a registered secret leaving a machine, identified by salted fingerprint and destination only. The platform can prove that secret #47 left device #12 for destination X without ever storing secret #47.
  • Malware / threat scan — one-click Quick Scan dispatched to the native engine per OS
  • Repository secret scanning — organisation repositories, employee public accounts, and a push webhook for real-time detection, combining entropy-based and rule-based scanning so neither high-entropy blobs nor known credential formats are missed
  • Config & rootkit checks — security posture assessment and anomaly detection against benchmark policy

Respond — Act on Risk

  • Remote device lock — admin-only, always audited, locks the live session
  • Rule-driven controls — USB block and session suspend, triggered by policy rather than by a human deciding case-by-case
  • Alerts & notify — severity-ranked with acknowledge / resolve workflow, delivered to email and Slack
  • Reports — scheduled PDF / CSV summaries to the security inbox

Manage — Govern & Trust

  • Role-based access — custom roles with granular permissions on every action
  • Append-only audit — every admin action and every response recorded, immutably
  • Signed auto-update — agents update themselves, verified, no manual reinstall across the fleet
  • Privacy by design — no keylogging, no personal-account scraping, metadata only

Design Decisions That Mattered

DecisionRationale
Integrate established telemetry components instead of writing collectorsBattle-tested, cross-platform, already audited — engineering effort goes into policy, correlation, and response instead
Salted fingerprints for DLP, never plaintextProves a secret leaked without the platform becoming a secret store — a compromised SENTINEL server does not hand an attacker the crown jewels
Heartbeat-pull for commands, no agent listenerNo inbound port, no firewall exception, no new attack surface on developer machines
Cryptographically signed agent updatesThe update channel is the highest-value target in any agent architecture; an unsigned channel is a fleet-wide RCE waiting to happen
Server-side allow-list on ingestionData minimisation enforced by code path, not by trusting the agent
Append-only audit on every response actionRemote lock is a powerful capability; power without an audit trail destroys trust and fails ISO 27001 review
Single-use enrolment key → per-device tokenEnrolment secret cannot be replayed; reinstalls preserve device identity so history is not lost
Modular monolith, horizontal-scale path preservedOne host to operate today; scale-out available without a rewrite

Lifecycle — Enroll, Detect, Respond

01 · Enroll — install from the portal. One command with a single-use key; the device exchanges it for its own token. Reinstalls keep the same identity.

02 · Detect — endpoints emit FIM / USB / egress events. The server retains only allow-listed metadata, then the policy engine decides what constitutes an alert.

03 · Respond — an admin locks or scans a device. The command executes on the next heartbeat and is written to the audit log.

Engineering Outcomes

MetricResult
Tiers delivered3 — agents, server, console
Operating systems supported3 — Windows, macOS, Linux, from one agent codebase
Automated test suite~260 tests, green
Event → alert latencyUnder 60 seconds, live
Agent heartbeat interval~15 seconds
Sensitive data storedZero file contents, zero keystrokes — metadata and hashes only
Deployment modelFully self-hosted, on-premise, no external telemetry

Security Posture of the Platform Itself

A security platform is a high-value target. Controls applied to SENTINEL itself:

  • Data minimisation — metadata and hashes only, enforced server-side
  • Access control — token-based sessions, policy-driven role-based access control, single-use enrolment keys exchanged for per-device tokens
  • Integrity — cryptographically signed updates; append-only audit of every action
  • Scope & ethics — company devices only; no keylogging; no personal-account scraping. The boundary is documented and enforced technically.

Testing & Verification

  • ~260 automated tests covering agent, API, policy engine, and RBAC paths
  • Cross-platform agent verification on Windows, macOS, and Linux
  • End-to-end validation: event emitted on endpoint → alert visible in console under 60 seconds
  • Response-path validation: command issued → executed on next heartbeat → present in audit log
  • Negative testing: unsigned update package rejected by agent; non-allow-listed field dropped at ingestion
  • RBAC verification: every response action denied to roles without explicit permission

Challenges & Solutions

ChallengeSolution
DLP normally requires reading file contentsSalted-fingerprint matching against a registry of registered secrets — detection without content retention
Monitoring developer machines invites resistancePublished scope and technical enforcement of it: metadata only, no keylogging, company devices only, append-only audit of admin actions
Three operating systems, one small teamIntegrate proven cross-platform telemetry components; delegate scanning to the native engine per OS; keep the agent thin
Updating an agent fleet without touching machinesSigned, verified self-update over the existing heartbeat channel
Changing watch paths across the fleetThree-level path inheritance (global → group → device) pushed via heartbeat — no reinstall
Agent-side compromise could poison the datasetServer-side allow-list ingestion — the server never trusts agent-supplied schema

Roadmap

Hardening — transport security at scale. mTLS for agents and public HTTPS with managed or internal-CA certificates, removing the per-machine trust step for internet-facing deployment.

Scale — reliability & HA. Fleet-wide macOS/Linux verification, container health checks, data-retention lifecycle, and the preserved horizontal-scale path for high availability.

Detection — deeper coverage. Process and behavioural analytics, network-egress inspection, and policy-gated clipboard / print DLP — beyond files and USB.

Integrate — fits the SOC. SIEM and webhook export, ticketing hooks, SSO, and admin-tunable discovery keywords with per-group defaults.


Need Endpoint Visibility Without Shipping
Your Telemetry to Someone Else’s Cloud?

Endpoint Security Architecture · DLP Design · Detection Platform Engineering · Privacy-by-Design · Self-Hosted SOC Tooling

I design and build endpoint security platforms that protect source code, secrets, and credentials across Windows, macOS, and Linux fleets — self-hosted, auditable end to end, and built so the people being monitored can live with them. Metadata and hashes only: never file contents, never keystrokes.

Cross-Platform Endpoint Agent Architecture (Windows, macOS, Linux)
Data-Loss Prevention & Egress Detection Design
File Integrity Monitoring, USB & Device Activity Visibility
Secret Scanning & Credential Leak Detection Pipelines
RBAC, Append-Only Audit & Privacy-by-Design Architecture
Self-Hosted Security Platform Deployment & Hardening

Need visibility into your fleet without handing your telemetry to a vendor? Let’s design something you actually own.


Tags: cross-platform data-loss-prevention dlp edr endpoint-security file-integrity-monitoring on-premise python rbac secret-scanning security-architecture self-hosted soc-tooling