1.安全测试在作什么?
扫描?在不少人的眼中,作安全的就是成天拿个工具在哪里作扫描操做,使用各类不一样的工具作扫描。是的,扫描是安全测试的很重要的一部分,扫描能够快速有效的发现问题。扫描工具的易用性、方便性决定了重要地位。可是扫描工具的局限性、程序的不够灵活等缺点也是显而易见的。无论是扫描报告的分析、漏洞的深度挖掘、测试的组织等等的工做都离不开安全测试人员,因此只能说扫描工具减轻了测试人员的工做量,是安全测试的一种手段。
2.安全测试者是怎样定位本身的?
咱们常常能够从身边的朋友口中听到一些有关安全的名称,向什么软件安全、信息安全、网络安全、计算机安全等一些词组,这些领域都是作安全的,那么咱们是属于哪个呢?
你们能够上百度百科查看下这些词组的概念。软件安全往小了说就是某一个软件产品,说大了除了硬件就是软件了啊。信息安全看名字咱们就知道关键是信息两个字,可是什么是信息呢,客户的数据仍是一切有用的数据?网络安全,什么是网络,网络系统硬件、软件这都是写模糊的可大可小的概念。在看计算机安全,PC?服务器?路由器?好吧咱们能够看到这些概念往大了说就成了组成咱们今天互联网的各类设备包括各类的嵌入式机器、外接USB、浴室柜尺寸价格专卖蓝牙等设备的共同体的硬软件,以及使用、维护、木桶箱子专卖厂家价格管理等这些东西的人的整个的安全问题。在看他们的区别,他们已不一样的地方做为其主要关注点,或者说出发点,他们并无明显的界线却有着本身的侧重点。而咱们的侧重点是什么呢,咱们产品是一个什么样的产品呢?咱们有WEB服务、接口服务、文件服务、视屏等服务等咱们把它们统一称为咱们的系统,那么咱们就是在作这个系统的安全测试,因此我以为咱们应该定位为系统安全测试。
固然咱们的系统运行中也涉及到人、涉及到硬件,javascript
好比这些站安全比较好php
此处都不是咱们的关注点,咱们只从软件技术的角度来识别它。那么,系统安全测试就成了区别于功能测试,和性能测试同样,单独列出来的专项测试了。html
3.安全的本质是什么?
信任、人性(网络安全的最大漏洞是人)、止损、攻防
以上是当前网上一些主要的论点,以信任或者不信任做为本质出发点的仍是占据主流的。
4.概念定义
敏感数据:
敏感数据的具体范围取决于产品具体的应用场景,产品应根据风险进行分析和判断。典型的敏感数据包括口令、银行账号、大批量我的数据、用户通讯内容和密钥等。
我的数据:
指直接经过该数据或者结合该数据与其余的信息,能够识别出天然人的信息。
匿名化:
指对我的数据进行的更改(例如单向散列、截短、替换等,如需保留我的数据真实值与替换值之间的对应关系,可使用对称加密或映射表方式,但密钥/映射表必须由数据全部者控制),使原来有关我的的信息再也不能归属到一个可识别的天然人,或推理这种归属须要耗费过多、不相称的时间、费用和精力java
5.咱们应该如何去着手
如何着手去作这个系统安全测试呢?做为一个测试人员要保证系统总体的安全,这就须要有一个总体的结构的框架,就像盖房子同样,先造钢筋混凝土框架,而后砖块去填充它。这里的钢筋混凝土框架就是安全特性方向,其实就是从总体方向上的一个划分,能够有以下简单的划分。
5.1.测试的特性
安全特性:操做系统安全、数据库安全、WEB安全、软件的发布和安装安全、协议与接口攻防、敏感数据保护、手机端安全、静态代码分析。
5.1.1.操做系统安全
操做系统安全咱们能够把它分为如下几块:
系统漏洞(操做系统补丁)、系统配置(安全加固)
业界权威工具Nessus,其余如retina、绿盟、天镜等。开源的工具可使用OpenVAS。
5.1.2.数据库
数据库安全咱们能够把它分为如下几块:
数据库漏洞(补丁)、数据库配置特产(安全加固)
工具可使用Ngs
5.1.3.web安全
数据库安全咱们能够把它分为如下几块:
身份验证、验证码、会话管理、权限管理、敏感信息传输、安全审计、信息泄露、输入校验、输出编码、上传下载、异常处理、注释代码等
容器的安全(tomcat)
应用软件安全(nginx、负载均衡软件、jquery等)
扫描工:appScan、awvs
5.1.4.软件的发布与安装安全
发布件的完整性校验(签名、哈希)
防病毒:须要安装的软件须要通过经常使用的杀毒软件(如360、卡巴斯基、金山毒霸等)的扫描,保证没有病毒特种码,以避免被杀软处理掉。
5.1.5.协议与接口攻防
业务交互数据在网络中使用的协议安全性测试
协议测试工具:codenomical
对外开放的端口:系统对外开放的端口必须是必须的,禁止开放无用端口
端口扫描工具:Nmap,近端能够直接在服务器上使用命令查看
接口:接口接受的数据须要作严格的处理
接口数据严格校验测试
5.1.6.敏感数据保护
识别敏感数据:密码、秘钥、会话标识;我的信息、商业机密、客户信息等
保护:加密、存储位置、传输方式;获取数据脱敏、匿名化node
5.1.7.手机端安全
一、app的签名、反逆向
二、用户隐私
三、文件权限
四、网络通信
五、运行时解释保护
六、组件权限保护
七、升级
八、3rd库mysql
移动APP测试要点:http://blog.nsfocus.net/mobile-app-security-security-test/
5.1.8.静态代码分析(纯白盒)
白盒测试主要是经过对代码的浏览来发现问题,固然问题的类型多是跟咱们黑灰盒总结的一致,拿出来单独讲是由于其不一样于其余的测试方式。
一、危险函数、方法
二、工具检测
三、逻辑漏洞jquery
灰盒
结合白盒和黑盒的一些思路,在实际的代码审计中建议采用灰盒的方式,在须要的地方对代码进行动态调试查看。审计中思路能够考虑以下这些部分:
一、涉及敏感数据的时候,检查是get、post哪一种形式发送数据
Get传输的数据会被记录在代理、浏览器、web容器tomcat等的日志中
二、提交铭感数据的时候是否有防止csrf的token、refer、验证码等
三、sql注入
1)Statement和preparestatement
2)mybitas框架 #和$
四、XSS
咱们用的antisamy只能过滤基于标签的XSS伪造,其余的没法过滤,须要作二次过滤
五、逻辑
此处是指,逻辑思路不合理,不符合安全的一些思想,如权限最小化等等
六、参数范围是否形成dos或者影响系统性能
七、权限校验、越权
1)横、纵、多步骤关联性
2)
八、session会话管理
1)常规cookie及session形式
2)把token做为session的形式,特别注入登陆用户和token的绑定关系
九、参数是不是简单形式,是否能够形成遍历
十、代码中使用的第三方插件、开源软件是不是最新、是否有安全漏洞
十一、代码中所使用的加密算法,是不是安全的
十二、跳转中的redirect形式中不要带敏感信息,会被发回客户端从新请求的,至关于把这些参数放在了get请求中
1三、SSRF服务端请求伪造,注意url中含有另一个url的请求
1)源码中使用urlconnection 支持的协议除了http和https之外,还有file、ftp、jar、mailto等
request、httpurlconnecttion、httpClient、URL等发起网络请求
1四、加密算法的使用,是否使用的是不合场景的弱算法linux
1五、数据插入自增Id攻击
数据传入过来作插入动做,而且使用spring自动绑定对象方法获取数据,以后使用生成的插入sql
此时自动增加id不要写到更新语句中,若是写入可能形成恶意注入integer范围最大值2147483647,使功能不可用dos
1六、Spring自动绑定参数,参数扩展攻击
后台使用的对象参数自动绑定获取,相应的sql使用了自动的if是否为null和为空的判断条件,前台能够根据猜想
注入队形的相应的属性实现非预料结果
5.2.WEB安全测试
5.2.1.身份验证
为防止密码破解和猜想:
复杂度要求,必须由大写、小写、数字等组成;
时效性要求,建议用户3个月更改一次口令;
密码长度要求,最小8位,最大?位;
管理员重置密码后密码必须在下次登陆更改;
强度要求,不能跟原密码一致,不能与用户名类似(如,不能包含用户名正写反写大小写等),
(最新也有说法不建议频繁修改http://www.secdoctor.cn/html/sec/35995.html)
口令认证必须在服务端进行。
必需要有验证码机制。
登陆锁定,登陆须要有锁定机制即就是屡次登陆失败后锁定帐号或者ip,在一段时间后自动解锁。
手机验证码轰炸
手机验证码超时机制
帐户枚举测试nginx
弱密码概念:https://help.aliyun.com/knowledge_detail/37509.html?spm=5176.7837442.2.5.ZotsLv
5.2.2.验证码 (普通验证码、知识验证码、无需思考的滑动验证码)
验证码字符生成算法的安全随机数
验证码字符不能被验证码识别工具识别
验证码必须是一次性的
验证码超时(验证码有效期的意义:一、增长图片处理识别的难度;二、验证码没有有效期的话致使服务器验证码堆积)
在忘记密码处作安全问答测试git
建议的验证码形式:
当前的最流行的滑动块验证码,有点用户无需动脑,不会打断用户的思考。
(验证码的前世此生:http://www.freebuf.com/articles/web/102276.html)
5.2.3.会话管理
登陆先后会话标示要有变化
安全退出会话标示注销
会话标示安全随机
会话标示的长度适度
会话超时机制
会话标识的传输和存储
会话标识夸PC访问
5.2.4.权限管理
经过灰化(隐藏)使功能失效
纵向越权
横向越权
权限分离
(系统管理、安全管理、审计管理
系统管理员主要负责用户管理和系统平常运做相关的维护工做;
安全管理员负责安全策略的配置和系统资源安全属性的设定;
审计管理员则对系统审计信息进行管理)
参看《关于越权》
5.2.5.敏感信息传输及存储
敏感信息不能以get方式提交
传输通道使用https(关键数据提交服务端不接收http明文数据)
严格安全传输HSTS(确保从浏览器发出的请求就是https的)
在url中有session
对用户保密的信息不能传输到客户端
含有敏感信息的页面须要设置不缓存
5.2.6.安全审计
登陆、退出、操做等都要有日志
日志格式标准(时间、谁、作了什么操做、结果怎样)
日志访问的限制
日志中的敏感信息
他们是如何迭代的?日志是否保存足够长的时间?
日志是如何被审查的?管理员可否经过审查出发现攻击行为?
日志备份如何保存?
日志记录数据前是否进行验证(最小最大长度,字符等)?
5.2.7.信息泄露
数据库版本泄露
容器版本泄露
绝对路径泄露
异常信息泄露
泄露服务器路径
泄露容器版本
泄露程序详细堆栈信息
源代码泄露
检测Web网络是否存在源代码泄露漏洞,若是存在此漏洞,攻击者可直接下载网站的源代码。
管理地址泄露
网站管理地址属于内部使用的信息,公开增长了安全风险。
Bak信息泄露
搜索引擎发现和侦察信息泄露(暂时不涉及)
服务器指纹探测(使用指纹探测工具whatweb须要在linux上编译运行,httprint--最新的signatures.txt否则识别到不许确)
【其余关注项:】
枚举web服务器上存在的应用程序
Whois信息收集
识别Web应用框架
Owasp测试指南4中文:https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/zh/web_application_security_testing/review_webserver_metafiles_for_information_leakage_otg-info-003.html
拖库撞库http://blog.nsfocus.net/information-leakage-thinking-library-collision/
5.2.8.输入校验
前台后台都必须校验(“移除已知的恶意数据”不如移除“良好数据以外的全部数据”)
5.2.8.1.XSS(跨站点脚本攻击)
XSS-1反射型跨站点脚本编制
XSS-2存储型跨站点脚本编制(http://xxxxx0000sssss.lofter.com/post/14b1dc_50023e)
XSS-3 DOM型跨站点脚本编制
dom xss并不复杂,他也属于反射型xss的一种,domxss取决于输出位置,并不取决于输出环境,所以domxss既有多是反射型的,也有多是存储型的),简单去理解就是由于他输出点在DOM,因此在道哥的《白帽子讲Web安全里》也有详细介绍。dom - xss是经过url传入参数去控制触发的。
HPP(HTTP参数污染[同名参数]http://blog.csdn.net/eatmilkboy/article/details/6761407)
漏洞危害:
一、钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站,或者注入钓鱼JavaScript以监控目标网站的表单输入,甚至发起基于DHTML更高级的钓鱼攻击方式。
二、网站挂马:跨站时利用IFrame嵌入隐藏的恶意网站或者将被攻击者定向到恶意网站上,或者弹出恶意网站窗口等方式均可以进行挂马攻击。
三、身份盗用:Cookie是用户对于特定网站的身份验证标志,XSS能够盗取到用户的Cookie,从而利用该Cookie盗取用户对该网站的操做权限。若是一个网站管理员用户Cookie被窃取,将会对网站引起巨大的危害。
四、盗取网站用户信息:当可以窃取到用户Cookie从而获取到用户身份使,攻击者能够获取到用户对网站的操做权限,从而查看用户隐私信息。
五、垃圾信息发送:好比在SNS社区中,利用XSS漏洞借用被攻击者的身份发送大量的垃圾信息给特定的目标群。
六、劫持用户Web行为:一些高级的XSS攻击甚至能够劫持用户的Web行为,监视用户的浏览历史,发送与接收的数据等等。
七、XSS蠕虫:XSS 蠕虫能够用来打广告、刷流量、挂马、恶做剧、破坏网上数据、实施DDoS攻击等。
参考:
https://help.aliyun.com/knowledge_detail/37444.html?spm=5176.7837442.2.11.F8ceHg
http://blog.csdn.net/change518/article/details/51024706 隐藏域XSS(借助accesskey属性)
5.2.8.2.SQL注入
(一、java预处理preparestatement;二、正则表达式过滤参数;三、严格字符串过滤;四、参数化的sql)
例子:参数date=if(now()=sysdate(),sleep(0),0)/*'XOR(if(now()=sysdate(),sleep(0),0))OR'"XOR(if(now()=sysdate(),sleep(0),0))OR"*/
Sql语句中的/斜杠:表示执行,把以前时间内的缓存中的语句再执行一遍
\斜杠:表示语句未完换行
单行注释:--
多行注释:/* */
If(now()=sysdate(),sleep(2),0)表示若是now()=sysdate(),为真执行sleep(2),不然执行0
当前形势下,新开发的网站,大部分采用新框架都已经能够预防sql注入了,只有手动拼接的sql语句易被sql注入。
生成注入用例时注意:
1)’ 单引号闭合
2)‘OR 单引号也能够有结束开始下一元素的效果
3)-- - 注释后面跟空格实现注释不跟后面语句链接,后面实际被注释掉效果
4)Select CONCAT_WS(0x3A, USER, PASSWORD) FROM mysql.user 获取数据库用户
5)union all 链接两个select查询结果,合union的区别不去重复;两个select查询的字段同样
6)insert into mysql.user(Host,User,Password) values("%","Sectest",password("111111")) 给数据库添加用户 %:远程用户,localhost:本地用户
系统使用了MyBatis动态SQL框架组装sql,注意配置文件中的$和#的使用,使用$可能致使sql注入
拼接后的语句再放入预编译对象是徒劳的,由于在预编译以前拼接的SQL语句执行逻辑已经被破坏,原 SQL语句的本意已经被改变了。
概念:
https://help.aliyun.com/knowledge_detail/37450.html?spm=5176.7837442.2.10.ZotsLv
Sql注入经常使用语句:
http://www.111cn.net/database/mysql/58518.htm
http://wenku.baidu.com/link?url=sK_daSqJFJt3KsCuYQOjCkuGldDJSJQbATiRX42UEocanxFejYSjVESnyHPhvDP___hGAbKSLMhh4020TOP9wItRr1YWiq8OQ1HzYItXc6q
5.2.8.3.XML注入测试
(借助XXE,攻击者能够实现任意文件读取,DOS拒绝服务攻击以及代理扫描内网等)
日志注入(\r,\n换行,伪造日志)
命令注入(操纵系统命令)
Email Header Injection(邮件标头注入)
/*(咱们在暂时不涉及)
Email Header Injection:若是表单用于发送email,表单中可能包括“subject”输入项(邮件标题),咱们要验证subject中应能escape掉“\n”标识。
<!--[if !supportLists]--> <!--[endif]-->由于“\n”是新行,若是在subject中输入“hello\ncc:spamvictim@example.com”,可能会造成如下
Subject: hello
cc: spamvictim@example.com
<!--[if !supportLists]--> <!--[endif]-->若是容许用户使用这样的subject,那他可能会给利用这个缺陷经过咱们的平台给其它用户发送垃圾邮件。
*/
5.2.8.4.代码执行
代码执行是指应用程序对传入命令的参数过滤不严致使恶意用户能控制最终执行的命令,进而入侵系统,致使严重破坏的高危漏洞。
https://help.aliyun.com/knowledge_detail/37446.html?spm=5176.7837442.2.2.nCzE5s
5.2.8.5.CRLF漏洞
CRLF,carriage-return-line-feed,回车换行漏洞。
案例参考:https://www.leavesongs.com/PENETRATION/Sina-CRLF-Injection.html(对header进行注入)
5.2.9.上传下载
跨目录文件下载
任意文件下载
任意文件上传(后缀)
任意目录文件上传(目录)
超大文件上传(大小)
上传文件废弃后处理(堆积)
上传文件名xss(重命名)
上传文件名截断(0x00或者0x58,burp也能够修改二进制,url中%00)
上传文件权限限制
压缩炸弹
Include包含上传(shtml)
上传zip文件名中包含../
本地文件包含的概念:
https://help.aliyun.com/knowledge_detail/37472.html?spm=5176.7837442.2.2.2NdNhY
5.2.10.CSRF
CSRF【cross site request forgery】跨站点请求伪造。
原理:利用浏览器内存共享原理,利用用户身份伪造用户动做发送到服务端。(从恶意站点模拟用户发送正常的请求携带cookie,见7.1)
5.2.10.1.URL重定向(跳转)漏洞:
(参考http://drops.wooyun.org/papers/154)
一、问题点
在页面跳转的地方,URL中包含另外的网址,例如:
第一类 简单URL过滤
www.xxx.com?a=http://www.yyy.com
第二类 底层操做类库支持其余协议致使读取本地或探测网络信息
http://h2w.iask.cn/h5.php?u=file:///etc/passwd
因为底层适用类curl库,而没有正确过滤URL致使,能够读取内网诸多信息.还有其余相似的形式:
如file://, ftp://, telnet://等
第三类 不支持其余协议可是没有设置网络边界(SSRF漏洞的姿式啊)
http://wap.sogou.com/tc?url=http%3A%2F%2Fno.sohu.com%2F
使用域之间的信任,突破到系统的内网
二、分析
理论上讲,url跳转属于CSRF的一种,咱们须要对传入的URL作有效性的认证,保证该URL来自于正确的地方,限制的方式同防止csrf同样能够包括:
1)referer的限制
2)加入有效性验证Token
三、对跳转的地址没有作严格的校验
5.2.11.CORS漏洞
CORS【cross origin resouse-sharing】跨域资源共享。
工具:shell of the future
理解参考:http://www.2cto.com/Article/201209/154081.html
5.2.12.SSRF漏洞(服务端请求伪造)
行为特色:从其余服务器获取数据资源的功能,而且此功能获取资源的请求是从服务端发起的。
能够实现的攻击:
能够对服务器所在的内网、本地端口进行扫描、获取banner等
攻击运行在内网或者本地的应用程序(好比溢出)
对内网WEB应用进行指纹识别,访问默认文件的方式
攻击内网WEB服务器,get请求方式
利用file协议读取本地文件:例如http://192.168.1.119/pm/www/index.php?m=bug&f=view&bugID=4052
http://netsecurity.51cto.com/art/201312/424038.htm
5.2.13.Google黑客
一、搜索站点看是否能发现敏感的信息或不应公布的信息
搜索命令,例如:
site:yizhen.cn
site:yizhen.cn yizhen.cn:password
site:yizhen.cn inurl:session
site:yizhen inanchor:修改密码
cache:www.yizhen.cn
参考:http://www.cnblogs.com/xuanhun/p/3910134.html
5.2.14.其余
http开放方法测试
不安全的方法:put、delete、trace、connect
TRACE: 这个方法简单返回客户端发送给服务器的全部信息,主要用于调试目的。这个方法最初被认为没有危害,被Jermiah Grossman发现能被用于实施XST
CONNECT: 这个方法容许客户端使用web服务器做为代理。
DELETE: 这个方法容许客户端删除web服务器上的一个文件。攻击者能利用他简单直接破坏网站或者实施拒绝服务攻击。
这个方法容许客户端向web服务器上传新的文件。攻击者能够利用他来上传恶意文件(好比一个asp文件经过调用cmd.exe来执行命令),或者简单使用受害者服务器做为文件仓库。
banner信息检查
HTTP方法篡改(已验证,没有此问题;问题案例https://www.sobug.com/article/detail/25)
JavaScript DDOS(切换https后问题解决)
缓冲器溢出漏洞,java的不涉及
管理接口暴力枚举(DirBuster)
测试HEAD访问控制绕过
跨域策略测试
数值溢出
无论整数,浮点数,长整数等都是有一个能够表示的最大值,若是一个该类型变量被赋予超过其最大值的时候就会出现溢出,而找出该变量的值异常。
5.2.15.重放攻击
重放屡次请求消耗系统资源的请求,形成dos。筛选出较为消耗资源的请求,检查系统是否有防重放策略或者机制。
5.2.16.容器的安全
5.2.16.1.Apache tomcat
1)官网公布的安全漏洞补丁升级
http://tomcat.apache.org/security-7.html#Apache_Tomcat_7.x_vulnerabilities
2)运行帐户
创建独立用户,用户名和组名均为tomcat,不设置密码(即禁止SSH登陆),tomcat进程以此账号身份运行,严禁以root权限运行tomcat,禁止以我的账号或其余有shell权限的账号运行tomcat。
3)删除Tomcat自带项目
4)检查tomcat已知的带有风险的配置
a)禁用应用程序自动部署功能(待考虑)
b)禁用webdav
c)定制Tomcat出错信息
d)关闭Tomcat的目录列表功能
e)限制http请求的消息主体的大小
f)禁止配置Tomcat的网络链接超时时间为0或-1
g)可执行文件只能由Tomcat属主用户修改
h)配置文件只能由Tomcat属主用户修改
i)日志文件只能由Tomcat属主用户修改和执行
j)配置虚拟目录,用以隐藏后台路径
k)禁用SSI和CGI功能
l)不容许使用SetUID程序,尤为是root身份的SetUID程序
m)开启Tomcat的日志功能:正常的访问日志和错误请求日志。日志文件的记录中包含访问时间、内容、结果及请求用户的ip等关键信息
影响较大的漏洞:
CVE-2016-1240 tomcat地权用户提权漏洞。(2016-10)
5.2.17.其余组件安全
5.2.17.1.Nginx
官网安全漏洞先关连接:http://nginx.org/en/security_advisories.html
影响较大的漏洞:
CVE-2016-1247 提权漏洞,借助nginx日志,提取到root。(2016-10)
5.2.17.2.Jquery
http://192.168.1.120:8080/amol-hospital/js/jquery-1.9.1.min.js
http://192.168.1.120:8080/amol-hospital/js/ueditor/third-party/jquery-1.10.2.min.js
在官网上没有找到相应的安全漏洞列表
https://blog.jquery.com/2013/02/04/jquery-1-9-1-released/
Jquery两个版本间更新日志,其中有两处vulnerable字样
https://github.com/jquery/jquery/compare/1.9.1...1.12.3
5.2.17.3.Java漏洞
(放到操做系统部分,nessus能够很好的检查这个)
5.2.17.4.百度Ueditor(1.4.3)
5.2.17.5.Node.js(超声视频使用)
node -v
v0.10.42
5.2.17.6.Spring
5.2.17.7.Mybitas
5.2.17.8.Druid
数据库链接池组件,包括四部分:DruidDriver、DruidDataSource、SQLParsr、扩展组件。
能够监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,可以详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库链接池。SQL执行日志,Druid提供了不一样的LogFilter,可以支持Common-Logging、Log4j和JdkLog,你能够按须要选择相应的LogFilter,监控你应用的数据库访问状况。扩展JDBC,若是你要对JDBC层有编程的需求,能够经过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。
一、访问没有权限控制
5.2.17.9.Turnserver
TurnServer 是一个TURN协议的开源实现。
该协议容许一个客户端以relay方式得到IP地址和端口。这对于symmetric 类型的NAT或者防火墙两边设备的通讯很是有用。
TurnServer项目旨在兼容地处理 TURN 和 STUN请求 (RFC 5766 , RFC 5389),同时也支持 RFC6156 即 TURN-IPV6 (relay between IPv4-IPv6, IPv6-IPv4 and IPv6-IPv6 addresses) 和 RFC6062 即TURN-TCP (relay data with TCP)
5.2.17.10.Terracotta(session共享)
5.2.17.11.phpMyAdmin
http://www.phpmyadmin.net/security/
5.2.17.12.Redis
一、指定redis服务使用的网卡 (须要重启redis才能生效)
在 redis.conf 文件中找到 “# bind 127.0.0.1” ,把前面的#号去掉,而后保存。注:修改后只有本机才能访问Redis。
二、设置访问密码 (须要重启redis才能生效)
在 redis.conf 中找到“requirepass”字段,在后面填上你须要的密码,Redis客户端也须要使用此密码来访问Redis服务。
三、修改Redis服务运行帐号 (须要重启redis才能生效)
请以较低权限帐号运行Redis服务,且禁用该帐号的登陆权限。另外能够限制攻击者往敏感写入文件,可是Redis数据仍是能被黑客访问到,或者被黑客恶意删除。
四、设置防火墙策略
若是正常业务中Redis服务须要被其余服务器来访问,能够设置iptables策略仅容许指定的IP来访问Redis服务。
参考:
https://help.aliyun.com/knowledge_detail/37447.html?spm=5176.7837442.2.10.nCzE5s
5.2.17.13.Fastjson开源jar
https://github.com/alibaba/fastjson/wiki/security_update_20170315
fastjson最新远程代码执行高危安全漏洞,当前涉及1.2.24以前版本
咱们用的1.1.41
5.2.18.Web木马
常见的简单形式--诱导优化打开具备网页木马的页面,通常是写入js引用大马的代码网页,用户打开诱导网页后在电脑上实际上已经默认运行了下载大马和执行大马的操做
5.3.敏感数据保护
5.3.1.加密算法
算法列表能用,不能用
弱算法:md2,md4,md5(2004年的国际密码学会议(Crypto’2004)王小云证实了MD5能够被碰撞,至此,MD5再也不安全) ,sha1,blowfish
推荐算法:sha256,aes128
可逆的加密算法:des 3des aes128
可逆加密算法又分为两大类:“对称式”和“非对称式”。
对称式加密特色:加密和解密使用同一个密钥,一般称之为“Session Key ”。
DES、3DES、DESX、Blowfish、IDEA、RC四、RC五、RC6和AES
非对称式加密特色:加密和解密所使用的不是同一个密钥,而是两个密钥:一个称为“公钥”,另外一个称为“私钥”;它们两个必须配对使用,不然不能打开加密文件。这里的“公钥”是指能够对外公布的,“私钥”则只能由持有人本人知道。
常见的非对称加密算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)
不可逆加密算法:sha256 sha512 md5
不可逆加密算法的特征是,加密过程当中不须要使用密钥,输入明文后由系统直接通过加密算法处理成密文。这种加密后的数据是没法被解密的,只有从新输入明文。
常见的Hash算法:MD二、MD四、MD五、HAVAL、SHA、SHA-一、HMAC、HMAC-MD五、HMAC-SHA1
参考:
http://www.360doc.com/content/13/0402/15/3862791_275529254.shtml
http://book.51cto.com/art/201109/294599.htm
MD5输出128bit
SHA1输出160bit
SHA256输出256bit
另外还有SHA244,SHA512
分别输出244bit,512bit
问题分析
数据库中的密码的机密算法推荐:
一、使用不可逆加密算法
二、使用加盐(避免预先计算彩虹表)
建议的用户密码加密形式:
http:若通道未加密,密码在客户端使用可逆加密算法AES-256并加盐(从服务端获取挑战码即盐值),传输到服务端再解密。
https:服务端接受到明文密码后使用不可逆加密算法对密码进行哈希加密SHA256并加盐(使用安全随机盐值,长度建议跟密码最长一致),再存入密码密文和盐值到数据库。
5.3.2.证书
咱们通常说的证书都是服务端证书,即浏览器使用的验证服务器身份的证书。
咱们的证书是自生成的证书。
证书:证实身份的凭据,证书中心用本身的私钥对信息发送者的公钥和一些信息一块儿的加密,证书能够保证公钥的安全性和有效新,公钥能够验证私钥持有方的身份。常规信息有:颁发给的通用名、组织、组织单元、序列号和颁发者的通用名、组织、组织单元,有效时间开始于、过时时间,指纹SHA-256指纹和SHA1指纹。详细信息还有证书的签名算法、公钥算法、公钥等。
签名哈希算法:证书编码完整性保证的哈希算法
签名算法:私钥对证书编码的哈希加密的算法;证书签名使用的算法是发布者本身规定的
上面两个是发布机构搞得,用来CA验证的
指纹算法:计算出指纹的哈希的算法,就是哈希算法,通常就是sha1
指纹:证书的哈希值并用私钥加密。
鉴别用户的真伪能够经过鉴别用户的私钥的真伪来确认,就是看加密的信息服务端是否能够解密。
公钥:链接创建时浏览器端加密时使用的秘钥。
私钥:链接创建时服务器端加密时使用的秘钥。
使用时:
步骤一:
一、浏览器输入网址访问yizhen.cn(应用层的)
二、浏览器底层的TSL协议发送明文的Hello信息给服务器(网络层)
三、服务器响应一个Hello信息给浏览器
步骤二:
服务器端发送它的证书给浏览器(图中的三,图中的二是以前就生成好的,存储在服务端的公钥、私钥、证书)
步骤三:
一、客户端验证服务端发来的证书
二、验证证书的签名、完整性等信息
三、去浏览器证书管理中心验证证书是否可信,是否为可信机构的证书或者子证书
四、若是不可信,浏览器抛出警告,提示用户,须要用户确认选择是否继续
步骤四:
一、浏览器产生一个随机的值,做为秘钥,对称加密的秘钥,此处就称为秘钥。
二、使用证书中的公钥对产生的秘钥进行加密生成密文串
步骤五:
一、发送密文串给服务器
二、服务器接受到密文串,使用证书的私钥进行解密,得到对称加密的秘钥。
三、服务器使用对称秘钥加密响应报文内容发送给浏览器。
步骤六:
服务器和浏览器能够通信了。
浏览器发送的数据都是公钥加密,使用对称秘钥解密收到的数据。
服务器发送的数据都是对称秘钥加密的,收到的数据使用私钥解密。
简单示意图以下:
证书介绍和攻击
Pem格式的证书详细信息查看:
https://www.trustasia.com/tools/cert-decoder.htm
SSL证书被攻击、假冒的风险分析
http://wenku.baidu.com/link?url=LkghTfA11JWJBLFJrgBZfCrIBFJoqfcH1q4xBEbzt3xmGtkR7mdkV91mUnRobYQKYz2ekVTo7XNQdOMHIuOpWZv4TBDBVsBo52dYNeX1zRi
一个合法有效的SSL证书误签发给了假冒者(--)
破解SSL证书签发CA的私钥(关注签名算法)
SSL证书签发CA的私钥泄露(若是是自签名证书须要关注)
破解SSL证书的私钥(关注指纹算法)
SSL证书的私钥泄露(服务器端私钥的存贮)
认证机构主动为假冒网站签发合法有效的证书(--)
利用可信的SSL服务器证书进行中间人攻击(--)
在用户主机中植入伪造的根CA证书(或一个完整的CA证书链)(--)
旁路证书的可信性的验证(--浏览器操做系统漏洞)
---若是证书的跟证书没有,第一次访问会去证书网站获取根证书或者中间证书
5.3.2.1.证书加密算法的检查
一、证书的指纹算法是否安全,不安全的算法形成证书加密传输的信息能够被解密
二、证书的签名算法是否安全,不安全的签名算法可能形成证书被伪造
5.3.2.2.证书对应的秘钥保存检查
一、证书私钥在服务器端存储是否加密
二、证书私钥在服务器端的存储文件权限是否只有全部者能够访问
----浏览器端客户的CA根证书是否安全可信,这个没法保证(不涉及)
5.3.3.明文密码
客户端
一、浏览器Cookie中存储,浏览器Cookie中记录密文密码
二、浏览器记录密码保存明文密码
服务端明文密码检查
一、 配置文件明文密码
二、日志中记录明文密码
三、程序中硬编码密码、密钥
(针对秘钥场景的理解,主要针对当前的弱算法秘钥爆破的场景,原理是经过对屡次的加密后的密文对比差别尝试推倒秘钥,有些场景能够认为是分问题的,如数据库密码以DES加密密文存储在配置文件中,密钥在代码中硬编码,这种场景的密钥硬编码就是没有问题的,他的密钥在配置文件和代码中其实没有多大区别。)
5.3.4.源代码敏感信息检查
使用search and replace搜索代码中的关键字、敏感字,查看是否有不当使用的地方
一、passwd、password、pword等
二、使用过的密码111111,123456,admin,amol等
5.4.协议与接口攻防
5.4.1.端口扫描
一、远端扫描工具Nmap
端口扫描命令
TCP,Nmap -sS -T4 -p 1-65535 -oX filename.xml IP
UDP,Nmap -sU -T4 -p 1-65535 -oX filename.xml IP
二、系统检测
检查服务器的操做系统类型及版本
Nmap –O IP
三、近端端口信息检查
登陆服务器,查看端口详细信息
lsof –i:port
ps –ef|grep pid
四、整理系统开放端口的详细列表
5.4.2.端口服务探测
一、使用命令nmap -sV -Pn -p port IP,探测端口的详细服务及版本
-Pn:在扫描以前,不发送ICMP echo请求测试目标是否活跃。
-sV:探索开放的端口,肯定服务器/版本信息
5.4.3.REST WEB Service(接口协议)
5.4.4.SOAP
Soap注入
5.4.5.SSH协议
放到操做系统部分,这个组件和操做系统强相关
5.4.6.IM服务-XMPP协议
http://wiki.xmpp.org/web/Securing_XMPP
IM服务检查:https://xmpp.net
Tigase用户指南:http://docs.tigase.org/tigase-server/snapshot/Administration_Guide/html_chunk/index.html
Tigase XMPP (Jabber) server ver 7.0.2
IM服务器如何测试???
http://my.oschina.net/greki/blog/210393
Tigase-server
Tigase-client
http://localhost:8080/setup/进入tigase后台
5.4.7.外部接口安全
获取token:http://192.168.1.120:8080/amol-back/oauth/token?client_id=amol_client_mbox&client_secret=amol_secret_mbox&grant_type=password&username=mbox&password=123456
一、链路加密
二、参数校验 -
三、访问数限制-
参数:
使用burp遍历用例payload
1)特殊字符
英文字符
~!@#$%^&*()____+{}|:”<>?-=;’,./`
中文字符
~!@#¥%……&*()——+:“《》?,。、‘;、】【·
中文汉字
哈哈
2)sql注入
3)XSS
4)纯数字、纯英文、组合、大小写、
5)换行
6)超长
7)空
5.4.8.SSL/TSL
https等其余协议使用的加密协议SSL/TSL是不是安全的,使用开源工具sslsplit检测,工具下载地址https://github.com/droe/sslsplit/tree/7677fe06557509e95e548318909c1a328b6f6069。
检查加协议版本及套件的办法Nmap -sV -p port --script ssl-enum-ciphers ip
一、加密协议SSLv2v3须要所有禁用
二、TSL的加密密套件部分已经不安全须要配置删除
5.4.9.WiFi安全
对象(Wep、Wpa)、原理、工具
5.5.操做系统安全
http://www.centoscn.com/CentosSecurity/
工具:openvas、nessus
测试方式:可在本地安装nessus home版完来测试
影响较大的漏洞
CVE-2016-5195:Linux系统本地提权漏洞,脏牛漏洞。(2016-10)【通吃型】。
5.5.1.本地提权
1)Windows下提权(咱们是linux服务器,这个暂时不关注)
2)Linux下提权----
利用系统漏洞提权(主动提权)
配置不当提权(被动提权)
Sudo提权---/etc/sudoers文件配置
Crontab提权--定时执行的脚本的权限配置
Init.d提权--/etc/init.d此目录下的文件的写权限要严格禁止
Environment提权--用户的profile、environment等的权限设置、还有su命令而不是su - 方式切换到root用户
Setuid提权--经过给脚本或者bash添加s权限获取root权限
5.5.2.各类木马
键盘记录木马
绑定端口木马
回连木马
端口复用木马
远程控制木马
5.5.3.密码破解
本地破解--md五、linux shadow、ntlm/lm
远程破解--ssh、httpauth、webform、pop/Smtp
5.6.数据库安全
Mysql
http://www.w3resource.com/mysql/mysql-security.php
Redis
影响较大的漏洞:
CVE-2016-6662 mysql本地提权漏洞。(2016-9)
5.7.软件的发布与安装安全
一、下载的软件有没有提供签名
二、下载后安装是否有校验机制
5.8.手机端的安全
一、app的签名、反逆向
(apk加固步骤:http://jingyan.baidu.com/article/b2c186c8cd1a71c46ef6ffcd.html,数字签名:http://blog.csdn.net/kickxxx/article/details/18252881)
二、用户隐私
本地保存用户密码、不管加密与否
敏感信息隐私信息,如聊天记录、关系链、银行卡号等是否加密保存
配置文件等是否保存到外部设备上
保存到外部设备的信息加载前判断是否被篡改
三、文件权限
App所在目录不容许其余组成员读写
四、网络通信
重要敏感数据传输加密
五、运行时解释保护
嵌有解释器的软件XSS、SQL注入等
外部链接的是否有URL欺骗等漏洞
六、组件权限保护
禁止App内部组件被任意第三方程序调用
调用外部组件先验证签名
七、升级
升级包完整性、合法性校验,避免被劫持
八、3rd库
跟进第三方库的更新
http://blog.nsfocus.net/mobile-app-security-security-test/
http://www.zhihu.com/question/24083362
5.9.静态代码分析(纯白盒)
一、危险函数、方法、关键字
二、工具检测 findbugs
三、逻辑漏洞
5.10.抓包走读代码(灰盒测试)
一、前台功能执行、中间工具抓包、后端代码走读的形式(过程:结合业务思路查看中间参数、走读后端代码跟踪参数处理,结合常见WEB安全漏洞形式匹配问题,抓包重放验证问题。)
二、可发现的常见漏洞形式:越权、XSS、sql注入、参数合理性等
6.安全测试的原则
攻击面最小化
默认安全
最小权限原则
深度防护原则(多角度、冗余的)
安全的失败
外部系统是不安全的
职责分离(权值分离)
不依赖隐晦的安全性
简单
正确的修复安全性问题
客户端的输入是不可信的
个人理解的判断依据:
一、咱们设计的程序的动做是肯定的,而程序运行中产生了超出这个预期动做的部分,咱们均可认为它是不安全的,须要改正的。
二、问题产生在咱们的设计得程序动做自己就是不符合现有的大环境下的安全标准。
7.参考资料
http://www.owasp.org.cn/ OWASP 测试指南
http://www.wooyun.org/
http://bbs.51cto.com/thread-1039046-1.html
8.系统结构简图
9.涉及的经常使用工具
一、Burpsuit
二、Watchweb
三、Httprint
四、Httpwatch
五、Appscan
六、Awvs
七、Nmap
八、Search and replace
九、Sqlmap
十、secureCAT
十一、--验证码识别工具
十二、--Whois查询
1三、DirBuster
1四、Fiddler
1五、Wireshark
1六、Firefox hackbar
1七、在线js执行(http://js.do/)
9.1.文件名上传XSS
一、此种问题的特色:首先,是上传点;第二,在上传后使用了上传的文件名(可能又更名,可是记录了文件名);
二、系统问题发生点医生系统-终审报告-附件
三、此处符合了1,查看显示文件名的界面的代码
<a href="javascript:void(0);" onclick="downloadFile('hospital/0100101/2016/06/03/DR/369/20160603140244.gif','aaa.gif')">aaa.gif</a>
以上语句2处出现了文件名,即有两个地方是咱们可能注入代码的地方
先看后一个位置,超连接内的文字,普通文本
考虑尝试最简单的<script>alert(1)</script>,尝试设置文件名为<script>alert(1)</script>a.gif
发现字符/后的部分被做为了文件名,考虑后台代码有字符截断或者限制长度。而且确认咱们的字符<>是接受的。
下一步设置文件名为aaaaaaaaaaa.gif,发送屡次尝试确认文件名能够的最长长度为24个字符,也就是后缀前面的代码只能有20个字符。
再尝试</script>b.gif,确认/
失败,什么缘由?再尝试a/b.gif
确认/是有特殊处理的,会被截断,那么其余编码试试?
<script>alert(1)</script>
<script>alert(2)<%2Fscript> <%2Fscript>可上传,但是总体超长
<script>alert(3)</script> 可上传,但是总体超长
<script>alert(4)</script> 可上传,但是总体超长
<script>alert(5)<\u2fscript> \和/一样的效果
<script>alert(6)<\u002fscript> \和/一样的效果
好吧,换个思路;这个地方有多个文件上传,能不能用两个文件名组合?试试
上传<script>a.gif
再上传<alert(2)<%2Fscript>b.gif
刷新界面看下
仍是不能执行,后面的脚本都被当成javascript脚本内容解析了,%2F不会被浏览器编码反解析回来;只能是屏蔽了下面的到</script>前的全部代码,其实这里能够说已是有问题了,改变了原来界面的语义
这个位置的文件名貌似行不通啊,咱们再来看原始的代码,再看看第一处
<a href="javascript:void(0);" onclick="downloadFile('hospital/0100101/2016/06/03/DR/369/20160603140244.gif','aaa.gif')">aaa.gif</a>
两种思路:A)闭合a,在后面造成代码;B)在标签内造成属性事件
先看B思路,onclick="downloadFile('hospital/0100101/2016/06/03/DR/369/20160603140244.gif','aaa.gif')",着力点在这里,要闭合’)”,再给一个事件属性如onmouseover=””
试试文件名’)”onmouseover=”alert(1)”,尝试后发现”和’,都是问题啊会被处理,这个没办法规避啊
再看看A思路一样避不开’”啊
在回头看看,谁说执行脚本不须要<scritp>标签啊
<a href="javascript:void(0);" onclick="downloadFile('hospital/0100101/2016/06/03/DR/369/20160603140244.gif','aaa.gif')">aaa.gif</a>
文件名不包含’”/ \,能够考虑的仍是标签的属性,因而看二位置换成<a onclick=alert(1)>a.gif如何
再看界面
OK,XSS成功,全部查看这份报告的,点击了这个附件的都会执行这个事件。
固然也能够换成其余属性触发事件啦,有兴趣能够试试。
请不要忽略这个断字符的仅能alert(1)的问题,这个问题也可能和其余漏洞结合发挥大的威力哦(好比值同域而后钓鱼)
9.2.XXE漏洞详解
什么是XXE ? 就是咱们所说的所谓xml实体注入。entity翻译为"实体"。它的做用相似word中的"宏",也能够理解为DW中的模板,你能够预先定义一个entity,而后在一个文档中屡次调用,或者在多个文档中调用同一个entity(XML定义了两种类型的entity。一种是咱们这里说的普通entity,在XML文档中使用;另外一种是参数entity,在DTD文件中使用。)。
<!DOCTYPE filename
[
<!ENTITY entity-name "entity-content"
]>
参考:
http://blog.csdn.net/dongfengkuayue/article/details/50240157
http://drops.wooyun.org/papers/1911
9.2.1.XXE任意文件读取
构造以下xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE file [
<!ENTITY file SYSTEM "file:///C:/Windows/System32/drivers/etc/hosts">
]>
<body>
<username>&file;</username>
<select id="chartForConsultation" resultMap="BaseResultMap">
&file;
</select>
</body>
一、使用最原始的javax.xml.parsers,标准的jdk api
在解析结果总解析出了hosts文件的内容。
二、使用dom4j后程序变得更简单
三、使用JDOM
9.2.2.XXE拒绝服务攻击
一、sax解析类已经作了处理
二、循环调用
10.名词解释
WAF
Web应用防御系统(也称:网站应用级入侵防护系统。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用防火墙是经过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。
单点登录
单点登陆(Single Sign On),简称SSO,是目前比较流行的企业业务整合解决方案之一。SSO的定义是在多个应用系统中,用户只须要登陆一次就能够访问全部有相互信任的应用系统。
PR7
PR值全称为PageRank(网页级别),取自Google的创始人LarryPage。它是Google排名运算法则(排名公式)的一部分,是Google用于用来标识网页的等级/重要性的一种方法,是Google用来衡量一个网站的好坏的惟一标准。在揉合了诸如Title标识和Keywords标识等全部其它因素以后,Google经过PageRank来调整结果,使那些更具“等级/重要性”的网页在搜索结果中令网站排名得到提高,从而提升搜索结果的相关性和质量。级别从1到10级,10级为满分。PR值越高说明该网页越受欢迎(越重要)
OAuth受权
OAuth(开放受权)是一个开放标准。
容许第三方网站在用户受权的前提下访问在用户在服务商那里存储的各类信息。
而这种受权无需将用户提供用户名和密码提供给该第三方网站。
OAuth容许用户提供一个令牌给第三方网站,一个令牌对应一个特定的第三方网站,同时该令牌只能在特定的时间内访问特定的资源.
详细参考:http://justcoding.iteye.com/blog/1950270
REST WebService
REST(Representational State Transfer)是一种轻量级的Web Service架构风格,其实现和操做明显比SOAP和XML-RPC更为简洁,能够彻底经过HTTP协议实现,还能够利用缓存Cache来提升响应速度,性能、效率和易用性上都优于SOAP协议。
隐写术
隐写术是关于信息隐藏,即不让计划的接收者以外的任何人知道信息的传递事件(而不仅是信息的内容)的一门技巧与科学。隐写术英文做“Steganography”,来源于约翰尼斯·特里特米乌斯的一本看上去是有关黑魔法,其实是讲密码学与隐写术的一本书Steganographia中。此书书名来源于希腊语,意为“隐秘书写”。
CTF
CTF(Capture the Flag)夺旗比赛。
MIME编码
MIME(Multipurpose Internet Mail Extensions)多部分(multi-part)、多媒体电子邮件和WWW超文本的一种编码标准,用于传送诸如图形、声音和传真等非文本数据。
PKCS
The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合做伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书做废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。
PKCS#1:定义RSA公开密钥算法加密和签名机制,主要用于组织PKCS#7中所描述的数字签名和数字信封。
WASC
Web Application Security Consortium(WASC),是一个由安全专家、行业顾问和诸多组织的表明组成的国际团体。WASC 组织的关键项目之一是“Web 安全威胁分类”,也就是将 Web 应用所受到的威胁、攻击进行说明并概括成具备共同特征的分类。该项目的目的是针对 Web 应用的安全隐患,制定和推广行业标准术语。
OWASP
Open Web Application Security Project(OWASP),该组织致力于发现和解决不安全 Web 应用的根本缘由。它们最重要的项目之一是“Web 应用的十大安全隐患”,总结了目前 Web 应用最常受到的十种攻击手段,而且按照攻击发生的几率进行了排序。这个项目的目的是统一业界最关键的 Web 应用安全隐患,而且增强企业对 Web 应用安全的意识。
CORS
CORS(Cross Origin Resourse-Sharing),跨域资源共享。
Node.js
Node.js是一个Javascript运行环境(runtime)。 实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度很是快,性能很是好。Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更 好。
[1] Node.js是一个基于Chrome JavaScript运行时创建的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,很是适合在分布式设备上运行的数据密集型的实时应用。
SSRF
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造造成由服务端发起请求的一个安全漏洞。通常状况下,SSRF攻击的目标是从外网没法访问的内部系统。(正是由于它是由服务端发起的,因此它可以请求到与它相连而与外网隔离的内部系统)
渗透攻击、攻击载荷payload、shellcode
CWE
CWE(Common Weakness Enumeration),通用弱点枚举。软件弱点分类,更好地识别缺陷、修复阻止缺陷实现自动化。
CDN
CDN(ConTent Deliver network)内容分发网络。以负载均衡为核心。
Maven
Maven项目对象模型(POM),能够经过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
WebRTC
WebRTC(Web Real-Time Commutication)Web实时通信的缩写,就是使用Web浏览器完成实时的语音对话和视屏对话的技术。
APT
APT(Advance Persistent Thread)高级可持续性攻击。APT是黑客以窃取核心资料为目的,针对客户所发动的网络攻击和侵袭行为,是一种蓄谋已久的“恶意商业间谍威胁”。这种行为每每通过长期的经营与策划,并 具有高度的隐蔽性。APT的攻击手法,在于隐匿本身,针对特定对象,长期、有计划性和组织性地窃取数据,这种发生在数字空间的偷窃资料、搜集情报的行为, 就是一种“网络间谍”的行为。
CVSS
Common Vulnerability Scoring System,即“通用漏洞评分系统”,是一个“行业公开标准,其被设计用来评测漏洞的严重程度,并帮助肯定所需反应的紧急度和重要度”。
CVSS是安全内容自动化协议(SCAP)[2]的一部分,一般CVSS同CVE一同由美国国家漏洞库(NVD)发布,由美国国家基础建设咨询委员会(NIAC)委托制做,是一套公开的评测标准,常常被用来评比企业资讯科技系统的安全性,并受到eBay、(Symantec)、思科(Cisco)、甲古文(Oracle)等众多厂商支援。
CVSS的目标是为全部软件安全漏洞提供一个严重程度的评级
这就意味着CVSS旨在为一个已知的安全漏洞的严重程度提供一个数值(分数),而无论这个安全漏洞影响的软件类型是什么,无论它是操做系统、杀毒软件、数据库、邮件服务器、桌面仍是商务应用程序。因为这个评分范围很是广,这个评分系统把可以彻底攻破操做系统层的已知安全漏洞评为基准分数10.0分。换句话说,CVSS基准分数为10.0分的安全漏洞通常指可以彻底攻破系统的安全漏洞,典型的结果是攻击者彻底控制一个系统,包括操做系统层的管理或者“根”权限。例如,国家安全漏洞数据库中一个第三方产品中的这种安全漏洞被解释为,攻击者可以安装程序;观看、修改或者删除数据;或者建立拥有用户所有权利的新帐户。
它的主要目的是帮助人们创建衡量漏洞严重程度的标准,使得人们能够比较漏洞的严重程度,从而肯定处理它们的优先级。CVSS得分基于一系列维度上的测量结果,这些测量维度被称为量度(Metrics)。漏洞的最终得分最大为10,最小为0。得分7~10的漏洞一般被认为比较严重,得分在4~6.9之间的是中级漏洞,0~3.9的则是低级漏洞
CVSS系统包括三种类型的分数
- 基准分数,暂时的和环境的。每个分数都要衡量这个安全漏洞的不一样属性。甲骨文在严重补丁更新文件中提供这个“基准分数”。这个基准分数有以下特色:
- 这个基准分数具体指一个指定的安全漏洞。
- 这个基准分数是不变的。
- 它不是具体针对一个客户的技术IT环境的
11.那些网络大牛们的语句以安全防护方的角度来看,防护的广度比深度更具优先级,这也是信息安全中木桶原理的体现。网络世界如此的年轻,尚未发展出本身独立的行为规范。我认为安全的核心理念只有两种:一是对无序的内外环境执行线性秩序化策略,构建强韧的防御体系,为系统提供“免疫”能力。二是对无序的内外环境执行非线性秩序化策略,构建反脆弱性防御体系,为系统提供“进化”能力。--------安在安全的三要素:机密性、完整性、可用性防护的一些思想:白名单思想、深度防护、数据与代码分离、不可预测性、缩小攻击面12.其余个人一些理解:一、安全中总谈到作安全须要首先确认信任域与信任边界,信任边界的概念主要是从这个网络物理结构体系的形式来体现的,好比通常在网闸或者防火墙之类的的设备处做为边界,内部造成一个个安全域。而咱们的互联网系统是以云为依托,打破了原来的那种概念。物理层对咱们来讲是不透明的,以服务提供商的逻辑服务形式体现为8台服务器,2台数据库服务器,2台负载均衡服务器。而且这些服务器之间并无配置相互的信任关系,这就造成了咱们的安全实际形态为多处单点形式。仔细来看这12个单点,首先2台负载均衡,只提供负载均衡服务其余均不须要咱们看护,其作了哪些措施除了分配链接外一律不知,因此能够从咱们的安全形态圈摒弃掉。剩下的10台服务器,彼此独立,互相不该该信任,彼此交互均应该有有效认证行为。固然,其彼此的交互也被分为了两种,一是大网交互,二是内网交互。这里的大网内网咱们就须要和阿里的网络相结合。内网交互就在阿里的相对安全的一个域,不防叫内域,相对的大网交互就在阿里的相对不安全的域和互联网上了,这是一个不可信的不安全的区域,不防叫外域。这种结构就应该和咱们的业务相结合,好比咱们的10台服务器要彼此访问,同时此访问服务不须要提供给互联网,咱们就能够把业务单独配置到内域,若是业务是提供给互联网的,那么配置到外域或者内域和外域。