FRDiscuss your project
Menu

Adrien Murillo

Learn by making decisions.

Three interactive scenarios, explained solutions and open-source resources for further workshop practice.

LAB / 3 scenarios · 3 decisions each

Your decision.

Plan a workshop ↗

Read the situation, choose an action and compare your reasoning with the debrief. Fictional learning scenarios, without diagnostics or competency ranking.

Read all scenarios and explanations

Incident & governance

An internal platform is unavailable. An administrator account shows an unusual sign-in. You are part of the decision team.

The first minutes

You do not yet know whether the outage and sign-in are related. What is your first proposal?

Bring in the accountable teams, contain the suspect account and preserve useful evidence.

Coordination helps define containment with operations. Preserving evidence supports investigation. Rebuilding everything too soon may remove useful information.

Useful evidence: Timestamps, account, affected systems and containment decision.

Pressure to restore

A backup is available. The business wants immediate recovery. What must be established?

That the backup is usable and restoration can be checked in a controlled environment.

A backup’s existence proves neither integrity nor recovery capability. Define technical and business checks, then validate the restoration result.

Useful evidence: Restoration report, integrity checks and business validation.

Accepting remaining risk

The service can restart with a temporary control. A weakness remains open. How should the decision be handled?

Have the authorized risk owner approve it with an action, an owner and a review date.

The decision belongs to the risk owner. Explicit scope, ownership and a review date make a temporary measure traceable.

Useful evidence: Dated decision, residual risk, owner and deadline.

AI assistant & permissions

A team is building an assistant that retrieves internal documents and can create tickets. You are reviewing the architecture before the pilot.

An instruction inside a document

A retrieved document tells the assistant to send its context to an external address. Which control matters first?

Treat the document as untrusted data and block unauthorized outputs and tools.

Retrieved content must not become trusted instructions. The system performing actions needs access and output controls, tested against injection scenarios.

Useful evidence: Injection test with inspection of tool calls and network egress.

The right document, the wrong person

The assistant cites a document the user is not allowed to read. Where should the control sit?

In retrieval and document access, using the user’s identity and permissions.

Filtering an answer too late may already expose data. Retrieval should enforce permissions before passing documents to the model, followed by output checks appropriate to the context.

Useful evidence: Cross-user tests with two identities and documents with different permissions.

From suggestion to action

The pilot can now modify existing tickets. What condition do you add?

Per-action authorization, human approval for sensitive effects and a change log.

Autonomy should be proportional to its effects. Specific permissions and approval for sensitive actions limit the impact of errors. Logs reveal what changed.

Useful evidence: Allowed-action matrix and a test of a rejected modification.

Rust & robustness

You are building a small Rust tool that imports configuration and calls an API. It compiles successfully. You are preparing delivery.

Unexpected input

A required value is missing from the file. Which behavior do you prepare?

An explicit, tested error without undocumented partial effects.

The compiler does not define business behavior for invalid input. An explicit error supports diagnosis. Testing this path prevents a routine failure from becoming an unexplained interruption.

Useful evidence: Invalid-input test, useful error message and non-zero exit code.

An unresponsive API

The tool is waiting for an external response. What should you specify?

A timeout, a retry strategy and which operations can safely be replayed.

The language does not define network policy. Retrying a non-idempotent action may duplicate it. Timeouts, attempt limits and failure behavior must be decided and tested.

Useful evidence: Timeout test and verification that retries do not duplicate an action.

Handover to another team

The binary works on your computer. What else do you deliver?

Source, dependency versions, instructions and tests describing the tool’s contract.

Ownership requires the ability to rebuild and verify the component. Limits and error behavior matter as much as the happy path.

Useful evidence: Build in a clean environment and documented test execution.

Keep practicing

Three open-source resources.

Resources found on GitHub for further workshop practice. They are maintained by their respective authors and are not embedded in this site.

MIT

Rustlings

Rust exercises solved with the compiler. Practice types, error handling and tests progressively.

Local setup · requires Rust and Cargo

View GitHub repository ↗
GPL-3.0

Backdoors & Breaches

A tool for facilitating incident-response simulations. Useful for discussing roles and the order of actions.

Facilitated workshop · prepare the scenario and rules

View GitHub repository ↗
MIT

OWASP Juice Shop

A deliberately vulnerable application for learning web security through challenges. Use it in an isolated lab.

Separate lab · installation required

View GitHub repository ↗

The decision game above is an original exercise for this site. The linked repositories are additional learning resources. Their code has not been copied.

Explore with clear limits

What can be verified in public.

All projects ↗

AI security is presented as documented technical exploration, without claims of professional AI engagements.

LAB / SIGNAL

Catch the signal.

A small break in the Lab. Catch the circles, avoid the crosses. Three lives, 40 seconds. No data leaves this page.

Signals 00Lives 3Seconds 40

Move with the arrow keys, A / D, or the buttons. P pauses. Escape stops.

Ready when you are.

Website assistant

Let’s find what you need.

I help you explore services, Adrien’s experience and the website resources.

Chat privacy