0530-3433334

网站建设 APP开发 小程序

知识

分享你我感悟

您当前位置>首页 >> 知识 >> 软件开发

优品软件培育计划百场前沿技术系列讲座直播之高段位测试必备技能

发表时间:2023-09-19 13:00:40

文章来源:炫佑科技

浏览次数:127

菏泽炫佑科技

优品软件培育计划百场前沿技术系列讲座直播之高段位测试必备技能

有品软件培育计划百场前沿技术讲座系列第六场直播邀请了全球著名手机厂商QA田超从Web安全测试、App安全测试、安全测试、API等方面与大家共同探讨服务安全测试等高阶测试必备技能,帮助大家建立全面、稳定的安全测试知识体系。 现将整个讲座的内容整理如下优品软件培育计划百场前沿技术系列讲座直播之高段位测试必备技能,供大家继续学习和使用。 (文末附现场回放视频)

-文本-

首先我跟大家讲一下,什么是安全? 安全的定义是什么? 我们什么时候需要安全? 就像下图中我们平时使用的锁一样,它可以保证物品的安全。 这是一种物理安全。 该锁是通过机械加工制成的。 它有它的制造原理和设计原理。 锁的核心是锁弹簧,几个销子保证锁的安全。 下面的gif动画是撬锁工具的动态演示。 一旦了解了锁的原理,就可以轻松撬锁了。

根据加工精度,珠子的数量决定了*大按键组合的可能性。 互开率是评价一把锁是否安全的关键指标。 如果互开率是固定的,比如10%的互开率,也就是说,如果我尝试10把钥匙,总会有两把钥匙可以打开同一把锁。 这时候锁就不太安全了。 。 那么我们想一下,在不改变锁的设计原理的情况下,怎样才能提高锁的安全性呢?

在日常生活中,锁有设计、制造、销售和使用。 既然设计和制造工艺已经确定,那么*终的解决办法就是,要么我不装不安全的锁,要么我装了之后还想安全,那么就有十分之二的机会。 别把这个卖给我的邻居。 邻居拿到钥匙就可以打开我家的锁。

所以答案是,在实际销售过程中,厂家会将同一把钥匙、同一个锁芯销往不同的地方,比如一把锁销往陕西,一把销往长春。 跨地区旅行后,由于钥匙是实体钥匙,无法通过快速运输快速找到锁。 这样可以保证即使在制造和设计环节的安全性无法提高的情况下,也能提高产品的安全性。

这是一个想法。 希望这些小案例能够拓宽你的思路。 当我们谈论安全性时,原则和密码的强度是固定的。 如何使其相对安全或者提高其安全性? 这是我们在做安全测试时需要思考的问题。 毕竟每个公司的设计开发能力都是有限的,但是如果他们做出来的产品需要安全的话,就必须从多个方面来考虑。

刚才提到的锁的例子是一种物理安全。 在计算机领域,*常提到的安全性是加密。

在银行为了安全,钱必须放在保险柜里,用锁锁上,但如果把钱放在我们的手机银行里,更多的取决于我们自己设置的密码以及银行对交易过程的数据加密。 确保即使在看到加密的密码后,您也无法破解它。

我们知道,当银行卡丢失后,如果有人捡到你的银行卡,在ATM机上试错的机会只有两次。 如果第三次输入错误,银行卡将被锁定。 这也是一种安全机制,保证了我们使用的安全。

计算机内部的安全主要通过密码、加密算法以及密码的长度和复杂度来保证。 我们经常使用电脑。 作为计算机用户,我们都知道设置密码比较容易,但是记住密码却比较困难。 为了记住密码,我们通常会设置一些常规密码。 什么是常规密码?

这是一个规则,也是一个规则。 如何设置复杂的密码? 你很容易记住,别人却很难猜到。 这需要一些技巧。

让我再举一个例子。 有一部由张嘉译主演的电视剧。 他更改了家里的无线密码,导致孩子的母亲无法连接无线。 当被问及密码是什么时,他说了一首唐诗,在诗中每个单词的**个字母上添加一个符号或数字。 这时候密码的复杂度已经足够高了。 您必须知道这首诗和其他特殊字符才能猜测密码。 我们的密码安全首先要容易记住,其次要足够复杂,第三要足够长。 再者,我们所说的明文密码必须在计算机中加密,否则就只是一张白纸。 不管你设置得多么复杂,别人一看就明白。

