thebleucheese®
Developer System · MHC-1370
PROJECTS
INDEX // 09 ENTRIES
TUNER STEREO DIGITAL
PRINCIPAL ENGINEER // FULL STACK
VOL 36
POWER
Input · Select
Projects About Resume Blog
16-BIT · 44.1 kHz
Disc · Project Index ONBOARD DAC
01

MACAT

Easy to use desktop and cli tool for endpoint adversary simulation (and automation).

5:12|
2022-26
▶ OPEN MANUAL
02

Stealth Python / Proxmox

Python FastAPI project controlling 2 self-hosted Proxmox instances. Proprietary / Non-Public.

3:58|
2026
▶ OPEN MANUAL
03

Stealth Pydantic AI

A personal Python project built on Pydantic AI running a combo of agentic and deterministic flows on a FastAPI service.

4:20|
2026
▶ OPEN MANUAL
04

TAXII 2 Server

A TAXII 2 threat-intel server, started as a Node.js + MongoDB learning project, ended up being used at work.

6:45|
2017
▶ OPEN MANUAL
05

Digibuyer

Serverless Python lambda to search for specific Digimon memorabilia for my wife.

4:08|
2023
▶ OPEN MANUAL
06

Enterprise App Modernization

Long term modernization of a large enterprise app including migrations, framework, frontend architecture.

8:30|
2018-24
▶ OPEN MANUAL
07

Enterprise App New UI

New UI design and component system for a large enterprise app while continuing to ship features.

5:55|
2023
▶ OPEN MANUAL
08

Enterprise App Data Portability

Runtime import / export and migration tools allowing application data sharing.

7:22|
2019-24
▶ OPEN MANUAL
09

Yardbolt

Security event query fabric to connect to 40+ different defense tools.

6:18|
2019-21
▶ OPEN MANUAL
thebleucheese
TAXII 2 Server Service Manual
P. 1 / 3

TAXII 2 Server

2017

This project was a server implementing the TAXII 2 spec for sharing cyber threat intelligence (STIX objects). It began as a way to learn Node.js and MongoDB, and once it was moved to a work project, we started using it to share actionable adversary simulation content over STIX via TAXII.

Fig. 1: Functional Overview

TAXII 2 Server architecture: Node.js REST server, streaming import queue, STIX validator, and Vue management UI ⤢ ZOOM

I decided to learn Node around Node 8 and this was a good project for it. I added a few cool things like an async job queue for uploading / importing data since STIX objects can get big. I built out validation and a management UI that weren't part of the spec. Once this moved to a work project we started building out a roles system and a review process for approving content changes. We had a few different teams interested in this internally, but eventually the content delivery mechanism for our adversary simulation work changed requirements and other interested parties left so the project was archived.

One of the things that initially surprised me was how fractured CTI was (and continues to be). I think we share indicators decently well, but nobody outside of MITRE was sharing full STIX-ified records of attacks. I realize that this thinking was naive in that the level of effort to structure data in this way is high and more commonly threat intelligence reports are in natural language. Attack Flow attempted to solve some of this but uptake is limited and I think the verbosity and academic nature have led to only the most devoted teams sticking with it.

Specifications

TechNode, Express, Mongoose
DatabaseMongoDB
SpecTAXII 2.0 / STIX
QueueBull (Redis)
Validationajv, STIX 2.0 schemas
Year2017
SourceOpen Core (GitHub) - everything but the core taxii 2 spec is proprietary work-only

Notes

Interesting Stuff

  • Like the Unfetter TAXII server, the same URL serves TAXII JSON to a client or an HTML page if you hit it in a browser
  • Imports go through a Bull queue on Redis and stream the JSON so big STIX bundles don't cause I/O problems
  • Validation is a separate package so we could open source the core"
  • Every API root gets its own Mongo db so we could have separate instances of TAXII and AuthZ accordingly

Screens & Reference

References