随便在一个搜索引擎搜索 data breach 都能出现大量数据泄漏的新闻,我们每一个人仿佛已经都没有了所谓的“隐私”。
From: https://www.informationisbeautiful.net/visualizations/worlds-biggest-data-breaches-hacks/更加令我们疑惑的可能是:
How these hackers did this? 黑客是如何频频把这些知名网站攻破的?我们不妨从一个名叫 Michael Calce 的毛头小子说起:
黑手党男孩(MafiaBoy)
From: Biggest hacking scandals of all time – National | Globalnews.ca迈克尔·卡尔斯(Michael Calce)于 1984 年出生于魁北克省蒙特利尔西岛地区。 五岁时,父母离婚,母亲赢得主要监护权。 每两个周末他都会住在他父亲在蒙特利尔的公寓里。Michael 的父亲是意大利人,从小就给 Michael 讲述了很多意大利黑手党的各种奇闻异事,这也在 Michael 心理埋下了不循规蹈矩的种子。
老 Calce 不确定如何陪儿子度过周末,所以他从工作中拿了一台电脑带回家。几年后,Michael 获得了 AOL 的免费试用。这是他第一次上网,Michael 盯着互联网这个新奇的东西兴奋不已。几天之内,这个 9 岁的孩子就破解了 AOL 的系统,这样他就可以在 30 天的试用期之后继续上网。从此,聊天室成为了 Michael 的另一个家。他没日没夜地泡在里面,结识着世界各地的陌生人。
From: ChatZilla User's Guide后来 Michael 回忆道:“我记得坐着听它处理命令时发出哔哔声、咯咯声和搅动声。我记得屏幕是如何在我面前亮起来的。口述一切的想法令人陶醉 “计算机做到了,甚至是最小的功能。计算机给了我这个九岁的孩子一种控制感和指挥感。在我的世界里,没有其他东西是这样运作的。”
偶然间,Michael 找到了一款游戏软件,但囊中羞涩。如何破解(Crack)软件?他将问题抛到了聊天室。 奇怪的事情发生了——几乎话音刚落,他就被踢出了聊天室。就连上网服务也终止了。 被踢的原因尚未可知,但 Michael 很快了解到,早期互联网上的很多软件都缺乏足够的校验和安全机制,如果把精心构造的数据包发送给服务器,就可以把他“踢”下线。
Michael 开始搜索那些能够“踢人”的应用程序。利用这些程序,他也“踢”了不少人——然而,很快 Michael 就没有了能随意踢人的满足感。他知道自己只是个脚本小子(Script Kiddie),并不懂得如何编写、逆向代码,算不上真正的黑客,充其量只是一个捣乱的小子。
From: Know Thy Enemy: Chaos-Seeking Hacker – Secplicity – Security Simplified脚本小子(英語:Script Kiddie)是一个贬义词,用来描述以「黑客」自居并沾沾自喜的初学者。 脚本小子不像真正的黑客那样发现系统漏洞,他们通常使用别人开发的程序来恶意破坏他人系统。 通常的刻板印象为一位没有专业经验的少年,破坏无辜网站企图向朋友炫耀,因而称之为脚本小子。黑客是创建了这些破坏工具的程序员,黑客是虚拟世界的叛逆者,黑客是网络空间里的黑手党。Michael 听见自己心中的呐喊:我要成为一名黑客!
11岁的时候 Michael 接触到一个当时最著名的 IRC(Internet Relay Chat) 聊天网站 —— EFnet,上面有很多黑客组织的聊天频道,他发现网上的其他人有能力关闭计算机、清除数据、构建恶意工具、窃取个人信息、破坏信用评级等等。其中一个叫 IWC 的组织正在招募黑客,Michael 也每天都找管理员分享自己对黑客的领悟和成为黑客的决心。终于,管理员大发慈悲,开始教 Michael 一些简单的攻击手段,包括 IRC 网络的工作原理,以及如何利用某些漏洞来破坏机器或网络,甚至获取 root 权限。
这也许为 Michael 打开了黑客的大门,但这还不够。如果想成为一名真正的黑客,需要成熟的编程技能。 Michael 或许不算最有天赋的黑客,但他的性格优势显而易见——如果认定一件事,就会不顾一切地完成。他近乎疯狂地在11岁的年纪阅读了他能找到的所有编程书籍。
“当我第一次将一个程序运行成功时,你不知道我有多开心。说实话,那个程序真的弱爆了,但是那是我人生中最重要的时刻之一”接下来的几个月里,变故又生。IWC 频道的管理员突然失踪,没有人知道管理员下落如何,频道最终解散。但 Michael 很快意识到,一旦一个黑客脱离了组织,他的资源和知识就受到了限制。他需要找到重返组织的道路。 就像选秀节目一样,功成名就的唯一方式是在无数的比赛中夺冠。与之类似,在黑客的赛道中,能够获得精英组织招募的唯一方式就是战斗,再把那些入侵的成果当作投名状。在不到一个月的时间里,Michael 入侵了3个黑客组织,将12个频道纳入控制之下。终于,他开始加入另一个黑客组织,TNT/PHORCE,这个组织甚至比以前的 IWC 还要大。TNT 在 IRC 上被认为是黑客组织中的精英。
这一年,Michael 13岁,在 TNT 组织内自称「黑手党男孩(MafiaBoy)」。
入侵计划
在 TNT 历练了几个月后,14 岁的 Michael 终于攻入了 Outlawnet Inc,这是一家位于俄勒冈州的由 Sisters High School 运营的小型 ISP(Internet Service Provider,类似国内的电信、联通)。
使用他们的服务器,Michael 能够伪装自己的 IP 地址并通过 Outlawnet 路由自己,然后进入 IRC 聊天室并让它看起来像他从任何地方连接一样。他还使用该服务器来掩盖他的足迹。 这个服务器就成了 Michael 完成后面的计划的“跳板”。
2000 年 1 月,和所有来到新世纪的人一样兴奋,但让 Michael 磨刀霍霍的原因是他发现了加州大学圣塔芭芭拉分校(UCSB)的 FTP 端口运行的 WU-FTP 是存在已知漏洞的版本。通过对漏洞的利用 Michael 顺利拿到了加州大学大量服务器的 root 权限。
WU-FTP 是华盛顿大学(Washington University)开发的 FTP 服务器。名字前面的 WU 就是 Washington University 的缩写。在上个世纪 90 年代,HTTP 协议还需要被用于简单 Web Page 的传输,FTP 是最经常被用来做大文件传输的协议。
WU-FTP 尽管是一款非常优秀的 FTP 服务器软件,但截止目前公开的漏洞已经有 23 个,漏洞较多的原因:
一方面是由于 FTP 协议包含了很多容易引入漏洞的机制包括:更改文件权限、被动 FTP 鉴权、在服务器上执行命令等;
另一方面由于上个世纪的操作系统能够保障服务器安全的机制(SELinux、ASLR 等还未出现)较少,大部分服务端软件都需要 root 权限来完成必要的操作。后面我们可以尝试简单还原一下 Michael 入侵加州大学的整个过程以让大家对“神秘”的黑客有个直观的了解。
在做好了充分的准备后,Michael 准备“干一票大的”以好在黑客圈子里扬名立万。Michael 甚至还给此次攻击起了个小时候在意大利黑帮片里学来的项目名:「Rivolta」,在意大利语中意为“反叛”。
2000 年 2 月 7 日,Michael 早早起床,在去上课前启动了先前准备好的攻击程序,下午 1 点,程序利用 Michael 手中的「跳板」和「肉鸡」准时发起了对当时美国最大的门户网站 Yahoo! (雅虎)的 DDoS(Distributed Denial-Of-Service) 攻击。Yahoo! 全部功能随即瘫痪,被突如其来的流量弄得摸不着头脑的雅虎工程师束手无策。直到 2 月 7 日夜里,Yahoo! 才恢复正常,恢复正常的原因竟然不是 Yahoo! 找到了应对 DDoS 攻击的办法,而是 Michael 放学回家停止了攻击程序。
From: Yahoo outage caused thousands of users to threaten to switch to Gmail兴奋的 Michael 登陆 TNT 的 IRC 频道,准备宣称自己的“壮举”。但让 Michael 始料未及的是,这次针对 Yahoo! 史无前例的攻击竟然被别人“认领”了。愤怒的 Michael 一不做二不休,随即在 TNT 群里预告了对 http://FIFA.com、http://Amazon.com、E*TRADE、eBay、CNN 等网站的攻击……于是美国最知名的 6 个网站在同一天被一个 14 岁的男孩“强制下线”了数个小时。对 Michael 来说,这可比在聊天室“踢人”有意思多了。但对于国家安全机构来说,这次袭击敲响了警钟。
Bill Clinton in The White House第二天,攻击的事情就登上了各大媒体的头版头条,甚至有网络安全专家认为此次事件是网络空间的“珍珠港事件”。当时的美国总统克林顿召集了一个网络安全工作组。总检察长珍妮特·雷诺 (Janet Reno) 宣布对 Mafiaboy 展开追捕。
当 IRC 聊天室的卧底特工发现 MafiaBoy 声称他对袭击负责时,FBI 和加拿大皇家骑警(RCMP)就开始了对他的调查。之后,他就成了头号嫌疑人。
特工开始在互联网上搜索有关他身份的线索,并很快发现了一个以 MafiaBoy 的名义在加拿大 ISP 注册的帐户。攻击的数据还指向蒙特利尔的另一个 ISP,警方定位 Mafiaboy 应该是位于加拿大。
警方在蒙特利尔的两个 ISP 执行搜查令时设法找到了他,这两个 ISP 与多个 Mafiaboy 帐户相关联。 通过将西雅图 Outlawnet 事件中的攻击事件联系起来,很快就发现它有相同的电话号码和地址。
“你知道我是一个非常冷静、镇定、冷静的人,但当你有美国总统和司法部长打电话给你并说‘我们会找到你’时……那时候我有点担心” ——Michael Calce,aka MafiaboyRCMP 开始监视 Michael 的房子,在结合他们掌握的信息反复确认攻击的幕后黑手是这个 14 岁的少年后。RCMP 和 FBI 开始收网,4 月 15 日 Michael 在加拿大的家中被捕,并在加拿大少年法庭被控犯有 55 项罪名。
技术复盘
可能比较让人好奇的是,这些世界知名的网站如何这么“不堪一击”,一个 14 岁的少年如何又成了大众眼中神秘莫测的黑客?
攻陷 UCSB
MafiaBoy 发起攻击的重要一环就是收集到了足够多的「肉鸡」,Rivolta 事件中的主要肉鸡是 UCSB 的校园网的服务器。
肉鸡,主要指的是受黑客远程控制的电脑,DDoS 攻击中的主要肉鸡一般都是企业或者组织的服务器或者办公网的主机。早期的互联网主机一般都有自己的公网 IP,服务器监听的端口也一般是直接暴露在公网上,这也是 MafiaBoy 攻陷 UCSB 的一个大前提。这从现代的网络安全角度是非常“业余”的,举个例子,就像是一家酒店,没有门前的保安,没有需要刷卡的电梯,客房门直冲马路。虽说客房也是有锁的,但估计你肯定不愿入住这样的酒店……
笔者搜集了多方信息,力图还原 MafiaBoy 攻击 UCSB 服务器的技术细节,一个可能的经历分为 4 步:
首先,在此声明,以下分析为了可读性进行了一些简化,但并不影响读者理解黑客入侵的一般性原理;
其次,此漏洞和依赖的 WU-FTPD 已经修复此漏洞,请读者不要尝试进行任何违法乱纪行为。一、MafiaBoy 根据 UCSB 官网确定其 IP 所在网段,扫描 UCSB 的 IP 段的常见端口,例如:21/22/80/443。
二、MafiaBoy 发现有一台服务器开放了 21(FTP)端口,通过 FTP、Telnet 等工具尝试连接 FTP 服务器,服务器回传服务名、版本等信息。大多数上个世纪发明的应用层网络协议(IRC、SMTP、SSH、FTP)都遵循类似的行为范式:
建立 TCP 连接后,接收连接方发送自己的服务名字和版本: From:https://www.nyct.net/support/shell/telnet/ftp.htm三、MafiaBoy 发现 UCSB 用的 WU-FTPD 的版本是比较老的版本,查询一些漏洞网站,发现其可能存在 CVE-1999-0997 漏洞。简单的查询相关的 Exploit(一般特指漏洞的利用方法),就能大致了解如何利用此漏洞:
上个世纪“网盘”还没有发明,人们主要利用 FTP 服务器匿名(Anonymous)登陆来交换文件。为了方便上传大量小文件,FTP 服务一般允许用户下载 tar 文件前调用 tar 命令进行解压。tar 命令本身只是一个“打包解包”命令,为了支持类似*.tar.gz、*.tar.bz2 这类“打包”+“压缩”文件的解包,tar 命令允许用 –use-compress-program= 参数指定一个额外的解压缩命令。基于“一切皆文件”这一 UNIX/Linux 的设计理念,tar 的这个机制是一个非常巧妙的设计,极大方便了不同压缩算法与其搭配使用。四、CVE-1999-0997 这个漏洞的关键就在于:WU-FTPD 在实现下载解包这一特性的时候虽然检查了文件是否存在,但在调用 tar 命令的时候没有进行严格的文件名检查。于是,就有了漏洞的 Exploit 来利用 tar 命令来运行任意代码,步骤大致如下:
构造三个文件:构造一个静态编译的“木马”,监听一个端口,接收socket 输入,执行相应的命令,代码可以参考 bindshell.c,静态编译后得到命令 torjan
$ gcc bindshell.c -o torjan -static
$ chmod +x torjan创建一个文件,内容是:
#!/bin/sh
./torjan &创建一个空文件,文件名就叫:”–use-compress-program=sh blah” 把三个文件上传到 FTP 服务器:
ftp> put b
ftp> put blah
ftp> put “–use-compress-program=sh blah”调用 FTP 命令 get 下载 “–use-compress-program=sh blah” 文件,就能获得服务器的控制权。
ftp> get “–use-compress-program=sh blah”.tar发起 DDoS
打蛇打七寸,黑客发起 DDoS 攻击的诀窍就在于:付出己方尽可能少的资源,消耗对方尽可能多的资源。现在的大部分网站在登陆时都会让用户进行各种证明自己不是 Bot 的验证,验证方式也是五花八门。但在当时的网站普遍没有这个环节,黑客挑选网站登录的接口进行 DDoS 攻击的主要原因有如下几点:
登录是大多数网站的基本功能登录验证需要查询数据库,而数据库一般都是网站的性能瓶颈,而且难以短时间之内横向 Scale有机化学验证码上个世纪的网站基本在安全方面处于完全不设防的状态,在遇到 DoS(Denial-Of-Service) 攻击的时候能做的事情基本只有封禁 IP 这一条路。但如果对方手里的 IP 最够多,DoS 变成了 DDoS 那防御起来就非常吃力了。
甚至在当时,绝大部分的网站还把图片、视频等静态资源和主站 App 放在同一台服务器上提供服务,CDN 的概念还不怎么流行,如今全球 CDN 的领头羊 Akamai 也才成立了 2 年。不说针对性的对网站的 API 进行攻击,在当时仅仅是一千个用户同时发起对一个网站的访问就足以形成一次 DDoS 攻击。
由于美国高校在互联网领域的先发优势,美国的高校手里的 IP 数量是我们难以想象的。以 UCSB 为例,整个 AS131 都在其控制中,整个分校整体拥有 132,096 个 IP。当时在 UCSB 自治域下面的服务器甚至可以直接通过 ifconfig 在 IP 段内任意选择自己的 IP,我们未能知道 MafiaBoy 是否也利用了这个漏洞来发起攻击。但以当时的情形而言,被攻击方的系统管理员很难有所作为。
From: https://ipinfo.io/AS131DDoS 防御
从现在的网络安全从业者看来,Michael 在 14 岁制造的这次网络安全事件属于技术含量不高,但侮辱性很强。但这一事件极大的促进了网络安全行业的全面发展,至少让大公司的高管意识到,如果我们不做点什么,那么你的关键业务的命运就掌握在一个不知道哪里来的未成年手中。
From: Realtime Internet Usage Statistics | Paul Helmick那么,问题来了,到底应该做些什么呢?随着千禧年的到来,互联网的用户迎来爆发式的增长,为了应对大量用户的访问,也为了抵御可能的 DDoS 攻击。首先被提上日程的就是把图片、视频、音频等资源从主站服务器上剥离出来,用上 CDN(Content Delivery Network)!
图片引用自:An Introduction to the Akamai Content Delivery Network以 Akamai 主导的 CDN 技术的快速发展也催生了 YouTube 这类的视频网站,也使得摄像头成为了人人手中的手机的必备功能,继而又催生了网络聊天、短视频的飞速发展。
从此 CDN 节点成为了互联网真正的 Edge(边缘),也是由于依托于数量巨大的 Edge Servers 做 DDoS 防护,黑客发起 DDoS 攻击的成本急剧上升,越来越不划算了。黑客攻击的主流手法也变得更加“精细化”。
Web App 防护
其实时至今日,一个黑客针对一个商业网站发起攻击依然和 Michael 当年的方式如出一辙,只是目的从当年的“功成名就”变成了“大赚一笔”。
大数据的时代,黑客攻击的主要目标也变成了窃取数据,然后进行勒索、出售。互联网的攻防主战场也变成了为各种移动 App、Web App 提供支撑的后端 API。
根据 2022 年发布的《Akamai Web 应用程序和 API 威胁报告》所显示的数据,今年上半年,针对 Akamai 客户发起的 Web 应用程序攻击尝试年同比增加超过 300%,这是 Akamai 迄今为止看到的最高增幅。直接针对服务器后端的 LFI(Local File Include) 攻击现已超过 SQLi(SQL 注入) 攻击,成为最主要的 Web 应用程序和 API 攻击媒介:
From:Akamai Web 应用程序和 API 威胁报告黑客发起攻击的主要流程也变成了:
端口&协议扫描
这些年,如果你有一台暴露在公网上的主机,你可能会发现每天你的主机监听端口都会被来自世界各地的 IP 扫描上千次。
如果用我们之前提到的酒店的例子,每次扫描就相当于被抱着各种目的的人在尝试找到你管理的酒店所有的 Access:后门、安全通道、送货通道、窗户、停车场、通风管道、下水道……任何一个点的疏忽都有可能让黑客找到可乘之机。
这个层面的一般防护办法有三类:
避免 IP 暴露:使用 Web App Proxy 进行代理,优秀的代理层还能帮你完成 TLS 证书管理,边缘网络加速等避免端口暴露:使用 iptables 等防火墙设置端口访问策略转移高危端口:使用跳板机登录 RDP、SSH、FTP 等高危服务精确制导
找到可能的攻击点,类比酒店就是骗过保安,混进客房,找到关键人物的隔壁房间,凿墙打洞控制人质。
这一步基本就是黑客工作中最有技术含量的工作了,当年 MafiaBoy 主要利用的就是已知的没有修复的漏洞来实现这一点。而且由于早期 FTP 服务器监听的 21 端口需要 root 权限,简单的利用一个漏洞就可以获取服务器的 root 权限。
经过 20 多年的发展,攻入服务器拿到 root 权限已经是难上加难:
一、后端层面
现在大部分的服务器都不会以 root 权限来运行,即使需要 root 权限,在使用完后也会主动降低 euid 回到低权限;NSA 给 Linux 贡献了 SELinux(Security-Enhanced Linux),让权限 ACL 更加细化;ASLR 这样的技术更是让缓冲区溢出难如登天。这点有点类似把入住酒店的房间号和实际位置随机化,让黑客难以在缓冲区溢出之后正确的植入 Payload。ASLR 全称为 Address Space Layout Randomization,地址空间布局随机化。该技术在 kernel 2.6.12 中被引入到 Linux 系统,它将进程的某些内存空间地址进行随机化来增大入侵者预测目的地址的难度,从而降低进程被成功入侵的风险。当前 Linux、Windows 等主流操作系统都已经采用该项技术。
二、网络层面
网络服务的功能不断细化,已经很少有像 FTP、SSH 这种有命令执行能力的协议暴露在外面;WAF(Web Application Firewall)的发明和进化让绝大部分攻击,无论是直接针对数据库的“SQL 注入”,针对前端的“CSRF(Cross Site Request Forgery)”,“XSS(Cross-Site Scripting)”,甚至一些“缓冲区溢出攻击(Buffer Overflow)”都变得非常困难;面对像 Akamai 这种借助每天收集 290TB 的攻击数据进行分析,实时更新规则的 WAF,几乎在不借助 0-Day 漏洞的前提下也很难有所斩获。像 CVE-2021-44832 这样当时影响面广泛的 Log4j 任意代码执行漏洞,也可以在不修改代码的前提下进行防护。From: Akamai Third-Party Application Access: Reference ArchitectureFrom: Akamai Third-Party Application Access: Reference Architecture综合防护
DDoS 防护和 WAF 在业界也有逐渐融合的趋势,一方面攻击的方式也逐渐呈现全球化的趋势,黑客发起攻击可能会调动的资源也逐年破纪录。另一方面,黑客的攻击方式也通常综合利用各种手段,通常会综合利用最新的漏洞和大规模的攻击节点。为此,网络安全业界也将技术不断的升级和融合,例如 Akamai 的 Prolexic 给出了三种专门构建的解决方案,用以提供在云端交付的全面 DDoS 防护机制。App & API Protector、Edge DNS 和/或 Prolexic 均可根据应用场景、应用程序要求和所需抵御时间服务水平协议 (SLA),提供高质量的 DDoS 抵御机制,用以确保网络资产和面向互联网的资产的可用性,并为这些资产提供保护:
From: Prolexic 集成选项高容量防御:Prolexic DDoS 防御容量从 8.2 Tbps 提高到 10 Tbps,使 Akamai 边缘总容量超过 200 Tbps,我们还计划将云净化中心扩展到全球多个新地点。业界卓越的零秒 SLA:Prolexic 通过零秒抵御 SLA 抵御了大约 80% 的攻击。这样的成绩源自在服务验证过程中与客户密切合作,并根据客户的攻击面和风险状况实施量身定制的主动防御控制措施。智能防御堆栈:抵御控制措施可动态扩展容量,阻止以 IPv4 和 IPv6 流量的形式发起的攻击。可为需要扩展的抵御控制措施动态分配计算资源。 广泛而全面的 SLA 覆盖范围:除了零秒抵御 SLA 之外,Prolexic 还提供 100% 平台可用性、抵御时间、警报通知时间、响应时间,以及基于特定攻击媒介的单独抵御时间 SLA。高度精准的抵御:Prolexic 通过创建旁路网络以被动分析所有客户流量,可将每次攻击的范围精准缩小到遭到攻击的特定 /32 IP 端点,而不会造成附带损失。这种 /32 数据可通过我们的 100 多个 API 集成到客户的安全信息和事件管理、计费系统分析(用于充实数据)、分析、商业智能或威胁情报平台中。From: Prolexic:产品简介Prolexic 在网络层进行 DDoS 分流后,AAP(App & API Protector)可以帮助 Web App 过滤各种针对应用层的攻击。甚至是一些可能会造成 Web App 过载的网络爬虫,AAP 也可以进行针对性的防护。
MafiaBoy 后续
最初 Michael 否认责任,声称自己在进行“正在进行无人监督的测试,以帮助公司确保安全”。但后来在 2000 年 1 月承认了对他提出的 55 项DDoS攻击相关的指控。根据美国司法部相关的估计,他造成的所有损失估计为 17 亿美元。
计算机安全专家 Winn Schwartau 在美国国会议员的听证会上作证时说:“政府和商业计算机系统如今受到的保护如此薄弱,它们基本上可以被认为是毫无防御能力的——电子珍珠港事件会随时发生。”
From: https://www.wsj.com/articles/SB979843767948331812001 年 9 月 12 日,在公开拘留 8 个月后,蒙特利尔青年法院判处 Michael 在青年拘留中心监禁 8 个月,缓刑一年,限制使用一切能够连接互联网的设备,并处以 1000 加元的小额罚款。由于 Michael 是未成年人,实际上 Michael 也只被拘留了 8 个月。
参考资料
Akamai Prolexic 解决方案Akamai Third-Party Application Access: Reference Architecture《Mafiaboy: A Portrait of the Hacker as a Young Man》Meet Mafiaboy, The Bratty Kid Who Took Down The InternetMafiaBoy, the hacker who took down the InternetCanadian Mounties nab MafiaboyTeen hacker Mafiaboy sentenced-
扫码下载安卓APP
-
微信扫一扫关注我们
微信扫一扫打开小程序
手Q扫一扫打开小程序
-
返回顶部
发表评论