正如我们之前听说的,CSDN用户密码都是明文的,这会导致整个网站的可信度下降。 我不确定我在其中写入的所有内容是否都以明文形式保存?

密码的复杂性无法承受当前的大数据、云计算、GPU计算和MD5字典等解密工具。 密码更多的是一种策略。 它们不能说是绝对安全,只能说是相对安全。 并且有时间限制。

另外,当别人想要获得密码时,首先需要获得利益。 当密码保护的数据和信息不足以产生巨大价值时,密码的安全性要求并不高。

第三个问题是我们的安全漏洞在哪里?

如下图所示,这是一根珠串。 这个产品本身有一个脆弱点,就是有一天会断裂,但是我们不确定它会从哪一颗珠子上断裂。 它可能是*容易摩擦的地方,或者在你拿到它而不使用它之后它可能会破裂。 有设计原因和使用原因。 因此,我们没有办法知道产品的漏洞在哪里,但是在做软件的时候,安全就需要我们一步步分析、建立模型,*终保证产品的安全。

接下来我们讨论一下安全保护的是什么?

早期,安全性被设计为一种称为“加密狗”的产品。 使用方法是加密狗需要放置在服务器的USB接口上。 每次程序在其中运行时,数据都会被加密狗加密。 、解密可以保证软件产品的运行。 它保护软件的版权。 我的设计专利不会因为你复制软件而起作用。 您必须购买加密狗才能使软件运行。

第二个是“文件加密”。 文件加密通常用于商业公司。 我起草了一份计划,起草了一份销售项目文件和意向书。 如何保证其安全性? 我不仅需要给文档添加打开密码和修改密码,而且还直接从二进制角度对内容进行加密,需要特定的软件才能打开。

第三种就是我们日常工作和上网浏览中经常见到的——动态验证码。 主要保证服务提供商的安全。 众所周知,互联网上有很多工具,比如黄背心、骑兵等,都可以批量发送一些请求或者数据包。 结果我的系统给特定人群提供了正常的服务,但是这些正常的服务就会受到干扰。 很多正常的服务无法得到满足,反而为有特殊动机的人提供了一些盈利的手段。 为了防止这种情况发生,动态验证码是用来验证操作这个网站的人是活人还是机器?

*初的验证码比较简单,比如*左边的数字形式。 随着机器学习或图像处理算法的实施,这种密码或动态验证码不再能保证网站的安全。 现在还有更多像中间那张这样的图,比如第二张图,姚明和李宇春让你知道有多少个姚明,还有12306,让你知道有多少个沙拉。 还有另外一个,就像*右边的那个一样。 安全验证需要您滑动滑块,这需要手动操作。 其准确度要求比较高,无法通过自动化工具或脚本来完成这些识别。 这些都是为了保证服务商的安全。

倒数第二张图,这个验证码属于特定领域。 这也是一种安全感。 它有什么局限性? 如果你能理解这个数学公式并正确计算出这个值,那么你至少在大学里学过数学。 它保证了我网站的受众有一个知识储备,这也是一种保障。

这是给您的一个例子。 这个例子就相当于家里的路由器。 路由器有一个功能。 如果我插入U盘,我可以保存路由器当前的配置信息,这意味着我维护的无线密码和加载的一些网关。 每个网口提供什么样的服务,这个信息是可以备份的。 备份后的内容就是这张图的下半部分,是加密的。 我们无法理解这样的文本,但是网上有一个工具可以帮助您解密它。

原理是什么? 我把这段代码拿出来了。 我们学习计算机语言的时候,其核心就是两个操作。 **个称为“模块”,另一个称为“余数”。 其实“模”和“余数”是同一个东西。 ,“取模”是指我取除法后的“余数”,对0到127的ASCII码字符进行取模余数运算,转换成相同的空格,实现字符转换。 比如M总是会转换成~,G转换成Q……对于普通用户来说足够安全,但是对于愿意在互联网上这样做的人来说就不安全了。 在普通人眼里是很安全的,但在特定修炼者眼里却并不安全。

接下来我给大家介绍两种加密方法。 一是我们通常所说的从原文到密文的过程。 它可以使用很多算法,比如这个模块化算法等等。

还可以使用Hash方法和Hash碰撞来生成Hash字符串,它是完全随机的。 这些都是保证信息安全的方法。

