读书  |  The myths of security

读书 | The myths of security

无意中从校图的某个书架上拿下来的题记很有趣的一本书:“计算机安全行业不想让你知道的事”。

本着对安全行业的好奇心,就翻开了这本书。书不厚,不到300页的32开本,2013年5月由O'REILLY出版的译本(原书是在2009年出版的,顺便提一下,天书夜读也是2009年出版的,尽管这本书只是一本安全类综述方面的书而天书夜读是讲Windows内核编程的,但是个人觉得天书夜读比这本书经典得多的很多。)


译本共有48章,外加一篇后记。看起来很普通,翻完了之后还是觉得很普通。

下面就开始介绍吧,哦顺便给出此书的链接:The Myths of Security - O'Reilly Media

为何要写《安全的神话》?

在计算机安全这样一个混乱和模糊不清的学科里孕育神话是很自然的一件事情。在本书中,我将厘清很多那一类神话。

以下为目录(感觉这目录是机器翻译的,你们就感受一下吧~~):
  1. 安全行业是被破坏的(The Security Industry Is Broken,个人觉得这个翻译为”被破坏的安全行业“可能更好)
  2. 安全:无人关注!(Security: Nobody Cares!)
  3. 获取“控制权”比你想得容易多了(It's Easier to Get "0wned" Than You Think)
  4. 做坏蛋感觉不错(It's Good to Be Bad)
  5. 检验一款优秀安全产品的方法:我会用它吗?(Test of a Good Security Product: Would I Use It?)
  6. 为什么微软免费反病毒软件将无足轻重(Why Microsoft's Free AV Won't Matter)
  7. 谷歌是邪恶的(Google Is Evil)
  8. 为什么大多数反病毒软件并不(非常)有效?(Why Most AV Doesn't Work (Well))
  9. 为什么反病毒软件经常运行很慢(Why AV Is Often Slow)
  10. 感染只需4分钟?(Four Minutes to Infection?)
  11. 个人防火墙问题(Personal Firewall Problems)
  12. 把它叫做“反病毒软件”(Call It "Antivirus")
  13. 为什么大众不应该运行入侵防御系统(Why Most People Shouldn't Run Intrusion Prevention Systems)
  14. 主机入侵防御问题(Problems with Host Intrusion Prevention)
  15. 海中有大量的“鱼”(Plenty of Phish in the Sea)
  16. 对施耐尔的崇拜(The Cult of Schneier)
  17. 帮助别人安全上网(Helping Others Stay Safe on the Internet)
  18. 狗皮膏药:合法厂商也会卖他(Snake Oil: Legitimate Vendors Sell It, Too)
  19. 生活在恐惧中?(Living in Fear?)
  20. 苹果真的更安全吗?(Is Apple Really More Secure? )
  21. 好吧,你的手机不安全,你应该在意吗?(OK, Your Mobile Phone Is Insecure; Should You Care?)
  22. 反病毒厂商自己会制造病毒吗?(Do AV Vendors Write Their Own Viruses?)
  23. 反病毒行业困境的简易解决之道(One Simple Fix for the AV Industry)
  24. 开源软件安全:一个转移焦点的话题(Open Source Security: A Red Herring)
  25. 为什么SiteAdvisor是极好的主意(Why SiteAdvisor Was Such a Good Idea)
  26. 对于身份盗用我们能做些什么?(Is There Anything We Can Do About Identity Theft?)
  27. 虚拟化:主机安全的银弹?(Virtualization: Host Security's Silver Bullet?)
  28. 什么时候我们能够消除所有的安全漏洞?(When Will We Get Rid of All the Security Vulnerabilities?)
  29. 预算内的应用程序安全(Application Security on a Budget)
  30. “负责任地公布”就是不负责任("Responsible Disclosure" Isn't Responsible)
  31. 中间人攻击是传说吗?(Are Man-in-the-Middle Attacks a Myth?)
  32. 对PKI的攻击(An Attack on PKI)
  33. HTTPS傻透了,干掉它!(HTTPS Sucks; Let's Kill It!)
  34. CrAP-TCHA与易用性/安全性的折中(CrAP-TCHA and the Usability/Security Tradeoff)
  35. 密码还未消亡(No Death for the Password)
  36. 垃圾邮件已死(Spam Is Dead)
  37. 改进身份验证(Improving Authentication)
  38. 云不安全?(Cloud Insecurity?)
  39. 反病毒公司应该做什么?(反病毒2.0)(What AV Companies Should Be Doing(AV 2.0))
  40. VPN通常降低了安全性(VPNs Usually Decrease Security)
  41. 易用性与安全性(Usability and Security)
  42. 隐私(Privacy)
  43. 匿名(Anonymity)
  44. 改善对补丁程序的管理(Improving Patch Management)
  45. 开放的安全行业(An Open Security Industry)
  46. 学术界(Academics)
  47. 锁匠(Locksmithing)
  48. 关键基础设施(Critical Infrastructure)

原书目录就介绍到这儿……


不明觉厉的看完这本书,虽然就看了两天而且处于一脸懵逼的状态。本书有一部分是个人安全,有一部分是企业安全,也有设施安全。这本书并不是很精,因为是综述,也不全因为没有攻击思路只有思想。放在2016年的今天,去看这本2009年由John Viega[美]编写的《安全的神话》,作为安全界的了解读物还可以,但若要作为入门读物——那还是选其他的书吧……


以下结合作者的安全从业经历,来展开了这本2013年的《安全的神话》。太长不看版:

Chapter 1. The Security Industry Is Broken

这个讲了作者的进入安全行业之前和他在安全行业中的一些比较经典的经历。开头讲述了他的恩师Randy Pausch的一节课(由砸烂一台录像机开始的故事)给他带来的启发,(录像机:关我什么事?!),让作者意识到用户体验的重要性。大学毕业之后,作者进入了信息安全行业,到2009年出书为止有10年的从业经验。经常崩溃的系统,糟糕的安全保障,这些都是当时在许多用户的投诉中出现的问题。

In this book, I’m going to spend a lot of time sharing my perspective on the industry. As much as I can, I’ll try not only to identify the glaring problems that I see, but also to show what the industry can do differently.

2009年的那时候和2016年的今天当然是没法比的。

当然,2016年有2016年的问题,比如说眼下最严重的”公民个人信息泄露“(骗子打电话都能直呼我名字了)、”勒索病毒“(vvv)等,都能引起我们的高度重视。

Chapter 2. Security: Nobody Cares!

本章当中提到的一些很容易忽视的安全问题:

  1. 计算机病毒感染:
    现在PC都升级到win10了,Windows大规模被感染的现象已经减少。但现在移动端感染居多,不过现在也引起了足够的重视
  2. 狡猾的恶意软件:
    国内PC端的恶意软件是指某些公司的全家桶,移动端同理。
  3. 被忽视的安全产品:
    国内的安全产品有时候真也不安全啊……
  4. 觉得不算很严重的信息盗用:
    现在很多人都开始寻求自己的信息安全保障(尤其是在”徐玉玉事件“之后),国内也出台了相应的法律法规,希望能加强这方面的监管。
  5. 乏味的新闻报道:
    这个请参考央媒,别的就不说了,大家心里懂就好
  6. 被忽视的安全行业:
    国内对安全的重视是这两年才起来的,我相信这个行业会变得越来越好,尽管某云已经液化了……

很有意思的是,这本书还提到了安全产品的某些用户体验。还记得XP的防火墙气泡么?

Chapter 3. It’s Easier to Get “0wned” Than You Think

你以为这是哪篇技术文章?恭喜你,答错了。

”我的电脑绝对不可能中毒!”,这话你是不是也见过呢?反正我是讲过,立下flag的代价之一就是hao123劫持浏览器到现在还没修好,然而病毒样本被我干掉了……

这一章讲了那个年代经常会出现的钓鱼(各种钓鱼)、DNS缓存污染、浏览器漏洞(这个到现在还有)以及社工等其他的情况。

p.s. 我觉得最让我无语的大概是为什么这儿的zero day 不直接翻译为0 day而是翻译为零日呢?虽然意思是一样的,但是0day都叫习惯了。

Chapter 4. It’s Good to Be Bad

——为啥要入侵计算机呢?

——来钱快啊!

(一位十八线黑产人员的心声)

Chapter 5. Test of a Good Security Product: Would I Use It?

仁者见仁,智者见智,我会不会用这款安全类的产品呢?

小白用户喜欢以一挡十,然而某些厂商你却为人家默认了全家桶。

而且,主产品关键时候还掉链子……

不说了……

Chapter 6. Why Microsoft’s Free AV Won’t Matter

OneCare没用过,但是我知道他家的Defender。

作为Windows10的用户用Defender的体验:感觉它在监视我的电脑,而不是监视我电脑的安全。

Chapter 7. Google Is Evil

不要太相信搜索引擎,详情请参考百度的莆田系事件。


Chapter 8. Why Most AV Doesn’t Work (Well)

杀毒软件,也称反病毒软件或防毒软件,是用于消除电脑病毒、特洛伊木马和恶意软件等计算机威胁的一类软件。

这里翻译的不好,翻译成了“为什么大多数反病毒软件并不(非常)有效”,反病毒软件让我懵逼了半天……

Chapter 9. Why AV Is Often Slow

没有逆向过国内的杀软,不知道杀软到底慢还是快,就先跳过去吧。

Chapter 10. Four Minutes to Infection?

In July 2008, a report went around claiming that if you connect an unpatched and unprotected Windows XP machine to the Internet and did nothing else, it would be infected in four minutes, on average. The typical recommendation for preventing this kind of problem is to run a firewall on your network and to install all the latest updates as quickly as possible.

看到这儿,想起了Windows XP被通知停止安全更新的时候也如是说过,“停止技术支持之后,会更容易受到感染”。不过后来国内的很多杀软界的大佬们纷纷宣布:将继续保护XP用户们的安全,不离不弃,直到你想通了升级新系统为止。

啊跑题了,那么,裸奔的电脑联网之后到被感染——只需4分钟吗?

每天有大量的自动化程序随机的扫描互联网寻找肉鸡,但是会不会中奖那是另外一回事了。系统自带的防护机制,你的那些个杀软,在大多数情况下可以过滤掉这些攻击。

那这个数字怎么来的呢?可能是发布报告的那家机构,用了一台装有过时的计算机系统(比如说Windows XP SP1的这种)的电脑,来计算该电脑从联网到被攻击到被感染的时间,确实,这种计算机,4分钟都不到就可以Get Shell了

一直觉得:安全是为了给用户放心,而不是让用户恐惧。

Chapter 11. Personal Firewall Problems

“你想让QQ获取你的摄像头权限吗?”

拒绝(9s) 允许



——MDZZ什么鬼,点拒绝吧。诶我的摄像头怎么打不开了?作业没办法传过去啊!

Chapter 12. Call It “Antivirus”

还是那句话,安全是为了给用户放心,而不是让用户恐惧。


画外音:我管你杀出来是病毒还是木马还是蠕虫还是什么鬼!反正我电脑就是慢!不给我修好了我就卸载!诶哦!怎么卸载这个来着!把这个快捷方式给删掉吧!


Chapter 13. Why Most People Shouldn’t Run Intrusion Prevention Systems

Chapter 14. Problems with Host Intrusion Prevention

以上两章,“没有调查就没有发言权”,没注意过一般杀软的入侵防御,不好说明人家的好与坏。

Chapter 15. Plenty of Phish in the Sea

重点介绍了网络钓鱼和邮件钓鱼。

现在装了杀软的基本上不用太担心被网站钓鱼这回事了,此外邮件服务提供商(网易、腾讯等)也在加强邮件钓鱼保护机制,所以小白用户只要不是那种太好奇的基本上不会出现翻车的情况。

Chapter 16. The Cult of Schneier

“如果他今天是对的,并不意味着他明天也是对的。”

所以,这句话同样也适用与本书和本篇观后感。然后,你就会发现第21章并不适用于现在……

Chapter 17. Helping Others Stay Safe on the Internet

老生常谈的问题了,看看公安部的给公民安全上网的几点提示即可。

Chapter 18. Snake Oil: Legitimate Vendors Sell It, Too

涨了新姿势:这儿的Snake Oil可以翻译为狗皮膏药。

Chapter 19. Living in Fear?

世界正在变得越来越安全,即使是考虑到所有的因素。

我们拥有更多的安全措施,但却更多的为安全问题而担忧。

相信世界会变好,嗯,就酱紫。

Chapter 20. Is Apple Really More Secure?

没用过苹果系的产品,不清楚。

但是前段时间XCodeGhost还蛮火的,所以没有安全的产品吧。

Chapter 21. OK, Your Mobile Phone Is Insecure; Should You Care?

09年那时候确实是还没见过大规模爆发的手机病毒,所以这一章并不是很有说服力(这本书是2013年出版的译本,然而2013年前后有好几波手机被病毒感染的事件)

参考第十六章的最后一句。

Chapter 22. Do AV Vendors Write Their Own Viruses?

不清楚。

但是有这么一个有趣的问题:杀软公司会不会自己制作病毒或者让他人制作病毒后自己查杀? - 网络安全

Chapter 23. One Simple Fix for the AV Industry

不清楚。

Chapter 24. Open Source Security: A Red Herring

Linux用户没大家想象的那么多,但是不代表它就是安全的。还记得心脏出血么?

Chapter 25. Why SiteAdvisor Was Such a Good Idea

不清楚这个“SiteAdvisor”是什么?

Chapter 26. Is There Anything We Can Do About Identity Theft?

对于身边很常见的身份信息盗用,我们能做些什么?欢迎讨论~~

Chapter 27. Virtualization: Host Security’s Silver Bullet?

虚拟化,是主机安全长远的未来。
如果我们能够做到这一点,那么在安全厂商与坏蛋们之间的永不停歇的战争中,天平将会第一次向安全厂商倾斜。

Chapter 28. When Will We Get Rid of All the Security Vulnerabilities?

你相信存在没有漏洞的代码吗?美国人正在研究

Chapter 29. Application Security on a Budget

这个要从企业方面去考虑成本的问题……

符合标准、品牌、客户需求、功能对等性、节省开支的假设

“如果没有需求,为什么要去做它?”

作者也提到了这些建议:

  1. 尝试弄清楚已经在支出的资金
  2. 试着防止公开安全漏洞的出现,不让坏蛋们轻易得手
  3. 如果外部人员发现了漏洞,迅速处理这漏洞
  4. 培养热心于安全的人士
  5. 在开发团队中采用增强安全风格的工具

Chapter 30. “Responsible Disclosure” Isn’t Responsible

这个标题,首先让我想起了某云……


这儿看到了作者提到了自己认为的比较好的“智能公布”,虽然我觉得这套路在国内根本就行不通:

  1. 当好人在产品中发现了一个安全漏洞,他通过标准方式联系厂商(通常就是通过向该厂商的特定安全问题联系邮箱发送文件)
    * 在国内,不会被查水表再说吧,可以参考月饼事件
  2. 发现者给厂商30个工作日的时间,让他们确认问题来源并制定一个将来的行动计划表。若厂商确认问题的过程中有问题,发现者会提供相对应的支持。
  3. 双方统一的计划表应当包含最起码的日期信息,说明在什么时候会实施漏洞修复,什么时候修复会被充分测试以及啥时候补丁会发送给用户。除非厂商能够合理的为他们的工作量和优先级提供说明,否则修复和测试的时间不应该多于90天。
  4. 各方应该在问题发现的第一个月内每周通报问题进展,之后每月至少一次。
  5. 如果下一个计划好的产品版本安排在漏洞确认之日起4到12个月以后,厂商应该允许把补丁放入该产品的新版本中发布。
  6. 如果下一个计划好的产品版本在4个月以内发布,厂商应该将补丁放入后续产品版本中,只要在即将发布版本的发布日期之后的10个月之内都可以(没找到英语原文,并不是很了解这句话的意思)
  7. 如果没有任何计划中的产品版本发布,厂商应该在6个月的时间内发布一个新版本。
  8. 如果厂商在漏洞被发现之后30天内没有提供任何补丁计划表(有明确的修复时间期限),发现者应该给两个星期的通知时间。如果厂商仍然不提供任何合理的计划表,发现者就可以自由公布所发现的问题。
  9. 如果厂商没有很强的信心来处理问题,而且如果计划表的任何部分拖延达到60天,发现者应该给厂商两个星期的时间来完成已经延期的任务。如果该任务不能在两个星期内完成,发现者就可以自由公布所发现的问题。
  10. 如果安全漏洞被利用得已失去控制,厂商必须向公众确认问题并提供修复计划
    * 都不在双方能控制的范围内
  11. 在漏洞发现后的前18个月中,厂商对信息公布的要求应该得到尊重。如果厂商希望信息和补丁程序一起发布,应该得到认可。如果厂商希望漏洞不要被公布,也应该得到认可。如果厂商的确同意公布相关信息,就必须在公布的同时确认问题发现者的所做贡献。
  12. 在修复全面发布的18个月之后,缺陷发现者可以公开地发布问题信息。厂商这时候必须认可发现者的贡献。


Chapter 31. Are Man-in-the-Middle Attacks a Myth?

本章讲述了中间人攻击。以前经常会用ZANTI去劫持宿舍楼的无线,但是现在没用了= =|||

  1. 如果要在某个网站上输入个人数据,请确认他们是否是安全的(比如:挂锁的标志、是否有无错误信息的弹出和拦截、安全证书是否一致等)
  2. 如果正在使用家庭网络(或者是专用网络),确认密码保护是否生效以及是否已经启用了强加密连接
  3. 如果正在使用其他网络,确认该网络环境是否安全,在服务端有没有做过安全验证

Chapter 32. An Attack on PKI

Chapter 33. HTTPS Sucks; Let’s Kill It!

HTTPS从本质上说是安全的,但是也不一定就代表着它安全啊

Chapter 34. CrAP-TCHA and the Usability/Security Tradeoff

其实,就是在讲验证码的安全性与易用性。

Chapter 35. No Death for the Password

本章中提到了短信验证码的思路,现在有很多国内网站都已经采用了。

但是,在很多时候如果我想办法劫持了这条验证码短信,那还是用密码+短信验证码或者用其他组合可能更好。

短密码可以破解,强密码可以字典,长密码可以社工和记录,以上。

Chapter 36. Spam Is Dead

传统的垃圾邮件没少,但是新型的病毒邮件却增多了。现在国内的邮件提供商已经采用书中的这种“云计算识别垃圾邮件”的办法了吧?

Chapter 37. Improving Authentication

改进身份认证。

Chapter 38. Cloud Insecurity?

云服务提供商需要考虑提供正确的安全措施。

Chapter 39. What AV Companies Should Be Doing (AV 2.0)

Chapter 40. VPNs Usually Decrease Security

对于VPN的印象仅仅剩下翻墙了……

印象当中,某手机拦截广告服务商也是使用VPN的方式同步拦截数据,不知道现在还有没有用。

Chapter 41. Usability and Security

易用性和安全性的选择与折中。

如果给了用户权利:一个是强加密算法构建的安全连接,一个是某种传统的可能有安全问题的安全连接(为单子所熟知),可能会有更多人选择后者。

当看起来要在安全性和易用性之间作折中选择时,很有可能是有一个更好的解决方案被忽略了。可能是设计者没找出来,也有可能是因为他没有花时间来构建这个方案。无论是哪种情况,每个人都输了……

Chapter 42. Privacy

互联网中无隐私。

理论上隐私是件好事,但是我在网上好像没什么要保护的东西……

Chapter 43. Anonymity

理论上听起来很好,但是实践中却很少有人关心(可靠性较弱)

Chapter 44. Improving Patch Management

确定补丁的稳定性,让用户的生产力不会真正受到影响。

Chapter 45. An Open Security Industry

开放的安全行业,ISC2015曾经有提到过杀软界的“纳什平衡”,与此同理。

Chapter 46. Academics

学术界。

Chapter 47. Locksmithing

”锁“的选择。参见第41章

Chapter 48. Critical Infrastructure


SCADA(监视控制和数据采集系统):留意设计关键基础设施信息技术控制系统的人是不是已经考虑了各种问题?比如,不联网?


THE END

---------------------------------------------------------------------------------------------------------------------------

强迫症,用读书笔记的方式去看综述类的书。

感觉这本书讲的很多内容,深挖下去可以讲很久。另外有些部分确实没了解过(比如说杀软的入侵检测部分、学术界的动向等)所以就没有展开来说。

这本书花了我三天时间,但是觉得没有很本质的提高,或许是我的心已经变的功利化了吧。

谢谢你能耐心看完这篇并没有什么营养的长文,这也是我头一次做了这么长的知乎专栏文章。

虽然一开始是打算作为读书笔记去发表,但是后来却跑了题……

一向追求短平快,所以写操作系统部分的时候都是追求1000字以内能有所收获,但很可惜操作系统的东西太多而且杂,我需要用一段时间去积累我以前学过的没学过的东西(这期间还要为大四的另外一些未完成的事情忙活)

可能以后还是会看心情不定时更新,更新频率会下降许多。


谢谢你们能耐心看完这篇文章,谢谢。

编辑于 2016-10-28

文章被以下专栏收录