Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
c-sentinel — Semantic Observability for UNIX Systems - A lightweight C-based system prober with AI-powered analysis | Kitploit
Tools/GitHubGitHub/speytech/c-sentinel
Vulnerability AnalysisNetwork SecurityCloud SecurityDevSecOpsThreat IntelligenceAuthenticationIntrusion DetectionIncident ResponseAI SecurityAnomaly DetectionLog Analysis
72825 months agoReviewed by Kitploit
GitHub
speytech/c-sentinel

c-sentinel

Semantic Observability for UNIX Systems - A lightweight C-based system prober with AI-powered analysis

View RepositoryWebsite

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

C-Sentinel

Semantic Observability for UNIX Systems

A lightweight, portable system prober written in C that captures "system fingerprints" for AI-assisted analysis of non-obvious risks. Features auditd integration, explainable risk scoring, and a live web dashboard with enterprise-grade multi-user authentication.

License: MIT Version

Live Demo: sentinel.speytech.com

Screenshots

Security Dashboard

Security Dashboard

Multi-Host Overview

Hosts Dashboard

User Profile & Security Settings

Profile Page

Two-Factor Authentication

SetupLogin
2FA Setup2FA Login

Personal API Keys

API Keys

Admin Features

Session Management

Sessions

Audit Log

Audit Log

Secure Login

Login Page

What's New in v0.6.0

  • 👥 Multi-User Authentication - Role-based access control (Admin/Operator/Viewer)
  • 🔐 Two-Factor Authentication - TOTP support with Google Authenticator, Authy, etc.
  • 🔑 Personal API Keys - Per-user API keys for automation and CI/CD
  • 📋 Admin Audit Log - Track all user actions with filtering
  • 💻 Session Management - View active sessions, revoke access, force logout
  • 📧 Email & Slack Alerts - Proactive notifications with rich formatting
  • 🎨 Modern Toast Notifications - No more 1990s JavaScript alerts!
  • 👁️ Public Demo Mode - Read-only access for showcasing your dashboard
  • 📱 Mobile Responsive - Full functionality on phones and tablets

Previous Releases

v0.5.x: Security posture summary, risk trend sparkline, learning indicator, explainable risk factors, email alerts, event history

v0.4.0: Auditd integration, brute force detection, privacy-preserving username hashing, process attribution, risk scoring

v0.3.0: Web Dashboard, SHA256 checksums, systemd service, baseline learning, network probe, watch mode

The Problem

Modern observability tools like Dynatrace, Datadog, and Prometheus are excellent at metric collection and threshold alerting. But they answer a narrow question: "Is this metric outside its expected range?"

They struggle with:

  • Causal reasoning: Why did something fail?
  • Context synthesis: Connecting a config change last week to today's latency spike
  • Non-obvious degradation: Things that aren't "broken" but are drifting toward failure
  • Security context: Understanding who accessed what and why it matters

C-Sentinel takes a different approach: capture a comprehensive system fingerprint—including security events—and use LLM reasoning to identify the "ghosts in the machine."

Quick Start

root@kitploit:~
# Clone and build
git clone https://github.com/williamofai/c-sentinel.git
cd c-sentinel
make

# Quick analysis
./bin/sentinel --quick --network

# Quick analysis with security events (requires root for audit logs)
sudo ./bin/sentinel --quick --network --audit

# Learn baselines (automatic with --audit flag)
./bin/sentinel --learn --network

# Continuous monitoring with full context
sudo ./bin/sentinel --watch --interval 300 --network --audit

Dashboard Features

The web dashboard provides real-time security monitoring across your infrastructure.

Multi-User Authentication

Enterprise-grade access control with three roles:

RolePermissions
AdminFull access: manage users, view audit logs, all operations
OperatorAcknowledge events, reset counters, view all data
ViewerRead-only access to dashboards and data

Two-Factor Authentication (TOTP)

