20189217 2018-2019-2 《密码与安全新技术专题》第1周作业
课程:《密码与安全新技术专题》
班级: 1892
姓名: 张鸿羽
学号:20189217
上课教师:张健毅
上课日期:2019年2月26日
必修/选修: 选修
1.本次讲座的学习总结
1.1 信息技术的发展阶段
通信(电报/电话) -> 计算机 -> 网络 -> 网络化社会
信息安全的历史从通信开始。
1.2 信息化发展凸显了信息安全问题
2010年6月 震网病毒(stuxnet病毒) -> 证明物理隔离也不一定安全
2015年9月 XcodeGhost -> 证明编译层面也可能存在安全漏洞
网络威胁惊人,每天超过亿次GPT攻击,攻击方式:可探测 -> 可访问 -> 可掌控
威胁方-防护方的非对称性:
- 攻防技术非对称
大量自动化攻击工具的出现,使得入侵网络与信息系统的门槛降到极低。 - 攻防成本非对称
攻防技术的非对称带来了攻防成本的非对称。风险成本也极低。对于国家安全而言,攻防成本的非对称性具有特殊的意义。
伪基站短信照片案例层出不穷。 - 攻防主体非对称
1.3 Web应用安全
常见的Web漏洞:
漏洞名称 | 漏洞等级 |
---|---|
SQL注入 | 高危 |
跨站脚本攻击漏洞 | 高危 |
Cookie欺骗 | 高危 |
CSRF(跨站请求伪造) | 中危 |
Web信息泄露 | 中危 |
权限问题 | 中危 |
逻辑漏洞 | 中危 |
第三方程序漏洞 | 高危 |
Web服务器解析漏洞 | 高危 |
弱口令 | 高危 |
SSRF | 中危 |
1.3.1 SQL注入
SQL注入本质是由于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行。攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。 攻击者通过在应用程序预先定义好的SQL语句结尾加上额外的SQL语句元素,欺骗数据库服务器执行非授权的查询,篡改命令。
- 按提交字符类型可分为:数字型、字符型、搜索型。
- 按HTTP提交方式可分为:GET、POST、Cookie。
- 按注入方式可分为:盲注、union注入、报错注入。
SQL注入工具
SQLMAP、Havij、Pangolin。
如何防御SQL注入?
1、 参数化查询。参数化查询已被视为最有效的可防御SQL注入攻击的防御方式。目前主流的ORM 框架都内置支持并且推荐使用这种方式进行持久层封装。
2、 Web站点接入的数据库应遵循用户角色最小权限原则, 针对不同类型的操作, 创建对应权限的数据库用户, 最大限度地降低SQL注入的危害。
3、 可以从应用层防止SQL注入攻击, 目前国内主流的安全厂商都有一些专业的Web应用防护设备, 例如绿盟科技的WAF with MSS, 启明星辰的天清Web应用安全网关等。这些WAF设备自身定义了许多SQL注入过滤规则, 攻击者输入的危险字符会先经过应用层的WAF设备, 再提交给Web的后端数据库, 一定程度地降低了Web应用的安全风险。
1.3.2 XSS跨站脚本攻击
当用户访问网页时, 攻击代码在用户的浏览器上被执行, 就形成了一次XSS跨站脚本攻击。根据XSS漏洞的原理可以将XSS跨站攻击划分成反射性XSS和存储型XSS。对于反射性XSS, 攻击者需要欺骗用户点击一个恶意URL才能攻击成功。存储型XSS的危害相对来说更大一些, 攻击者提交的恶意代码, 会被Web服务器端接收并存储, 访问该网页的用户, 他们的浏览器会执行这段恶意代码。
如何防御XSS攻击?
1、 输入过滤。对用户表单输入的数据进行过滤,对javascript代码进行转义,然后再存入数据库。
2、 输出编码。在信息的展示页面,也要进行转义,这样的话,如果用户输入一些HTML的脚本,也会被当成普通的文字,而不会成为目标页面HTML代码的一部分得到执行。
3、 Cookie防盗。尽可能地避免在Cookie中泄露隐私,如用户名、密码等。我们可以将Cookie信息利用MD5等Hash算法进行多次散列后存放。为了防止重放攻击,也可以将Cookie和IP进行绑定,这样也可以阻止攻击者冒充正常用户的身份。
1.3.3 CSRF跨站请求伪造
攻击者使用被攻击者的身份,以其名义发送恶意请求,会造成个人隐私泄露以及财产安全。
如何防御CSRF攻击
1、 所有需要用户登录之后才能执行的操作属于重要操作,这些操作传递参数应该使用 POST 方式,更加安全。
2、 Token。为防止跨站请求伪造,我们在某次请求的时候都要带上一个csrf_token参数,用于标识请求来源是否合法,csrf_token参数由系统生成,存储在SESSION中。
3、 验证码。验证码不单单用来防止注册机的暴力破解,还可以有效防止CSRF的攻击。
1.4 隐私安全
当前许多企业和公司会对用户轨迹进行分析,导致用户隐私安全受到威胁。
2.学习中遇到的问题及解决
- 问题1:
XSS和CSRF的区别? - 问题1解决方案:
XSS定义的主语是“脚本”,是一种跨站执行的脚本,也就是javascript脚本,指的是在网站上注入我们的javascript脚本,执行非法操作;CSRF定义的主语是“请求”,是一种跨站的伪造的请求,指的是跨站伪造用户的请求,模拟用户的操作。
CSRF:需要用户先登录网站,获取cookie;XSS:不需要登录。
CSRF:利用网站本身的漏洞,去请求网站的api;XSS:向网站注入js代码,然后执行js里的代码,篡改网站的内容。
3.学习感悟与思考
1、 现实的网络并没有绝对的安全,我们面临的Web安全问题依然严峻,实际上国内外各大网站和Web程序都存在或多或少的安全问题,这些问题都是从网站架构之初就应该考虑的问题。
2、 Web攻击手段方法层出不穷,远不止上述几种,掌握Web攻击的防御方法对个人有益,对企业更是至关重要的。
3、 攻击手段日新月异,防御方法也要与时俱进。
4、 应用和安全是一个对立面,我们需要在应用和安全中间找到一个平衡点。
4.浏览器指纹追踪最新研究现状
课下我查找了2018年安全四大顶会收录关于web安全的论文,发现有好几篇论文的题目中都提到了Website Fingerprinting、Browser Fingerprint(即网站指纹、浏览器指纹),于是针对这个方向进行了研究。
随着Cookie越来越受限制,不少安全工具甚至是浏览器都允许或者引导关闭追踪Cookie,浏览器指纹追踪渐渐成为了Web追踪的重要技术手段。各种浏览器和 JS 提供的接口能使网络服务提供者获取到关于用户设备的各种信息,包括操作系统版本、浏览器版本、屏幕分辨率、浏览器插件、系统字体、时区等。 因每个用户都会在设备的使用过程中或多或少地修改或增删部分默认设置,这种使用用户设备信息组成的”指纹”可以做到唯一标识一个用户。
所谓浏览器指纹就是能够唯一标识当前浏览器的一串字符串。Web指纹扫描用于识别目标所运行的web软件、后端服务器、编程语言等特征,实现对目标的web应用的准确标识。浏览器指纹包括应用名、版本、前端框架、后端框架、服务端语言、服务器操作系统、网站容器、内容管理系统和数据库等。广告商常常用浏览器指纹来追踪我们的浏览记录。
论文[1]Measuring Information Leakage in Website Fingerprinting Attacks and Defenses开发了一种方法和工具,可以直接测量网站指纹泄漏的信息总量。该工具从大量网站和指纹攻击机制中提取了全面的一系列特征值,用于细粒度衡量评判攻击和防御机制。通过对防御系统的信息泄漏及其准确度的测量,发现利用分类偶然性验证防御系统是有缺陷的。
与cookie不同,指纹技术是一种无状态技术,它不在设备上存储任何信息,而是利用浏览器自由传递的属性的独特组合。指纹的独特性使它们能够被用于识别。但是,随着时间的推移,浏览器的指纹会发生变化,并且在较长时间内跟踪用户的有效性还没有得到适当的解决。在论文[2]FP-STALKER: Tracking Browser Fingerprint Evolutions Along Time中,我们发现,由于软件更新或配置更改等原因,浏览器的指纹往往会从几小时到几天频繁更改。然而,尽管变化频繁,浏览器指纹仍然可以通过链接实现长期跟踪。FP-STALKER是一种链接浏览器指纹演变的方法。它通过比较指纹以确定它们是否来自同一个浏览器。该论文创建了两个FP-STALKER变种,一个基于规则的变种更快,一个利用机器学习提高准确性的混合变种。实验结果表明,FP-STALKER平均可以跟踪浏览器54.48天,26%的浏览器可以跟踪100天以上。
为了抵御指纹追踪,一些研究人员和厂商提出使用一些插件或其他办法来修改用户返回给网络服务提供者的设备信息以隐藏身份逃避追踪的方法,比如修改 User Agent 等,但又有研究人员发现,这种简单的修改并不能阻止浏览器指纹对用户的追踪,反而会因一些信息的不匹配造成的指纹不一致性带来更有效的追踪。在论文[3]Fp-Scanner: The Privacy Implications of Browser Fingerprint Inconsistencies中,作者在此的基础上进行了实验,以操作系统信息、浏览器信息、设备信息和 Canvas 信息的不一致性,详细地解释并验证了“浏览器指纹不一致反而会带来更有效的追踪”的说法。
论文[4]Deep Fingerprinting: Undermining Website Fingerprinting Defenses with Deep Learning和论文[5]Automated Website Fingerprinting through Deep Learning则是用深度学习的方法破坏网站指纹防御系统,运用深度学习卷积神经网络的方法可使攻击成功率大大提升,相信这也将是今后防御网站指纹攻击的重要研究方向。
对于指纹追踪攻击的研究让我知道了看似不起眼的信息也能成为追踪用户的利器,并随着时间和技术的推移而不断升级。要实现web安全还是要先提升技术。
论文目录
[1]
题目:Measuring Information Leakage in Website Fingerprinting Attacks and Defenses
会议名称:ACM Conference on Computer and Communications Security (CCS) 2018
作者:Shuai Li, Huajun Guo, Nicholas Hopper
[2]
题目:FP-STALKER: Tracking Browser Fingerprint Evolutions Along Time
会议名称:IEEE Symposium on Security and Privacy (SP) 2018
作者:Antoine Vastel, Pierre Laperdrix, Walter Rudametkin, Romain Rouvoy
[3]
题目:Fp-Scanner: The Privacy Implications of Browser Fingerprint Inconsistencies
会议名称:USENIX Security 2018
作者:Antoine Vastel, Pierre Laperdrix, Walter Rudametkin, Romain Rouvoy
[4]
题目:Deep Fingerprinting: Undermining Website Fingerprinting Defenses with Deep Learning
会议名称:ACM Conference on Computer and Communications Security (CCS) 2018
作者:Payap Sirinam, Mohsen Imani, Marc Juarez, Matthew Wright
[5]
题目:Automated Website Fingerprinting through Deep Learning
会议名称:The Network and Distributed System Security Symposium (NDSS) 2018
作者:Vera Rimmer, Davy Preuveneers, Marc Juarez, Tom Van Goethem, Wouter Joosen