Wiki source code of Risk Methodology
Last modified by Lee Pedley on 2026/09/21 21:59
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | {{velocity}} | ||
| 2 | #set ($settingsDoc = $xwiki.getDocument('ISMS.Settings')) | ||
| 3 | #set ($settings = $settingsDoc.getObject('ISMS.Code.SettingsClass')) | ||
| 4 | #set ($riskLowMax = 4) | ||
| 5 | #set ($riskMediumMax = 9) | ||
| 6 | #set ($riskHighMax = 14) | ||
| 7 | #set ($riskAppetite = 15) | ||
| 8 | #set ($reviewHorizon = 30) | ||
| 9 | #set ($evidenceHorizon = 30) | ||
| 10 | #set ($documentHorizon = 30) | ||
| 11 | #if ($settings) | ||
| 12 | #if ($settings.getProperty('riskLowMax').getValue()) #set ($riskLowMax = $settings.getProperty('riskLowMax').getValue()) #end | ||
| 13 | #if ($settings.getProperty('riskMediumMax').getValue()) #set ($riskMediumMax = $settings.getProperty('riskMediumMax').getValue()) #end | ||
| 14 | #if ($settings.getProperty('riskHighMax').getValue()) #set ($riskHighMax = $settings.getProperty('riskHighMax').getValue()) #end | ||
| 15 | #if ($settings.getProperty('riskAppetiteThreshold').getValue()) #set ($riskAppetite = $settings.getProperty('riskAppetiteThreshold').getValue()) #end | ||
| 16 | #if ($settings.getProperty('reviewHorizonDays').getValue()) #set ($reviewHorizon = $settings.getProperty('reviewHorizonDays').getValue()) #end | ||
| 17 | #if ($settings.getProperty('evidenceHorizonDays').getValue()) #set ($evidenceHorizon = $settings.getProperty('evidenceHorizonDays').getValue()) #end | ||
| 18 | #if ($settings.getProperty('documentHorizonDays').getValue()) #set ($documentHorizon = $settings.getProperty('documentHorizonDays').getValue()) #end | ||
| 19 | #end | ||
| 20 | {{html wiki="true" clean="false"}} | ||
| 21 | <style>.risk-matrix{border-collapse:collapse;max-width:760px}.risk-matrix th,.risk-matrix td{border:1px solid #cfd6dd;padding:10px;text-align:center}.risk-matrix td{font-weight:600}.method-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin:18px 0}.method-card{border:1px solid #d9dfe5;border-radius:7px;padding:15px}</style> | ||
| 22 | <div class="box infomessage"><strong>Risk methodology</strong><br/>This application uses a configurable 5 x 5 management model. It is a local methodology, not a prescribed ISO/IEC 27001 scoring method.</div> | ||
| 23 | <div class="method-grid"><div class="method-card"><h3>Likelihood (1-5)</h3><ol><li>Rare</li><li>Unlikely</li><li>Possible</li><li>Likely</li><li>Almost certain</li></ol></div><div class="method-card"><h3>Impact (1-5)</h3><ol><li>Insignificant</li><li>Minor</li><li>Moderate</li><li>Major</li><li>Severe</li></ol></div><div class="method-card"><h3>Configured bands</h3><p>Low: score <= $riskLowMax<br/>Moderate: <= $riskMediumMax<br/>High: <= $riskHighMax<br/>Critical: > $riskHighMax<br/>Residual risk review threshold: >= $riskAppetite</p><p><a href="$xwiki.getURL('ISMS.Settings','edit')">Edit thresholds</a></p></div></div> | ||
| 24 | <h2>5 x 5 score matrix</h2> | ||
| 25 | <table class="risk-matrix"><thead><tr><th>Impact / Likelihood</th>#foreach($l in [1,2,3,4,5])<th>$l</th>#end</tr></thead><tbody> | ||
| 26 | #foreach($i in [5,4,3,2,1])<tr><th>$i</th>#foreach($l in [1,2,3,4,5])#set($s=$i*$l)<td>$s<br/><small>#if($s <= $riskLowMax)Low#elseif($s <= $riskMediumMax)Moderate#elseif($s <= $riskHighMax)High#else Critical#end</small></td>#end</tr>#end | ||
| 27 | </tbody></table> | ||
| 28 | <h2>How to use the risk record</h2><ol><li>Describe the asset/process, threat and vulnerability.</li><li>Assess inherent likelihood and impact before treatment.</li><li>Select a treatment decision and link relevant controls.</li><li>Create treatment records for mitigation actions.</li><li>Assess residual likelihood and impact after considering treatment.</li><li>Use status and target date to manage the lifecycle; accepted risk should reflect an authorised decision under your governance process.</li></ol> | ||
| 29 | {{/html}} | ||
| 30 | {{/velocity}} |