首页 / 资讯中心 / 文章详情

从钓鱼到DDoS:常见网络攻击手法拆解与纵深防御实战

从钓鱼到DDoS:常见网络攻击手法拆解与纵深防御实战 ★ FEATURED ARTICLE
1. 被攻破的第一步先搞懂攻击者到底在打什么算盘先讲一件让我印象很深的事。去年帮一家做电商代运营的客户做安全体检早上九点刚到公司对方负责人就发来消息说后台管理账号被锁了所有商品被批量下架首页被挂了一张奇怪的白底黑字告示。查了半天入口不是系统漏洞不是服务器弱口令而是一名运营同事上周收到的一封标题为“平台结算新规通知”的邮件。邮件做得很真域名前缀是service-security-check落款和排版跟平台官方几乎一致附件打开后还弹了“请启用宏以查看内容”。就这一个动作整个后台等于给攻击者递了钥匙。这类事每天都在发生。很多人觉得“网络攻击”是黑客拿着神秘工具狂敲键盘实际上绝大多数攻破手段走的都是最普通的路径——发钓鱼邮件、试弱口令、扫开放端口、往Web应用里塞恶意请求。而防御方经常陷入一个误区以为买了防火墙、装了杀毒软件就万事大吉。要谈防范得先站在攻击者的角度把一整条攻击链路拆开看。一次完整的网络攻击通常可以拆成四个阶段侦察阶段攻击者收集目标信息包括域名、IP段、开放端口、邮箱地址、员工姓名等。这个阶段不产生攻击流量所以防火墙和入侵检测系统很难察觉。渗透阶段利用钓鱼、弱口令、已知漏洞或应用层缺陷突破第一道边界拿到一个落脚点。横向移动阶段以落脚点为跳板在内网探测其他主机、抓取口令、提升权限逐步接近核心系统和数据。收尾阶段窃取数据、加密勒索、破坏业务或者留下后门为后续再次进入做准备。为什么防御总感觉慢半拍因为攻击者只需要找到一个突破口而防守方要守住每一个入口。我服务过的企业里最典型的死法是边界防护做得不错但内部一台测试服务器的端口暴露在公网或者密码策略形同虚设admin/admin123这种组合一猜就对。所以真正的防范不是某一个产品、某一条命令能解决的而是一套从意识到配置、从检测到响应的完整闭环。本篇文章不聊高深理论就按攻击者常用的手法逐一拆解再给出可以直接落地的防御动作。2. 五种高频攻击手法的底层逻辑与真实杀伤力攻击手法成百上千但真正天天在企业网络里发生的就是那几类。这一节把五种最常出现的攻击方式逐一拆开讲清楚它怎么进来的、打中之后会怎样、实际案例里是怎么体现的。2.1 钓鱼攻击绕开所有技术防线的一封信钓鱼攻击的杀伤力在于它不攻击你的系统而是攻击你的判断力。攻击者伪装成银行、平台方、同事或领导通过邮件、短信、即时通讯工具诱导你点击链接、下载附件或直接转账。技术含量高的还会做克隆网站——把真实登录页的HTML扒下来改一个域名放在自己的服务器上你点进去看到的是和官网一模一样的界面输入账号密码后信息就到了对方手里。钓鱼里有两个进阶版本值得注意鱼叉式钓鱼专门针对某个组织内的特定个人。攻击者先在社交媒体上研究目标人物的社交关系再把邮件写得非常有针对性。比如假装是财务总监要求财务同事“紧急转账一笔供应商款项”因为“我在开会电话不方便接”。捕鲸攻击目标是高管本人通常配合社会工程学获取更多信息后实施金额往往是一笔大数目。我见过最典型的案例某公司人事邮箱被钓鱼成功攻击者拿到邮箱权限后直接给全体员工发了“工资卡信息需重新登记”的邮件附带的链接是一个伪造的HR系统登录页。当天下午就有三十多名员工提交了银行卡号和身份证号。这已经不是丢一个账号的问题而是整批个人信息被拉走。防御上记住一个原则人是最薄弱的环节所以必须把技术手段作为兜底。具体做法后面会展开这里先提核心思路——关键操作必须二次确认敏感信息不通过邮件传递登录重要系统强制使用动态验证码。2.2 暴力破解与撞库密码是人类发明的最容易被绕过的防线暴力破解分为线下的字典攻击和线上的连番尝试。字典攻击拿着几十万条常见口令不断尝试登录撞库则更“聪明”一点——攻击者手里已经握着从某个网站拖出来的用户名密码库因为多数人在不同平台用同一套口令他们直接把库里的组合拿去尝试你的系统命中率相当可观。这类攻击最怕什么最怕你开启多因素认证。就算密码泄露没有手机验证码或硬件密钥对方还是进不去。但现实中仍有大量系统没有这一步尤其是内网系统、打印机后台、摄像头管理平台经常是出厂默认口令用到底。我自己做安全审计时有一条默认检查项把目标IP的所有Web登录页面拉出来先试admin/admin、admin/123456、root/root命中率大约在10%上下。这数字看着不高但放在公网上每天有多少扫描器在试一个口令字典几百万条跑完几个小时内就能探测完一个IP上的所有常见组合。如果你的密码在这些人手里是明文那几乎等于开门迎客。对抗暴力破解的措施除了强密码策略和多因素认证还要在系统层面加“闸门”连续登录失败锁定、登录频率限制、验证码、IP黑名单。这些不是可选优化项而是上线前就该做好的基础配置。2.3 中间人攻击你在和谁通信你真的确认过吗中间人攻击最常见的形态是伪造WiFi热点和ARP欺骗。攻击者在公共场所架设一个名字和官方一模一样的WiFi比如“Free_WiFi”和“Fast_Free_WiFi”你连上去之后所有流量都先经过他的设备。若无加密保护你在网页上输入的每个字符攻击者都能在旁边实时看到——账号、密码、聊天内容、文件内容全部透明。就算网站启用了HTTPS如果用户忽略浏览器警告强行继续访问加密也就形同虚设。另一个容易被忽视的场景是内网流量劫持。办公网络上如果有一台机器被植入恶意程序攻击者可能通过篡改ARP表的方式让内网其他机器的流量走它这一跳从而截获明文协议的数据比如老旧的FTP、Telnet或者未启用加密的数据库连接。防御的核心是加密所有传输通道。对内能用HTTPS、SSH、SFTP的坚决不用HTTP、Telnet、FTP对外重要系统应强制HSTSHTTP严格传输安全策略从浏览器层面拒绝未经加密的访问。同时员工在外尽量用手机流量给电脑开热点而不是随手连陌生WiFi。对于必须远程接入内部网络的情况应当使用可信的加密远程接入通道这是许多安全事件里被验证过的最有效手段之一。2.4 注入攻击与跨站脚本针对应用层的精准打击这类攻击针对的是Web应用本身的代码缺陷常见的两类是SQL注入和跨站脚本XSS。SQL注入的典型场景登录框里输入用户名的地方系统拿你输入的内容拼SQL语句。如果你输入一段 OR 11--拼出来的查询可能变成“查询所有用户条件为用户名等于空或1等于1”从而绕过身份验证。再进一步攻击者可以用UNION SELECT把数据库里的其他表查询出来甚至利用高权限数据库账号直接写文件到服务器。XSS的攻击路径不太一样它把恶意脚本“寄存”在目标网站上。比如在留言区提交一段脚本而不是普通文字网站如果没做过滤这段脚本会被存储下来。其他用户浏览留言时脚本在浏览器里执行攻击者就可以窃取该用户的会话令牌Cookie以该用户身份操作网站。这类攻击之所以长期存在根源在于输入和输出缺乏验证与过滤。防御思路概括起来就是四个字永不信任用户输入。后端执行SQL时必须使用参数化查询前端渲染数据时必须做HTML实体转义关键操作改密码、转账需要二次校验或重新登录。上线前至少跑一轮基础的Web扫描OWASP ZAP这类免费工具就能发现不少明显问题。2.5 DDoS攻击不偷你的数据但让你的业务消失DDoS分布式拒绝服务的思路就是“用流量堆死你”。攻击者操控大量被感染的设备也就是常说的僵尸网络同时对目标服务器发起海量请求把带宽打满、把并发连接数打满合法用户根本访问不了服务。这比前面几类攻击更“无差别”因为它不依赖你的应用代码有没有漏洞只要你暴露在公网就可能被打。实际运营中让人最头疼的是混合型DDoS比如先打高带宽流量再辅以应用层的慢速请求攻击。后者是攻击者模拟正常用户建立连接后一直保持半开状态不发送完整请求耗尽服务器连接资源。这类攻击的请求看起来和正常访问长得很像单靠基础防火墙规则很难识别。应对DDoS单纯靠自建防御是不现实的带宽成本摆在那里。正确的姿势是在接入层或CDN层做流量清洗把恶意流量识别并丢弃只放行正常业务流量。基于云服务的大型清洗系统有海量带宽和算法支撑处理几十G的流量攻击也只是几秒钟的事。其次是要做容量评估——你的服务正常吞吐量是多少、峰值是多少这是判断是否被攻击的一个基准线。如果没有基准值攻击打过来的时候连告警阈值都定不准。下表把这五种攻击再做一次直观对比攻击类型攻击对象常见入口主要后果最有效的阻断点钓鱼攻击人邮件、短信、克隆网站账号泄露、资金损失、数据外泄账号多因素认证、员工培训和邮件网关过滤暴力破解/撞库账号体系登录接口后台入侵、横向移动密码策略、登录锁定、多因素认证中间人攻击传输链路伪WiFi、ARP欺骗、明文协议通信内容被窃取全链路加密、证书校验、禁止明文协议注入/XSSWeb应用表单输入、URL参数、留言区数据被拖库、会话被劫持参数化查询、输出编码、WAF过滤DDoS网络与业务可用性公网暴露面服务不可用、业务停摆流量清洗、限速策略、容量冗余3. 防范的核心思路从单点防御升级为纵深防御体系很多安全方案不是没用而是太“单薄”。一台边界防火墙上写满了策略但Web服务器本身却存在漏洞服务器加固做得好但运维人员的个人电脑中了木马每台机器都装了杀毒软件但日志没有集中留存出了事根本不知道源头在哪。所以现代安全建设必须走向纵深防御——不指望某一层绝对可靠而是用多层控制叠加让攻击者在每一层都要付出成本最终知难而退。纵深防御落实到具体网络上大致可以分成四个层次边界层这是最外层的大门。核心设备是防火墙、入侵检测/防御系统、抗DDoS设备以及邮件安全网关。控制粒度要对齐业务实际需求比如只对外开放必须的端口数据库端口3306、5432绝不对公网开放管理后台额外限制来源IP。很多攻击者扫一圈端口发现全是门闭着的就直接放弃换下一个目标了。主机层服务器和个人电脑都要做加固。系统补丁及时更新不必要的服务关掉修改默认口令限制本地管理员权限部署终端检测响应EDR类工具。主机层面的重点是收口——暴露的面越小能被利用的入口越少。应用层Web应用上线前做安全测试运行期用WAFWeb应用防火墙拦截明显的恶意请求。不过这层有个常见误区以为上了WAF就能一劳永逸。事实上WAF只能拦截已知特征的攻击逻辑漏洞、业务漏洞它看不见。所以代码层面的安全开发规范才是这个层次的根基。数据层数据是攻击者的最终目标也是最容易被忽略的一层。数据库访问必须最小权限敏感字段加密存储备份策略要有且要定期演练恢复传输过程必须加密。数据层的原则很朴素就算被攻破了也尽量拿不到有价值的东西或者拿到的也是密文。纵深防御的逻辑放到生活里其实就是一道防盗门的原理——门锁是密码策略门框是防火墙室内摄像头是日志审计报警器是入侵检测而保险柜是数据加密。小偷撬开第一道门发现还有第二道每道都要花时间大部分中途就放弃了。另外有一点必须强调纵深防御不是买一堆设备堆在那里。我见过有企业上了三代防火墙、两套EDR但日志系统根本没人看告警邮件从打开看就是几千封未读。这就像家里装了十个摄像头但屏幕全部蒙着灰——不是没有防盗措施是措施没有被真正用起来。体系建设里最容易被忽略的其实是运营动作告警分诊、日志定期审计、应急演练这些才是让设备活起来的关键。4. 落地实操一套不需要高预算就能复制的基线加固方案这一节给出的是我实际做过、验证过有效的基线加固清单按操作对象分类。它不要求你拥有专业的红队工具也不需要庞大的安全团队只要有一台服务器的管理权限和认真执行的态度就能完成大部分工作。4.1 账号与口令分权、强口令、锁频、认证关闭或限制root/administrator直接登录日常运维用普通账号加sudo提权。一来减少攻击面二来所有敏感操作都留痕。口令长度强制不低于12位包含大小写字母、数字和特殊符号。不要小看长度这个参数纯数字短口令的破解时间是用秒计的而12位混合字符的破解时间能到百万年级别。开启连续登录失败锁定。例如设置5次失败后锁定15分钟。这项配置在Windows中是账户策略在Linux里可以通过pam_faillock实现。对所有管理类系统强制多因素认证。独立部署的运维管理平台优先引入TOTP基于时间的一次性口令手机上的认证器App就能做不需要额外购买硬件令牌。定期审计账号清单清理离职人员账号和长期不用的幽灵账号。按季度做一次最笨的办法是直接去检查各系统的用户列表见一个删一个。4.2 网络边界与服务暴露面收敛先做一轮资产盘点。很多人不知道自己的服务器对外开放了多少端口实际上跑一条扫描就能看见。针对Linux服务器可以用nmap做外部视角的评估# 扫描本机公网IP的常用端口确认暴露面 nmap -sS -Pn --top-ports 1000 你的公网IP扫描结果里凡是没在业务规划里的端口一律在防火墙上拒绝。我见过不少环境把MongoDB的27017端口挂在公网数据直接被拖走了。数据库、缓存、消息队列、管理后台这类组件原则上是只允许内网访问哪边要用就在哪边开白名单。比如用iptables禁止外部访问3306端口iptables -A INPUT -p tcp --dport 3306 -s 0.0.0.0/0 -j DROP iptables -A INPUT -p tcp --dport 3306 -s 192.168.1.0/24 -j ACCEPT注意规则的顺序禁止规则在前、允许规则在后没有意义iptables是自上而下匹配要允许在先、拒绝在后才能生效。SSH的暴露面也要处理。常见的加固动作包括修改默认端口不是必须的但禁用口令登录、强制密钥登录是强烈建议的。关闭口令登录的方式很简单编辑/etc/ssh/sshd_configPasswordAuthentication no PermitRootLogin no改完务必先开一个新连接验证密钥登录可用再重载服务否则容易把自己锁在门外。4.3 系统与软件补丁管理补丁的重要性不需要多讲但现实里很多服务器处于“装完系统就没再更新过”状态。这不是懒惰问题而是缺少一个合格的补丁管理流程。对中小企业来说这一步可以很简单每月固定一个维护窗口批量检查并安装操作系统安全更新。Linux下就是一条指令的事# 在低峰时段执行完成后确认服务状态 apt update apt upgrade -y记录安全问题追踪平台里与你所用软件版本相关的通告需要重点关注的是Web中间件如Nginx、Tomcat、数据库MySQL、PostgreSQL、Redis和开发框架Spring、Struts、ThinkPHP等。这些组件一旦被爆出漏洞网上很快就会批量出现利用脚本你不打补丁基本上就是裸奔。4.4 日志集中留存与告警日志只有集中了才叫审计散落在各台服务器上的日志在出事时根本没用。最轻量的方案是搭一套ELKElasticsearch、Logstash、Kibana再配合Filebeat做日志采集。基础配置可以这样起步在服务器上安装并启动Filebeat然后编辑配置文件/etc/filebeat/filebeat.yml指定要收集的日志路径并输出到日志服务端filebeat.inputs: - type: filestream id: syslog enabled: true paths: - /var/log/syslog - /var/log/auth.log output.elasticsearch: hosts: [192.168.1.10:9200]日志集中之后至少每天看一遍认证日志里的异常登录尝试。用一条命令就能快速筛出失败的登录尝试来自哪些IPgrep Failed password /var/log/auth.log | awk {print $(NF-3)} | sort | uniq -c | sort -nr如果发现同一IP反复尝试就把这个IP加入防火墙黑名单。更进一步可以直接部署fail2ban它能自动完成“检测-封禁”的闭环。很多人以为日志审计是大公司才做的事但恰恰是中小企业因为没有专职安全人员更需要自动化工具来辅助盯防。4.5 备份与恢复演练备份的关键指标只有一个恢复需要多久。备份要遵循“3-2-1”原则——数据保留3份副本分布在2种不同的存储介质上其中1份放在异地。同时备份不是导出一个文件就完事了必须定期做恢复演练实战里常见的情况是备份每天都成功但恢复时才发现文件损坏或加密等于白备份。对于数据库备份我建议至少保留近30天的每日全量备份加上最近7天的binlog增量日志。这样一旦数据被加密勒索最多丢一天的数据而不是回到上个世纪的备份点。4.6 内网隔离与远程接入通道管理很多企业内网是一马平川办公网和服务器网段直接互通员工个人电脑中了马攻击者就能顺手摸到生产环境。内网至少应划分办公网段、业务服务器网段、数据库网段三者之间用防火墙策略互相隔离。做不到精细隔离也要保证生产库对办公网是“不可见”的。远程接入内部网络是另一个高频风险点。给员工提供远程办公接入权限时务必使用可信的加密远程接入方案并配合多因素认证而不是把管理后台直接映射到公网。端口映射这东西我用一句话总结你映射出去的每一个端口都是一扇需要盯防的门。能不映射就不映射能只对个人IP开放就只对个人IP开放。5. 事后复盘系统被攻破后的排查思路与止损清单就算所有防御都做了攻击者依然可能从某个意想不到的缝隙钻进来。被攻破不是末日真正致命的是攻破之后还在“裸奔”——不知道该做什么、不知道先做哪一步。这一节我把应急排查思路完整列出来供你参考。5.1 确认入侵迹象先判断“是不是真的出事了”被攻击的迹象不总是“服务器瘫痪”这种大动静很多时候是细微的异动系统CPU或内存持续高占用但业务并无明显增长数据库连接数异常飙升服务器主动向外发起大量连接尤其是访问不常见的外部端口登录日志里出现非工作时间、非来源IP的登录记录目录下出现不明名称文件如web目录下的shell.jsp、.php小马系统账户、计划任务、开机自启动项有新增条目。日常巡检时重点关注认证日志和出站连接这两块。攻击者拿到权限后一定会进行内外通信这条链路如果有异常很容易暴露。5.2 止损优先级先隔离再取证不要急着删数据很多人的第一反应是赶紧把可疑文件删了但这个动作会把证据一并销毁。正确的顺序是立即隔离将被攻破的服务器断网或从交换机上拔线。阻断攻击者继续控制这台机器的通道。保留现场不要删除涉嫌恶意文件不要重启服务器内存信息会丢失先把可疑进程列表、网络连接列表、登录历史打印出来留存。采集证据复制出webshell文件、相关的日志片段、恶意脚本等置于只读介质中后续需要分析攻击路径。通知干系人如果服务器承载业务及时通知业务负责人和管理层按照预案决定是否切换备用节点。有一个真实案例让我印象很深某公司的服务器被勒索病毒加密IT同事第一时间把服务器关了结果没有留下任何日志证据不知道病毒从哪进来的更不知道哪些数据被窃走。关机的确能止损但在止损之前应当先把能拿到的证据拿到手——进程列表、连接列表、注册表/自启动项这些一旦断电就再也回不来了。5.3 溯源分析从日志里把攻击路径串起来隔离之后重点开始翻查日志回答三个问题从哪里进来的、干了什么、现在还知道什么。先看认证日志找到攻击者首次成功登录的时间点和来源IP。再看这之后的会话记录判断有没有执行命令、切换过用户、横向访问过其他机器。Web服务器则优先看访问日志里有没有畸形请求特别是POST请求、携带执行参数如cmd、eval、exec的请求以及访问了正常情况下没人访问的路径。日志分析时别只盯着单台机器要看横向链路。如果办公网的机器被钓鱼拿下那攻击者完全可能继续尝试SSH到服务器网段。把多个系统的登录日志按时间轴并排看能发现一条完整的攻击路径。这个阶段如果自己搞不定建议联系专业应急响应的乙方来处理他们是吃这碗饭的经验积累比临时上阵快得多。5.4 恢复与加固漏洞不堵不恢复业务不验证不切换溯源完成、问题定位后先补漏洞再恢复业务这个顺序不能反。常见做法修改所有相关账号口令密码包括服务账号、数据库账号、系统管理员账号在防火墙层面封禁攻击来源IP卸载恶意程序、删除恶意文件如果webshell已经和正常文件混在一起拿不准建议直接重建实例从备份恢复干净数据修复被利用的漏洞升级版本、改配置、做代码修复全面排查同类主机是否还有相同漏洞一并修复确认清理完毕后先临时开放业务做小流量验证再逐步放全量恢复。恢复不是简单地把业务拉起来而是把整个系统的安全性重新拉起来。这个过程中我最看重的是每一项恢复措施都要有验证动作。改了口令就试一次新口令是否生效封了IP就从外部确认无法访问修了漏洞就再跑一次探测脚本看看是否复现。只有验证过的配置才算真正落地。6. 那些看起来不重要但迟早出事的习惯系统层面的防御讲得差不多了最后补一块很多人不重视的个人操作习惯与安全意识。技术防护能挡住大多数自动化攻击但挡不住“人在某一瞬间的随意”。我自己带队做安全服务这么多年遇到过太多案例事后回溯都能发现如果当事人当时多做一步确认事件根本不会发生。密码复用是最大隐患。你的企业账号密码如果和某个注册网站一致那个网站一旦被拖库攻击者就会用同一个密码去试你的企业系统。建一个密码管理器给每个系统生成独立密码一次配置长期受益。临时文件不清理。很多人习惯把备份文件、SQL导出文件、配置文件压缩包放在Web目录或桌面。这些文件一旦被扫描到相当于把核心资产目录页直接打开给攻击者看。所有包含凭据和敏感数据的临时文件用完即删。陌生链接和附件的处理原则。收到带链接或附件的邮件时先看发件人全称再看域名最后再打开。尤其注意那种“账户异常”“备案到期”“发票待查收”类邮件。宁可打电话给同事确认一下也不要顺手点击。个人设备办公的边界。用自己的电脑处理工作尤其是打开工作邮件、登录内部系统时设备上最好有基本的杀毒软件和及时的系统更新。个人设备一旦中马攻击者可借你的远程接入通道进入内网。默认口令必须改。打印机、摄像头、路由器、门禁系统这些东西因为“没人管”常年保留admin/admin但实际上它们都在内网里对着整个局域网。别忘了它们也是网络资产的一部分。这类习惯问题很难靠制度解决更像是一个团队文化的潜移默化。我的经验是安全培训不要讲PPT直接讲你们公司自己发生过的案例或者把行业公开的安全事件拿来复盘。人只有在看到“这事如果发生在我身上”的时候才会真正改掉那个顺手点链接的习惯。回到开头的电商客户事后复盘发现那位运营同事其实是看到了发件人域名带了个“-security”就觉得不太对但邮件内容做得太像官方通知加上群里同事都没人质疑他就没多想。可见安全意识不是要求每个人都变成安全专家只需要养成一个习惯在每一次提交账号密码、每一次点击链接前多问自己一句这个动作真的是必要的、可信的吗这可能是整个安全体系里成本最低、回报最高的一层防线。
阅读完成 · 觉得有帮助?
咨询建站