-
-
请不要忽略API的安全性
-
发表于: 2013-7-7 02:02 1009
-
不管你采用什么样的技术或是平台总会轻易遭到攻击,没有任何方法可以保证百分之百安全。 俗话说:“道高一尺,魔高一丈”。但你可以做的是达到适当的安全级别并且时刻准备解决安全问题。原文作者 Ole Lensmar 发表了一篇博文《Please Stop Ignoring API Security》,笔者对原文进行了摘译:
6 月初,OWASP 更新了其十大安全漏洞列表,这也是自 2010 年至今首次更新。通过评估看以看出,安全一直是应用程序首要关注的问题,尤其是在 API 领域,因为大部分公司正在将核心资产及业务流程提供给其他人整合,旨在将其打造成为生态系统中一个至关重要的一部分(借此转化为货币利益)。
如今,入侵攻击风险、窃取数据或者 DOS 攻击等无处不在。这些风险看起来似乎很渺小,但是其带来的后果却是巨大的。从 Playstation 网站 7700 万账户被暴露,再到最近 2 月份 Twitter 的安全漏洞导致 250,000 账户被暴露,安全问题逐渐引发人们重视。
但奇怪的是,测试安全漏洞并确保应用程序或者 API 不被安全漏洞攻击,很多开发团队要么不知道要么就忽略了。2013 年 StarWEST 和 StarEAST (总部位于福罗里达州的 Software Quality Engineering)有超过 70 场会议都在讨论安全漏洞问题。最近我曾与一家分析公司探讨关于缺乏对 API 安全问题的“困惑”,包括供应商、API 赞助商以及 API 客户似乎都没有在这块领域上投入太多精力。
对此,我有几点想法:
首先,简单的无知。“这个不会发生在我们身上,或者我不知道你在说什么。” 很多人都有这种想法:没有人会在意攻击你的应用程序、API、技术组件或者你使用的语言不会轻易受到攻击,然而这种想法是错误的。
其次,尽早采纳新、酷技术。正如上文所述,开发团队往往不关心代码安全隐患,这个现实中很常见,当然这也同样适用于开发人员新组件和框架。然而这样存在很高的风险,开发者的关注的重点更多是在添加新特性或是否破坏它们的风格上,而不是担心他们的敏感信息是否被暴露或者 API 是否轻易被攻击。
最后,安全涉及的领域很广泛,这就意味着不同的人看法也不同。有的人注重认证和授权;有的人注重 SSL、加密和签名;还有的人则注重 VPNs、防火墙及 BYOD。倘若添加永无止境的列表标准和缩略词组合(WS-Security,SAML,OAuth,SSL 等)会存在较高的风险,在项目开发中通常只有极少部分领域被评估。
此外,在计算机领域还存在这样的趋势:
1. 将应用和数据迁移至云端,最终把它们设置在一个环境中,而云中的数据比私人数据中心的数据更容易被窃取,无论你有多少防火墙和路由器配置。
2. 暴露核心数据业务和流程 API 使得它们被潜在的商业合作伙伴(good)及黑客(bad)更容易窃取。
3. 大数据/NoSQL,包括存储尽可能多的数据——也存在风险,倘若它们落在了有些人手中,这个数据可能会被滥用。
很显然,你需要重视安全问题:不管你采用什么技术或是平台,总会很容易受到攻击。当你创建一款新的应用或者 API,你可以参考以下几点建议:
1. 确保在你的需求和封装过程(backlogprocesses)中添加安全系数,包括性能,功能,易用性等。
2. 积极投身安全问题、测试。确保开发人员和测试人员了解常见的安全漏洞,以及如何加以防范,这就好它们知道常见的性能缺陷知道如何避免一样。
3. 在项目初期进行测试和评估安全问题,不要遗留在最后生成前才进行。
4. 利用可用工具或者本地的解决方案持续监视应用程序安全问题——就像监控性能及功能。尤其是当你处在一个快速的移动架构拥抱开发和持续部署时间、新组建或者更改。,由此而产生有害的副作用。
5. 利用免费的工具和资源来获取漏洞相关概述以及如何确保它们不会对你产生影响。
归根结底,安全问题很难,它需要大量的时间和深入掌握技术要领。因此,请不要把安全归咎为“别人”的问题——尤其是那些因“别人问题”造成的,如果你妥协了,那么这很可能会导致你的用户或者客户遭受更大伤害。
6 月初,OWASP 更新了其十大安全漏洞列表,这也是自 2010 年至今首次更新。通过评估看以看出,安全一直是应用程序首要关注的问题,尤其是在 API 领域,因为大部分公司正在将核心资产及业务流程提供给其他人整合,旨在将其打造成为生态系统中一个至关重要的一部分(借此转化为货币利益)。
如今,入侵攻击风险、窃取数据或者 DOS 攻击等无处不在。这些风险看起来似乎很渺小,但是其带来的后果却是巨大的。从 Playstation 网站 7700 万账户被暴露,再到最近 2 月份 Twitter 的安全漏洞导致 250,000 账户被暴露,安全问题逐渐引发人们重视。
但奇怪的是,测试安全漏洞并确保应用程序或者 API 不被安全漏洞攻击,很多开发团队要么不知道要么就忽略了。2013 年 StarWEST 和 StarEAST (总部位于福罗里达州的 Software Quality Engineering)有超过 70 场会议都在讨论安全漏洞问题。最近我曾与一家分析公司探讨关于缺乏对 API 安全问题的“困惑”,包括供应商、API 赞助商以及 API 客户似乎都没有在这块领域上投入太多精力。
对此,我有几点想法:
首先,简单的无知。“这个不会发生在我们身上,或者我不知道你在说什么。” 很多人都有这种想法:没有人会在意攻击你的应用程序、API、技术组件或者你使用的语言不会轻易受到攻击,然而这种想法是错误的。
其次,尽早采纳新、酷技术。正如上文所述,开发团队往往不关心代码安全隐患,这个现实中很常见,当然这也同样适用于开发人员新组件和框架。然而这样存在很高的风险,开发者的关注的重点更多是在添加新特性或是否破坏它们的风格上,而不是担心他们的敏感信息是否被暴露或者 API 是否轻易被攻击。
最后,安全涉及的领域很广泛,这就意味着不同的人看法也不同。有的人注重认证和授权;有的人注重 SSL、加密和签名;还有的人则注重 VPNs、防火墙及 BYOD。倘若添加永无止境的列表标准和缩略词组合(WS-Security,SAML,OAuth,SSL 等)会存在较高的风险,在项目开发中通常只有极少部分领域被评估。
此外,在计算机领域还存在这样的趋势:
1. 将应用和数据迁移至云端,最终把它们设置在一个环境中,而云中的数据比私人数据中心的数据更容易被窃取,无论你有多少防火墙和路由器配置。
2. 暴露核心数据业务和流程 API 使得它们被潜在的商业合作伙伴(good)及黑客(bad)更容易窃取。
3. 大数据/NoSQL,包括存储尽可能多的数据——也存在风险,倘若它们落在了有些人手中,这个数据可能会被滥用。
很显然,你需要重视安全问题:不管你采用什么技术或是平台,总会很容易受到攻击。当你创建一款新的应用或者 API,你可以参考以下几点建议:
1. 确保在你的需求和封装过程(backlogprocesses)中添加安全系数,包括性能,功能,易用性等。
2. 积极投身安全问题、测试。确保开发人员和测试人员了解常见的安全漏洞,以及如何加以防范,这就好它们知道常见的性能缺陷知道如何避免一样。
3. 在项目初期进行测试和评估安全问题,不要遗留在最后生成前才进行。
4. 利用可用工具或者本地的解决方案持续监视应用程序安全问题——就像监控性能及功能。尤其是当你处在一个快速的移动架构拥抱开发和持续部署时间、新组建或者更改。,由此而产生有害的副作用。
5. 利用免费的工具和资源来获取漏洞相关概述以及如何确保它们不会对你产生影响。
归根结底,安全问题很难,它需要大量的时间和深入掌握技术要领。因此,请不要把安全归咎为“别人”的问题——尤其是那些因“别人问题”造成的,如果你妥协了,那么这很可能会导致你的用户或者客户遭受更大伤害。
赞赏
看原图
赞赏
雪币:
留言: