太可怕了! 五一外出还敢连WiFi?

来源 | Hacker Noon

作者 | Patrick F. Wilbur

编译 | 王国玺

出品 | 区块链大本营(blockchain_camp)

你是否会这样:每到一个地方都会先问有没有免费 Wi-Fi,密码是啥,一会儿不玩手机就手痒,以至于经常有网友这样说:我这条命是 Wi-Fi 和手机给的。相应的,商家为了吸引顾客,纷纷在店面内架设起免费 Wi-Fi ,这简直就是我们这些「没 Wi-Fi 会死星人」的福音。

但俗话说得好:免费的才是最贵的。在享受免费 Wi-Fi 便利的同时,你不知道这背后是商家的福利还是别有用心之人在钓鱼,也许你已经在互联网上裸奔了...

当下,网络钓鱼案件层出不穷,其背后的主因往往都是最容易被人忽视的免费 Wi-Fi 。

免费 Wi-Fi 背后都藏着怎样的猫腻?我们又该如何防范免费 Wi-Fi 带来的侵害?计算机安全研究人员、密码朋克 Patrick F. Wilbur 为我们揭开了免费 Wi-Fi 背后的黑产。

我为你们感到担忧

在一个网红咖啡连锁店的门口,一辆汽车停在停车场上不起眼的角落里。令人奇怪的是,这辆汽车的仪表盘上连着一根长长的天线,而车里一个穿着连帽衫的黑客正趴在电脑上,双手飞快地敲击着键盘。人来人往中,他连续窃听了几个小时的 Wi-Fi 流量,这期间,没有人打电话报警,甚至没有人注意到异常。

如果人们使用 HTTP(超文本传输协议,一种网络传输协议,数据未经加密)这种不安全的方式访问 Netflix 或谷歌网站,就可能会暴露自己所有的浏览活动;如果拨打网络电话,那么号码也可能会被泄露。

这些大量泄露出来的未经加密的信息,就给了黑客可乘之机,黑客可以随意拦截并修改这些信息,从而对潜在受害者发动网络钓鱼攻击。这就是大多数黑客执行 Wi-Fi 攻击的剧本。

  • 这篇文章中,我没有攻击任何人,也不是教你如何攻击别人,只是构建了一个工具来展示人们在使用互联网时可能被攻击性的场景。
  • 这个工具就像评估个人信誉的信用评分,只不过这里被评估的对象变成了安全漏洞。

这是一张我和朋友青少年时期的照片,我不知道是如何被泄露到网上的。

我的主业是一名计算机安全研究人员,私下里,我还是一名密码朋克。

在过去几年中,我在 Magic 公司研究如何让互联网更安全、更高效,Magic 公司的使命是构建一个面向未来的去中心化互联网骨干网。

在假期期间,我开展了一项收集公共 Wi-Fi 流量的实验。由于当下互联网上的所有内容都本该被加密,因此许多人错误地认为互联网上所有流量都是经过加密的,以至于有人认为我的实验并没有什么意义不幸的是,事实并非如此。

自从媒体曝出火狐浏览器插件 Firesheep 可能会被黑客用来入侵脸书账户以来,互联网的不安全状态已经有所改善,但是距离真正的安全还有很长的路要走。当下在你使用公共网络时,攻击者仍然可以篡改你的数据包,对你进行网络钓鱼。

实验结果显示,互联网安全的评分非常糟糕,这意味着大量的在线流量仍然完全没有被加密,因而公众很容易受到网络攻击。

监控互联网流量非常容易

监控一个网络中发送的网络流量 图片来源:网络封包分析软件 Wireshark 团队

监控你的互联网流量真得很容易...

首先,找到一个简单的目标

放假期间的一个优势就是,许多潜在的受害者都聚集在购物中心周围。这大大降低了攻击者执行攻击的难度,攻击者只需在人们习惯于寻找未经加密的免费 Wi-Fi 的位置设置虚假的“店铺免费 Wi-Fi ”,大量私人设备就会愿者上钩。

而且,购物中心的一个好处就是,这些潜在的受害者都沉迷在买买买的愉悦中,他们通常都会花好多钱,而且会以很高的频率花钱,并且为了省事,这些受害者大概率都已经关闭了自己银行(和他们自己的)能够全天候即时检测欺诈的安全防范服务,这让他们成为黑客攻击的完美目标。

