安全测试之未知攻焉知防

发表于:2017-1-18 14:57

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:串串    来源:51Testing软件测试网采编

  背景:想必今年听到的最多的就是信息安全,尤其是到了年底,各大网站、电商等都在推运营/促销活动,那么有利必有可图,势必会引起“有技之士”大干一场。本篇聊聊个人对业务产品安全浅薄拙见。
  说安全测试之前,先说说什么是安全测试?
  安全测试在百度百科中定义为:是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程 。
  然而这个过程在我觉得太晚了,我们是做业务方向的测试,做过业务测试的童鞋就知道都快要上线了才发现安全测试问题,就会导致项目延期,这并不是我们想要看到的,因此,“测试前置”亦可用到这里,在需求评审阶段,就该提前发现出一些关于业务逻辑漏洞的问题。
  未知攻焉知防
  在学习安全测试技术前,个人建议先培养安全思维。举个最简单的例子,警察想要抓小偷,就该先摸透小偷的想法,才能更快捷的抓到小偷,换言之未知攻焉知防。
  而培养安全思维时,需要练习的是在脑海中先入为主一个概念,那就是所有人都是坏人。什么意思?就是使用我们产品的人都是坏人,那么我们在看这个需求的时候,就要 考虑作为“坏人”,该如何用我们的产品。
  举个例子,需求-要在书店里买本书
  作为一个“坏人”,我想到的,肯定是如何不花一分钱拿到这本书。
  那么问题来了,如何可以不花一分钱拿到这本书呢。
  (1)伪装工作人员? 类似于有了root权限
  (2)用别人的钱买书 类似于 用户越权
  (3)直接塞兜里跑出去 类似于 数据泄露
  而这个生活中常发生的栗子可以看出,“偷”的思维同我们互联网是息息相关的。
  接下来举两个平时接触到的产品需求来看看,平时我们该如何从安全的角度去思考我们的产品。
  重点关注利益的唯一性以及确认性
  产品需求文档:“为了更有效的获得商机数据,招聘产品市场部购买了每月新增的工商注册数据。为了更好拉动上新增企业在平台上的活跃行为以及利用数据资源。现需求对该新增企业进行企业激活,通过赠送推广优惠券吸引新增企业下载app并来到企业大类页进行留存。”
  看到以上文档,我们能想到什么呢?
  问:新增企业:新增企业的标准是什么? 文档里只有说注册新增企业,那么我注册房产的,注册个人的也都是注册,怎么判断为企业呢
  答: 某些白名单手机号注册的企业
  问:白名单手机号注册后,领到优惠券,然后注销注册,再次重新注册还会领到优惠券,这块是否有上限?
  答:(⊙o⊙)… 漏了这块
  从以上例子,其实最想说明:需要重点关注利益的唯一性以及确认性,说白了,如何能确定我这个奖励一定只给这个人,且有上限控制。
  所有没有上下限的设计都是不靠谱的设计
  产品需求文档,产品背景是用户可自发发照片参与投票选“美”大赛,同时两两间可以进行相互PK,赢的一方得对方票数,其中PK规则如下“。
  用户可在个人中心作为攻方发起PK,通过微信分享邀请好友点赞,PK期间(十分钟内)获赞数多的一方获胜。
  累计10次发起PK并取得胜利即可获得10元话费。
  如果PK发起方胜利,则获得PK接受方截止PK结束时的全部赞数+1并获得丰厚奖品;
  如果攻方PK失败,则仅将PK期间赞数计入累计总赞数;
  不论守方胜利与否,都仅将PK期间赞数计入累计总赞数;
  守方一小时内未开始PK,则视为弃权”
  看以上规则,我的第一印象是:
  赢了有10元话费和丰厚奖品;
  怎么赢?要么赞数多,要么对方弃权
  问题来了:
  最简单的赢法就是对方弃权,而对方弃权有两种场景:
  1. 趁对方不在时,进行pk。大部分人休息时间为晚10点半到第二天7天,这个时间段进行pk,会有很大的几率对方不在,即可轻松获胜,而我们的游戏规则中并没有时间限制
  (锦囊:游戏时间控制,非常规作息时间不进行pk活动)
  2. 大量注册僵尸号,自己同自己PK,赢取奖励
  (锦囊:这块可加上如果发现刷单验证的,将实行每天每个用户发起PK次数限制)
  另一个赢法:
  点赞数 --- 点赞数的问题,是否一个人可以无限次给某个人点赞?如果这块没做限制,作弊就太容易了,这块需求中也没有说明。
  (锦囊:可建议每个人只能给某个人赞一次或每天最多一次)
  这时就会发现问题,一个人疯狂的PK胜利,是不是就会无限制领话费,100元,1000元甚至1万元,这块也没有考虑到
  (锦囊:对于领取话费,可增加日志审核流程,延时48小时支付10元话费)
  通过这个实例,总结一下就是“所有没有上下限的设计都是不靠谱的设计”
  业务产品的漏洞往往比技术漏洞更可怕,在我们做产品需求评审的事假,就可以通过以上两个总结,及早发现产品需求问题并及时做调整,而不是等到快上线或者上线后才发现。
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号