Secure your account with industry-standard TOTP:

  • Works with Google Authenticator, Authy, Microsoft Authenticator
  • QR code setup for easy configuration
  • Required on every login when enabled
  • Email notifications on enable/disable

Personal API Keys

Each user can create their own API keys for automation:

  • Named keys (e.g., "CI/CD Pipeline", "Monitoring Script")
  • Optional expiration dates
  • Enable/disable without deleting
  • Last-used tracking
  • Keys inherit user's role permissions
root@kitploit:~
# Use your personal API key
curl -X POST https://sentinel.example.com/api/ingest \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sk_your_personal_key" \
  -d @fingerprint.json

Admin Audit Log

Track all user actions for compliance and security:

  • Login/logout events with IP addresses
  • User management actions (create, update, delete)
  • Password changes
  • Session revocations
  • Filterable by user, action type, and time range

Session Management

Full visibility into active sessions:

  • See who's logged in and from where
  • Device and browser detection
  • Revoke individual sessions
  • "Logout all others" for security incidents
  • Automatic cleanup of expired sessions

Security Posture Summary

Plain English explanation of your system's security status:

"This system shows no security concerns. Authentication patterns are normal with no failures detected. No privilege escalation activity detected. Overall posture: HEALTHY."

Explainable Risk Scoring

Every risk score includes factors that explain why:

FactorWeight
10 authentication failures (200% above baseline - high)+30
Brute force attack pattern detected+10
2 sensitive file(s) accessed+4
Total44

Learning/Calibration Indicator

The system learns what's "normal" for your environment:

SamplesStatusMeaning
< 10🧠 LearningBuilding initial baseline
10-50🧠 CalibratingRefining normal patterns
> 50(hidden)Fully calibrated

Risk Trend Sparkline

A mini chart showing 24-hour risk score history - instantly see if things are getting better or worse.

Email & Slack Alerts

Automatic notifications via email and/or Slack when:

  • Risk score ≥ 16 (high/critical)
  • Brute force attack detected
  • Executions from /tmp or /dev/shm
  • User login from new IP
  • Password or 2FA changes

Slack alerts include rich formatting with colour-coded severity, clickable dashboard links, and structured risk factor details.

Auditd Integration

C-Sentinel summarises auditd logs for semantic security analysis.

Example Output

root@kitploit:~
C-Sentinel Quick Analysis
========================
Hostname: axioma-validator
Uptime: 14.5 days
Load: 0.02 0.04 0.00
Memory: 49.2% used
Processes: 120 total

Potential Issues:
  Zombie processes: 0
  High FD processes: 1
  Long-running (>7d): 95
  Config permission issues: 0

Network:
  Listening ports: 26
  Established connections: 14
  Unusual ports: 12 ⚠

Security (audit):
  Auth failures: 6
  ⚠ BRUTE FORCE PATTERN DETECTED
  Sudo commands: 81
  Sensitive file access: 2
    - /etc/passwd by touch
    - /etc/shadow by touch ⚠

  Risk: high (score: 25)

JSON Output

root@kitploit:~
{
  "audit_summary": {
    "enabled": true,
    "period_seconds": 300,
    "authentication": {
      "failures": 6,
      "failure_users_hashed": ["user_c4c5", "user_b91b"],
      "brute_force_detected": true
    },
    "privilege_escalation": {
      "sudo_count": 81,
      "sudo_baseline_avg": 12.5,
      "sudo_deviation_pct": 548.0,
      "su_count": 5
    },
    "file_integrity": {
      "sensitive_file_access": [
        {
          "path": "/etc/shadow",
          "access": "write",
          "count": 2,
          "process": "touch",
          "process_chain": ["touch", "bash", "sshd"],
          "suspicious": true
        }
      ]
    },
    "learning": {
      "sample_count": 42,
      "confidence": "medium"
    },
    "risk_factors": [
      {"reason": "6 auth failures (200% above baseline - high)", "weight": 18},
      {"reason": "Brute force attack pattern detected", "weight": 10}
    ],
    "risk_score": 25,
    "risk_level": "high"
  }
}

