I building an online banking service in ASP.NET and my objective is to implement all possible security measures. Currently at database level I am using RES 2048 bit encryption to encrypt database columns that contains confidential data. Also I am planning to use SSL on my network. I am protecting front end from CSRF and XSS attacks. I am also using password hashing while comparing. But I want a list of all security measures that can be done to protect a bank website completely. Can you suggest me that list?
closed as too broad by Mark, Graham Hill, Xander, NULLZ, TildalWave Nov 5 '14 at 15:23
Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
I would start by looking at the OWASP Top 10. Of course there is (a lot) more to it than just having a list. There might also be regulations in your country which should be considered. I highly recommend you to look into this first.
Have you thought about the following:
- Two factor authentication: How are you going to implement this? (Token list, SMS message, phone app, card reader with challenge response, certificate based)
- Implementing a strong authorization mechanism. (Consider using state, although many people think (REST) API's should be stateless, I totally disagree)
- Communicate to the back-end systems through API's. These API's should check if a user is authorized to perform this action (see #2)
- What actions can clients perform once they are logged in? (Think about upload functionality for example) Perform content scanning to detect malware and viruses. If for example pictures are required to be uploaded (a bill for example) consider to convert the picture (8 bit) in order to get rid of possible "payloads".
- Clients should be challenged when performing sensitive operations.
- Implement mutual authentication (also called two way SSL authentication) from the middle ware to the back-end systems.
These are just a few items to consider and the list is far from complete. I hope this gives you at least a start.
It is highly recommended to perform security assessments and secure code reviews on all of your code (regularly).
Another thing to consider is to have a security expert involved early in the process. My personal experience is that security professionals are generally asked to perform a security assessment when they want to go to production two weeks later.