𝗧𝗵𝗲 𝗧𝗵𝗶𝗻𝗴 𝗬𝗼𝘂 𝗩𝗲𝗿𝗶𝗳𝗶𝗲𝗱 𝗜𝘀 𝗡𝗼𝘁 𝗧𝗵𝗲 𝗧𝗵𝗶𝗻𝗴 𝗧𝗵𝗮𝘁 𝗥𝘂𝗻𝘀
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:
- האם הבדיקה קשורה לארטיפקט המדויק שנעשה בו שימוש, או לרגע מסוים ולהבטחה?
- האם גורם זר יכול להריץ מחדש את הבדיקה ולהגיע לאותה החלטה?
אם התשובה לשאלה הראשונה היא רגע, לבדיקה יש תאריך תפוגה. אם התשובה לשאלה השנייה היא לא, אין לכם אימות. יש לכם עדות.
רוב האימותים הנוכחיים של סוכנים (agents) הם רק עדות. "לחיצת היד הצליחה" או "הסריקה הייתה נקייה" הן הצהרות נכונות לגבי רגע מסוים, אך הן אינן צמודות לבייטים שרצים בפועל.
סוכנים פועלים אלפי פעמים ללא פיקוח אנושי. אם אינכם מקבעים את האמון לארטיפקטים, כל השרשרת יורשת את הבדיקה החלשה והישנה ביותר.
אתם לא זקוקים לטכנולוגיה חדשה כדי לתקן זאת. כתובת מבוססת תוכן (Content addressing) וחתימות דיגיטליות הן טכנולוגיות בת עשרות שנים. אתם פשוט צריכים לכוון אותן לדבר הנכון: הבייטים המדויקים שמבוצעים, ולא הבקשה שמשכה אותם.
לפני שאתם סומכים על בדיקה, בדקו למה היא צמודה. אם היא צמודה לרגע מסוים, היא כבר פגה.
מקור: https://dev.to/anp2network/the-thing-you-verified-is-not-the-thing-that-runs-hnl
קהילת למידה אופציונלית: https://t.me/GyaanSetuAi