这种信息载体所表达的内容是普通人无法理解的,只有具有一定专业基础的人才能理解。 作为安全从业者,我们需要了解这些字符串的用途是什么? 它是如何生成的? 他的安全级别是多少? 就像我们生活中传统的三类锁A\B\C一样,A级锁15秒即可破解,B级锁2分钟即可破解,C级锁40分钟即可破解。 我们需要知道文件加密方式能够保证多长时间。 时间可以破解吗? 是1秒还是100秒? 还是说需要10年才能破解?

01安全测试的概念

安全测试是在IT软件产品的生命周期中,特别是从产品开发基本完成到发布阶段对产品进行检查的过程,以验证产品是否符合安全需求的定义和产品质量标准。 通常是产品开发基本完成到发布阶段时才做的事情。 这是一个普遍现象,但其实安全应该更早提前。 在设计阶段就应该考虑安全性。 验证产品的安全等级是什么样的,然后在*终的实施过程中逐步检查安全性是否达到设计标准。

此外,安全测试是在产品的安全需求定义文档中定义的,并且符合行业质量标准。 属于非功能需求检查类别。 有时候我们的需求文档可能并不能体现安全性,而只是说系统需要安全。 至于安全水平,目前尚不清楚其遵循什么样的国际或国家标准。 这就需要我们安全从业者去宣传,或者通过培训让企业和团队有安全意识。 只有慢慢添加这部分内容,才能有适当的测试,否则就没有参考标准。

02安全测试和功能测试的区别

安全测试和普通测试有一些区别。 功能测试是为了保证产品能够正常工作。 输入A可以得到A的结果,输入B可以得到B的结果。但是,安全问题是您可能输入%或*。 或者像“or 1=1”这样特殊构造的字符串,它可以绕过编程逻辑,导致程序将不应该暴露的数据暴露给用户。

我们一般认为大公司或者国外龙头公司的安全性很好,但事实上不一定如此,因为它会暴露个人隐私。 我们知道,个人隐私不是程序设计的问题,但仍然属于收集和使用过程中的安全。 这就是数据的安全、数据使用的安全、数据采集的安全。 这也是国家从去年到今年的严格规定。 吹。 非法收集公民个人信息,包括快递信息、家庭住址、电话号码……包括身份证正反面、持身份证照片等,收集后有义务保存安全并确保不泄露。

这些不包括在功能测试中。 功能测试仅确保功能能够正常运行。 上传手持身份证照片。 上传完成后会提示上传成功。 不过上传成功后,是否可以被盗,安全测试会检查。 它不属于功能测试检查的范围。

目标不同:测试的目的是发现BUG,安全测试的目的是发现安全风险。

假设不同:测试假设导致问题的数据是用户意外造成的,而界面一般只考虑用户界面。 安全测试假设导致问题的数据是由攻击者故意构造的,并且需要考虑所有可能的攻击向量。

不同的思维域:测试以系统的功能为思维域。 安全测试的思维领域不仅包括系统的功能,还包括系统的机制、外部环境、应用和数据自身的安全风险和安全属性等。

问题发现模型是不同的:测试基于对功能定义的违反。 安全测试基于对权限和功能的侵犯。

03安全测试和渗透测试的区别

很多人认为安全测试就是渗透测试,但实际上两者有很多区别。 渗透测试通常涉及有人邀请你做安全工作,而安全测试则规定你必须做安全工作。 渗透测试一般需要外部帮助完成内部的安全检查,而安全测试则从公司内部开始,解决安全风险,降低安全风险。 出发点不同。

视角也不同。 渗透测试更多的是一种攻击方法。 攻击可能是盲目的或者是探索性的,但是对于安全测试来说,它可以看到源代码,我就会知道问题出在哪里。 进行更正。

从覆盖范围的差异来看,渗透测试只是选择部分服务器或边界网络进行渗透,然后进一步深入到内网、或核心网、或核心服务器,需要逐级突破目标才能达到下一个级别。 目标。 但安全测试是从内部做的,从核心数据、数据库服务器、文件存储服务器和核心交换机开始,从这些核心地方慢慢向外推演,保证安全。 首先核心数据不能有问题,然后应用程序不能有问题,然后应用程序和数据之间的通信不能有问题,然后用户访问应用程序时不能有问题,*后,必须确保访问应用程序的人员的安全。 的。