Setup Audit Rules

For best results, add audit rules for sensitive files:

root@kitploit:~
# Add audit rules
sudo auditctl -w /etc/passwd -p wa -k identity
sudo auditctl -w /etc/shadow -p wa -k identity
sudo auditctl -w /etc/sudoers -p wa -k priv_esc
sudo auditctl -w /var/log/lastlog -p wa -k auth

# Make permanent (add to /etc/audit/rules.d/sentinel.rules)

Privacy Features

  • Username hashing: Failed login usernames are hashed (e.g., user_c4c5) preserving pattern detection without exposing identities
  • No passwords: Command arguments and sensitive data never captured
  • Process names only: Full paths sanitised for privacy

Web Dashboard

C-Sentinel includes a web dashboard for monitoring multiple hosts in real-time.

Features

  • Multi-User Authentication - Role-based access control
  • Two-Factor Authentication - TOTP with QR code setup
  • Personal API Keys - Per-user automation keys
  • Admin Audit Log - Complete action history
  • Session Management - Active session control
  • Security Posture Summary - Plain English system status
  • Risk Trend Sparkline - 24-hour visual history
  • Explainable Risk Factors - Know why the score is what it is
  • Learning Indicator - Baseline calibration progress
  • Event History - Timeline with acknowledgement
  • Email Alerts - Proactive notifications
  • Real-time Monitoring - All hosts at a glance
  • Historical Charts - Memory and load over 24 hours
  • Network View - All listening ports and connections
  • Config Tracking - SHA256 checksums of monitored files

Quick Setup

root@kitploit:~
# Install dashboard
cd dashboard
sudo ./install-dashboard.sh

# Run database migration
sudo -u postgres psql -d sentinel -f migrate.sql

# Install 2FA dependencies (optional)
sudo /opt/sentinel-dashboard/venv/bin/pip install pyotp qrcode pillow

# Configure agent to report (with audit)
*/5 * * * * sudo /usr/local/bin/sentinel --json --network --audit | curl -s -X POST \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_KEY" \
  -d @- https://your-dashboard.com/api/ingest

Email Alert Configuration

Add to your systemd service or environment:

root@kitploit:~
ALERT_EMAIL_ENABLED=true
ALERT_SMTP_HOST=smtp.gmail.com
ALERT_SMTP_PORT=587
[email protected]
ALERT_SMTP_PASS=your-app-password
[email protected]
[email protected]
ALERT_COOLDOWN_MINS=60

Slack Webhook Configuration

root@kitploit:~
ALERT_SLACK_ENABLED=true
ALERT_SLACK_WEBHOOK=https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
ALERT_SLACK_CHANNEL=#security-alerts    # Optional - override default webhook channel
ALERT_SLACK_USERNAME=C-Sentinel         # Optional - bot display name

To get a webhook URL:

  1. Go to api.slack.com/apps
  2. Create a new app → "From scratch"
  3. Enable "Incoming Webhooks"
  4. Click "Add New Webhook to Workspace"
  5. Select a channel and copy the webhook URL

See dashboard/README.md for full setup instructions.

Public Demo Mode

Enable read-only public access for showcasing your dashboard:

root@kitploit:~
Environment="DEMO_MODE=true"

In demo mode:

  • No login required - visitors go straight to dashboard
  • Read-only access (viewer role)
  • Admin features hidden
  • Profile/logout links replaced with GitHub link
  • Yellow banner indicates demo mode

Great for LinkedIn posts, blog articles, or letting prospects explore before deploying.

Systemd Service

For production deployment:

root@kitploit:~
# Install
sudo ./install.sh

# Enable and start
sudo systemctl enable sentinel
sudo systemctl start sentinel

# Check status
sudo journalctl -u sentinel -f

All Features

