你有这种习惯吗:不论使用新设备还是新软件,都会仔细查看使用说明,再根据需求将默认配置针对性地改一遍?

按理说这是应该的,但冗长的说明事项每多一行似乎都在将我们逼退一步,加之一般情况下保持默认配置也不会有较大疏漏,因此为图方便,许多人都不会轻易更改初始配置。

但最近,网络安全评估公司 UpGuard 发现了一个特殊情况:微软 Power Apps 的一个默认配置使数据处于可公开访问的状态!许多用该开发平台创建的 Web 或移动应用均中招,暴露了近 3800 万条包含敏感信息的数据记录

一、微软把自己都“坑”了

Power Apps 是微软旗下一款低代码开发平台,开发者可轻松创建供外部调用的 Web 或移动应用,生成面向公众的站点和数据管理后端。除了管理内部数据库和提供开发应用的基础之外,Power Apps 平台还提供现成的 API 来与数据进行交互。而这次的问题,就出现在 API 上。

今年 5 月,一名 UpGuard 的分析师意外发现一个 Power Apps 门户网站的 OData API 竟提供了可匿名访问的数据记录,其中包括个人详细信息。

虽然当时 UpGuard 立即与该应用所有者取得联系并保护了这些数据,但这件事却引发了一个思考:其他网站或应用是否也存在这样的情况?UpGuard 网络研究副总裁 Greg Pollock 说:“我们发现 Power Apps 中有一个错误配置使数据暴露,而在此之前我们从未听过这种情况,所以我们想知道这是偶然事件还是系统性问题?”

据 UpGuard 介绍,由于 Power Apps 创建的门户产品工作方式较为统一,因此进行快速调查非常容易。如果启用了 OData API,数据列表将在’_odata’端点列出。简单来说,即对于任何给定的门户网站,都可以通过访问 example.powerappsportals.com/_odata 来确定是否启用了 OData API。如果允许匿名访问,那么访问列表的 URL 即可显示数据;如果启用了某种级别的表权限,则显示禁止访问的提示。

调查结果发现,能通过 OData API 获取数据的现象不在少数:JB Hunt 的求职者数据曝光;福特的经销商自助服务门户曝光;就连微软也在自己的 Power Apps 门户中公开了许多数据

目前已知由此曝光用户数据的实体共有 47 家,其中包括:印第安纳州、马里兰州和纽约市的州和市政府机构,和美国航空公司、福特、JB Hunt 和微软等私营企业,总计约 3800 万条数据记录。

但好在截止目前,尽管这些数据是向公众开放的,但并没有任何迹象表明这些数据已被滥用。

二、要想保护数据,需手动修改配置

即便如此,3800 万条“裸奔”的数据记录还是令人震惊。Upguard 追溯了这大范围暴露数据的源头,发现 Power Apps 对于 OData API 的默认配置存在问题:一旦 OData API 被启用,Power Apps 就默认使相应的数据可以公开访问

关于这点,其实微软在相应的文档中有所提醒:“为保护列表,你必须要为正在显示其记录的表配置表权限,并将列表记录上的启用表权限布尔值设置为 true。”

但对于早已习惯保持默认配置的诸多用户而言,这个提示显然过于隐晦了,毕竟连微软自己都中招了。因此,不论是出于安全还是隐私保护,这种需要手动开启安全保护的默认配置显然不够合理。

三、微软:不是 Bug,是有意设计成这样的

找到原因后,Upguard 于 6 月 24 日向微软安全资源中心提交了漏洞报告。据 Upguard 介绍,这份报告包含了一系列从允许匿名访问公开敏感数据的实体获取的列表数据和 URL,以及他们识别是否启用 OData API 的步骤。

由于 Power Apps 可快速轻松启动网站或应用,因此如今它在国外经常用于创建防疫工具,例如联系人跟踪、疫苗接种状态等。为向微软强调该问题的严重性,Upguard 特别指出,这次发现受影响的实体中就包括美国政府用于疫情追踪和疫苗接种的三个 Power Apps 门户。

据 Upguard 表示,这份报告自动被 MSRC(微软安全响应中心)接受,微软分析师们也于当天就开始调查。但几天后微软分析师“确定这种行为是有意为之”,即这个默认配置并非软件漏洞,是有意设计成这样的。

但 Upguard 认为,这即便不是软件漏洞,也属于一个平台问题,需要对产品进行代码更改,需要微软做出改变以响应问题的产生。好在最终微软还是采取了后续行动:

  • 虽然 Upguard 没有收到有关通知,但他们发现原本 6 月还在公开的一些门户数据 7 月底就关闭访问权限了,由此可知微软应该是通知了相关客户;

  • 8 月初微软宣布 Power Apps 门户现在将默认存储 API 数据和其他信息,将安全标准降低到更适合低代码应用程序的级别;

  • 微软还发布了一个用于检查 Power Apps 门户设置的工具,以便在默认情况下强制执行表权限;

  • 文档页面也进行了优化,在原先隐晦的提醒下加了一个粉色方框警告:“当为敏感信息启用没有表权限的 OData 时,要谨慎使用。”

关于此事,开放加密审计项目(Open Crypto Audit Project)主任 Kenn White 指出:“安全的默认配置非常重要,当一个模式出现在使用特定技术构建面向网络的系统中而该系统仍配置错误时就会出现非常严重的问题。如果来自不同行业和技术背景的开发者不断在同一个平台上犯同样的错误,那么这个平台的所有者就应当重视起来。”

最后,Upguard 也提醒道:“随着越来越多的信息被转移到网上,敏感数据被公开的频率也会增加,但技术领导者应该对数据暴露的现象有一个大致的了解。”

