Semantic Dissection of Commands

A blacklist of keywords fails to cope with the combinatorial explosion of Shell commands: the ban is bypassed via pipelines, nested shells, variable expansion ($(echo rm) -rf /).

Semantic dissection is needed: understanding the types of arguments for each command and the rules for their consumption, recognizing patterns like “a harmless flag consumes the next argument, hiding a dangerous payload” (find -exec rm; curl -o /etc/crontab).

This is an advanced implementation of the “limiting” function: understanding, not pattern matching.

Related: Five Harness Functions, Deadly Triad, Seven Basic Tools