SYSTEM ATLASЗагрузка материала

TOCTOU

Time-of-Check to Time-of-Use

Состояние меняется между проверкой и использованием.

Простыми словами

Например, команда замечает симптомы «TOCTOU», но лечит каждый случай отдельно. Более устойчивый вариант — команда устраняет механизм «TOCTOU» через изменение границ, стимулов или ответственности. Поэтому главное - заранее ограничить возможный ущерб и проверить, что лишний доступ или опасный ввод не проходят незаметно.

Механизм действия

Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.

Пример в работе

Нерабочий подход

Исправлять отдельные проявления «TOCTOU» по одному, не проверяя, нет ли у них общей причины.

Системный подход

Если «TOCTOU» действительно объясняет проблему, менять не отдельный симптом, а сам механизм — например границы, стимулы или распределение ответственности.

Ограничения

«TOCTOU» объясняет только часть происходящего в области «Безопасность». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.

Источник

Matt Bishop; Michael Dilger. Checking for Race Conditions in File Accesses (1996).

Первоисточник