前言
安全性测试(Security Testing)是指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程,其主要目的是查找软件自身程序设计中存在的安全隐患,并检查应用程序对非法侵入的防范能力,安全指标不同,测试策略也不同。
但安全是相对的,安全性测试并不能最终证明应用程序是安全的,而只能验证所设立策略的有效性,这些对策是基于威胁分析阶段所做的假设而选择的。例如,测试应用软件在防止非授权的内部或外部用户的访问或故意破坏等情况时的运作。
软件安全是软件领域中一个重要的子领域,系统安全性测试包括应用程序和操作系统两个方面的安全性。而系统安全性又包括两个方面的测试:
-
一是:软件漏洞,设计上的缺陷或程序问题;
-
二是:数据库的安全性,这也是系统安全性的核心;
安全测试的常用方法有以下几种:
一、静态代码检查
静态代码检查主要是通过代码走读的方式对源代码的安全性进行测试,常用的代码检查方法有数据流、控制流、信息流等,通过这些测试方法与安全规则库进行匹配,进而发现潜在的安全漏洞。静态代码检查方法主要是在编码阶段进行测试,尽可能早地发现安全性问题。
二、动态渗透测试
动态渗透测试法主要是借助工具或手工来模拟黑客的输入,对应用程序进行安全性测试,进而发现系统中的安全性问题。动态渗透测试一般在系统测试阶段进行,但覆盖率较低,因为在测试过程中很难覆盖到所有的可能性,只能是尽量提供更多的测试数据来达到较高的覆盖率。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】
三、扫描程序中的数据
系统的安全性强调,在程序运行过程中数据必须是安全的,不能遭到破坏,否则会导致缓冲区溢出的攻击。数据扫描主要是对内存进行测试,尽量发现诸如缓冲区溢出之类的漏洞,这也是静态代码检查和动态渗透测试很难测试到的。
从用户认证、网络、数据库和Web 四个角度进行安全性测试,需要注意以下几个方面:
1)用户认证安全性测试
-
系统中不同用户权限设置;
-
系统中用户是否出现冲突;
-
系统不应该因用户权限改变而造成混乱;
-
系统用户密码是否加密、是否可复制;
-
是否可以通过绝对途径登录系统;
-
用户退出后是否删除其登录时的相关信息;
-
是否可以使用退出键而不通过输入口令进入系统;
2)网络安全性测试
-
防护措施是否正确装配完成,系统补丁是否正确;
-
非授权攻击,检查防护策略的正确性;
-
采用网络漏洞工具检查系统相关漏洞(常用的两款工具为NBSI 和IPhackerIP);
-
采集木马工具,检查木马情况;
-
采用各种防外挂工具检查程序外挂漏洞;
3)数据库安全性测试
-
数据库是否具备备份和恢复的功能;
-
是否对数据进行加密;
-
是否有安全日志文件;
-
无关IP 禁止访问;
-
用户密码使用强口令;
-
不同用户赋予不同权限;
-
是否使用视图和存储过程;
4)Web安全性测试
-
部署与基础结构;
-
输入验证;
-
身份验证;
-
授权;
-
配置管理;
-
敏感数据;
-
会话管理;
-
加密;
-
参数操作;
-
异常管理;
-
审核和日志记录;
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!