Live data from Hacker News

Web Developer Security Checklist

simplesecurity.sensedeep.com

11–20 of 249 posts

Re: Web Developer Security Checklist

#11
post #9

Not simple by any means, this one is very thorough and one of the better security checklist I've come across in a while! Sensedeep looks very intriguing and I often wondered if anyone has created an alternative to Atomic Secured Linux. Could this be it? Or is it like an ids / ips with a gui?

We're just in beta. SenseDeep is part host-IDS and part cloud-side. The key is real-time. We want to detect attacks in real-time on the server or on the cloud-side. It has a GUI on top to unify and give a cloud complete view. The focus is DevOps and not companies with a security team. Not sure if this helps or confuses things.

Does your product help satisfy any areas of the pci compliance?

Re: Web Developer Security Checklist

#12

Earlier quoted context omitted.

We're just in beta. SenseDeep is part host-IDS and part cloud-side. The key is real-time. We want to detect attacks in real-time on the server or on the cloud-side. It has a GUI on top to unify and give a cloud complete view. The focus is DevOps and not companies with a security team. Not sure if this helps or confuses things.

Does your product help satisfy any areas of the pci compliance?

I don't want to take the focus off the post and discussion which was about the web checklist. You could dm me twitter @SenseDeepSec or email mob. But briefly, we hit some of the PCI compliance objectives but not all. We expect to cover more ground in this regard quickly.

Re: Web Developer Security Checklist

#13
post #5

How about extending the same with examples for popular web frameworks like django RoR?

I know node better and would be a bit light on other frameworks. Do you have suggestions?

Throw across your node work. I will try to replicate the same for RoR. :-)

Re: Web Developer Security Checklist

#14
While it means well, I think some of this advice is pretty bad, or at least unbalanced. From the very first section:

> Encrypt all data at rest in the database

ALL data? How are you supposed to query against it then? What does "at rest" even mean in the context of an always-on database? An encrypted partition or something?

I'm not even sure what this is supposed to mean and it is certainly not common practise.

> Use secondary encryption for data identifying users and any sensitive data like access tokens, email addresses or billing details

So two layers of encryption!? Again, how is one supposed to look up an access token or email address if it is encrypted? And it strikes me that if you don't trust the first level of encryption, the solution is to fix that, not add another one.

> Fully prevent SQL injection by only using SQL prepared statements and stored procedures

That is an extraordinarily inefficient and costly way to develop. The correct way to protect against SQL injection is to use a framework/driver which guarantees escaping and to be cautious about what you allow into queries.

I could go on. The costs of implementing these recommendations would be staggering for the questionable benefits they would provide. It is absolutely possible to have excellent security without implementing any of these ideas, and I don't think they're helpful at all - and certainly not "simple".

Re: Web Developer Security Checklist

#15
post #14

While it means well, I think some of this advice is pretty bad, or at least unbalanced. From the very first section: > Encrypt all data at rest in the database ALL data? How are you supposed to query against it then? What does "at rest" even mean in the context of an always-on database? An encrypted partition or something? I'm not even sure what this is supposed to mean and it is certainly not common practise. > Use…

Totally with you on the DB encryption but I'm not sure about your comments on prepared statements

>That is an extraordinarily inefficient and costly way to develop. The correct way to protect against SQL injection is to use a framework/driver which guarantees escaping and to be cautious about what you allow into queries.

I've always found using only prepared statements is feasible and justifiable. What is about using them that adds to cost and inefficiency?

Prepared statements are not a silver bullet. Somethings like limit statements in mysql are very hard to do with prepared statements but for the most part it's a good rule of thumb.

Re: Web Developer Security Checklist

#16
post #14

While it means well, I think some of this advice is pretty bad, or at least unbalanced. From the very first section: > Encrypt all data at rest in the database ALL data? How are you supposed to query against it then? What does "at rest" even mean in the context of an always-on database? An encrypted partition or something? I'm not even sure what this is supposed to mean and it is certainly not common practise. > Use…

The cost of full encryption is minimal on platforms like AWS Aurora. If the platform supports it - this is a good way to go. The incremental cost of encryption with Aurora is very low (The 2nd layer is if the server-app is compromised. In this case, the data has already been decrypted by AWS. The 2nd layer means that credentials, emails etc are safe in the server-app tier.

You can lookup tokens by decrypting first. I'm not sure I'm understanding your question properly.

Regarding prepared statements, the mysql2 node driver is equivalent to the non-prepared driver in speed and infinitely safer.

I agree you don't necessarily have to do all these things, but at least think about them. We do all these items in our software and have not found it onerous. Happy to provide more details about this if you would like.

Re: Web Developer Security Checklist

#17
> Create immutable hosts instead of long-lived servers that you patch and upgrade. (See Immutable Infrastructure Can Be More Secure).

An interesting idea, I've not come across before. Anyone know where I can find some case studies on this?

Re: Web Developer Security Checklist

#19
Hope the moderators edit the post title to include that this is a 'security' checklist, and not just a 'steps I need to develop a simple website' checklist. I am thinking quite a few people skipped past this article not realising the intended audience.

Re: Web Developer Security Checklist

#20
post #17

> Create immutable hosts instead of long-lived servers that you patch and upgrade. (See Immutable Infrastructure Can Be More Secure). An interesting idea, I've not come across before. Anyone know where I can find some case studies on this?

I did a post on that here:

https://simplesecurity.sensedeep.com/immutable-infrastructur...

but the originator was: Chad Fowler

http://chadfowler.com/2013/06/23/immutable-deployments.html

Post reply on HN