Why is API Security So Hard?
Miles Dolphin
Cyber Security, Technology and Risk Executive | Board Member | CISSP | Speaker | Patent Holder
When I was a software developer and the Head of Automation, our goal was to integrate everything. Build API's where they didn't exist and integrate systems, where we quickly learned "not all api's are created the same.. and sometimes the API we were provided were a "hack" at best.
What is an API - An API (application programmatic interface) means any application interface which is created for the purpose of "integrating" systems so they can pass information one-way or bi-directional.
Challenge #1 - Not All API's are the Same - Resulting in Inventory Challenges
MANY OPTIONS TO CREATE AN API
For each interface you need to think about how to interact with it, what can break over time.
Challenge #2 - API's were Not Always Built in the Initial Application Design
- Web Integration - Can be exploited with bad input and special characters
- File Integration - Can be exploited if humans gets access to the system
- Message Integration - Can be exploited with a denial of service attack
- The disadvantage is an API that you NEVER want used
领英推荐
Challenge #3 - Conflicting Requirements - Speed vs. Agility vs. Security
API's can offer amazing flexibility such as polymorphic inputs which is about to figure how to interpret information sent to it, however this flexibility can also be used abuse the system. Below are some of the key drivers for the need for API
Challenge #4 - Common Bad Practices - It takes too much time to setup right
RECOMMENDATION - One Account per API / per Integration
2. Lack of Toxic Access - One account can take an action and has the rights to
approve the same action as the account is running not like a user but with
full rights of the system.
RECOMMENDATION - Accounts should be designed for 1 specific purpose
BEST PRACTICES
SecDevOps Focused Approach
The best API have clear functions, documented input parameters, sample output, comes with sample code in multiple programming languages, is easy to consume and secure by design. That means the credentials must be protected and timebound providing only the least amount of access for the action.
Miles Dolphin thank you for sharing these thoughts! Commenting for reach