Les connexions des API sont classées dans deux catégories : exposées et non exposées. Les API exposées sont ouvertes au public, et donnent facilement accès à une logique business via une interface vers une quelconque tierce partie. Naturellement, même avec une API exposée, l’entreprise peut contrôler ce qu’elle montre et à qui, mais ce type d’API accélère fortement les connexions avec les tierces parties qui composent la chaîne logistique.
De son côté, une API non exposée est une connexion point à point entre deux parties spécifiques. Bien que ce type d’API semble par nature plus sécurisé à première vue, il rend la croissance de l’écosystème plus complexe, et les problèmes de sécurité qui peuvent apparaître ne sont pas si différents. Une organisation qui pense être totalement protégée en utilisant uniquement des API non exposées doit se poser la question suivante : « Souhaitons-nous faire confiance à toutes les organisations auxquelles nous sommes connectés et à chacun de leurs employés, de leurs prestataires et à toutes les autres entreprises auxquelles ils sont connectés ? » Si la réponse à cette question est non, alors éviter les API exposées n’élimine de fait pas le risque.
Voilà pourquoi : dans les deux cas, l’API détient un certificat qui chiffre le canal, et l’organisation et la tierce partie de confiance en question partagent un secret, que tous ceux qui interagissent avec l’API doivent connaître pour interagir avec elle. Malheureusement, à l’instar d’un mot de passe ou d’une question d’authentification basée sur la connaissance, un secret peut être percé. Ce qui rend inadéquat ce premier niveau de sécurité des API est le fait que l’organisation n’a en général aucun contrôle sur les protocoles de sécurité utilisés chez la tierce partie et toutes ses entités connectées. Une faille chez une tierce partie peut engendrer un problème au niveau de l’API chez n’importe quelle organisation connectée.
Par exemple, imaginez qu’une banque a une API connectée à un prestataire de paiements en tierce partie. Maintenant, imaginez que ce prestataire de paiements soit hacké par un cybercriminel cherchant à accéder aux données de la banque. Dans ce cas, le fait que l’API soit exposée ou non exposée n’a pas d’importance : si le hacker a infiltré la tierce partie et connaît le secret partagé, il pourra accéder aux données de la banque par le biais de l’API se faisant passer pour le prestataire de paiements, et accéder à tout ce que la banque a autorisé au prestataire de paiements de voir. Pire, un hackeur expérimenté peut manipuler la connexion de diverses manières une fois l’accès obtenu, par exemple en modifiant des identités au sein de l’API pour pouvoir accéder à d’autres informations ou en injectant des données malveillantes voire des commandes déguisées en paramètres ou en téléchargements de fichiers.
Comme indiqué plus haut, ce type d’attaque est très fréquent. Malheureusement, compte tenu de la nature de la chaîne logistique financière, fonctionner sans connexions au niveau des API n’est pas une option. Les organisations devraient plutôt dépasser la protection de base fournie par le chiffrement du canal et les secrets partagés, pour se protéger contre les risques affectant la chaîne logistique.