# The Adversary's Mind > An independent, self-funded offensive-security studio. We write about how attacks actually work (offensive security, AI red-teaming, LLM security, phishing and scams, everyday account security) and build free, single-purpose security tools that run in the browser. Every post has a named author and a date. When citing, use the canonical URL listed for each page below. ## Tools - [The AI Audit](https://theadversarysmind.org/tools/ai-audit/): Score an LLM app against the OWASP LLM Top 10 and the EU AI Act, and print the gap list. - [The CSP Builder](https://theadversarysmind.org/tools/csp-builder/): Build a Content-Security-Policy from what your site actually loads, or paste one and see what it really permits — with the breakage named before you ship it. - [Breach exposure triage](https://theadversarysmind.org/tools/breach-exposure/): Tick what a breach exposed and get the fixes in the order they matter — why a bcrypt hash buys time an unsalted MD5 does not, and why a leaked phone number is not a password problem. - [Password strength checker](https://theadversarysmind.org/tools/password-strength/): Estimates the guesses a password actually costs, under an attack model you pick — and says plainly when something every other checker calls strong is not. - [JWT inspector](https://theadversarysmind.org/tools/jwt-inspector/): Paste a JSON Web Token and read what it claims, what it leaks, and how it could be forged — then test whether its HMAC secret is a word. - [Phishing email analyzer](https://theadversarysmind.org/tools/phishing-email-analyzer/): Paste a raw email and read what SPF, DKIM and DMARC each concluded — and what none of them prove. Flags lookalike senders, a diverging Reply-To, a path that does not fit, and pretext language. - [Prompt sanitizer](https://theadversarysmind.org/tools/prompt-sanitizer/): Mask the keys, tokens and personal data in anything you are about to paste into a model — then put your real values back into the reply it gives you. - [Hacked account triage](https://theadversarysmind.org/tools/hacked-account-triage/): Two questions, then an ordered first-hour checklist for an account that was just taken over. ## Posts ### AI explained - [What is a transformer in AI? The part that made LLMs work](https://theadversarysmind.org/blog/what-is-a-transformer/): A transformer is a neural network where every token weighs every other token. The data flow, why it beat recurrent models, and why it leaves LLMs open to prompt injection. - [What is a neural network? A developer's explanation](https://theadversarysmind.org/blog/what-is-a-neural-network/): A neural network is one big function with millions of tuneable numbers. Here is how the numbers get set, why that is all learning means, and why it matters when you call one from code. ### How-to - [How to recover a hacked Instagram account, step by step](https://theadversarysmind.org/blog/recover-hacked-instagram-account/): The order of operations to recover a hacked Instagram account in each of the three situations you can be in, then the settings that stop it happening again. - [How to secure your home router in an evening](https://theadversarysmind.org/blog/secure-home-router/): Nine settings to check on your home router, in order, with the attacker mechanism each one shuts and what it costs you when you turn it on. - [Read your security headers in one command](https://theadversarysmind.org/blog/read-your-security-headers-in-one-command/): Five response headers do most of the browser-side hardening work, and you can see all of them with curl. Here's what to run, what each one does, and what to set if it's missing. - [Check an npm package before you install it](https://theadversarysmind.org/blog/check-an-npm-package-before-you-install-it/): Installing a package runs its code. So the thirty seconds you spend looking at it beforehand are the only thirty seconds where you're still in control. Here's what I actually check, and the commands for each. - [Who still has access to your accounts?](https://theadversarysmind.org/blog/who-still-has-access-to-your-accounts/): Changing your password doesn't sign anyone out, and it does nothing to the apps you connected in 2019. Here are the exact pages to check, and the order to check them in. - [Where does this link actually go? Check without clicking](https://theadversarysmind.org/blog/where-does-this-link-actually-go/): Short links hide the destination, and that's the point of them. One curl command tells you where a link lands before you commit to going there, and there's a version for people who don't live in a terminal. - [Find the secrets already in your git history](https://theadversarysmind.org/blog/find-the-secrets-already-in-your-git-history/): Deleting a key from a file doesn't remove it from the repo. It's still sitting in an old commit, and anyone who can clone can read it. Here's how to find what's in there, and why rewriting history is the wrong first move. - [Can someone send email as your domain? Two commands will tell you](https://theadversarysmind.org/blog/can-someone-send-email-as-your-domain/): Most domains are still wide open to spoofing, and the owners have no idea. You can check yours in about thirty seconds with dig, and you don't need to be the person who runs the mail server to do it. ### LLM security - [How to secure AI agents: a practical checklist](https://theadversarysmind.org/blog/how-to-secure-ai-agents/): Nine controls a team can run against an LLM agent this week, each with what it stops, how to verify it holds, and what it costs you to adopt. - [What is prompt injection, really](https://theadversarysmind.org/blog/what-is-prompt-injection/): Prompt injection explained by mechanism for the developer who just shipped an LLM feature. Direct vs indirect, why filters are not a boundary, and what actually reduces the risk. - [Everything you paste into an LLM is a disclosure](https://theadversarysmind.org/blog/everything-you-paste-into-an-llm-is-a-disclosure/): Not necessarily a breach, and usually not training data — but a copy of whatever you pasted now exists somewhere you do not run. The risk is almost never the conversation. It is the twelve lines of config you pasted underneath it. - [What the AI Audit is for](https://theadversarysmind.org/blog/what-the-ai-audit-is-for/): Who should run the AI Audit, what the report actually tells you, what it costs you in time, and the three things it deliberately does not do. A practical guide from Komal Mishra. - [The lethal trifecta — why your agent is one email away from exfiltration](https://theadversarysmind.org/blog/the-lethal-trifecta/): An LLM agent becomes dangerous the moment it holds three things at once: private data, exposure to untrusted content, and a way to talk to the outside world. Here is why that combination leaks, and what to actually remove. ### Try it - [Read this CSP: four policies, which one actually stops an XSS?](https://theadversarysmind.org/blog/read-this-csp/): Four Content-Security-Policy headers that all look strict. Predict what each one really permits before you read the answers, then paste any of them into the CSP builder to confirm. - [Spot the typosquat: eight package names, which one is fake?](https://theadversarysmind.org/blog/spot-the-typosquat/): Eight install commands, each with one impostor package name hidden among the real ones. Train the instinct that reads a dependency name twice, because the install script runs before any of your code does. - [Spot the phish: five emails, two are genuine](https://theadversarysmind.org/blog/spot-the-phish-five-emails/): Five sets of real-looking mail headers. Decide which are forged before you read the answers, then paste any of them into the phishing email analyzer to see what it would have told you. - [Read this JWT: four tokens, which one would you trust?](https://theadversarysmind.org/blog/read-this-jwt/): Four JSON Web Tokens, three with a weakness you can see from the header and payload alone. Spot each flaw before the answers, then paste any token into the JWT inspector to confirm — and read the one-line server fix for each. ### Scams - [The digital arrest scam, explained: how it works and how to end the call](https://theadversarysmind.org/blog/digital-arrest-scam/): How the digital arrest scam traps people on a video call for hours, the red flags that give it away, and exactly what to do in the first hour if money has already gone. - [Signs your phone is hacked, and what to do about each one](https://theadversarysmind.org/blog/signs-your-phone-is-hacked/): Which signs of a hacked phone actually mean something, which ones are noise, and the order to check accounts, apps, SIM and settings before you reach for a reset. - [How to spot a deepfake video or a voice-clone call](https://theadversarysmind.org/blog/how-to-spot-a-deepfake/): The visual tells are fading, so here is the procedure that still works: verify on a second channel, agree a family code word, and slow down when money and urgency arrive together. ### Careers - [Cybersecurity roadmap for beginners (2027)](https://theadversarysmind.org/blog/cybersecurity-roadmap/): Six stages from zero to a first security role, with what to learn at each one and how you know you're done, written by an intern a year in. - ["Cybersecurity is not an entry-level field": is that true?](https://theadversarysmind.org/blog/is-cybersecurity-an-entry-level-field/): Both sides of the "security is not entry-level" argument, stated fairly, and a founder's answer: it is, if you treat the first job as a systems job. ### Passwords - [How to choose a password manager, without trusting a ranking](https://theadversarysmind.org/blog/how-to-choose-a-password-manager/): The criteria that separate a password manager you can trust from one you merely like, when the browser's store is enough, and how to set one up so you can't lose it all. - [Why password strength meters lie](https://theadversarysmind.org/blog/why-password-strength-meters-lie/): The green bar is counting character classes, not guesses. Here is the gap between what a meter measures and what an attacker does, why length beats symbols, and why the same password is centuries under one attack and minutes under another. - [Passkeys vs passwords vs 2FA: what each one actually stops](https://theadversarysmind.org/blog/passkeys-vs-passwords-vs-2fa/): A passkey is not a prettier password. It is a different mechanism that removes the thing an attacker needs to steal — here is what each option stops, and what passkeys genuinely cost you. ### Phishing - [Security training fails because recognition is a perishable skill](https://theadversarysmind.org/blog/recognition-is-a-perishable-skill/): An hour a year is the wrong shape for the thing it is trying to teach. Spotting a forged header or a hidden instruction is pattern recognition, and pattern recognition decays — so the fix is not a better annual module, it is two minutes a day. - [Email authentication proves a domain, not a sender](https://theadversarysmind.org/blog/email-authentication-proves-a-domain-not-a-sender/): SPF, DKIM and DMARC can all pass on a message designed to rob you, and routinely do. Here is what each check actually asks, which one looks at the address you can see, and why three green ticks are so often a statement about a domain you were not looking at. ### Supply chain - [Your dependencies run code before your code does](https://theadversarysmind.org/blog/dependencies-run-code-before-your-code-does/): An install is not a download. npm and pip will execute code from a package you have never imported, on a machine that usually holds your cloud credentials — which is why a mistyped package name is a compromise rather than a failed build. ### Breaches - [The first hour of a hacked account is an ordering problem](https://theadversarysmind.org/blog/the-first-hour-of-a-hacked-account/): Everyone lists the same six actions for a compromised account. Almost nobody lists them in an order, and several of them quietly undo each other when done in the wrong one — starting with the password change that hands the account to the attacker. - [How to check if your email was breached, and what to do in the next hour](https://theadversarysmind.org/blog/check-if-your-email-was-breached/): A breach check takes thirty seconds. Knowing which account to fix first, and finding the forwarding rule an attacker left behind, is the part that actually protects you. ### Web security - [Your JWT cannot be logged out](https://theadversarysmind.org/blog/your-jwt-cannot-be-logged-out/): The forgery bugs get all the attention and they are the easy half. The hard half is that a signed token stays valid until it expires, whatever you do afterwards — so a logout button, a password reset and a termination all quietly fail to end a session. - [Your CSP probably does nothing](https://theadversarysmind.org/blog/your-csp-probably-does-nothing/): A Content-Security-Policy with an allowlist in it is usually bypassable, and the directives that stop the bypass are the ones nobody writes because nothing breaks when they are missing. What a policy actually has to contain, and why the good ones still get rolled back. ### Articles - [A note from the founder](https://theadversarysmind.org/blog/a-note-from-the-founder/): Why the writing and the tools are open to anyone who wants them, and what I am actually trying to build here — a founder's note from Komal Mishra. ## About - [About The Adversary's Mind](https://theadversarysmind.org/about/): Who we are, what we publish, and how to reach us. - [The Daily Adversary](https://theadversarysmind.org/daily/): A daily security quiz. - [RSS feed](https://theadversarysmind.org/feed.xml): Every published post. ## Optional - [Full text of every post](https://theadversarysmind.org/llms-full.txt): The post bodies in markdown, each under its canonical URL. - [The field manuals](https://theadversarysmind.com/books/): Our paid books, on the sister site.