API connections are categorized in two ways: exposed and unexposed. Exposed APIs are open to the public, giving easy access to business logic through an interface to any third party. Naturally, even with an exposed API, the business can control what it shows and to whom, but this type of API does greatly speed connections with third parties that make up the supply chain.
Meanwhile, an unexposed API is a point-to-point connection between two specific parties. While this seems inherently more secure on the surface, it does make growing the ecosystem more cumbersome, and the security problems that can arise are not actually dissimilar. An organization that thinks it is fully protected by utilizing only unexposed APIs must ask: “Are we willing to trust every organization we’re connected to and every single one of their employees, all of their contractors, and all of the other companies they're connected to?” If the answer to these questions is no, then avoiding exposed APIs doesn’t actually negate risk.
Here’s why: in either case, the API has a certificate that encrypts the channel, and the organization and the trusted third party in question share a secret, which anyone interacting with the API must know in order to interact with it. Unfortunately, much like a password or any knowledge-based authentication question, a secret can be hacked. What makes this baseline level of API security inadequate is the fact that the organization usually has no control over security protocols at the third party and all of their connected entities. A breach at a third party can lead to an API exploit at any connected organization.
As an example, imagine a bank has an API connection with a third-party payments provider. Now, imagine that this payments provider is hacked by a cybercriminal intending to get at the bank’s data. Whether this API is exposed or unexposed doesn’t matter in this case: if the hacker has infiltrated the third party and knows the shared secret, they can access the bank’s data via the API posing as the payments provider – and access whatever the bank has indicated the payment provider may see. Worse, a skilled hacker may manipulate the connection in a variety of ways once they’ve gained access, by tweaking object IDs inside of the API to gain access to further information or even injecting malicious data or commands disguised as parameters or file uploads.
These types of attacks are very common, as mentioned above. Unfortunately, given the nature of the financial supply chain, operating without API connections isn’t an option. Instead, organizations must look beyond the basic protection offered by channel encryption and shared secrets to protect themselves from supply chain risk.