首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

分析了1380个软件后,在代码中发现了130万个漏洞

大数据观察

了解大数据,关注大数据观察吧!

每个想了解最新大数据资讯的人,都关注了我

文 / 数据君

应用或服务的安全编码很重要,但若事关处理个人数据的系统,那就不仅仅是重要,而是至关重要了。

软件分析公司CAST分析了1380个软件应用,在代码中发现了惊人的130万个漏洞。

有点网络安全常识的人都知道,软件漏洞就是向网络罪犯敞开的大门。

身份管理可以说是所有技术门类中风险最大的服务。身份盗窃事件常伴我们左右。咨询公司 Javelin Research 从事身份盗窃事件研究多年,其《2018身份欺诈》报告将2017年身份盗窃统计数据描述为“历史新高”,揭示身份盗窃继续困扰着这个行业。

身份管理中我们常会谈及所谓“武器化身份”的概念,也就是强化系统中的接入点和用户与服务交互的位置。然而,武器化过程需分层实施,而其中一层就是代码层。

身份管理安全编码

数字身份平台可能会非常复杂,因为这些平台往往得依赖外部数据源,并与第三方API集成。消费级身份与访问管理(IAM)甚至更为复杂。这类平台需要扩展功能来上传、存储和共享文档与图片。很多身份服务还融入移动设备App,或者说完全基于移动App。依靠身份生态系统各组件间通信所用协议的固有安全是不够的。此类生态系统的底层代码必须尽可能安全,同时又不能对其功能造成影响。

开发身份平台时可以采用如下几种最佳安全编码实践:

1. 使用良好资源

从安全编码入门经典资源开始。开放网络应用安全计划(OWASP)是安全编码实际上的入门资源。其安全编码“快速参考指南”是个极好的起始点,可作为开发过程中的复核工具使用。放心充分利用他们的资源。

2. 采用防御性编程技巧

这么做可以一定程度上避免出现可利用漏洞。其中一招是等价比较:把常量放到比较语句的前端。常量前置的话,如果不小心把比较操作符(两个等号“==”)误敲成赋值操作符(一个等号“=”),在编译或运行时阶段就会报错。举个例子:

不良编码习惯:变量在前

if ($result == ‘SUCCESS’) {

更好些的编码习惯: 常量在前——如果 “==” 误敲成 “=” 会导致运行时错误或编译错误

if (‘SUCCESS’ == $result) {

3. 清洗数据

数字身份,尤其是消费级数字身份系统,往往会调用外部数据源。来自外部源或由用户提供的所有数据都应该被当成不可信的。对Web客户端来说,这些数据包括从查询字符串或散列参数、cookie、本地存储等等获取的数据;对服务器端应用来说,这些数据包含通过POST、GET、cookie等等提交的数据。原生应用常会读取配置文件,而这些配置文件有可能被故意篡改。

无论如何,第一道防线都是数据清洗:确保数据中仅含有经允许的字符/格式。其中一个重点是检查最大数据域长度,避免缓冲区溢出攻击。

数字身份平台安全检查的另一个重要领域是图片上传。随着证件照片的存储和共享越来越广泛,IAM和CIAM服务也变得越来越重要。用户上传照片之类的文件上传行为可能会特别危险,必须严格检查以确保文件真的只是单纯的图片而没有隐藏的可执行内容。

4. 筛查

文档和其他文件存储是数字身份生态系统的重要部分。放到存储中的所有数据都必须经过可执行内容筛查。筛查过程无关底层数据库技术。比如说,虽然非SQL数据库对SQL注入攻击免疫,但仍有自身弱点,仍然要经过筛查。

5. 过滤

类似的,不应直接接受外部命令字符串。应设置过滤器,总是检查命令是否有效且适用于相应上下文。

6. 防止未经验证的代码执行

避免使用eval()类函数,因为此类函数允许未经验证的代码执行。内嵌eval()函数的函数也不应采用,比如JavaScript的SetTimer()。

7. 弹性为王

开发面向消费者的数字身份服务往往意味着需要覆盖大量用户。你得允许各种各样的值。应用开发编程的时候要考虑弹性,这样才能在外部数据值超出预期范围或类型时不会发生故障或允许代码注入。良好的单元测试或功能测试通常能检测出此类问题。

8. 谨慎使用开源代码

产品中引入最新版开源代码有可能同时引入了恶意软件。使用开源代码包时,最好在包管理器中设置特定版本号,以免误用未经验证的版本。编译过程应包含对所有外部文件的散列检查。

主题 |安防大数据

插图 | 网络来源

作 者 介 绍

数据君:)

了解大数据,关注大数据观察

部分图文来自网络,侵权则删

我想给你一个理由 继续面对这操蛋的生活

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190214B0Y8SS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券