web安全杂记

拥有回忆 提交于 2020-02-24 21:07:03

session防御方法

1、每当用户登陆的时候就进行重置sessionID

2、sessionID闲置过久时,进行重置sessionID

3、 大部分防止会话劫持的方法对会话固定攻击同样有效。如设置HttpOnly,关闭透明化Session ID,User-Agent验证,Token校验等。

 防御方法:

  1、 更改Session名称。PHP中Session的默认名称是PHPSESSID,此变量会保存在Cookie中,如果攻击者不分析站点,就不能猜到Session名称,阻挡部分攻击。

  2、 关闭透明化Session ID。透明化Session ID指当浏览器中的Http请求没有使用Cookie来存放Session ID时,Session ID则使用URL来传递。

  3、 设置HttpOnly。通过设置Cookie的HttpOnly为true,可以防止客户端脚本访问这个Cookie,从而有效的防止XSS攻击。

  4、 关闭所有phpinfo类dump request信息的页面。

  5、 使用User-Agent检测请求的一致性。但有专家警告不要依赖于检查User-Agent的一致性。这是因为服务器群集中的HTTP代理服务器会对User-Agent进行编辑,而本群集中的多个代理服务器在编辑该值时可能会不一致。

6、 加入Token校验。同样是用于检测请求的一致性,给攻击者制造一些麻烦,使攻击者即使获取了Session ID,也无法进行破坏,能够减少对系统造成的损失。但Token需要存放在客户端,如果攻击者有办法获取到Session ID,那么也同样可以获取到Token。

 

http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=

CC攻击就是利用大量代理服务器对目标计算机发起大量连接,导致目标服务器资源枯竭造成拒绝服务。那么如何判断查询CC攻击呢?

本文主要介绍了一些Linux下判断CC攻击的命令。

查看所有80端口的连接数

netstat -nat|grep -i "80"|wc -l

对连接的IP按连接数量进行排序

netstat -anp | grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

netstat -ntu | awk '{print $5}' | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | sort | uniq -c | sort -nr

查看TCP连接状态

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn

netstat -n | awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn

netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'

netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}'

netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'

netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c

查看80端口连接数最多的20个IP

cat /www/web_logs/waitalone.cn_access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -100

tail -n 10000 /www/web_logs/waitalone.cn_access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -100

cat /www/web_logs/waitalone.cn_access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -100

netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20

netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A,i}' |sort -rn|head -n20

用tcpdump嗅探80端口的访问看看谁最高

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20

查找较多time_wait连接

netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20

查找较多的SYN连接

netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more

linux下实用iptables封ip段的一些常见命令:

封单个IP的命令是:

iptables -I INPUT -s 211.1.0.0 -j DROP

封IP段的命令是:

iptables -I INPUT -s 211.1.0.0/16 -j DROP

iptables -I INPUT -s 211.2.0.0/16 -j DROP

iptables -I INPUT -s 211.3.0.0/16 -j DROP

封整个段的命令是:

iptables -I INPUT -s 211.0.0.0/8 -j DROP

封几个段的命令是:

iptables -I INPUT -s 61.37.80.0/24 -j DROP

iptables -I INPUT -s 61.37.81.0/24 -j DROP

想在服务器启动自运行的话有三个方法:

1、把它加到/etc/rc.local中

2、iptables-save >/etc/sysconfig/iptables可以把你当前的iptables规则放到/etc/sysconfig/iptables中,系统启动iptables时自动执

行。

3、service iptables save 也可以把你当前的iptables规则放/etc/sysconfig/iptables中,系统启动iptables时自动执行。

后两种更好此,一般iptables服务会在network服务之前启来,更安全。

解封的话:

iptables -D INPUT -s IP地址 -j REJECT

iptables -F 全清掉了

抓包:

tcpdump -i lo:1 -w package_live.pcap -c 50000

LDAP过滤器的结构和使用得最广泛的LDAP:ADAM和OpenLDAP