安全测试是一种从内到外的安全,而渗透测试是从外到内的安全。 这是一种启发式方法。 但我们的安全必须从源头上解决,更重要的是要从实际操作层面直接堵住安全漏洞。 解决方案和成本也存在很大差异。 渗透测试需要大量资金,而且结果可能不是很显着。 但是,对于安全测试来说,只要做了这些安全检查,结果就会是等价的。 通过这些检查之后,肯定不会出现这样的问题了。

综上所述:

出发点不同:渗透测试是基于成功入侵系统并证明系统存在安全问题; 而安全测试的基础是发现系统中所有可能存在的安全风险。

视角不同:渗透测试是从攻击者的角度看待和思考问题,而安全测试是从防御者的角度思考问题,力图发现所有可能被攻击者利用的安全风险,并指导其修复。

覆盖范围的区别:渗透测试只是选择少数点作为测试目标,而安全测试是分析系统架构并识别系统所有可能的攻击接口后进行的完整测试。

成本差异:安全测试需要分析系统的功能、系统使用的技术、系统的架构,因此比渗透测试需要更多的时间和人力。

解决方案差异:渗透测试无法提供针对性的解决方案; 安全测试会从开发者的角度分析问题的原因,并提供更有效的解决方案。

04软件系统设计、开发和运行的安全

一个软件系统经历了需求分析、设计、开发和*终运行。 在设计的时候就已经融入了安全性,而操作性是安全性*重要的方面。 有些软件要求每天24小时、每周7天、一年365天不出现问题,甚至问题出现后需要多少秒才能解决。

我们当前的许多云和云服务器都是使用开源组件构建的。 对组件要做一些安全检查和版本更新,特别是版本管理,定期检查运行和设计的软件组件。

例如,组件中的安全漏洞已被披露,部分补丁已更新。 这些补丁必须在新发布的版本中替换。 但作为一个软件,从低版本改到高版本的时候软件开发,会有一定的开发或者维护工作量。 你需要对其进行适配,看看是否可以使用。 但无论多么困难,你都必须把工作做好,否则你就继续用它。 存在安全风险的版本可能会导致更广泛的安全问题。

那么我们就需要注意安全扫描。 一种是动态扫描,可以使用、等工具。 另一种是静态扫描,可以使用工具。 这些工具都是由世界知名IT公司开发的,可以用来解决知识储备不足的问题。 如果没有安全从业人员,但又想保证产品的安全,可以使用扫码工具。 该工具集成了大公司安全专家总结的扫描知识库和编码规则。 当安全从业人员水平不够时,可以使用工具来代替。

同样,这些工具也是我们安全从业者应该掌握的。 **,掌握它的原理,第二,掌握它的规则以及为什么使用这些规则。

(注:道普云测试SaaS平台已实现测试工具按需租赁模式,现已集成2020、SCA 20.1、20.1。无需承受较高的资金压力,可通过微信添加人员申请试用,vx:)

然后我们重点关注WAF,WAF的全称是Web,还有我们的物理。 应用防火墙对每个访问请求数据包进行过滤,看是否存在安全风险,是否存在SQL注入、XSS攻击、远程攻击命令或木马等。物理防火墙保证只允许可信主机或可信主机访问。 客户端连接到某个端口。 这两者之一是软件级防火墙,另一个是硬件级防火墙。

如果WAF未能有效拦截,就会导致木马进入服务器。 木马进入服务器后,可能会导致一些未经授权的命令执行,例如获取一些特殊文件。 举个极端的例子,服务器通过WAF被入侵,并以此为跳板向局域网传播木马和恶意软件。 网络维护人员恰好被该木马感染。 他的电脑被感染后,该文件就保存在电脑上。 每台交换机和每台连接的防火墙的连接密码都会被泄露,造成一系列蝴蝶效应,硬件防火墙将被破解。

这时候从网络到服务器再到数据库*后到外界,就变成了我们说的“如入荒地”。 这是相当严重的,所以我们需要更加关注WAF,因为WAF可以快速识别这些访问数据,而物理防火墙只能识别IP地址。

注意端口扫描和异常记录。 由于我们有防火墙,因此主机上打开的端口一定比防火墙上的端口多。 是否应该在主机上打开这些端口? 他们安全吗? 每个端口的通讯记录是什么? 无论是否存在任何异常情况,都需要定期进行监控或审计、分析。 这是保证运维安全的一种手段。

设计分层、环境迁移测试、模块隔离部署,我有一次出差,在客户现场做银行系统。 他们的发展有一个安全信条,俗称八荣八耻,放在大家*常去的地方。 这句口号的内容是:以开发安全可用的软件为荣,以系统中留下后门和彩蛋为耻。 为什么会有这样的口号? 因为如果银行系统存在彩蛋或者后门,就相当于留下了提款机。

