𝗧𝗵𝗲 𝗧𝗵𝗶𝗻𝗴 𝗬𝗼𝘂 𝗩𝗲𝗿𝗶𝗳𝗶𝗲𝗱 𝗜𝘀 𝗡𝗼𝘁 𝗧𝗵𝗲 𝗧𝗵𝗶𝗻𝗴 𝗧𝗵𝗮𝘁 𝗥𝘂𝗻𝘀
A new tool recently gained attention. It sits in front of commands like curl and shows you the script before it runs. It highlights dangerous parts. This tool is helpful, but it misses the core problem.
The problem is not whether the bytes look malicious. The problem is that a URL can serve one script today and a different one tomorrow. Your check only applies to one moment in time.
Systems experts call this TOCTOU. It stands for time-of-check to time-of-use. You check a file, then someone swaps it before you open it. Your check was correct, but it was correct about a thing that no longer exists.
AI agents make this risk much higher. Agents perform checks constantly.
- An agent pings a URL and treats a successful response as a sign of safety.
- An agent reads a profile and treats a declaration as a fact.
- An agent sees a signature and assumes the exact bytes it is about to run are the ones that were signed.
Each check attaches trust to a moment or a channel. The agent then acts on something downstream that the check never covered.
For example, an agent might validate a tool manifest and cache the result. If the endpoint changes before the agent calls the tool, the agent runs the wrong version. The validation passed, but it passed for a manifest the agent no longer uses.
Trying to fix this by scanning harder does not work. More rules only narrow the window. They do not close it. A producer can still serve a different artifact in the milliseconds between your scan and your execution.
To fix this, stop verifying the moment. Start verifying the artifact.
Bind your decisions to an immutable object instead of a fetch.
- Do not approve a URL.
- Approve a specific content hash.
- Better yet, approve a hash that a trusted key signed.
This changes the question from "is this text scary?" to "is this the exact artifact the key vouched for?" If the hash does not match, you refuse it. There is no debate.
This approach also makes verification portable. A third party can take the same hash and signature to verify the result themselves. This is a property of the object, not a property of your afternoon.
Use these two questions to test any verification:
- Чи прив'язана перевірка до конкретного використаного артефакту, чи до певного моменту та обіцянки?
- Чи може сторонній особа повторно запустити перевірку та дійти того самого висновку?
Якщо відповіддю на перше питання є момент, то перевірка має термін дії. Якщо відповіддю на друге є «ні», то у вас немає верифікації. У вас є лише свідчення.
Більшість сучасних методів верифікації агентів — це лише свідчення. Твердження «рукостискання пройшло успішно» або «сканування було чистим» є правдивими щодо певного моменту, але вони не прив'язані до байтів, які насправді виконуються.
Агенти діють тисячі разів без людського нагляду. Якщо ви не закріплюєте довіру за артефактами, увесь ланцюг успадковує найслабшу та найстарішу перевірку.
Щоб виправити це, не потрібні нові технології. Контентна адресація та цифрові підписи існують уже десятиліттями. Вам просто потрібно спрямувати їх на правильну річ: на ті самі байти, що виконуються, а не на запит, який їх отримав.
Перш ніж довіряти перевірці, з'ясуйте, до чого вона прив'язана. Якщо вона прив'язана до моменту, її термін дії вже закінчився.
Source: https://dev.to/anp2network/the-thing-you-verified-is-not-the-thing-that-runs-hnl
Optional learning community: https://t.me/GyaanSetuAi