1、服务端对输入内容的合法性进行验证,检查提交的数据是否包含特殊字符,对特殊字符进行编码转换。

2、对于系统出现的错误信息,使用统一的错误页面,屏蔽系统本身的出错信息。

3、参数化XPath查询,将需要构建的XPath查询表达式,以变量的形式表示,变量不是可以执行的脚本。

4、通过MD5、SSL等加密算法,对于数据敏感信息和在数据传输过程中加密,即使某些非法用户通过非法手法获取数据包,看到的也是加密后的信息。

总结下就是:限制提交非法字符,对输入内容严格检查过滤,参数化XPath查询的变量。

 

osquery跟audit二次开发,基本市面上的hids功能

 

在美团内部有智能反爬系统来基于地理位置、IP地址等大数据来提供频次限制、黑白名单限制等常规的基础风控拦截服务。

甚至还有依托于海量的全业务场景的用户大数据,使用贝叶斯模型、神经网络等来构建专业度较深的服务。

风控服务可以为 Web 前端提供通用的独立验证 SDK:验证码、滑块验证等区分人机的“图灵验证”,也可以为服务端提供 Web API 接口的验证等。

Google 使用的人机验证服务是著名的 reCAPTCHA(Completely Automated Public Turing Test To Tell Computers and Humans Apart,区分人机的全自动图灵测试系统),

也是应用最广的验证码系统。而在活动场景中引入人机识别验证,如果只是简单粗暴地增加验证码,

或者只是像 reCAPTCHA 那样增加点击“我不是机器人”的验证,都会牺牲用户体验,降低用户参加活动的积极性。

使用不同的CSRF防御策略。

 

• 登陆CSRF。我们建议使用严格的Referer验证策略来防御登陆CSRF,因为登陆的表单一般都是通过HTTPS发送,在合法请求里面的Referer都是真实可靠的。如果碰到没有Referer字段的登陆请求,那么网站应该直接拒绝以防御这种恶意的修改。

 

• HTTPS。对于那些专门使用HTTPS协议的网站,比如银行类,我们也建议使用严格的Referer验证策略来防御CSRF攻击。对于那些有特定跨站需求的请求,网站应该建立一份白名单,比如主页等。

 

• 第三方内容。如果网站纳入了第三方的内容,比如图像外链和超链接,网站应该使用一个正确的验证token 的框架,比如 Ruby-on-Rails。如果这样的一个框架效果不好的话,网站就应该花时间来设计更好的token 验证策略,可以用HMAC方法将用户的session与token 绑定到一起。

 

对于更长远的建议,我们希望能用Origin字段来替代Referer,因为这样既保留了既有效果,又尊重了用户的隐私。最终要废除利用token来防御CSRF的方式,因为这样网站就可以更好的保护无论是HTTP还是HTTPS请求,而不用担心token是否会泄露。

 

未来的工作。如果使用Origin字段的方法来防御CSRF攻击,网站要注意在处理GET请求的时候不要有什么副作用。尽管HTTP规范里已经这样要求,但是很多网站并没有很好的遵守这一要求。让网站都执行这一要求正是我们未来的工作重点。

 

CSRF攻击还兴起了一个变种,即攻击者在一个可信的网站嵌入一个frame并引诱用户点击(点击劫持)。尽管从我们的定义上讲,这个并不能算是CSRF攻击,但是他们有一个很相似的地方就在于,攻击者都是利用用户的浏览器来对他信任的网站发起一个请求。防御这种攻击的传统办法都是frame busting,但是这种方法有个问题就是它依赖JavaScript,而JavaScript很有可能会被用户或者攻击者禁用。在这里我们有个建议是,可以在Origin字段里添加一些内容用来描述frame的来源,也就是frame里面的超链接,这样受信任的网站就可以根据frame的来源来决定是拒绝还是接受这个请求。

设备指纹技术,可以获取操作设备的多重属性,从而分析该设备参与营销活动的频率、关联账号等情况,有效识别作弊设备。