我们设计分层的主要目的不是混合服务器。 小公司或者不成熟的开发公司可能把所有的东西都放在一台服务器上,无论是应用程序、数据库还是API接口,都在一台服务器上,导致业务数据、运营数据、客户数据都在一起。 这个时候,风险就非常大了。 任何一个层面出现问题,都是无法控制的。

然后是环境迁移测试。 既然我们进行了分层设计,那么我们就必须保证这些分层的模块独立运行。 它们要经受环境迁移的考验,不能只运行在某种容器上。 您无法进行迁移。

模块隔离部署,什么是模块隔离? 我们说数据和应用必须分开部署,应用内的应用也必须是模块隔离的。 财务部门的申请应与信息部门和生产部门的申请分开。 为什么? 因为金融是大家比较关心的,安全级别会更高,生产比信息化更高,应用层面一定要隔离。 否则,一台服务器上有很多应用程序。 当一个应用程序出现问题时,就会出现像我们一开始提到的链珠例子那样的情况。 当一颗珠子断裂时,所有珠子都会断裂。 这个时候,安全就没有办法自卫了。

如果部署在云端,纠正、熔断、防DDoS攻击都应该可用。 然而,必须在应用层面考虑整流和熔断。 建议您使用一些开源组件。 整改、熔断的隐患不属于安全隐患。 它们是性能危害。 然而,性能隐患*终会导致安全隐患。 如果出现性能问题并且服务器宕机,安全问题就会随之而来。

注意审计和日志记录,不要留下任何后门入口。 这也是刚才提到的例子。 我们在做软件开发、软件测试、软件设计的时候,一定要保证没有人为的破坏,因为人是*不可控的,而程序在运行。 逻辑,写if就run if,如果写else就run else,写循环就,但是人确实是不可控的。 我们经常听到“删库跑路”。 这也是为什么要保留审计日志,审计中不能留后门的原因。 一是防止“删库跑了”,二是不要把所有权限开放给一个人。 请务必注意帐户权限。 帐户权限是关键。

05Web应用安全监控

静态代码扫描(SCA、Find Bugs),这个区域主要是为开发提供的。 安全问题不是经过测试的,而是经过开发的。 这个问题在开发过程中就被埋没了。 测试期间您只能前往其中之一。 扫雷。 更重要的是,我们不应该在发展阶段就埋下雷区。

如何不布雷区? 也许很多时候我们并不知道,因为开发经验和经验不足,我们已经埋下了陷阱。 这时候我们又回到之前的话题了。 我们可以使用工具直接将SCA或Find Bugs工具集成到开发环境中。 这些工具可以帮助我们解决编码或者知识储备不足的情况。

动态扫描分析主要包括这两个工具,也有一些开源工具。 但开源工具的知识库维护相对较少,规则库更新不频繁或更新不及时。 这是我们安全测试人员必须掌握的。 他们不仅要掌握如何使用该工具,更重要的是,必须向开发团队解释该工具扫描的结果。 这是什么样的漏洞? 如何修复? 修复后如何验证。

舆情监控(CVE)是每个企业都无法逃避的。 他们必须使用开源组件、制造商的中间件、小型中间件或小型数据库。

账户安全策略(密码初始化、密码找回、账户过期、密码过期、账户休眠)。

很多应用不会考虑这些,*多考虑一次密码找回。 密码初始化是指我们后台新创建的账户。 实际使用该帐号时,必须初始化密码。

账户过期是指我的账户输入错误密码的次数,必须允许其过期或冻结一段时间,以防止暴力破解密码。 密码过期是指该密码只能在一段时间内使用。 例如,银行的密码可能只能使用一天,第二天就必须更改密码。

*后一种是账户休眠。 例如,一位高级领导被分配了一个非常高权限的帐户,但他很少访问系统。 一旦开发者知道密码,他就可以将该帐户用作后门。 这都是有风险的。 ,所以要关注休眠账户,是否有异常登录,是否有休眠政策。

接下来,我们需要拦截各种SQL注入、XSS跨站、网站挂载、篡改、库拖拽等黑客攻击,并实时更新防护策略,尽快防御各种0day漏洞。 这种0day漏洞和CVE一样,也需要按期监控,因为一般黑客拿到这个漏洞后,是不会公布的,除非厂家知道。 有一个时间差,在这个时间差内,已经有不少人受到攻击。

