Apologies! Your web browser lacks required capabilities. Please consider upgrading it or switching to a more modern web browser.
Initializing. Please wait…
<p>Monday, 09:10. You are supporting a university research programme. A project coordinator reports that a spreadsheet containing participant-level study data was shared yesterday using a link that may have allowed access beyond the intended research team.</p><h3>What you know</h3><ul class="scenario-list"><li>The spreadsheet contains participant IDs, age bands, study site, visit dates and free-text notes.</li><li>Names and direct contact details are stored elsewhere and are not in this file.</li><li>The link was created for a collaborator who could not access the normal project workspace.</li><li>The coordinator believes the link may have been set to 'anyone with the link'.</li><li>The research team has a meeting with an external partner tomorrow afternoon.</li></ul><p>You have 48 hours to establish what happened, reduce any continuing exposure, and recommend proportionate next steps.</p><div class="scenario-action">[[Begin the assessment->Verify the Exposure]]</div><p>Which actions do you take first? You may select more than one.</p><label class="scenario-option"><input type="checkbox" class="scenario-multi" data-choice="check_the_sharing_permissions_and_link_settings"><span>Check the sharing permissions and link settings</span></label><label class="scenario-option"><input type="checkbox" class="scenario-multi" data-choice="review_the_file_contents_and_sensitivity"><span>Review the file contents and sensitivity</span></label><label class="scenario-option"><input type="checkbox" class="scenario-multi" data-choice="ask_the_coordinator_who_received_or_forwarded_the_link"><span>Ask the coordinator who received or forwarded the link</span></label><label class="scenario-option"><input type="checkbox" class="scenario-multi" data-choice="immediately_delete_the_spreadsheet_without_checking_the_sharing_record"><span>Immediately delete the spreadsheet without checking the sharing record</span></label><label class="scenario-option"><input type="checkbox" class="scenario-multi" data-choice="assume_no_one_else_accessed_it_and_continue_normal_work"><span>Assume no one else accessed it and continue normal work</span></label><button class="scenario-continue" onclick="ScenarioEngine.submitMulti(this, 'Verification Results', JSON.parse(this.dataset.spec), 'selected-total', '', '')" data-spec="[{"id": "check_the_sharing_permissions_and_link_settings", "label": "Check the sharing permissions and link settings", "cost": 1.0, "onchoose": "permissionsChecked=true; judgement+=5"}, {"id": "review_the_file_contents_and_sensitivity", "label": "Review the file contents and sensitivity", "cost": 2.0, "onchoose": "contentsReviewed=true; judgement+=5"}, {"id": "ask_the_coordinator_who_received_or_forwarded_the_link", "label": "Ask the coordinator who received or forwarded the link", "cost": 2.0, "onchoose": "recipientsChecked=true; communication+=3"}, {"id": "immediately_delete_the_spreadsheet_without_checking_the_sharing_record", "label": "Immediately delete the spreadsheet without checking the sharing record", "cost": 1.0, "onchoose": "deletedEarly=true; judgement-=4"}, {"id": "assume_no_one_else_accessed_it_and_continue_normal_work", "label": "Assume no one else accessed it and continue normal work", "cost": 0.0, "onchoose": "assumedSafe=true; judgement-=8"}]">Continue</button><<if $permissionsChecked>><p>The sharing record confirms that the link was configured for anyone with the link. The setting has been active for approximately 19 hours.</p><<else>><p>You still do not know whether the link could be opened outside the intended team.</p><</if>><<if $contentsReviewed>><p>The file contains 186 participant rows. Several free-text notes contain combinations of rare conditions, dates and locations that could increase re-identification risk.</p><</if>><<if $recipientsChecked>><p>The coordinator sent the link to one named collaborator. The collaborator confirms opening it once and says they did not forward it.</p><</if>><<if $deletedEarly>><p>The file is no longer available through the link, but deleting it before preserving the sharing information has made parts of the audit trail harder to reconstruct.</p><</if>><div class="scenario-action">[[Continue to containment->Containment]]</div><p>What do you do now?</p><div class="scenario-action">[[Disable the public link and preserve the sharing/audit information->Containment Result][$linkDisabled=true; $auditPreserved=true; $containment+=12]]</div><div class="scenario-action">[[Move the file into the approved project workspace and restrict access->Containment Result][$movedSecurely=true; $containment+=8]]</div><div class="scenario-action">[[Leave the link active until the collaborator confirms they have finished->Containment Result][$linkLeftActive=true; $containment-=8]]</div><<if $linkDisabled>><p>The unrestricted link is disabled. No further access through that link is possible.</p><<else>><p>The original sharing route may still be available.</p><</if>><<if $auditPreserved>><p>The available audit information is preserved for review.</p><</if>><div class="scenario-action">[[Continue to assess impact->Impact Assessment]]</div><p>You need enough evidence to judge the seriousness of the incident.</p><div class="scenario-action">[[Review available access logs->Impact Findings][$logsReviewed=true; $judgement+=6]]</div><p>You cannot make a proportionate impact assessment without confirming both the sharing configuration and the nature of the data.</p><div class="scenario-action">[[Return to verification->Verify the Exposure]]</div><p>The available logs show the intended collaborator accessed the file once. There is no evidence of additional authenticated access, but the public-link configuration means the logs cannot prove that no other person viewed or downloaded the file.</p><<if $recipientsChecked>><p>The collaborator's account is consistent with the logged access and they confirm deleting their local copy after being contacted.</p><</if>><p>What is your assessment?</p><div class="scenario-action">[[Treat this as a confirmed high-impact breach with evidence of widespread disclosure->Response Decision][$highImpact=true; $judgement-=5]]</div><div class="scenario-action">[[Treat this as a potential data incident requiring formal review, with uncertainty about wider access->Response Decision][$proportionateAssessment=true; $judgement+=10]]</div><div class="scenario-action">[[Close the matter because there is no proof of additional access->Response Decision][$closeEarly=true; $judgement-=10]]</div><p>Choose the next actions. More than one may be appropriate.</p><label class="scenario-option"><input type="checkbox" class="scenario-multi" data-choice="escalate_through_the_organisation_s_data_incident_process"><span>Escalate through the organisation's data-incident process</span></label><label class="scenario-option"><input type="checkbox" class="scenario-multi" data-choice="document_the_known_facts_uncertainty_and_containment_actions"><span>Document the known facts, uncertainty and containment actions</span></label><label class="scenario-option"><input type="checkbox" class="scenario-multi" data-choice="tell_the_external_partner_that_a_serious_breach_definitely_occurred_before_internal_assessment"><span>Tell the external partner that a serious breach definitely occurred before internal assessment</span></label><label class="scenario-option"><input type="checkbox" class="scenario-multi" data-choice="say_nothing_and_wait_to_see_whether_anyone_complains"><span>Say nothing and wait to see whether anyone complains</span></label><button class="scenario-continue" onclick="ScenarioEngine.submitMulti(this, 'Communication Result', JSON.parse(this.dataset.spec), 'selected-total', '', '')" data-spec="[{"id": "escalate_through_the_organisation_s_data_incident_process", "label": "Escalate through the organisation's data-incident process", "cost": 2.0, "onchoose": "escalated=true; communication+=10"}, {"id": "document_the_known_facts_uncertainty_and_containment_actions", "label": "Document the known facts, uncertainty and containment actions", "cost": 2.0, "onchoose": "documented=true; communication+=8"}, {"id": "tell_the_external_partner_that_a_serious_breach_definitely_occurred_before_internal_assessment", "label": "Tell the external partner that a serious breach definitely occurred before internal assessment", "cost": 1.0, "onchoose": "prematureMessage=true; communication-=6"}, {"id": "say_nothing_and_wait_to_see_whether_anyone_complains", "label": "Say nothing and wait to see whether anyone complains", "cost": 0.0, "onchoose": "noEscalation=true; communication-=12"}]">Continue</button><<if $escalated && $documented>><p>The incident team receives a concise record of what is known, what remains uncertain, and what has already been done.</p><</if>><<if $prematureMessage>><p>The external partner asks for details supporting the claim of a serious breach. The team cannot yet substantiate the statement.</p><</if>><div class="scenario-action">[[Continue to final review->Final Review]]</div><<set $total = $judgement + $containment + $communication>><<set $total = Math.max(0, Math.min(100, $total))>><!-- CriticalAction :: linkDisabled --><!-- GradeCap :: if=NOT linkDisabled | max=50 --><p>You present your recommendation 48 hours after the initial alert.</p><<if $linkDisabled && $proportionateAssessment && $escalated && $documented && $total>=65>><h3>Controlled and proportionate response</h3><<elseif $linkDisabled && $total>=40>><h3>Contained but incomplete response</h3><<else>><h3>Outcome</h3><</if>><p>The unrestricted sharing route was closed, the evidence was preserved, uncertainty was acknowledged, and the incident was escalated through the appropriate process. The review can now determine any further notification or participant actions on the basis of evidence rather than assumption.</p><<script>>ScenarioEngine.feedback("good", "Strong incident response balances rapid containment with evidence preservation and proportionate escalation.");<</script>><p>The immediate exposure was reduced, but weaknesses in evidence gathering, communication or assessment make the final response less reliable. The incident team asks for additional reconstruction before closing the case.</p><<script>>ScenarioEngine.feedback("info", "Containment is essential, but it is only one part of a defensible incident response.");<</script>><p>The response leaves important uncertainty unresolved or fails to close the unrestricted sharing route promptly. The organisation must now reconstruct the incident with less reliable information and potentially greater exposure.</p><<script>>ScenarioEngine.feedback("bad", "Delayed containment or unsupported assumptions can turn a manageable incident into a larger governance problem.");<</script>>