FeatureCommandDescription
Quick analysis--quickHuman-readable summary
Network probe--networkListening ports & connections
Audit probe--auditSecurity events (requires root)
Watch mode--watch --interval 60Continuous monitoring
Baseline learn--learnSave current state as "normal"
Audit baseline--audit-learnLearn normal security patterns
Baseline compare--baselineDetect deviations
JSON output--jsonFull fingerprint for LLM/dashboard
Colour output--colorColoured terminal output
Config--configShow current settings

Colour output is auto-detected (TTY) and respects the NO_COLOR standard.

Exit Codes (for CI/CD)

CodeMeaning
0No issues detected
1Warnings (minor issues)
2Critical (zombies, permission issues, unusual ports, high-risk security events)
3Error (probe failed)

What It Captures

CategoryDataPurpose
SystemHostname, kernel, uptime, load, memoryBasic health context
ProcessesNotable processes with metadataZombie, leak, stuck detection
ConfigsFile metadata + SHA256 checksumsCryptographic drift detection
NetworkListeners, connections, portsService monitoring
SecurityAuth failures, sudo usage, file accessThreat detection

What It Flags

System Issues

  • 🧟 Zombie processes: Always a problem
  • 📂 High FD counts: Potential descriptor leaks (>100 open)
  • ⏰ Long-running processes: >7 days without restart
  • 🔓 Permission issues: World-writable configs

Network Issues

  • 🌐 Unusual ports: Services not in common ports list
  • 📡 New listeners: Ports that weren't in baseline
  • ❌ Missing services: Expected ports that stopped listening

Security Issues (with --audit)

  • 🔐 Brute force: Auth failure spikes (>5 in window)
  • 📊 Baseline deviation: Activity significantly above normal
  • 📝 Sensitive file access: /etc/shadow, /etc/sudoers modifications
  • ⚠️ Suspicious processes: Unusual process accessing sensitive files
  • 💀 Malware indicators: Executions from /tmp or /dev/shm

Architecture

root@kitploit:~
┌─────────────────────────────────────────────────────────────────┐
│                      Web Dashboard                              │
│  • Multi-user auth (RBAC)      • Two-factor authentication      │
│  • Personal API keys           • Session management             │
│  • Admin audit log             • Email & Slack alerts           │
│  • Security posture summary    • Risk trend sparkline           │
│  • Explainable risk factors    • Event history timeline         │
│  • Multi-host view             • Historical charts              │
└─────────────────────────────────────────────────────────────────┘
                              ▲
                              │ JSON via HTTP POST
                              │
┌─────────────────────────────────────────────────────────────────┐
│                     C Foundation (99KB)                         │
│  • /proc parsing              • SHA256 checksums                │
│  • Process analysis           • Drift detection                 │
│  • Network probing            • Baseline learning               │
│  • Auditd parsing             • Risk scoring                    │
│  • Process chains             • Anomaly detection               │
└─────────────────────────────────────────────────────────────────┘

Why C?

ConcernPythonC
DependenciesRequires Python runtime (~100MB)Static binary (~99KB)
Startup time~500ms interpreter startup~1ms
Memory~30MB baseline<2MB
PortabilityNeeds matching Python versionRuns on any POSIX system

Building

root@kitploit:~
make              # Release build
make DEBUG=1      # Debug build with symbols
make test         # Run all tests (unit + integration)
make install      # Install to /usr/local/bin

Testing

C-Sentinel includes a comprehensive test suite with 128+ unit tests using the cmocka testing framework.

Installing cmocka

Debian/Ubuntu:

root@kitploit:~
sudo apt-get install libcmocka-dev

Fedora/RHEL/CentOS:

root@kitploit:~
sudo dnf install libcmocka-devel

macOS (Homebrew):

root@kitploit:~
brew install cmocka

FreeBSD:

root@kitploit:~
sudo pkg install cmocka

OpenBSD:

root@kitploit:~
doas pkg_add cmocka

Running Tests

