title: What should founders actually do to keep their company secure?
author: Wilson Spearman
source_url: https://bookface.ycombinator.com/posts/99323
word_count: 2095
What should founders actually do to keep their company secure?
Seems like there has been a massive uptick in threats recently (axios supply chain
attack, Mercor hack, LiteLLM
package). At the same time, there’s a lot of discourse about things that
startups currently do that don’t actually seem to improve security (SOC II).
So my question is: what should I actually do to keep our company secure? We don’t have enterprise customers and we
don’t handle PII beyond emails, but obviously I don’t want to get PWN’d (we spent all day yesterday rotating keys
because our engineer who’s finishing his last semester of college got his laptop taken over by the axios supply chain
attack installing the package for class).
Would love to know what the more experienced would recommend to a small YC team :)
Comments
Adam Dorfman (Tower (W24)) (1 day ago)
Honestly these kinds of supply chain attacks are really difficult to completely mitigate. The quick wins:
Set min 7 days wait for package release
uv → pyproject.toml → [tool.uv] → exclude-newer = "P7D
pnpm, npm, etc. have equivalents.
Pin all of your GH actions, pre-commit hooks, docker container builds to specific hashes rather than version numbers. Github Actions is apparently a landmine for vulnerabilities.
Use socket firewall in containers and on your local systems to prevent you from accidentally installing compromised versions of packages.
Minimize the number of packages you’re using - this one is a balancing act, but every additional package is surface area for attacks.
When possible, avoid API keys. AWS, Azure, and GCP all let you use your IAM identity (which is automatically assigned to tasks/containers) to authenticate to services. They all also support IAM federation, letting you use your AWS IAM identity to access Azure resources, GCP resources, and vice versa. In dev, you can use the AWS CLI + IAM Identity Center to use SAML/OAUTH for sign in with short lived credentials stored on device, rather than having long-lived credentials stored on device - Azure & GCP have equivalents.
Separate your dev environment from your prod environment, ensure all API keys you have are scoped to minimum permissions and environment, and make sure to use separate credentials for each dev so that you don’t affect everyone with one mistake.
For both prod and dev, avoid storing credentials on device in env files and environment variables. It’s more secure to fetch them at startup time from AWS Secrets Manager, 1Password Secrets, or any equivalent.
Do a security audit for gaps - AWS has Security Hub, Google and Azure probably have equivalents. They’ll automatically give you a bunch of recommendations for security hardening improvements you can make. AWS’ defaults are pretty awful, but the security hub fortunately catches a ton of the issues.
Avoid having SSH keys, GPG keys, a
Andrew Israel (PropelAuth (W22)) (1 day ago)
For small teams, there’s usually a few major things to worry about: employee devices, production access, and dev education.
On the employee devices side, a few small things that can help specifically for some of the supply chain attacks is having your package manager not run install scripts and not take recently published dependencies. For the axios case, this would’ve helped both because the malicious package was too new to be installed and because it wouldn’t have had an effect if it was installed.
For npm, this means adding this to your ~/.npmrc:
ignore-scripts=true
min-release-age=3
(and updating npm, they only added support for min-release-age recently). Most package managers have this concept, although they are not super consistent, so for pnpm for example you’d run:
pnpm config set --global minimumReleaseAge 4320
pnpm config set --global ignoreScripts true
In the python ecosystem, it’s a little bit harder. I don’t believe pip has both of these concepts, but uv does w/ settings like exclude-newer and no-build.
One of the nice things about being small is you can just tell everyone to set this up / sit them with while they do it.
But shit happens, and so the other thing to do is minimize the possible damage from those types of attacks. It’s going to be specific per company, but a good rule of thumb is to avoid having a secret / key stored locally wherever possible. For git, for example, you can have employees create ssh keys in secretive (instead of in ~/.ssh) which makes hard to steal and means they can’t be used without a fingerprint scan/password entered. You should also protect from this on the github (or equivalent) side by preventing pushes directly to main without a code review, especially if you have anything that auto-deploys.
There’s a similar story for aws credentials, you just shouldn’t have them locally and if you do need them locally, you’d want the credentials you store locally have basically no access. The only access you give them is to be able
Akul Gupta (MindFort (P25)) (about 10 hours ago)
use
MindFort. Continuous testing of your application is the best thing you can do.
Also, use this prompt with your coding agent, will get you 80% of the way there for free.
Ultrathink. You are an expert application security engineer. Your task is to conduct a thorough security audit of this codebase.
Before starting, ask me scoping questions to focus the audit effectively:\
Which parts of the codebase are highest priority or most recently changed\
What's deployed vs in development\
Known areas of concern or previous findings\
Auth model and multi-tenancy architecture\
Whether to include dependency/supply chain analysis\
Any compliance requirements (SOC2, etc.)
Once scoped, systematically review the code covering: auth & authz, injection & input validation, secrets & config, API security, data protection, infra/container misconfigs, LLM/agent security (prompt injection, sandbox escapes, unsafe tool calls), and business logic flaws. Only report issues grounded in actual code — no hallucinated findings.
After completing the full review, compile all vulnerabilities into a single markdown file with each finding listing: severity (Critical/High/Medium/Low), file & line, vulnerable code snippet, explanation, and CWE ID.
Then create a remediation plan in the same file that:\
Groups related fixes into logical workstreams\
Orders them by severity and dependency (what must be fixed before what)\
Provides concrete code fixes for each vulnerability\
Estimates relative effort (quick fix / moderate / significant refactor)
Do not fix anything. Only produce the report and plan. Wait for my approval before making any changes.
CreativeMode (S24) (about 9 hours ago)
I’ve tried these audit prompts from Codex for example and they really haven’t flagged anything useful. Would MindFort have prevented the Axios vulnerability in particular? For us the risk was a developer running pnpm install without minimum-release-age
Akul Gupta (MindFort (P25)) (about 9 hours ago)
For that specific attack, no. MindFort finds vulnerabilities in your application. This was a supply chain attack, the best mitigation for this is lockfiles & pinned versions. Would recommend setting them up on all your dependencies.
Jorrel Sto Tomas (Formerly AnythingLLM (S22)) (1 day ago)
gotta love fud. my dad/co-founder was a CISO for 30 years across large enterprise healthcare and pharma, and even the most locked-down companies were always dealing with something.
honestly the basics still go a long way for a small team:
People: train everyone not to click links or install stuff without checking first — sounds obvious but it's still how most things get in
Process: be paranoid, keep backups, rotate your keys regularly, and have a rough runbook so you're not figuring it out mid-incident
Technology: MFA on everything, patch regularly, and if the anxiety is real just get cyber insurance
you got hit, you rotated keys, you're already doing it right. just make sure the process is in place before the next one.
Alex Chantavy (SubImage (W25)) (1 day ago)
Lots of good recommendations in this thread already. I’ll try add some. I’d go simple:
Protect your devices:
Install an antivirus (also known as an EDR for Endpoint Detection and Response) tool like SentinelOne that comes with Rippling or similar) on your laptops.
Use a password manager like 1Password
Enforce multifactor authentication
Protect your production infra:
No creds in source, ever. Use AWS SecretsManager or similar.
Be ready to rotate creds at a moment’s notice.
Be ready to answer “Do I have Axios in my env? At what versions?” at any given time.
Maintain an architecture diagram of how your system works. It will help you stay organized if there is an incident. Understand your internet ingress points, understand what identities have access to sensitive databases. What are your sensitive databases/crown jewels.
Know where your logs are. Make sure you know where to look to find login failures and successes.
And you can generally stay updated by reading HN. Recently HN has been really good about being up to date on supply chain problems like Axios, LiteLLM, Shai-hulud, React2shell, etc.
Joshua Goldbard (Fire Wallet (P26)) (1 day ago)
I try to work on secure software. It’s hard.
A few things to keep in mind:
What is your threat model?
What happens if this breaks?
Who is the key holder/responsible individual? What happens if they’re absent?
Practical things: Version control package updates. You don’t need to automatically update everything blindly. You can decide to update vs auto-updating.
How much attestation is enough? For many projects, you don’t need reproducible builds or hardware attestation. Understand what you’re trying to protect.
Lastly, accept some risk. Things will break, and you should have monetary and temporal bounds on recovery.
Chaos Monkey (https://netflix.github.io/chaosmonkey/) is very useful for developing an understanding of what can or cant break in your systems, and then designing control mechanisms around that. « Don’t bother doing chaos monkey pre-product market fit.
Product-Market fit matters. If you spend all of your time building hardened systems that you forget to actually get customers, that’s not correct.
In short: figure out what your threat model is and adjust your defensive posture accordingly.
Happy to chat about securing software with anybody who has questions.
Cayden Liao (Veria Labs (F25)) (1 day ago)
We’ve been helping the LiteLLM team out with their security post-breach, been thinking a lot about the general question of keeping companies secure, would love to talk!
Some of the common threads that seem to be top of mind given the recent issues; there’s a lot of best practices that should be followed, like keeping good supply chain and CI/CD hygiene, setting up a proper incidence response plan, etc.
Aakash Shah (Wyndly (W21)) (1 day ago)
use
GhostEye to avoid social engineering attacks
Tarun Vedula (Zatanna (W26)) (1 day ago)
Cayden Liao
Vaibhav Dubey (Plexe (P25)) (about 9 hours ago)
Use
MindFort!
Saad Jamal (Claybird (F25)) (1 day ago)
talk to Hex Security
Ahmad Khan (Hex Security (W26)) (1 day ago)
use
Hex Security
Bryan Onel (Oneleet (S22)) (1 day ago)
It isn’t the case that SOC II fails to secure companies by default. It is that GRC companies optimize for speed and the illusion of security rather than getting it right.
Delve is an extreme example, but things aren’t much better if you look at Vanta/Drata/Secureframe, platforms that do not take the responsibility to actually make companies secure, but wash their hands of any wrongdoing because they’re just evidence collection platforms at the end of the day.
That is truly why Oneleet exists. We sell compliance, but we achieve it by aiming for security first. Not the other way around, which always leads to the illusion of security.
Benjamin Anderson (Cembla (S23)) (1 day ago)
Bryan are you guys still offering the “everything but the audit” security package for YC companies? I thought I remembered about you posting this in the past and it sounded like a great deal (was like $1–2k?), but I can’t find information about it now.
CreativeMode (S24) (1 day ago)
This sounds excellent as someone who doesn’t need compliance but needs to be secure :)
Bryan Onel (Oneleet (S22)) (1 day ago)
That is exactly why we developed it! 🙂
Upside is also that it will get you to about 50-70% of SOC 2 compliance (range is wide because SOC 2 is super flexible, and every company’s program is and should be different). So if you do want to make the plunge and do SOC 2, audit readiness can be achieved pretty quickly.
Bryan Onel (Oneleet (S22)) (1 day ago)
We still are! It only costs $100 per month, and you get all platform capabilities and unlimited vCISO support for the Oneleet Core Security Framework.
Note that the manual penetration test is not included. SAST, DAST and AI pentesting are however included.