Skip to content

# L3a: L4 Whitelist Hook ​

Implement a production-grade L4 security whitelist hook.

Module: M3 Safety & Security
Est. Time: 60 min
Files: `starter.py`, `solution.py`

## Objective ​

Block ALL bash commands except 10 safelisted patterns. This prevents the L3 marque break (agent writing and running scripts).

## Concepts ​

- L4 whitelist (architectural security)
- Regex pattern matching
- Compound shell operator detection
- Defense in depth

## Starter ​

bash

    cd course/labs/L3-whitelist-hook/
    python starter.py

The starter has:

1. A safelist patterns list (currently empty)
2. A compound operators detector (currently empty)
3. A whitelist check function (currently TODO)
4. Test cases for both ALLOWED and BLOCKED commands

## Solution ​

bash

    python solution.py

## Key Design Rules ​

1. Pin specific scripts: `^npm test$` not `^npm .*$`
2. Never pattern-match an interpreter: `^python .*$` allows running any script
3. Block compound operators before regex
4. Audit log all blocks

## Test Cases ​

    npm test          → ALLOW
    git status        → ALLOW
    rm -rf target/    → BLOCK
    python cleanup.py → BLOCK (L3 marque break)
    npm test && rm -rf / → BLOCK (compound operator)