Repository navigation
Release 0.10.0: risk register, logs for the SIEM, steering dashboard - #62
Merged
Merged
Conversation
… from baselines Each asset gets the threats of a 30-entry catalogue (MITRE ATT&CK, ENISA Threat Landscape, EBIOS RM risk sources) that fit its type, exposure, criticality, ports, system and vulnerabilities, and the threat landscape of its IS. Each risk sits on a configurable matrix (3x3 to 5x5) before and after the requirements applied from the ANSSI hygiene guide, NIST CSF 2.0, CIS Controls v8.1, ISO 27001 Annex A or custom baselines, with a decision per risk. A Risks view shows the register of an IS. The risk settings are a new shared document kind (PUT /api/risk), kept in the history, proposals, export and import. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ke7yEW5dhDYFVpV2cdgs87 Signed-off-by: Claude <noreply@anthropic.com>
The matrix keeps one grid for every asset, so risks compare across the register, but the highest acceptable level can now differ by criticality (only low on critical assets, by default) and an asset can set its own. A risk is open when it is above the threshold of its asset and not accepted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ke7yEW5dhDYFVpV2cdgs87 Signed-off-by: Claude <noreply@anthropic.com>
…merged, logs for the SIEM - The 2D plan of an asset lists, under its firewall rules, the requirements that address its risks, by baseline, with their status. - The Risks view gets tabs. Baselines: turn baselines on, order them, and merge the requirements that overlap between them (same threats, similar wording); one per group stands for the others, chosen by a criterion (most demanding, widest coverage, best fit for the map, preferred baseline) or by hand. - Logs for the SIEM: per asset, the log sources it has and the events of the threats that apply to it, at the verbosity its residual risk calls for, with the setting to apply; a SIEM onboarding plan as CSV. - The 3D model is no longer drawn while a lens covers it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ke7yEW5dhDYFVpV2cdgs87 Signed-off-by: Claude <noreply@anthropic.com>
A click on a plate, in the 3D model or the 2D diagram, hides the other VLANs, their assets and the flows to them, and flies to the plate. A bar names the VLAN; "Show every VLAN", Escape or a second click brings back the VLANs shown before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ke7yEW5dhDYFVpV2cdgs87 Signed-off-by: Claude <noreply@anthropic.com>
A click where there is nothing (in 3D or in the 2D diagram) brings every VLAN back, and the view returns to where it was before, zooming out as it zoomed in. In the 2D diagram, showing a VLAN alone now zooms on its plate too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ke7yEW5dhDYFVpV2cdgs87 Signed-off-by: Claude <noreply@anthropic.com>
Exposure to the Internet, the age of open vulnerabilities against remediation deadlines, owner coverage and scan coverage, over 12 weeks, 6 months or 12 months, for the whole map or one IS. The server measures them on the map as it was at the end of each period, rebuilt from its history (GET /api/kpi), and dates each vulnerability from the first version where it appears. A browser-only map keeps a snapshot a day; the demo comes with a year of past. Prints to PDF, exports as CSV. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ke7yEW5dhDYFVpV2cdgs87 Signed-off-by: Claude <noreply@anthropic.com>
A click on an asset, in 3D or in the 2D diagram, or a search, brings the view close to it. The asset glows in the accent colour with a breathing ring under it (a pulsing halo in 2D). Closing its sheet or clicking an empty space zooms back out to the view from before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ke7yEW5dhDYFVpV2cdgs87 Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ke7yEW5dhDYFVpV2cdgs87 Signed-off-by: Claude <noreply@anthropic.com>
Changelog, version numbers, supported versions, README, documentation and site: incident mode with Muster, the risk register with baselines, logs for the SIEM, the steering dashboard, and the map's new navigation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ke7yEW5dhDYFVpV2cdgs87 Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ke7yEW5dhDYFVpV2cdgs87 Signed-off-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
Everything tried on the test artifact since 0.9.0, then the version set to 0.10.0. Commit by commit:
Risk register (a new Risks view of an IS, and Risks on every asset sheet):
risk(PUT /api/risk, approvers), kept in the history, proposals, export and import. Treatments are saved on the asset (risk), and the IS landscape on the IS (landscape).Overlapping requirements merged (Risks › Baselines, large view). One requirement per group is kept, chosen by a criterion (most demanding, widest coverage, best fit for the map, preferred baseline) or by hand.
Logs for the SIEM, per asset and as an onboarding plan for the IS:
The 2D plan of an asset lists the requirements against its risks, by baseline, under its firewall rules.
Dashboard and KPIs for a steering committee, measured on the server from the history (
GET /api/kpi):It covers 12 weeks, 6 months or 12 months, prints to PDF and exports as CSV.
On the map:
Performance: the 3D model is no longer drawn under a lens or the 2D diagram.
Release 0.10.0:
package.json,docker-compose.yml, the interface and the docs footers;New modules, all pure and tested in Node:
public/risk.js,public/baselines.js,public/logs.js,public/kpi.js. The server loadskpi.jsto measure.How to check it
npm test: 97 tests pass, including the newtests/risk.test.mjsandtests/kpi.test.mjs, and the API tests for/api/riskand/api/kpi.npm run test:e2e: 3 walk-throughs pass locally. The third covers:npm run build:onlinebuilds the one-page version tested on the artifact.npmDepsHash, I will push it to this PR.After merging: Actions › Release › Run workflow on
main. It creates thev0.10.0tag, then waits for a maintainer's approval.The Solid checklist
git commit -s, see DCO)Generated by Claude Code