On this page
- 1. Validate every input
- 2. Authenticate strongly, authorize precisely
- 3. Give everything the least privilege it needs
- 4. Keep secrets out of code and out of sight
- 5. Patch quickly and know what you run
- 6. Make the secure path the easy path
- 7. Review every change before it ships
- 8. Log what matters and protect the logs
- 9. Monitor continuously and respond automatically
- 10. Isolate what you can’t fully trust
- 11. Test yourself before someone else does
- 12. Treat compliance as the floor, not the ceiling
- Why I keep coming back to this
I want to say something that might sound obvious. Almost nothing about building secure software is new.
The OWASP Top 10 has been warning us about the same families of mistakes for close to twenty years. SOC 2 and ISO 27001 spell out the controls a serious company should have. Least privilege, patching, input validation and audit logging have been taught to every engineer I have ever worked with. None of this is a secret, and none of it is hard to find.
So what’s actually new? The light. Attackers now have tools that shine a light on the weak spots faster than most teams can respond. With automation and AI they can find a flaw, write the exploit and try it against thousands of companies in the time it takes a team to read the advisory. A gap that used to sit unnoticed for weeks can now be found and used within hours.
Here is how I think about it. The offense is coming in buses, and too many companies are still guarding the gate with one watchman who has no tools. That watchman can be excellent at the job and still lose, simply because there are more of them and they are faster.
That is why I don’t believe any company has the luxury anymore of defending itself without AI. Knowing the fundamentals isn’t enough. You have to apply them every time, check them all the time, and respond at a speed only automation can give you.
These are the twelve principles we build ComputeSphere around, and what each one looks like when the other side is moving this fast.
1.Validate every input
Treat everything that crosses a boundary as untrusted until it has been checked, whether it comes from a form, an API call, a file upload or another service. Injection in its many forms is still near the top of every list, and it is still prevented the same way, with strict validation and parameterized queries rather than string building.
2.Authenticate strongly, authorize precisely
Prove who someone is with more than a password, and then check what they are allowed to do on every request, not just at the door. Broken access control is the most common serious flaw in modern applications, and it usually comes from a single missing check on a single route.
3.Give everything the least privilege it needs
People, services and machines should hold only the access their job requires, for only as long as they need it. When something is compromised, least privilege is what decides whether you lose one component or everything it could reach.
4.Keep secrets out of code and out of sight
Credentials don’t belong in source code, configuration files or logs. Store them in a dedicated secrets manager, rotate them on a schedule, and scope each one narrowly. Leaked tokens are one of the most common ways attackers get in today, and they are often found in places their owners forgot existed.
5.Patch quickly and know what you run
You can’t patch what you don’t know you have. Keep an inventory of your dependencies and images, scan them continuously, and treat a fix for a known, exploitable weakness as urgent work rather than something for next sprint. The window between disclosure and exploitation is now measured in hours.
6.Make the secure path the easy path
Secure defaults beat good intentions. If the safe way to do something is also the easiest way, people take it without thinking. Build guardrails into templates, pipelines and platforms so that mistakes are caught automatically instead of relying on everyone to remember.
7.Review every change before it ships
No change should reach production on its author’s word alone. Independent review, automated tests and security checks in the pipeline catch problems while they are still cheap to fix. Review is also where knowledge spreads, which makes the next change safer too.
8.Log what matters and protect the logs
When something goes wrong, your logs are your evidence. Record authentication events, permission changes, access to sensitive data and administrative actions, keep them long enough to investigate, and make sure an attacker can’t quietly delete them.
9.Monitor continuously and respond automatically
Logs nobody reads don’t protect anyone. Alerts have to reach a person or a process that can act on them, and the response has to be fast. This is where AI earns its place on defense, by triaging alerts, connecting events across systems and handling the routine response in seconds so that people can focus on the decisions that need judgment.
10.Isolate what you can’t fully trust
Separate customers from each other, workloads from the platform, and production from everything else. Strong isolation means a single compromised application stays a contained problem instead of becoming a breach of everyone around it.
11.Test yourself before someone else does
Run scans, review your own configuration and invite responsible testing, with clear rules and approval so that genuine attacks can’t hide behind the word “test”. Every weakness you find yourself is one an attacker doesn’t get to find first.
12.Treat compliance as the floor, not the ceiling
Frameworks like SOC 2 and ISO 27001 are valuable because they force discipline and give customers a shared language for trust. But passing an audit describes your controls on a given day, while attackers test them every day. Use compliance to make sure nothing basic is missing, and then keep going.
Why I keep coming back to this
None of these twelve principles is new, and that is exactly my point. Companies rarely fall because nobody knew what to do. They fall because something wasn’t done consistently, nobody noticed when it slipped, or they couldn’t respond fast enough once someone found the gap.
That last one is what has changed. When attackers automate their side, defending by hand means losing on speed even if you get everything else right. You need tools that watch all the time, connect what they see across your systems and act in seconds, with people making the calls that genuinely need judgment.
This is how we build ComputeSphere. The fundamentals are built into the platform so our customers get them by default, and the watching and responding never stop. When the buses show up, I want our customers to have far more than one watchman at the gate.