应对0day漏洞,需要在公司内部培养一个安全团队,专门查找产品是否存在0day漏洞,这就是一个安全实验室。 但大多数企业没有能力建立安全实验室,因此可以依靠百度、腾讯、阿里巴巴、360等外部出口公司来做这方面的防护。

为了防止数据伪造和数据中毒,为什么Web应用需要防止数据安全呢? 数据是指用户输入的各类数据。 用户可能会丢失业务数据,但如果不是普通用户,则可能会丢失精心伪造的数据。 它和病毒一样。 它可以以任何方式完成。 打哪里。

数据中毒是指我在数据中添加一些可以帮助我调试或者调试的内容,然后我就可以在系统中一一设置断点。 通过系统断点,我可以判断系统跑到哪里去了。 You can the link, or , data , and reach node.

06 of APP

The apps we now have three , ios, ios, and ios. Most of them are or ios. First of all, we must that the is safe. Here is an for you, an event.

This had a huge on the . Why did this ? It's we need to Xcode when we in China. The is large and from Apple's is slow. Many to the like . I just ghost it back and use it on my . , the is that the Ghost else's , but other 's has a horse, so a is left. There is a in every app you . 这是一个事件。

Many may not be able to tools, so they use . There may be in , just like a . You write a line of code and they will send this code to the other party's . Your has not been yet. By the time, the code had gone to else's .

SDK , we often use some SDK when , or some of our in SDK tools. this, the has also some . the SDK must it . , , don't . You can also pay to the " for App Using Kit (SDK)".

data , data needs to be . , a phone that is not () can be used , but the core data be . If after , the data is like a blank piece of paper that can get. You need to that even if you get the data after , , these data are also and a lot of you can see the text.

To give you an , the " (App) Data and White Paper (2019)" in 2019 data on the one hand, and the of the and use of on the other. Now the and in this area are , who it, who uses it, and who . If it be , the state will .

Anti-, anti-, anti-, there will be some on the Wuai forum, such as: Wuai the , app - the login of an APP, these are entry-level and Say you a piece of , but it can't even entry-level . Be sure to that the is anti-, anti-, and anti-.

The last point to use is to in as early as the stage to the of the code.

The below is a of the & of ios and

From the table, every item seems to be safer than ios, but said that, ios and are the same . The may be into ios and , but for the , it is the same . , it is the same API . If it can be done, ios can do the same. I don't use the ios app, I can also the data that ios can by the . At this time, I can the . On iOS , this is also , so are . You must that IOS is safe, once goes wrong, it will be an of .

安全测试

操作系统安全

Port , , , , , log audit

Let me tell you about the set. We often or Linux , which come with many by . For , the dhcp may not be , so don't these .

Then there is the log audit. If the is , the will try his best to erase the logs, so that you can't trace his and don't know what he did. , log must be out, and the time must be . , the audit log be .

软件安全

The set and are safer

Why are safer? Just like the set, we avoid some used that are prone to . For , if cmd and such are not , then you will not be able to the line when you want to . At this time, safe. He could guess the of the , but he 't guess what was in the .

Web

the port, the , and low-end

knows the port. As long as it is by Nmap, it can be to find out what ports the has , and it will be . But after you the port, he needs to guess, what is this port for? For , I put the on the side, put it at 80, and let him guess.

数据库安全

the port, , log , and

is very in DB . At the level of , must be . are . Even if it is a cloud , it is to when it will break down. After it down, these need to be .一遍,如果没有备份,这些安全策略就需要手工去加,特别繁琐,还容易遗漏。

缓存服务安全

性能监控,只开放服务端口,管理端口禁止开放

现在很多云服务器都被挂了一些叫“挖矿”的木马,原因就是开放了一些默认端口、管理端口之类的,把这些缓存服务管理端口禁止开放,只开放服务端口,加强性能监控,一旦服务器出现异常的性能问题,一般来说它可能出现安全问题。性能和安全是相伴出现的,批量扫描、批量攻击肯定会导致性能突然间就飙上去了。

云主机业务隔离、网络隔离、数据隔离

这个是很多大公司都在做的,用了几千台几万台云服务器,每个业务、每个数据、每个网络都需要去隔离的,否则就会出现服务器云安全级别的雪崩。

08API服务安全检测

API接口说明屏蔽

