I’m a startup, what should I do about security?
Being a startup is difficult. You don’t have the budget to do everything like a big corporate, but if you don’t appear to be doing things properly, no one will buy from you. This is especially true when it comes to security. Doing security properly costs money that few startups have, but customers expect security by default these days. Giving them the idea that their data is not secure with you can lose you a sale, and a breach could cost you your business (as it did for the bitcoin exchange Mt. Gox).
So how can startups toe the fine line between protecting customer data, without sacrificing too much of their all important cash flow. Well, like with everything else it’s a balance; but you need to know what the important weights are.
Before you do anything else, understand what security means to you. If you’re offering payment services, confidentiality and integrity of your data and availability of service are all equally important. If you’re making an advertising platform, availability and confidentiality are important, but the integrity of your platform (protection against unauthorised changes) would take a higher priority. For example, imagine that hackers replace your adverts with unsavoury content; this would probably make news headlines, and who would buy from you after that? Understanding your priorities can then help you decide where to invest your precious cash, whether it’s on anti-DDoS solutions, or application penetration tests.
Before you spend anything though, it’s worth noting there are some good free services out there; Cloudflare has a free tier that can help against basic DDoS attacks and Let’s Encrypt offer free SSL/TLS Certificates. Unfortunately, free services can only get you so far, and it won’t be long until customers start asking for your penetration test reports.
Delaying a penetration test until customers start asking for evidence may well be tempting. However, be careful going down this route as the more you develop your product the more you are potentially building on a weak foundation. This can lead to products so full of weaknesses that the effort to remediate can equate to starting the whole thing from scratch.
Three particular principles are often the culprits in such situations, and should be paid careful attention to during early development stages. These are: Authorisation, Input Validation and Output Escaping, which if ignored can lead to weaknesses like ‘authorisation bypass’, ‘SQL injection’ and ‘Cross-Site Scripting’ which can pervade your entire application, and may lose you that all important customer when they come knocking. Going into detail on each of these would require an article in its own right, but Google can be your friend here, as the ways to implement these three key controls will differ depending on your programming stack.
Another key principle when developing applications, particularly mobile apps where it is easily forgotten, is to never trust anything sent from the user. It sounds unfriendly, but a common mistake is to assume they can’t edit data you give them, for example the value of their shopping basket, when in actual fact they fundamentally have the ability to bypass client-side checks and manipulate any data they send you. For this reason, it is important to ensure controls like authorisation checking and input validation are implemented on the server-side.
Although penetration testing is often seen as the holy grail of security assurance, bear in mind that you can probably only afford to have it done once or twice a year. But if you offer services via the internet, your applications and infrastructure are effectively exposed to a warzone, and the attacks are evolving as much as they are relentless. This is where continuous monitoring services like Intruder can provide you with ongoing assurance, despite the regular changes to your network and applications that are part and parcel of modern agile development.
Security is a huge topic and compared to the mountain of information out there this article is only the lightest of overviews. Hopefully at least it has given you some indication at least of which paths to start walking down. If you’d like any clarifications or further advice, please don’t hesitate to get in touch.