发现通过使用代理技术隐藏真实IP地址的行为,准确识别当前用户是否使用代理访问网站,再结合同盾风控模型及用户信息,有效识别作弊用户。

大数据风控引擎,准确分析用户行为特征,有效识别欺诈作弊用户。

银行等金融机构及各类电商/O2O发放红包优惠期间,营销活动保护方案将有效识别恶意抢红包用户。

针对医院挂号/票务等平台的黄牛抢票行为,营销活动保护可以有效发现黄牛党,从而制止刷单行为。

电商平台低价优惠秒杀活动,营销活动保护可以识别出可疑用户,从而保证平台营销效果和正常用户利益。

营销活动保护可以对作弊点击行为进行拦截,帮助广告主过滤可疑流量,为广告投放效果保驾护航。

本地文件包含防

安全合规 HTTP/HTTPS请求合规

阻止不合规(RFC、用户自定义)敏感信息泄露 服务器敏感信息防护 阻止网站因异常或配置错误向外界泄露包含程序、系统敏感信息(如数据库报错、应用程序错误信息、服务器目录信息等)

恶意爬虫防护

广告插入防护 针对用户侧网络通过内容劫持的方式插入非网站授权的广告或内容的行为进行检测与防护,在浏览器端移除被插入的广告内容,使其对用户不可见

防广告植入 对客户端的内容劫持、插入广告的行为进行检测,移除被插入的广告内容,使其对用户不可见

时间戳防盗链 对加密URL中的验证信息进行过期验证,验证通过后才认为请求合法,继续提供服务。

 

限制用户并发连接数limit_conn one 1 ,限制客户端并发连接数量为1

域名非法劫持

僵尸网络,全球代理,高匿名代理,tor 代理,亿级恶意黑 IP 库情报(撞库,暴力破解,扫描,黑产 IP 库等),漏洞,爬虫库,互联网攻击溯源数据,域名攻击数据等

支持用户自定义 Bot 行为识别规则:针对 referer 特征,UA 特征,请求速率,次数,参数,路径特征,IP 范围等定义 Bot 行为识别规则。

对 Bot 行为及拦截情况进行分类统计并以图形化报表展示,提供 Bot 管理决策依据。

DNS 劫持攻击将对用户业务及品牌信誉带来严重损失。借助于腾讯海量终端的检测探测点与云端强大数据分析能力,对客户提交的域名进行全国范围的 DNS 验证,感知及详细地展示受护域名在各个地域的劫持情况,帮助组织规避 DNS 劫持问题所带来的业务风险问题。

数据防泄漏

Web 攻击、系统漏洞攻击等攻击手段操作后台数据库,导致数据库中储存的用户身份证信息、联系方式等敏感信息被攻击者获取。

事前:对服务器信息如响应码,数据库错误信息进行隐藏,并识别拦截黑客的扫描行为,防止黑客的“踩点”探测漏洞的行为,提升黑客入侵难度。

事中:对黑客入侵行为,如 SQL 注入行为,Webshell 上传行为进行感知拦截,阻止黑客对数据库的进一步入侵。

事后:提供自定义的信息泄露防护规则,针对检测到的数据窃取行为,自动启用数据替换策略,将攻击响应传输中的敏感数据,

如电话号码,ID 身份证号进行替换隐藏,防止黑客获取业务数据。

 

支持基于访问频次,条件匹配模式识别 CC 攻击。

支持开启“封禁访问”或“人机识别”策略模式。

支持自定义惩罚时长。

 

输入规则名称、选择匹配条件(匹配字段为敏感信息,匹配条件为包含,匹配内容为身份证或手机号)和执行动作(替换或观察),

把回应报文body中命中规则内容,替换成*******

 

数据风控:防止垃圾注册、账号被盗、活动作弊、垃圾消息等欺诈威胁。

敏感信息防泄露:避免身份证、银行卡、电话号码等敏感数据泄露;针对服务器返回的异常页面或关键字做信息保护。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!