root@kitploit:~
make test              # Run all tests (unit + integration)
make unit-test         # Run unit tests only (requires cmocka)
make integration-test  # Run integration/smoke tests only
make coverage          # Run tests with gcov coverage report
make check-cmocka      # Verify cmocka is installed correctly

Test Coverage

The unit tests cover:

ModuleTestsCoverage
SHA25610NIST test vectors, edge cases
Sanitize30Input validation, injection prevention
Policy36Command/path allow/deny rules
JSON Serialize11Output formatting, escaping
Baseline11Learning mode, deviation detection
Config9Configuration parsing
Audit21Risk scoring, event analysis

Writing New Tests

Tests are located in tests/src/ and use cmocka conventions:

root@kitploit:~
#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <cmocka.h>
#include "test_helpers.h"

static void test_example(void **state) {
    (void)state;
    assert_int_equal(1 + 1, 2);
}

int main(void) {
    const struct CMUnitTest tests[] = {
        cmocka_unit_test(test_example),
    };
    return cmocka_run_group_tests(tests, NULL, NULL);
}

Add new test files to the Makefile's TEST_SOURCES variable.

Platform Support

PlatformBuildProcess ProbeNetwork ProbeAudit
Linux✅✅ /proc✅ /proc/net✅ auditd
macOS✅✅ libproc✅ netstat❌ N/A
FreeBSD✅✅ libkvm✅ netstat❌ N/A
OpenBSD✅✅ libkvm✅ netstat❌ N/A
NetBSD✅✅ libkvm✅ netstat❌ N/A
DragonFlyBSD✅✅ libkvm✅ netstat❌ N/A

Requirements

  • GCC or Clang with C99 support
  • GNU Make (gmake on BSD)
  • Supported platforms:
    • Linux (kernel 3.x+)
    • macOS (10.12+)
    • FreeBSD (12+)
    • OpenBSD (7.x)
    • NetBSD (9.x)
    • DragonFlyBSD (6.x)
  • auditd (optional, Linux only for --audit flag)

Project Structure

root@kitploit:~
c-sentinel/
├── include/
│   ├── sentinel.h        # Core data structures
│   └── audit.h           # Audit integration types
├── src/
│   ├── main.c            # CLI entry point
│   ├── prober.c          # System probing (/proc)
│   ├── net_probe.c       # Network probing
│   ├── audit.c           # Auditd log parsing
│   ├── audit_json.c      # Audit JSON serialisation
│   ├── process_chain.c   # Process ancestry walking
│   ├── baseline.c        # Baseline learning
│   ├── sha256.c          # Pure C SHA256
│   └── ...
├── dashboard/            # Flask web dashboard
├── deploy/               # Systemd service files
└── docs/
    ├── AUDIT_SPEC.md     # Audit integration design
    └── DESIGN_DECISIONS.md

Roadmap

Completed ✅

  • Core system prober
  • JSON serialization
  • Network probing
  • Watch mode & baseline learning
  • SHA256 checksums
  • Systemd service
  • Web dashboard
  • Auditd integration
  • Risk scoring with deviation analysis
  • Process attribution
  • Dashboard authentication
  • Event history timeline
  • Explainable risk factors
  • Security posture summary
  • Risk trend sparkline
  • Learning/calibration indicator
  • Email alerts
  • macOS support
  • FreeBSD support (FreeBSD, OpenBSD, NetBSD, DragonFlyBSD)
  • Multi-user dashboard with roles
  • Two-factor authentication (TOTP)
  • Personal API keys
  • Admin audit log
  • Session management
  • Slack webhook alerts
  • Public demo mode
  • Colour terminal output

Planned 📋

  • Microsoft Teams webhook alerts
  • Custom alert rules
  • PDF security reports
  • Host-level permissions

License

MIT License - see LICENSE for details.

Author

William Murray - 30 years UNIX systems engineering

  • GitHub: @williamofai
  • LinkedIn: William Murray
  • Website: speytech.com

"The goal isn't to replace monitoring tools—it's to add wisdom to their data."

Download Tool