然后,非常“慷慨”地部署你的免费公共 Wi-Fi 网络

部署免费公共 Wi-Fi 网络的秘诀在于什么?

  • 完全不使用加密手段,或
  • 使用预共享的密钥,并将密钥告诉所有人(与#1没有什么区别)

不安全是免费公共 Wi-Fi 的“胎病”,使用免费公共 Wi-Fi 的用户很容易受到多种攻击模式的网络攻击。

最后,使用一种简单的公共 Wi-Fi 攻击方法

想要在公共网络上嗅探流量,你可以参照业界已有的各种攻击方法:

  • 攻击者可以使用即买即用的无线网络适配器(就比如说淘宝上卖的 USB 网络适配器)或软件定义无线电(一种无线电广播通信技术,它基于软件定义的无线通信协议而非通过硬连线实现)来自动地监听流量,这些设备可以监听很大范围内的流量,同时无需连接或以其他方式指向攻击者所在的网络。
  • 当然了,硬件并不是必须的,攻击者还可以使用免费软件(例如网络封包分析软件 Wireshark )。在这种情况下,攻击者可以连接到一个网络并从其他人那里混杂地检索网络数据包(这种方法仅在交换网络上行不通)。
  • 攻击者可以部署专用的欺骗性的无线安全审计设备 Wi-Fi pineapple,通过广播新的 Wi-Fi 网络来主动拦截数据包,不过这种方法只可用于执行攻击。

以上三种攻击方法都非常简单,即使那些初入安全领域的小白或只会网上找代码的脚本小子都可以轻松地使用它们。

在民众使用 Wi-Fi 上网时,法律是否能够有效保护民众的权益?并不会。

虽说害人之心不可有,但防人之心不可无,你不应该把自己的网络安全防御措施建立在法律条文上,寄希望于法律会保护你免受网络攻击的侵害。

免责声明:谷歌在拍摄街景数据时拦截并记录了在其他人的网络上发送的未经加密流量,而这些流量中包含密码和各种私密的信息,这让谷歌坐上了被告席,最后不得不以 700 万美元赔偿的代价才解决了这些诉讼。谷歌财大气粗,可以请得起顶级的律师来作辩护。所以掂量一下自己,不要做顽皮的事!我拒绝对你行为的后果负责。

免费 Wi-Fi 如何曝光你的隐私?

执行攻击用到的设备

上图展示的是价格低廉的 Alfa 牌 USB 无线网络适配器,它配有高增益的远程天线,能够进行自动监控。

pineapple(菠萝)是热情好客的象征,所以我也建立了一个 Wi-Fi pineapple 来“结交”新朋友

免费的访客 Wi-Fi 设置

作为一个在遵守法律和保护人们隐私方面十分上心的人,我在遵守诚实、征得同意、匿名以及保护数据隐私的原则下设计了一个白帽(用自己的黑客技术来维护网络关系公平正义的黑客,测试网络和系统的性能来判定它们能够承受入侵的强弱程度的黑客)实验。

与谷歌街景不同,我不会偷偷摸摸地在内存或磁盘中记录应用程序的有效数据负载、任何实验对象的身份信息、甚至任何关于哪些主机连接到哪些服务器的元数据。

类似于所谓的 Wi-Fi 菠萝,我建立了一个自制的强制门户认证( Captive Portal ),但它的不同之处在于它没有冒充任何附近的或常见无线网络的名称(因为我不希望用户对谁运营着这个 Wi-Fi 网络产生任何误解)。

Wi-Fi 网络的 SSID ( Service Set Identifier ,服务集标识。SSID 技术可以将一个无线局域网分为几个需要不同身份验证的子网络,每一个子网络都需要独立的身份验证,只有通过身份验证的用户才可以进入相应的子网络,防止未被授权的用户进入本网络)“免费访客 Wi-Fi ”似乎已足够常见,同时 Wi-Fi 网络向用户提供了一个很好的强制门户认证启动页面,其中包含一个并不是很长的用户协议,该协议让用户知晓并同意自己的信息和通信被监听。

总的来说,这是一种非常友好的进行实验的方式。真正的攻击者通常会使用更具攻击性的方式。

那些将要被我攻击的人,你是多么不堪一击

为了进一步保护用户的隐私,我编写了一个小工具来收集有关应用程序流量使用的协议和端口类型的统计信息。

它只需要三行代码:

1p = pcap.pcap(name=interface)
2p.setfilter(‘’)
3p.loop(0,handler)

按照设计,我的这个工具并不会记录任何IP地址, MAC 地址(物理地址),主机名或应用程序数据,也不能以任何方式做出更改来记录这些数据。它仅用于一个目的:以监控尽可能少的方式记录被攻击者使用的数据包和端口类型。

实际上,我的工具与企业级访问接入点和路由器(例如优比快 Ubiquiti Networks 的产品)提供的深度数据包检查和情报搜集功能相比有着更少的监控,这确保了在监控方面我不会比系统管理员更为过分,更不用说那些在侵犯用户隐私方面十分过分的互联网服务提供商( ISP )。为了进一步帮助保护隐私,我确保将任何强制门户认证的日志写入临时文件系统( tmpfs ),防止出现任何可能存在的使用日志泄漏。

再一次,我认为我的实验在隐私保护方面做得非常好。

黑帽黑客(与白帽黑客相对,恶意的黑客)可以简单地使用网络封包分析软件 Wireshark 来查看被攻击者所有应用程序的数据以及他们访问过的网站。

谁会使用这些“免费 Wi-Fi ”?

这是一个下午的时间里连接到我的 Wi-Fi 的人数:

  • 已连接 49 台设备。
  • 100% 接受强制门户认证中的 ToS 并发送数据。
  • 0 个设备使用虚拟专用网络( VPN )。

有着研究背景的读者可能会注意到我的实验中引入了选择性偏差( Selection Bias ,指的是在研究过程中因样本选择的非随机性而导致得到的结论存在偏差)。收集到的统计数据仅包括那些明显扫描过开放式 Wi-Fi 网络,从中选择了我的网络并接受强制门户启动页面上的条款的人员。选择公共 Wi-Fi 网络的这些人更有可能进行一些其他的高风险上网行为。但是,实验中需要人工交互认证的事实突出了执行这些类型的攻击是多么容易。

尽管附近还存在其他免费的开放式网络,而我又通过强制门户认证主动给自己的实验增加难度,但仍然有近 50 人连接了我的免费 Wi-Fi 。

此外,鉴于使用我的 Wi-Fi 网络首先需要人工交互认证这一事实,实验结果必然不包括任何物联网( IoT,Internet of Things )设备,仅包括那些人为的直接与 Wi-Fi 网络相连的设备(例如移动电话和笔记本电脑)。

互联网数据都经过加密了?No!

不幸的是,加密升级后的 HTTPS 协议( 超文本传输安全协议,是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版)也不足以保护你。事实上,即使那些你知晓并信任的主流网站也经常会错误地实施 HTTPS 。

通过我的 Wi-Fi 菠萝的流量中超过 42% 的是未经加密的 HTTP 流量。

在统计数据方面,我的工具忽略了非 IP 协议的流量。在收集了 489330 个 IP 数据包之后,结果显示:

  • 42% 的流量经过未经加密的 HTTP 协议使用的计算机 80 端口,相比之下, 57% 的流量经过加密后的 HTTPS 协议使用的计算机 443 端口。
  • 其中共有 2638 个未经加密的域名解析服务( DNS,Domain Name System,用于找到网络真实的 IP 地址)数据包。
  • 其中共有 18 个未经加密的网络时间协议( NTP,Network Time Protocol,用于计算机时钟的时间同步协议)数据包。

原始协议,计算机端口及其数量和百分比如下所示:

 1Totals:
 2udp 8992  4      0.000817444260519
 3udp 5090  482    0.0985020333926
 4udp 67    49     0.0100136921914
 5udp 5353  64     0.0130791081683
 6udp 5355  37     0.00756135940981
 7udp 53    2638   0.539104489813
 8udp 137   73     0.0149183577545
 9udp 3544  54     0.011035497517
10udp 123   18     0.00367849917234
11udp 443   203    0.0414852962214
12tcp 993   63     0.0128747471032
13tcp 5223  79     0.0161445241453
14tcp 9001  350    0.0715263727955
15tcp 5228  199    0.0406678519608
16tcp 80    207538 42.4126867349
17tcp 53    12     0.00245233278156
18tcp 443   277467 56.7034516584
19489330

网络中非常核心的域名解析服务数据包和网络时间协议数据包可能并不安全, 42% 的流量是通过计算机 80 端口发送的未经加密的 HTTP 流量,这些情况非常令人担忧。

是什么造成了这样的结果呢?

那些万维网浏览器本应强制实施的 HTTP 严格传输安全策略呢?因为这些流量是非万维网流量还是因为某种其他误报?

由于道德上不允许我在更深层次检查网络的数据包,因此我的研究受到了局限。

后来我在自己的实验室里进行了第二个实验来检查一些热门网站的行为,在这里总结一下我的发现:

  • 即使有的话,热门网站也并不总是能正确实施 HTTP 严格传输安全策略(即使是那些大的网站,如谷歌和 Netflix)。
  • 公共 Wi-Fi 网络的用户仍然容易受到中间人攻击( MITM,man-in-the-middle,通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”),隐私数据监听和其他形式的攻击。

该死!但是,不要相信我说的话......

在你尝试查找数据以找到漏洞来反驳我的结论之前,让我帮你谷歌搜索一下,我非常努力地证明自己是错的,但后来我查到了谷歌发布的 HTTPS 协议网络加密报告,该报告使用谷歌 Chrome 浏览器用户的匿名使用情况报告和谷歌自己的内部数据作为数据来源,以确定万维网上 HTTPS 协议的使用情况。

看过谷歌报告(截至 2018 年 12 月 29 日)后,我被震惊了:

  • 11-31% 的网站都是在没有加密的情况下被访问的(通过未经加密的 HTTP 协议访问)。
  • 大约 7% 的谷歌产品的流量未经加密(在某些谷歌产品中这个比例高达 10% )。
  • 发送给谷歌的未经加密流量中的 82.6% 来自于移动设备(这让我觉得再次考虑使用谷歌开发的操作系统十分尴尬)。

谷歌的报告与我的工具记录的统计数据并没有太大差别,特别是考虑到选择性偏差以及我不科学的统计方式,即更多的人喜欢一边喝着咖啡一边使用移动设备(请注意 82.6% 这个数字)而不是坐在笔记本电脑前。

我并不是说我们需要害怕这些攻击,实际上,我们需要的不仅仅是害怕,而是认识到问题的严重性,并做好防范措施。

我建议你小心那些穿着连帽衫,车上布满天线,在光天化日之下用技术手段监视着你的黑客,不过,这里有些跑题了。

攻击者如何攻击你?

下面我将讨论那些能给使用公共 Wi-Fi 的人们以某些方式带来损害的一些廉价的硬件和免费工具(例如无线适配器, Wireshark , Bettercap 等)。

网络钓鱼

首先,为了成功地执行网络钓鱼攻击,攻击者可以定位一些可通过 HTTP 协议访问且没有正确实施 HTTP 严格传输安全策略的热门站点,也可能会利用域名解析服务解析请求,因为所有这些域名解析服务的数据包都是不安全的,从某种意义上来说,强制门户认证网页的工作原理就是在每次被攻击者想要显示启动页面时,给出伪造的域名解析服务数据包以执行中间人攻击,这种攻击方式很容易通过修改域名解析服务数据包来实现,因为时至今日域名解析服务从未得到有效的安全保护。

营造一种紧迫感

理想情况下,我们假想的攻击者可以通过不断催促来营造一种紧迫感,让被攻击者更容易犯错误(例如忽略地址栏中很长的一段经过略微修改的假冒网址)。

具体的做法有,强制门户认证页面提示被攻击者输入其电子邮件地址,并给被攻击者提供非常短的时间来检查电子邮件以获得验证链接,被攻击者如果超出时间就会被强制下线,可以说,这种钓鱼登陆页面加电子邮件诱导的方式可谓是网络钓鱼的绝佳手段。

最好的情况是,一旦获取了被攻击者的密码并确认这个密码是正确的,使用伪造的错误信息让他们离开网络可能会减慢被攻击者注意到入侵并重置电子邮件密码的速度。

捏造一个熟悉的借口

使用数字证书认证机构 Let’s Encrypt 颁发的加密证书保护假想攻击者自己的网络钓鱼页面应该很容易,至少这会让钓鱼页面看起来应该“很安全”,足以愚弄那些疯狂的网瘾患者,让他们将自己的数字身份换成几分钟的 Snapchat(阅后即焚的图片分享应用)。

如果有人想要为更高档的网站定位凭证,也许是一个真正实施 HTTP 严格传输安全策略的网站,但这并不是天方夜谭,就像许多不在预加载列表中的热门网站一样,攻击者可以一直等待直到潜在受害者的计算机发出网络时间协议的请求。

通过使用未来的时间来伪造网络时间协议响应,被攻击者的电脑就会在瞬间“穿越”到未来,被攻击者浏览器缓存所有 HTTP 严格传输安全策略的缓存条目在新的“当前”系统时间被改正之前可能会失效。

然后,攻击者可以执行降级攻击( Downgrade attack,一种对计算机系统或通讯协议的攻击。在降级攻击中,攻击者故意使系统放弃新式、安全性高的工作方式(如加密连接),反而使用为向下兼容而准备的老式、安全性差的工作方式(如明文通讯)),HTTP 的 301 重定向到网络钓鱼页面,被攻击者就变成了砧板上的鱼,只能任人宰割。

诱导潜在受害者

我们假想的攻击者可能会欺骗潜在受害者安装一些后门或僵尸网络软件。从那时起,攻击者可以在方便的时候随时攻击受害者的设备,信息和联系人网络,除此之外,身份盗窃或钱财盗窃将变得轻而易举。为了诱导潜在受害者,攻击者可能会在计算机上弹出一些关于发现病毒或间谍软件的“提醒”,并建议潜在受害者安装一个实际的病毒来“修复”它。

这种攻击方法要求潜在受害者实际允许安装攻击者的软件。除此之外,我们假想的攻击者可以在潜在受害者的万维网浏览器中挖掘加密货币,这样不需要诱导潜在受害者同意安装软件。

点击未经加密的纯文本“大奖”

此外,我的工具监测到的通过 5090 端口发送的流量十分有趣,因为它是普通商业 VOIP ( Voice over Internet Protocol,即网络电话)移动应用程序用于通过会话发起协议( SIP , Session Initiation Protocol )发起电话呼叫的端口。一些移动网络服务提供商同样以这种方式卸载语音流量。我十分惊奇于能在统计数据中看到这个端口的流量!虽说会话发起协议的有效负载是加密的,但数据的头部信息未经加密,并且通常会包含明确的电话号码信息。

这种方法在我们假想的黑客对受害者及其联系人网络进行语音网络钓鱼攻击时特别有用,因为网络电话中的号码很容易被篡改,这样使攻击者的来电电话看起来很熟悉。如果我们假想的黑客想要通过网络电话入侵你或你的生活,他或她可以收集这些电话号码并用这些号码做出很多恶作剧。

公共 Wi-Fi 问题很严重

在本文中,我并不是试图过度夸大公共 Wi-Fi 的问题,但我确实希望人们开始注意到这些问题,并将这些问题放在心上。

我们在提高互联网基本的安全性方面取得了进步,但它并不是每一处都足够安全。长期以来仍有很多未能解决的问题。即使在今天,在公共的 Wi-Fi 网络上,攻击者也可以:

  • 查看你要访问的网站(只需要拦截域名解析服务的请求);
  • 通过初始 HTTP 页面加载执行降级攻击和中间人攻击;
  • 通过篡改网络时间协议的数据包向计算机注入未来的时间来规避 HTTP 严格传输安全策略(要知道这些 HTTP 严格传输安全策略确实都有到期日);
  • 对你的敏感信息进行网络钓鱼;
  • 对你,你的朋友和你的家人进行语音网络钓鱼;
  • 注入虚假内容/广告甚至使用你的 CPU 挖掘加密货币;
  • 诱骗你安装和运行不安全的插件,就比如说版本过时的 Flash 软件(存在容易被黑客利用的漏洞);
  • 伪造来自当地医疗卫生机构的关于食源性疾病报道的头条新闻,并观察人们纷纷出走逃难;
  • 伪造一个强制门户认证页面,将其伪装成来自附近的网络并获取一些联系人信息;
  • 通过强制你点击电子邮件中的链接以保持连接来验证联系人信息,从而营造一种紧迫感,接着可能会诱导你输入电子邮件密码。

那么,你该如何保护自己?

实际上,你可以做一些常识性的保护措施来使自己成为一个不太容易被攻击的目标。

默认情况下,你至少应该使用虚拟专用网和自动使用 HTTPS 加密访问链接的浏览器插件 HTTPS Everywhere。

如果这些你都没有,那么你确实应该重新考虑下你的安全状况了。

原文发布于微信公众号 - 区块链大本营(blockchain_camp)

原文发表时间:2019-05-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券