当前位置: 首页 > 科技观察

八项直接的API安全措施_0

时间:2023-03-14 17:13:31 科技观察

应用程序编程接口(API)构成了应用程序之间的桥梁,使程序能够跨不同的代码库和硬件相互通信。但在错误的人手中,API可能会造成潜在的巨大损害。企业应用程序形成了一个不断增长的网络攻击面,但真正的漏洞所在往往是API。虽然标准防火墙和SIEM工具可以检测和阻止许多攻击,但通过API进行的攻击更加隐蔽,因为它们通常会利用API已经允许的访问权限。这些漏洞远远超出了企业领域,甚至可能影响个人车辆。不安全的API无处不在,甚至被用来攻击特斯拉的电动汽车。以下是如何通过实施以下策略来采用更严格的API安全态势。1.为未来用户而不是当前用户构建当API处于起步阶段时,它们通常旨在满足一小群开发人员一起工作的需求。这些开发人员彼此认识,甚至可能共用一个办公空间,并且可能觉得不需要实施身份验证协议来确保每个人都是他们声称的人。他们为什么这么做?不久之后,该团队出现了一个特别有用的API,并且它进入了比最初预期更广泛的用户网络。应该在发现漏洞之前采取适当的安全措施,而不是太晚。2.限制用户说到未来的用户,如果可能的话,计划更多的用户,但控制较少。访问是在严格的需要知道的基础上授予的。更多的用户意味着更大的网络攻击面,尤其是在权限没有明确和彻底定义的情况下。3.限制数据Equifax数据泄露引起了人们的关注,因为该公司保留了近1.5亿美国人的私人财务信息。幸运的是,并非每个公司的商业模式都需要收集社会安全号码、驾照、地址等信息。数据收集是严格定制的,因此只需要最必要的数据。未收集的数据也受到保护。4.加密数据确保通信路径使用适当的加密协议,例如SSL或TLS。同样,静态数据也应该加密。这似乎是显而易见的建议,但由于帐户和密码以明文形式存储,因此数据泄露很常见。有加密是不够的,还必须正确使用。某些协议(例如TLS)允许在服务器或客户端上禁用加密身份验证,从而导致Internet流量被拦截的潜在风险。企业确保API符合最新的安全最佳实践,以确保通信安全可靠。5.制定分页限制如果没有适当的API分页,服务器查询可能会返回一个结果或大量结果。后一种情况会快速消耗系统资源并导致应用程序停止。更糟糕的是,它不需要恶意行为者来造成伤害——无辜的用户可能会过于松散地构建查询并收到令人惊讶的响应。幸运的是,分页很容易实现。在其最简单的形式中,偏移分页为用户提供了一个他们可以检索的预定义记录窗口。其他形式的分页包括keyset和seek,它们各有优缺点。6.在SQL查询中使用准备好的语句SQL代码注入是一种非常常见的攻击,它使网络攻击者能够冒充其他用户、破坏数据库或窃取数据。顾名思义,网络攻击者通常通过滥用正确配置的服务器应该过滤掉的转义字符,将SQL代码潜入数据库查询。准备好的语句通过使用只能存储特定值而不是SQL片段的占位符来防止攻击者注入SQL代码的能力。另一种防止SQL注入的方法是确保数据输入符合预期。例如,电话号码应注册为整数且不包含字符串。名称应包含字母,但不能包含数字。7.加强最终用户和应用程序的身份验证对于访问应用程序的用户,根据最新的安全最佳实践实施例行密码重置策略。对于与API交互的应用程序本身,为应用程序的每个版本使用唯一的凭据,从而更容易根除过时的版本。8.执行速率限制当网络攻击者向服务器发送大量登录凭据以完全偶然地成功匹配时,就会发生暴力攻击。基本速率限制通过防止在合理的时间范围内发生多个查询来防止这些攻击。一个人可以每分钟输入数百次密码吗?可能不会。那么,为什么API会接受如此高的数字?管理风险安全是管理风险的艺术,而不是消除风险。没有坚不可摧的堡垒,但网络攻击者往往会沿着阻力最小的路径前进,并以安全标准低下的受害者为目标。企业需要降低API安全性,避免成为网络攻击者的目标。