@余弦 陌生网络里的恐惧(终篇)
未知攻,焉知防,如果不实战实战怎么能知道这个世界有多邪恶。
赶紧把终篇写完,终篇就是教你如何防御。关于「陌生网络里的世界」系列文章,可以回复 h,点开目录链接,可以看到历史文章列表(有相关标注)。
我前段时间有篇文章是「我需要的安全路由器」,不过这是比较理想的情况,而且你加入的网络并不都是安全路由器,有的时候加入陌生网络也并非你的本意,反正那些都是陌生的、未知的,这样才可怕,你根本不知道攻击者在哪、攻击何时发生、攻击类型是什么...
越了解网络攻击,我们就能越好对抗,我下面会给大家简单描绘下陌生网络里的各种攻击,以及我们该如何防御。我已经不管你是否都能看得懂,只希望因为此文,你被攻击的成功率能有所降低。
好,简单描绘开始。
ARP 防御
我之前多篇文章都提到过 ARP 攻击,这是大多数陌生网络里最常见的攻击手段,这种攻击导致最直接的后果是:你的很多账号权限会被盗。
当我们指望路由器能防御 ARP 时,其实现实却往往不这样。如果你是 Windows 操作系统,有好些安全客户端有防御 ARP 功能,这些功能喜欢被命名为「ARP 防火墙」。如果这个网络里存在 ARP 攻击,ARP 防火墙会给出及时的提醒与仅针对本机的防御。这个功能还是非常受用的,能大大提高攻击成本。至于攻击和防御如何「道高一次魔高一丈」地对抗,那是后话,只要大大地提高了攻击成本,这就是好。
其他操作系统有 ARP 防御工具吗?遗憾的是不那样友好,比如 Android 上,需要 root 权限才有相关 App(如 zIPS)。iOS 上我找了半天没发现好的解决方案,没办法,iOS 太封闭了,在这点上反而只能摊手。
ARP 攻击是一种非常原始粗暴的攻击,正因为如此,解决起来反而不那么容易。
对待这种恐惧,我的办法其实也很简单:
不轻易在陌生网络里上网,我有台随身的终端可以检测该网络的安全性(此时我就是攻击者,我怕谁:)
这是我的解决方案,对大多数人来说其实牢记「坚决不在陌生网络里上网」这点就好,有钱您买 4G 套餐,每月 200 多,包月流量 N 个 G,还不够你应急上网需求?
抹一把汗,来来来,我继续剖析。
HTTPS 就安全?
年轻人,你之所以会如何肯定,真是因为你是年轻人。
我来告诉你:HTTPS 协议是很安全的,哪怕偶尔来点缺陷,但整体来说还是很安全。
注意我说的是「HTTPS 协议」,下面有个公式:
HTTPS 协议很安全 =/= HTTPS 很安全 =/= HTTPS 就安全
绝大多数人理解的 HTTPS 与黑客眼里看到的不是一个维度上的玩意。
比如你现在访问百度首页,你看到地址栏里的 HTTPS 了吧?很安全对吧?然而在我们的攻击场景下并没什么卵用...
为什么呢?
我去年在 QCon 的演讲《程序员与黑客》就说了几个道理,如:分离的重要性、安全策略部署要全面等,然而也没什么卵用,因为该不懂的人还是不懂,今年如果时间来得及,我会讲《程序员与黑客2》,我可以现场曝光更多攻击手法。
回到百度这,因为百度并非真正意义上的全站 HTTPS,真正意义上的全站 HTTPS 是 Google(当然我知道总会有漏网之鱼)。百度除了首页和搜索结果尽可能保证 HTTPS(这个意义其实已经很大了,至少可以逃避很多流量上的审查,你懂),其他子站点几乎都还是明文传输,然后 Cookies 还是通用的,可想而知,只要截获任意明文传输页面的 Cookies,就可以搞定百度账号权限。
在陌生网络里,如何任意截获呢?很简单呀,比如高级点的手段:ARP 之后,给你的一些其他明文请求响应内容里注入百度的任意明文页面,你的客户端就会主动发起请求访问,然后明文 Cookies 就可以被捕获了。
我们往往会把攻击想象成有多高级,其实大多数时候搞定目标用的攻击手段却是更为简单的。
VPN 就安全?
确实,如果你有个靠谱的 VPN,那么在陌生网络里就不用担心了,流量是加密传输的。但是你有靠谱的 VPN 么?你知道 VPN 背后的各种猫腻么?
不要轻易相信任何第三方的代理或 VPN,你只要这样想下:你的流量都经过他们服务器,你根本不知道这些服务器的状况,比如是否隔离充分了,是否是蜜罐服务器,是否已经被搞了。现在满大街的 VPN 服务,我只想给你说:年轻人,注意点。
你真以为 VPN 加密传输就真的破解不了了?其实 VPN 背后的协议有多种,如果你采用如 PPTP 协议来使用 VPN,那真的没什么卵用,其他的呢?还有更高级方式么?有啊!只是我公正地说下:
对于大多数人来说,这些高级方式其实你可以忽略,因为你并没有被高级黑掉的价值。
如何选靠谱的 VPN 呢?其实我都是自己搭建,但是对于大众来说,我建议你选择高口碑的,那些满地小广告上写的 VPN,还是远离的好。
手机 App 的传输就安全?
浏览器地址栏好歹有的 HTTPS 标志,手机 App 没有啊,你怎么知道你现在打开的手机 App,在陌生网络里的传输就是安全的?
说真的,我们很难知道,包括我们这群黑客们,想知道也得努力调试才行。
比如:
某邮箱 App 安全吗?曾经完全 HTTP 明文传输,很不安全,现在几乎都是 HTTPS 传输了,但,是几乎...只要有那么个漏网之鱼,就可能不安全。
一些 App 的传输虽然没走 HTTPS,用了号称很安全的相关加密算法,但是却容易被轻易逆向出关键的 key,那也不安全。
更别提那些本来就是完全明文传输的 App 了。
面对这种完全未知的情况,你能怎么办?
用 3G/4G 吧,别贪小便宜连接陌生网络了!
程序员注意
如果你是程序员,这点你需要特别注意下,很多程序员习惯在自己机器上开调试端口,比如 Web 相关的。你们如果到咖啡厅,经常可以看到一些程序员抱着 Mac 笔记本在那里安安静静敲代码、开调试,偶尔眉头紧皱,偶尔狡猾地微笑...画面似乎很美好,然后确实没什么卵用,因为他的机器已经被黑了...
这里特别提醒广大喜欢在陌生网络里调试程序的程序员们,因为你们的粗心大意,你们辛辛苦苦创业的玩意,都被一览无遗。至少,你们调试时,不要把端口绑定在 0.0.0.0 上。
哦,你用 Dorker 呀?那又如何...
写到这,下面几点稍微次要点,我不展开说了:
1、注意身后的摄像头或陌生人,你可以想象下,如果科技更加发达,微型高清摄像头盯着你的电脑屏幕是如何一种体验...
2、为了让自己的 DNS 更安全,杜绝 DNS 污染导致的各种奇葩广告植入,用 DNSCrypt 这类解决方案
3、如果可以的话,用 Firefox 浏览器,加上 NoScript 插件,来抵抗陌生网络里的高级钓鱼攻击
看到这,你就应该明白了,陌生网络有很多潜在猫腻,很多时候不是你主观意识就能控制的,尤其是黑客们开启「上帝模式」后(比如完全控制路由器),对于我来说:
不轻易在陌生网络里上网,我有台随身的终端可以检测该网络的安全性(此时我就是攻击者,我怕谁:)
但是对你来说,牢记:
用 3G/4G 吧,别贪小便宜连接陌生网络了!
这是我能给出最简洁的方案了,你要说如果黑客把 3G/4G 的那些云端服务黑掉了,你的数据是不是照样被查看?如果是这样,你干脆别上网好了,所以再牢记下面这条:
对于大多数人来说,这些高级方式其实你可以忽略,因为你并没有被高级黑掉的价值。
如果你想和我学习一些高级姿势,有机会的话,坐下来,我教你。
我 == 我们:)
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/