# AI Security ### Similarities and Differences in Vulnerabilities ## Overview ### About * Comparing traditional and AI vulnerabilities * Core failure: trusting user input * Blurred lines between functionality and data Notes: It's time to look at the similarities and differences in vulnerabilities between AI systems and traditional software. We will cover how traditional vulnerabilities and AI security concerns align and diverge, and why this matters for development. ## Similarities ### Trusting User Input * Strong similarities between traditional and AI vulnerabilities * Both usually stem from a common failure * The golden rule: **never trust user input** Notes: There are strong similarities between traditional vulnerabilities and AI security concerns. Both often stem from the exact same core failure: failing to "never trust user input". ## Differences ### Traditional Injection * Evaluated in a strictly interpreted context * e.g., SQLi or Command Injection * Clear syntactic boundary between code and data Notes: Traditional injection vulnerabilities happen when user-influenced data is evaluated in a strictly interpreted context. Unlike AI, traditional injection flaws involve crossing the syntactic boundary between code and data. ### AI Vulnerabilities * Models process inputs non-deterministically * Instructions and data passed as natural language * No syntactic separation Notes: However, the primary difference is the blurred lines between functionality and data in the case of AI. AI models process inputs non-deterministically, and instructions and user data are both passed as natural language. This lack of strict syntactic separation makes AI vulnerabilities fundamentally different and harder to mitigate with traditional rules. ## Epilogue ### Summary * Both share the failure of trusting user input * Traditional flaws have clear code/data boundaries * AI vulnerabilities lack strict syntactic separation Notes: To summarize, while AI and traditional software share the fundamental security failure of trusting user input, AI's processing of natural language removes the clear syntactic boundaries we rely on in traditional software development.