分类 安全防护 下的文章

[5.12]蠕虫事件应急响应

2017 年 5 月 12 日晚. 项目群有人发了一张图, 某大学被勒索病毒攻击.
十分钟后截了一张公告, 病毒使用 "MS17-010" 进行传播, 看到这马上想起 4 月底 FB 上的一篇帖子.
NSA 漏洞库, MS17-010, 通杀全版本. 马上安排相关人员对涉外及与教育网内部连接的服务器进行加固.
于第二日 5 月 13 日, 九点, 上课途中, 领导连来五个电话安排对机房的相关服务器进行排查.
同时在机房内发现机子出现被攻击成功, 即刻联系组员进中心机房, 对相关机房进行断网处理.
临时对涉毒大楼进行物理阻隔(拔网线). 同时对服务器数据进行备份.
因为实验大楼使用的是云端教学, 被攻击的客户端为云端镜像, 不算什么大事. 对客户端进行升级即可.
于 十一点左右 联系相关负责人, 通过核心交换, 配置 ACL, 阻隔相应端口, 封闭对应 Vlan / IP 段. 阻止进一步传播.
同时对网段内电脑进行排查. 发现实验大楼内有另一教室也出现勒索病毒. 教师端也不能幸免.
考虑云端的特殊性. 便把教室与云端服务器进行物理断网. 关闭所有在用客户端. 从源下手. 对镜像进行升级加固.
于下午五点半, 升级完毕. 晚八点恢复网络进行机房测试, 至晚 十点半 无发现病毒复现状况. 自此事件响应完毕.

总结:

主要是漏洞威力过于巨大, 只要对 SMB 服务进行阻隔即可.

一篇 Nginx DDos 防护脚本

参考网上的一些工具写的初始版本, 不过还蛮好用的,

就是容易误杀, 而且需要手动启动和配置. 

主题思路: 当 WEB 被打死之后会记录每条访问日志, 

    通过分析错误日志统计访问次数最多的IP然后 gank 他.

运行环境: Linux + ROOT权限

备注: awk '{print $19}' 这个 $19 代表着 IP 在错误日志中出现的位置, 

    如果日志的格式为 127.0.0.1 2016年7月31日 ...

    那么这个 $19 就要修改为 $1,是按照空格来区分的,

    如果要以 ',' 来区分的话. 把 awk '{print $19}' 修改为 awk -F ',' '{pring $19}' 即可


#!/bin/bash
#author: a.tm.k
#site: http://sys7em.info
# 通过监控 nginx 的服务器 error 日志发现 ddos 然后自动屏蔽攻击 IP
logFile=/var/log/nginx/web-error.log  // WEB 错误日志
tempMaxIp='0.0.0.0'
function checkIp(){
	maxIp=`tail -n 200 ${logFile}|awk '{print $19}'|sort|uniq -c|sort -n -k 1 -r|head -n 1|awk '{print $2}'`
	maxIp=${maxIp%,*}
	if [[ $tempMaxIp != $maxIp ]]; then
		iptables -A INPUT -s ${maxIp} -j DROP
		echo "Attack Ip ===> ${maxIp} As Join BlackList"
		tempMaxIp=$maxIp
#	else
#		echo "Attack Ip ===> ${maxIp} Is In BlackList"
	fi
}
function main(){
	while true
	do
	checkIp
	sleep 5
	done
}
main