Skip to content

History / IOC Correlation

Revisions

  • IRIS-NG-v1.1.1: retarget from the never-tagged v1.1.0, document the advisories v1.1.0 was staged on main but never tagged, so every reference to it as the release a change shipped in was wrong. Retargeted across AI-Features, Dependency-Policy, IOC-Correlation, Changelog and Kubernetes. Changelog gains the two UI dependency advisories cleared in v1.1.1 (brace-expansion, socket.io-parser) and links the release. Kubernetes: chart 0.5.1, appVersion IRIS-NG-v1.1.1, pull commands updated.

    @zach115th zach115th committed Aug 5, 2026
  • Correlation scoring rewrite, AI troubleshooting, dependency policy Changelog: adds IRIS-NG-v1.0.2, and IRIS-NG-v1.1.0 marked pending release. Records that IRIS-NG-v1.0.3 was never released — the version was staged on main but no tag, release or images were produced, so nothing shipped under that number and its changes land in v1.1.0. IOC Correlation: the scoring sections described algorithms that no longer match the code, and the how-it-works step repeated a misconception the control's own label encouraged — that "Min shared IOCs" counts cases an indicator appears in. It counts indicators a case PAIR must share. Rewritten to state that plainly, with the consequence spelled out: an indicator's fate is decided by its neighbours, not by itself, so two indicators each present in exactly two cases can be treated differently. Decay and confidence rewritten to match what ships in v1.1.0 — tags scale the half-life rather than the score, age comes from the most recent sighting, TLP no longer participates, and confidence weighs rarity and credibility rather than counting indicators. Flags that figures will read lower than earlier releases, which is a real change analysts will notice. AI Features: per-surface timeout table replacing the stale 60-90s note, plus a Troubleshooting section covering the three failures that are hard to tell apart — an unrecognised model identifier, a model declining security content, and a timeout — since before v1.1.0 all three displayed the same JSON parse error. New Dependency Policy page: why PostgreSQL, jQuery, Node, marshmallow and the report generator stack are held back, and how to verify a dependency change. A green build is not evidence a Python upgrade worked; the pkg_resources case is the reference example, where the image builds cleanly and the application dies at startup.

    @zach115th zach115th committed Aug 5, 2026
  • Add MISP Cluster Publishing page; document module config drift fix New page: MISP Cluster Publishing — the IrisMISPCluster module. Covers why the trigger is an explicit button rather than a hook, the mapping of each content type to the MISP structure that models it (narrative to Event Report, linked notes to analyst Notes on their indicator, ioc_description to the attribute comment, tags, campaign galaxy), and why the full typed pair list is used rather than the 20-value display cap. Documents the redaction model in full: terms derived on every push from every client name in the instance plus the cluster's case names, the stoplist that preserves incident and sector vocabulary (sector language is the shareable context the narrative prompt deliberately produces), IOC values never being redacted because a lookalike domain is the intelligence, and the honest limit — term matching is not named-entity recognition, so possible_unredacted_names exists to surface what the heuristics cannot derive. Development Guide: two new gotchas. - Module config schemas are frozen at first registration. Adding a parameter never reached an existing install, and an incomplete stored entry raised KeyError in is_mod_configured(), surfacing as a 500 on /manage/modules/list and an opaque DataTables Ajax error with no clue to the cause. Documents the boot-time reconciliation that now fixes it, and the complete-entry rule for anyone hand-editing module_config. - MISP analyst-data returns a misleading 403 for two undocumented shape requirements: the body must be wrapped as {"Note": {...}}, and distribution must be 0-3 because analyst data rejects "inherit event". Home, MISP Integration, IOC Correlation, API Reference and Changelog updated with the new page, the Push to MISP button and the misp-push endpoint.

    @zach115th zach115th committed Jul 31, 2026
  • Document manual override of AI summary and cluster narrative AI Features: new "Manual override" section covering the shared mechanics - the three case_ai_artifact columns, display_content/is_edited, the serializer's content vs ai_content split, the HTTP 409 regeneration guard and why it lives in the endpoint rather than the browser, provenance and revert, a per-surface comparison table, and a four-step recipe for extending it to another cached AI surface without a migration. IOC Correlation: "Correcting a narrative by hand" under the cluster narrative section, plus a note in the STIX section that edits are exported - a corrected title becomes campaign.name and corrected prose becomes campaign.description, with the caveat that the v2 prompt's entity-name prohibition constrains model output, not text an analyst types. Corrected the CaseAiArtifact field-name note to mention display_content. Development Guide: new gotcha for response_api_error() - its second positional is `data`, not a status code, and it always emits 400, so several existing calls that pass 503 are really 400s carrying data:503. Documents building the body via response() when another status is needed. API Reference, endpoint tables and Home updated with the four new routes and the discard_edit parameter.

    @zach115th zach115th committed Jul 31, 2026
  • [FIX] Correlation: fix duplicate AI cluster narrative section; merge entity-name prohibition into first section; consolidate STIX export docs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    @zach115th zach115th committed Jul 19, 2026
  • [ADD] wiki: STIX export + cluster narrative v2 + marshmallow empty-string gotcha + timeline dedup section - IOC-Correlation.md: add STIX 2.1 export section (GET /clusters/<id>/stix), AI narrative enrichment in STIX bundles, CaseAiArtifact field name gotcha (art.content not art.artifact_content; generated_at not created_at), cluster narrative prompt v2 entity-name prohibition; add STIX endpoint to the table - AI-Features.md: update AI cluster narrative entry with prompt v2 constraint and STIX safety note - Development-Guide.md: add marshmallow Integer empty-string gotcha (convert "" to null before JSON.stringify for nullable numeric fields in settings forms) - Dual-Timeline.md: add Deduplication section (exact + near-dup, endpoints, FK cleanup load-bearing rule, no-migration deploy)

    @zach115th zach115th committed Jul 19, 2026
  • Add initial wiki (11 pages)

    @zach115th zach115th committed Jun 29, 2026