· API接口列表保护

· 使用API 网关

API接口*简单,也*容易被忽视。很多人写完接口后,忘记删除API接口列表,或者为了方便别人调用API接口,去写了一个说明文档,结果这个接口没加权限,导致黑客上去随便一扫,就可以发现这个API列表。

这个列表拿下来之后,攻击所有的API,尝试一遍,将所有不需要传参或者传参比较简单的API全部攻击一遍之后,就会导致数据泄露或者数据出问题。

API为什么容易被攻击?因为API直接连到数据库,API的访问是直接跟数据库进行交互。通过API访问的所有请求ip地址全部是服务器,导致你在监控层面很难去发现这出了什么问题,岂不知道黑客已经站在API服务器上去打数据库服务器了。所以API也是很关键的,一定要去保障它的安全。

在API的管理方面,**个要分权:

API访问权限控制

· 增删改查API需要单独确权(Auth2.0 Token验证)

查询的就只能去查询,只能去get,而不能去post,需要修改的,可能有post权限,但一定没有权限。

· API访问审计(日志)

Token授权机制、时间戳超时机制、API加密签名机制。这里专门拿一张图来说明Token授权

API没有办法去做登录验证,合理使用Token增加API安全的基础。

API版本安全

不同版本API直接兼容及信息保护。

因为我们的API通常会开发1.0版本、1.1版本、2.0版本、2.2版本...每一个版本对应的客户端可能不同,比如说1.1版本对应的是app的1.0版本,到了2.0的时候对应的app的4.0、5.0,这个时候客户端的app可能有低有高,有不同的版本。导致API不能高版本一上线、低版本立即下线,这个时候兼容性以及信息保护就需要提到日程上。不能出现低版本的客户端可以访问高版本的数据、高版本的客户端可以访问更低版本客户端的数据,通过这种迂回的绕过,导致API中的数据暴露出来。

*后给大家分享一个安全牛上的一个文章《API的安全危机》,大家可以去学习了解。 Link:

09知识、工具、技能

*后再跟大家探讨一下,安全从业人员需要哪些技能。

知识

· 密码学

· 社会工程学

· 汇编、调试

技能

· 电子数据取证

CTF、攻防技术,明白是怎么迂回绕过的,怎么去找黑客攻击的痕迹,或者说怎么去取证反编译、逆向破解,知其然也要知其所以然,找到安全漏洞的时候,可以把它直接取证出来,会写poc、会用poc。

· 、shell、batch,这些都是*基础的

再就是给大家列了一些比较常见的工具,都是安全人员必须会用的,尤其是、、、这些二进制的工具,我们看到的软件可能是exe,安全人员看到的永远都是二进制或者汇编,一定要掌握这些基础,否则看不出有什么端倪。

Web网络工具

Burp Suite、、、

图片分析工具

,,,

文件分析工具

,,,

反编译、调试

、、Jd-GUI、IDA、

10安全测试的目标和意义

目标:

检查被检测对象是否符合某种安全标准,比如说国家出的安全标准,要检查产品是不是符合这些标准。

提升研发开发安全代码的意识,安全更多的是培养开发的安全意识,在开发的阶段不断地培训、检查,在开发阶段把这些安全问题规避掉。而不是等开发完成后才去扫描、去试探,这个时候其实是黑盒测试,这个时候已经来不及了,必须在白盒阶段把安全问题解决掉,或者说消灭掉。或者说没办法解决,就要加到备忘录里面去,知道这是已知的风险,在上线后,一定要去监控这些风险有没有发生。

维护品牌价值,增强客户信任。如果出现安全问题将会对品牌产生很大的负面影响,甚至股票就直接掉下去了,这些都是很大的经济损失。安全是经不起任何马虎的。

安全测试的意义:

全方面检查软件产品的安全,提升软件产品运行可靠性。

加高系统安全防线,保护产品,明确系统的安全风险。

这个刚才也提到过了,解决不了的就要写备忘录,能解决的一定要解决。能提高的一定要提高安全标准,比如说,开始用MD5加密,*后我用位加密,再不行就直接上AES-512、AES-256这种长度加密,提高产品的安全性。

今天的内容就到这里,*后有一句话送给大家“没有绝对安全,只有相对安全”,做不到绝对的安全,但是可以做到相对的安全,心知肚明的安全,让安全在工作中既可以给我们带来收益,也可以带来产品安全上整体的提升。

炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等

相关案例查看更多