Cybersecurity-Projects/PROJECTS/intermediate/credential-enumeration
CarterPerez-dev a98de6f8f4 feat: add Aenebris.ML.Engine decision pipeline
- New Aenebris.ML.Engine module: pure decision pipeline composing
  the previously-built Loader, Inference, Calibration, and IForest
  modules into a single per-request scoring path.
  Engine record holds (Ensemble, Calibrator, Maybe IForest,
  EngineConfig); runEngine takes a feature vector and produces
  DecisionDetails (Decision, raw proba, calibrated proba, optional
  IForest score). The Decision is one of DecisionHuman, DecisionBot,
  or DecisionChallenge.

- Implements the escalation-gate semantics per the 2026 research
  correction (over the deprecated 0.8/0.2 weighted blend):
    calibrated <= humanThreshold       -> DecisionHuman
    calibrated >= botThreshold         -> DecisionBot
    otherwise (ambiguous band):
      if IForest configured and ifScore >= escalation threshold
        -> DecisionBot (escalation)
      else if challenges enabled
        -> DecisionChallenge
      else
        -> DecisionHuman (fallthrough)
  Defaults: 0.3 / 0.7 thresholds, 0.6 IForest escalation, challenges
  on by default.

- 17 tests covering: defaultEngineConfig values, decision boundaries
  with NoCalibrator and no IForest (low/mid/high leaf ensembles),
  ambiguous-band escalation via low-vs-high anomaly IForests,
  ambiguous-band with challenges disabled (fallthrough to Human or
  escalation to Bot), Platt calibrator pulling decisions across
  thresholds, and DecisionDetails field correctness.

- aenebris.cabal: expose Aenebris.ML.Engine in the library stanza.

- 342 total examples passing, 0 GHC warnings on the new module.

The Wai middleware wiring (extract features -> runEngine -> route by
Decision) is the next module (ML.Middleware); Engine intentionally
stays pure / independent of HTTP machinery so it can be unit-tested
without request fixtures.
2026-04-29 00:55:58 -04:00
..
learn feat: credential enumeration complete 2026-04-04 20:21:19 -04:00
src feat: sbom generator & vulnerability matcher + docstrings across 6 projects 2026-04-08 23:53:40 -04:00
tests feat: sbom generator & vulnerability matcher + docstrings across 6 projects 2026-04-08 23:53:40 -04:00
.gitignore feat: credential enumeration complete 2026-04-04 20:21:19 -04:00
Justfile feat: credential enumeration complete 2026-04-04 20:21:19 -04:00
LICENSE feat: credential enumeration complete 2026-04-04 20:21:19 -04:00
README.md feat: credential enumeration complete 2026-04-04 20:21:19 -04:00
config.nims feat: credential enumeration complete 2026-04-04 20:21:19 -04:00
credenum.nimble feat: add Aenebris.ML.Engine decision pipeline 2026-04-29 00:55:58 -04:00
install.sh feat: credential enumeration complete 2026-04-04 20:21:19 -04:00

README.md

 ██████╗██████╗ ███████╗██████╗ ███████╗███╗   ██╗██╗   ██╗███╗   ███╗
██╔════╝██╔══██╗██╔════╝██╔══██╗██╔════╝████╗  ██║██║   ██║████╗ ████║
██║     ██████╔╝█████╗  ██║  ██║█████╗  ██╔██╗ ██║██║   ██║██╔████╔██║
██║     ██╔══██╗██╔══╝  ██║  ██║██╔══╝  ██║╚██╗██║██║   ██║██║╚██╔╝██║
╚██████╗██║  ██║███████╗██████╔╝███████╗██║ ╚████║╚██████╔╝██║ ╚═╝ ██║
 ╚═════╝╚═╝  ╚═╝╚══════╝╚═════╝ ╚══════╝╚═╝  ╚═══╝ ╚═════╝ ╚═╝     ╚═╝

Cybersecurity Projects Nim License: AGPLv3 MITRE ATT&CK

Post-access credential exposure detection for Linux systems, written in Nim.

This is a quick overview. Security theory, architecture, and full walkthroughs are in the learn modules.

What It Does

  • Scans Linux home directories for exposed credentials across 7 categories
  • Detects unprotected SSH keys, plaintext cloud credentials, browser credential stores, shell history secrets, keyrings, Git tokens, and application credentials
  • Classifies findings by severity based on file permissions and exposure risk
  • Reports in terminal with color-coded output or structured JSON for automation
  • Compiles to a single static binary with zero runtime dependencies

Quick Start

bash install.sh
credenum

[!TIP] This project uses just as a command runner. Type just to see all available commands.

Install: curl -sSf https://just.systems/install.sh | bash -s -- --to ~/.local/bin

Stack

Language: Nim 2.2+ (ORC memory management)

Build: Just, Nimble, musl (static linking), UPX (compression), zigcc (cross-compilation)

Testing: Nim unittest, Docker (integration tests with planted credentials)

Learn

This project includes step-by-step learning materials covering security theory, architecture, and implementation.

Module Topic
00 - Overview Prerequisites and quick start
01 - Concepts Security theory and real-world breaches
02 - Architecture System design and data flow
03 - Implementation Code walkthrough
04 - Challenges Extension ideas and exercises

License

AGPL 3.0