Skip to content
TsakmakTsakmak

Flagship

ITSRM2+

Security risk assessment aligned with ITSRM2, extended for AI and supply chain risks.

In development
Status
In development
Platforms
Web
Hosting
Self-hosted on my own server in Greece (EU), traffic through Cloudflare

The problem

A formal information security risk assessment is often done in a spreadsheet. Rows are copied by hand, ratings and mitigation effects are looked up manually, and the reference spreadsheet caps an assessment at 20 primary assets and 5 measures per risk. The base threat catalogue predates AI systems and modern software supply chain attacks, and risk is expressed only as levels, not as money. Regulation such as NIS2 or DORA usually becomes a separate paper exercise next to the assessment.

I built ITSRM2+ for my own use while working on risk assessment projects. I wanted to learn the methodology in depth, and to have my own tool where I can add new threats and new measures, adapt them and suggest additions on each project. I also wanted a wiki that explains every element and how it works in the background, so the tool teaches me something about cybersecurity every day.

What it does

ITSRM2+ guides you through a complete, documented risk assessment aligned with the publicly available ITSRM2 methodology. You describe the system, value what matters, generate risk scenarios, choose and apply security measures, and publish a frozen version with its register and reports. On top of the base method it adds AI and supply chain threats, compliance packs that turn regulation into required measures, and estimates of financial exposure next to the qualitative risk levels. Its structure is similar to GovSec, the official tool, so work done in ITSRM2+ is easy to transfer there.

How it works

  1. Scope

    Create an assessment, choose an impact vocabulary (institutional, private sector or public sector), and describe the system, security roles, constraints and risk acceptance criteria. Optionally attach a compliance pack, which pre-loads the measures it requires.

  2. Value and model

    Add primary assets (datasets and business functions), value them on confidentiality, integrity and availability through impact scenarios, then add and link the supporting assets that carry them.

  3. Expose

    Generate risk scenarios from the threat library for every applicable asset and threat pair, then review and adjust them.

  4. Decide and treat

    Compare inherent and residual risk, choose Mitigate, Accept, Share or Avoid, pick measures from a ranked list of recommendations and see residual risk recalculate.

  5. Prove

    Validate the assessment against the publication rules, publish an immutable version and export the register and reports.

Methodology

The ITSRM2 methodology is public. ITSRM2+ adapts and extends it; the method itself is not mine. The workflow is built on its seven processes, grouped into six stages:

  • Scope covers P1, system security characterisation: roles, constraints, risk acceptance criteria and the organisation profile.
  • Value covers P2 and P3: primary assets and their valuation, then the supporting assets from a three level asset type hierarchy.
  • Expose covers P4 and P5: modelling the links between primary and supporting assets, then identifying risk scenarios.
  • Decide covers P6: inherent and residual risk analysis and the treatment decision.
  • Treat covers P7: selecting security measures and keeping the assessment's own measures register.
  • Prove brings it together: the overview, the financial view and the exports.

What is extended over the base method:

  • AI risks. A threat library of over 125 threats in 10 categories, up from 72 in the base catalogue, including 26 AI threats. A dedicated AI security and governance family of 20 measures, and asset types for AI models, AI agents and tool chains, training datasets and vector stores.
  • Development and supply chain risks. Threat categories for development and supply chain, application security, third party risk and modern attacks, with asset types such as source repositories, CI/CD pipelines, infrastructure as code and artifact registries.
  • Regulation as constraints. A compliance pack attached in Scope becomes a constraint that requires the mapped measures. Each requirement must be implemented or justified before the assessment can be published.
  • Financial exposure. Next to the qualitative levels, the tool gives estimates of financial exposure in EUR, shown as ranges. The internal model is not published.

Deliverables

Today ITSRM2+ is mainly for my own use and for showing a client the work done. Every output is a one click export:

  • An Excel workbook in the layout of the methodology's reference spreadsheet, with the risk register and the measures register.
  • A Word risk study report that can be generated, edited and uploaded back.
  • A CSRR style risk register (in the NIST IR 8286A style).
  • A Statement of Applicability per attached compliance pack.
  • Risk images.
  • A full JSON export of the assessment.

Key features

Guided six stage workflow

Every step of the method has its own screen, from system characterisation to publication. Asset values are backed by impact scenarios and adversary profiles, so each rating can be explained to an auditor. An asset journey view follows one primary asset from its value to its final risk verdict.

Stage 1, Scope: the system characterisation with a guide to the six stages
Stage 2, Value: primary assets with their peak inherent and residual risk
Stage 3, Expose: which supporting assets carry which primary assets
Stage 4, Decide: the risk analysis grid and treatment options
The full interface in Greek

Threat library extended for AI and supply chain

