Devise Your Security Strategy
After completing this unit, you’ll be able to:
- Identify who on your team is responsible for security.
- List the resources that will help you learn to develop secure software.
- Describe when to consider security in developing your product.
Security Needs Ownership
Your company has rules about who gets access to what information. When you came to work today, maybe you used a key or a badge to enter the office. You probably know the procedure for inviting family members and vendors to visit. And hopefully you don’t often witness total strangers wandering in and snooping around, but if it happens, you know what to do!
Specific people are in charge of setting and enforcing these rules. Sometimes there’s even a person in charge with a fancy title like chief security officer. That person thinks about the security of your company’s information all the time.
Who Owns Your Product's Security?
The customer data in your app or component also needs protection, just like the information in your company. Does your development team have a chief security officer?
It’s true that security is everyone’s responsibility, but developers are busy folks. Things can get lost in the hustle of getting a product market ready. To make sure that security remains a priority, consider appointing a security advocate to your team. A security advocate is your team’s chief security officer—they think about your product’s security all the time.
Learn to Write Secure Code
After you get your team thinking about security, the next step is to find out more about building secure software. There are several resources available to you, some of which we mentioned in the last unit:
|Resource||What It Offers|
|Open Web Application Security Project (OWASP) Top 10 List||A list of the most common web app vulnerabilities|
|Salesforce Secure Coding Guidelines||A collection of web security flaws commonly found during security audits
Salesforce Security Requirements Checklist
||Issues explained by technology and product type
Develop Secure Web Apps Trail
||Comprehensive set of training modules that cover all main security topics specific to the Salesforce Platform
Get Your Hands Dirty
Do you want comprehensive training in secure coding? Do you want to greatly increase your odds of passing our Security Review on the first try? We strongly recommend that you check out the Develop Secure Web Apps trail. It provides detailed descriptions and interactive examples of various web app vulnerabilities. You can also exploit each vulnerability and modify source code to protect against it, all in real time. Pay particular attention to the Data Leak Prevention module. Data leaks are the most common vulnerability found by our security team.
Everyone Is Responsible
Your security advocate can be a resource for your team, but remember that security is everyone’s responsibility. The more familiar your developers are with these issues, the better they are at recognizing and addressing them.
Security Is a Key Feature, Not an Add-On
Hey, that app you’re working on sounds fabulous! The world doesn’t get to see it until it launches, though. When’s it going to be ready?
Nobody wants to be the one standing between a product and its release. Your sales and marketing teams don’t like unexpected delays, and they won’t let you forget it. So imagine how tense things can be if your launch date gets pushed back because the Salesforce Product Security team finds a vulnerability. If it’s a minor issue, it’s easy to fix. But if you have to go back and change your design because of a fundamental security flaw, you’re facing extra work and a potentially long delay.
Consider Security in Each Stage of Development
Whatever methodology you use to write your software, make sure that your team thinks about security from the beginning. Apply secure design patterns and programming practices at every stage of development, and test your app against attacks. Here are several things you can do to improve security throughout the development process:
- Design: The best bugs are the ones you don’t have to fix. There’s no substitute for good software design, and a secure design beats an insecure design any day. Pay attention to how you expect users to interact with features, and be sure to identify related vulnerabilities. Then define specific use cases that highlight these vulnerabilities.
- Implementation: If you have daily scrums, get your security advocate to engage with team members on secure coding strategies. Code reviews are another great forum for discussing security issues. Incorporate secure coding guidelines into your coding style guide. (You do have a style guide, don’t you?)
- Test: You need a specific plan to test your product’s vulnerability to attacks. Design tests so that they are repeatable, and apply them consistently throughout the development of the app.
For a comprehensive picture of web security and testing, check out the OWASP Testing Guide. It can help you put together your own plan.
Secure the Whole Product
When we talk about building a secure product, we mean the whole thing. That includes the pieces that live outside our platform, like components or services that you host outside Salesforce. And don’t forget to include your lovely native mobile apps in your security plan. They need protection, too.
- An attacker needs only one unguarded entry point in your product to ruin your day. Or month. A coherent strategy for security helps you create a bulletproof product.
- Security is everyone’s responsibility, but you can help your team keep it in mind by having a security advocate who owns it.
- Your team can learn about secure software development using the interactive resources we give you.
- Every stage of development comes with its own security considerations.