iTop-br-isms

iTop ISMS Extension

A lightweight Information Security Management (ISMS) extension for iTop that adds Assets, Risks, Controls and their relations - including inherent/residual/target risk evaluation, aggregation of control effects, validations, and tidy UI presentations.

Tested with recent iTop 3.2 lines.


Features


Installation

  1. Copy the extension folder (e.g. br-isms/) into your iTop extensions/ directory.
  2. (Optional) Add global config (see Configuration).
  3. Run the iTop setup (web installer or CLI) to update the DB model.
  4. Clear cache if needed; log in and assign profiles/rights as appropriate.

Configuration

Global default for risk control aggregation (per-risk can override):

// in config-itop.php
'isms_risk_aggregation_mode' => 'max', // 'max' or 'sum_capped'

Data Model (Overview)

ISMSAssetType

ISMSAsset

stateDiagram-v2
  [*] --> draft

  draft --> published: ev_publish
  published --> draft: ev_draft
  published --> obsolete: ev_obsolete
  obsolete --> draft: ev_reopen

ISMSRisk

stateDiagram-v2
  [*] --> draft

  draft --> published: ev_publish
  published --> draft: ev_draft
  published --> obsolete: ev_obsolete
  obsolete --> draft: ev_reopen

ISMSControl

stateDiagram-v2
  [*] --> draft

  draft --> submitted: ev_submit
  submitted --> approved: ev_approve
  approved --> implementing: ev_start_impl
  implementing --> effective: ev_mark_effective

  effective --> suspended: ev_suspend
  suspended --> effective: ev_resume

  approved --> retired: ev_retire
  implementing --> retired: ev_retire
  effective --> retired: ev_retire
  suspended --> retired: ev_retire

Risk Computation Rules


Validations & Warnings (non-blocking)

(See EvtCheckToWrite for the exact messages)


UI/Presentation


Events & Methods (high level)


User Rights

This chapter defines who is Responsible (R), Accountable (A), Consulted (C), and Informed (I) for key activities within the ISMS extension.

Legend: R = Responsible (does the work) • A = Accountable (final decision/ownership) • C = Consulted (two-way) • I = Informed (one-way)

Roles

Organization scope/visibility is governed separately from these role profiles.

Typology

Activity ISMS Manager Asset Maintainer Risk Analyst Control Maintainer Viewer
Maintain Asset Types (ISMSAssetType) A/R I I I I

Assets

Activity ISMS Manager Asset Maintainer Risk Analyst Control Maintainer Viewer
Create / update Asset (ISMSAsset) A R I I I
Publish asset (→ published) A/R I I I I
Obsolete asset (→ obsolete) A/R I I I I
Reopen asset (→ draft) A/R I I I I
Maintain supporting/supported links (lnkSupportingAssetToAsset) A R C I I

Risks

Activity ISMS Manager Asset Maintainer Risk Analyst Control Maintainer Viewer
Create / update Risk (ISMSRisk) A I R I I
Publish risk (→ published) A/R I I I I
Obsolete / reopen risk A/R I I I I
Maintain Risk ↔ Asset links (lnkISMSRiskToISMSAsset) A I R I I
Maintain Risk ↔ Control links (lnkISMSRiskToISMSControl) A I R C I
Define treatment (decision/owner/due/plan, target residual) A C R C I
Record risk acceptance (status/by/date/rationale) A/R I C I I

Controls

Activity ISMS Manager Asset Maintainer Risk Analyst Control Maintainer Viewer
Create / update Control (ISMSControl) A I I R I
Submit control (→ internal review) A I I R I
Approve control A/R I I C I
Start implementation A I I R I
Mark effective A/R I I C I
Suspend / resume A I I R I
Retire A/R I I C I

Notes


Quick Start

  1. Create an Asset Type and at least one Asset; publish it.
  2. Create a Control, move it to effective (or as your policy requires).
  3. Create a Risk:
    • Fill Context and Preliminary (pre_*)
    • Publish the risk (inherent frozen)
  4. Link the effective Control to the Risk (set link link_status = effective and effects).
  5. Observe Residual values recompute automatically.
  6. Set a Target; review warnings if inconsistencies exist.
  7. Link the Risk to relevant Assets.

Roadmap / Next steps


Compatibility & Notes


Localization


Contributing

PRs and issues welcome. Please:


License

TBD


Credits

Built with ❤️ for iTop admins who run an ISMS and want a pragmatic, automation-friendly data model without the bloat.