Risk scenarios are generated from a library of over 125 threats and over 130 measures that covers AI systems, software development and third party risks, not only the classic catalogue. The library is editable and versioned, so new threats and measures can be added on each project. Every threat, measure and asset type has an explanatory help card in English and Greek, searchable in a built in wiki.

A risk scenario with inherent and residual risk, treatment and applied measures
Built in wiki: every threat, measure and asset type with a help card in English and Greek
A risk scenario on a phone

Treatment workbench

For each scenario the tool ranks recommended measures, lets you apply measures from the library or your own register, and recalculates residual risk. Overrides need a stated reason. The per risk limit of 5 measures from the reference spreadsheet does not apply.

Stage 5, Treat: suggested measures for one threat, with their strength, before you apply them
Asset Journey: risk before and after treatment for every scenario on one asset

Compliance packs

Curated, versioned packs turn regulation and security standards, such as NIS2, GDPR, DORA and the EU AI Act, into required measures. Each requirement is resolved as implemented, accepted, alternative, rejected or not applicable, with a justification where needed, and a coverage view shows what is still open. 39 reference frameworks with just under 4,000 controls are loaded for mapping. A pack documents how requirements are covered; it is not a certification.

Measures register with sophistication, coverage and "Required by NIS2" tags

Overview and immutable versions

A dashboard shows a risk heatmap with inherent and residual layers, the top risks and treatment progress. When an assessment is published it becomes an immutable version, and later changes start a new version.

Overview: inherent and residual risk on one heatmap, with band counts before and after treatment
Stage 6, Prove: validation before publishing and one click exports
The overview in dark mode
  • Financial exposure next to risk levels

    Switch between the qualitative view and a monetary view of the same assessment, with no data entered twice. The monetary view shows estimates of financial exposure in EUR as ranges. This is decision support, not an insurance or actuarial product.

Security and privacy

  • Self-hosted on my own server at home in Greece (EU), on my own hardware and under my own management. Traffic passes through Cloudflare for TLS and the tunnel.
  • The app is protected by its own login page: passwords are hashed with argon2id, sessions are held on the server, and requests are protected against CSRF and rate limited.
  • Strict security headers, including a Content Security Policy that blocks framing.
  • The application makes no calls to external services at runtime and sends no telemetry. Reference data is loaded at import time only. There is no AI inside the product.
  • The database sits on an internal network and is not exposed. The application container runs as a non root user with a read only filesystem and all Linux capabilities dropped.
  • Every change is recorded in an audit log. Published assessments are frozen at both the application and the database level.
  • Automated database backups go to a separate volume.

Under the hood

A TypeScript monorepo with a Next.js web app, a PostgreSQL database and a separate calculation engine. The engine has no input or output of its own, must keep 100 percent branch coverage, and is checked against golden test cases on every build. Reference data counts are verified exactly in CI, and the test suite runs unit, integration and end to end tests. It runs as a Docker Compose stack. The interface is available in English and Greek.

Built with AI agents, reviewed by a security professional. I used both local models and third party ones. The agents make it faster to build, integrate and iterate; I set the requirements, review the result and own the security. The work was planned first (charter, roadmap, functional spec), then built task by task with role based agents and build failing checks that hold the code to the methodology's numbers. AI was used only to build the tool, never inside it.

Why build it at all: I build tools for my own use first, and building is how I learn. Security is a big part of my life, and I want to show from real practice that a small builder can ship a secure app, and that security is more than passing an audit.

Stack

  • TypeScript
  • Next.js
  • React
  • PostgreSQL
  • Prisma
  • Tailwind CSS
  • Docker

Status and roadmap

In development

In development and still being improved. All seven processes, the six stage workspace, compliance packs, bilingual help cards, an editable and versioned threat and measure library, the overview dashboard, exports and the financial view are built. ITSRM2+ is not for sale. Demos are given on request, preferably on a temporary instance with a fictional demo assessment.

Planned:

  • DPIA assistance (planned).
  • Passkeys, two factor authentication and recovery codes for the login (planned).
  • Publishing the code as open source, so others can self-host it (planned).

Who it is for

  • Companies working in an NIS2, DORA or ISO 27001 context

    a structured, documented risk assessment, delivered with ITSRM2+, that ties regulation to concrete measures.

  • Public bodies

    a methodical assessment with a public sector impact vocabulary and immutable published versions.

  • Security consultants

    once the code is open source (planned), a guided workflow they can self-host that produces a register and reports from one assessment, with no row copying.

  • Risk owners and management

    a clear view of the top risks, how treatment reduces them, and estimates of financial exposure.

Interested in ITSRM2+?

A risk assessment tool aligned with the public ITSRM2 methodology, extended with AI and supply chain threats, compliance packs and exposure estimates.