那么,你对微软的这种默认配置有什么看法吗?你是否有修改默认配置的习惯?

参考链接:

  • https://www.upguard.com/breaches/power-apps

  • https://www.wired.com/story/microsoft-power-apps-data-exposed/

3800 万条敏感记录在“裸奔”!微软这个默认配置把自己都“坑”了相关推荐

  1. 微软低代码工具 Power Apps 配置不当,暴露3800万条数据记录

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 Upguard 研究院称,由于微软 Power Apps 默认配置安全性薄弱,敏感数据如 COVID-19 打疫苗情况.社保号码和邮件地址遭泄露 ...

  2. 深圳一 AI 公司人脸数据泄露,超 256万 用户敏感信息在“裸奔”!

    作者 | 琥珀 出品 | AI科技大本营(ID:rgznai100) "专窥大众底裤的公司忘记穿裤就裸奔了--" 不得不说,对于这种运维不够,吃瓜群众来凑的热闹,往往能惹来不少相关 ...

  3. 深圳一AI公司人脸数据泄露,超256万用户敏感信息在“裸奔”!

    作者 | 琥珀 出品 | AI科技大本营(ID:rgznai100) "专窥大众底裤的公司忘记穿裤就裸奔了--" 不得不说,对于这种运维不够,吃瓜群众来凑的热闹,往往能惹来不少相关 ...

  4. 狮航发生大规模数据泄露,涉及 3500 万条乘客记录

    据悉,这些泄露信息处于一个在线公开的亚马逊存储桶中,存在两个数据库中.其中,一个数据库包含 2100 万条记录,另一个数据库包含 1400 万条记录.它们位于一个目录中,该目录包含 2019 年 5 ...

  5. 程序员作死手册:我们是怎样弄丢1400万条日志记录的

    作者丨熊节 策划丨Tina 在这里,我们就将涉事企业姑且称为"某公司".至于发现问题的开发人员,我们也隐去真名,称其为王二. 在本文中,我们借此机会聊聊软件开发中的人为错误,以及针 ...

  6. 1万条数据大概占多大空间_「数据分析」Sqlserver的窗口函数的精彩应用之数据差距与数据岛...

    上一篇介绍过数据差距与数据岛的背景,这里不再赘述,请翻阅上一文.此篇在Sqlserver上给大家演示1000万条记录的计算性能. 测试电脑软硬件说明 一般般的笔记本电脑,2017年7月,价格:4500 ...

  7. java sql 写入万条数据_如何快速向数据库插1000万数据?4种方法对比,它简单却速度最快

    目录 场景介绍 项目配置 Mybatis为什么慢? JdbcTemplate让我眼前一亮 原生JDBC就是快啊! 存储过程怎么样? 越简单越快 前言 一直有一种说法:批量插入大量数据到MySQL数据库 ...

  8. python flask + js ajax + echarts 53万条招聘信息可视化系统的渣实现

    (从0到1非常详细步骤)flask+ajax+echarts 53万条招聘信息可视化系统的实现   本篇blog默认:您已经入门echarts.html.js.json.python,知道一些大概的东 ...

  9. 我分析了2万条饿了么、美团红包记录,这些是红包最多的APP(附数据集)

    授权转载自公众号THU数据派(ID:datapi) 作者:窦英通 引子 笔者在2015年7月创建了一个以分享滴滴打车红包为主的微信群聊,创建的本意是为了方便大家在分享红包时不打扰别人,在乘车需要红包时 ...

最新文章

  1. Facebook AI新架构:全景FPN,同时完成图像实例与语义分割 | 极客头条
  2. 实现账号在一端登入_跟我学spring security 基于数据库实现一个基本的登入登出...
  3. pytorch 实现transformer
  4. ITK:读取网格并显示2个给定顶点之间的欧几里得距离
  5. 三年经验前端社招——朴朴科技
  6. redis watch使用场景_redis不得不会的事务玩法
  7. java调用构造函数中某一个值_Java如何在枚举的构造函数中调用另一个枚举值
  8. 系统更新win10服务器失败,win10更新失败?使用这三招轻松解决,远离更新失败的烦恼!...
  9. 像素生存者2为什么显示服务器不可用,像素生存者2为什么更新了玩不了 | 手游网游页游攻略大全...
  10. win10打开命令提示符
  11. VSCODE + 搜狗输入法,文字突然变成了繁体字,为什么?
  12. css交集选择器什么意思_零基础学习CSS(3)——交集选择器、并集选择器、
  13. 密码校验规则前台验证
  14. PBR中引入IBL——漫反射篇
  15. linux rm-rf误删文件 思路
  16. Python人脸识别—我的眼里只有你
  17. 台式计算机清洁除尘内容,台式电脑除尘法, 需要的赶紧收藏
  18. git+gerrit+jenkins+sonar 持续集成开发环境搭建
  19. 高精度运算模板(高精度加减乘除)
  20. C语言之使用memcpy函数实现小数组数据不覆盖地复制到大数组

热门文章

  1. 神经网络编程的34个案例,java调用神经网络模型
  2. OpenBmc开发错误6:gyp ERR! configure error gyp ERR! stack Error: socket hang up
  3. Redis集群(读写分离、哨兵机制、Cluster集群)
  4. 微服务拆分原则之AKF
  5. json字符串转成 json对象 json对象转换成java对象
  6. Java并发(一)并发基础
  7. 视频人体动作捕捉技术
  8. 《设计模式解析》读书笔记
  9. keil 4c语言读写寄存器,【STM32单片机学习】第四课:GPIO控制LED(用寄存器编程)
  10. CVPR,ICCV,ECCV顶会论文