[ps:文章的正式标题为“漫画与安全”,起这个标题是为了蹭猪猪下热度,仅此而已!]
我特别羡慕能整活的,尤其是那些牛逼的设计师们,尤其是会整“漫画”的那种,在我们安全行业也是“卧虎藏龙”的,我印象深刻的最早应该是“dir溢出”的那个“虾扑温能”
然后就是去年我跟某hr小姐姐那段难忘的往事发生后,立马就有“漫画”出来了
当然每当各种“大事”的时候无论国内国外都比较流行各种“漫画”或者各种PS图片,可能是国内流行微信,国外流行推特的缘故,目前国内主要是以各种表情包为主,国外则流行在推特上发各种PS的图片,比如log4j2漏洞时候深有感受:https://github.com/YfryTchsGD/Log4jAttackSurface/tree/master/MEME
不过今天要说的“漫画”与这些“娱乐整活”没有太大的关系 …
“木桶理论”
“漫画”这种形式,还经常用来表达一些“观点”,尤其“鸡汤”类的应用非常多,因为“漫画”很直观了当的去表达原创者想要表达的“观点”,这些观点实际上是基于某个角度或者前提条件的,所以这类“漫画”一旦遇到我这种“杠精”很可能诞生原创者本意之外的一些“解读”,比如在安全领域有个古老著名的“木桶理论”
“木桶理论”传说是美国的一个管理学家提出来的:“一只木桶盛水的多少,并不取决于桶壁上最高的那块木块,而恰恰取决于桶壁上最短的那块”,后被引用到网络安全领域,用来强调安全的重要性或者强调安全的整体性,可能是十几二十年前,我第一次看到这个“木桶理论”的时候就杠上了,因为这个漫画的前提是在桶直立的情况下,我当时就想如果来个支点让桶能倾斜,那不是长板决定了水量? 然后今天写文章的时候搜索了一下,果然是“自古杠精不寂寞”
同时我也看到很多跟网络安全领域里提到的“木桶理论”各种不同的解读,如强调木板直接有没有缝隙,这个缝隙漏水决定了水量,本杠精看到这种后,直接就提出了我不会用整个木头挖一个桶出来那就不存在你说的这个问题了 ?! … 再比如有的人觉得认为安全是水桶的地板,“没了底,连水都装不成”等等。
上面的应用其实都是有着一个很大的基本前提,或者说想要强调某个观点的侧重点的,就本“杠精”的看法,实际上“木桶理论”是不太适用于网络安全领域的,因为网络安全里就不能假设这个木桶不漏水(没有绝对的安全),木板被虫咬了,被人为的破坏,缝隙也可能漏水破裂等等。所以我认为木桶应该是:
所以我们的安全工作首先是要找到这些“洞”,这里要强调下不是所有的漏洞都有漏水的表现,比如水位以上的洞就没有漏水的情况,再比如有虽然位于水位线以下,但是还真是个“薄弱点”在水的压强不足够大的时候可能还不会形成大漏的情况 等等
所以我们想要扫描探测,需要感知哪些正在漏水,然后就是要去部署修复,堵漏也有各种讲究,最直接的是你就面临两个选择:是从内部补,还是从外部补(比如热补丁)? 内部修复的话可能需要你先排空水(比如重启),从外部补也有多种选择等等 都是有很多可以纠结讲究的事情。
“背后的真相”
这个漫画可能是我最早引入到安全里的,我在2015年的QCon的《阉党、流氓、傻X:业务与安全》[1]引用,说到这个漫画还是有一些故事可以聊的,当年Fenng还在dxy当CTO的时候,找我们做安全服务,在北京约跟我和COS约过一次海底捞,在聊到“为什么做了那么多安全服务、卖了那么多的安全设备,最后还是不能保证不出安全事故呢?”这个问题的时候,我就从我的手机里掏出了这种漫画图给Fenng看,当然这个问题当时也困扰着我们的一些同事,尤其是一线的商务同事,我给他们看到这个图后,感触颇深。我当时还建议要不把这个漫画印到T恤上去见客户,不知道为什么,他们都没有实际执行 :)
从安全的角度去看这个漫画,实际还是有很多细节点的问题看,这个取决于看官的角色身份及视角的不同
* 上帝也不是万能的 —> 没有绝对的安全(安全没有银弹)—> 安全的意义在于提高攻击者成本
* 安全往往是不可见的 —> 需要“看见”安全 —> 比如我以往的文章里也有提到“看得见”与“看得清”的问题[2],这些都是比较大的方向上去看,那么具体到产品或者方案上你就会觉得,报表、报告及可视化等的重要性了,这些在一些技术人很容易忽视或者看不起的。其中大部分人觉得花里胡哨没有实际作用,实际上这是一种误解,因为技术能力和可视化设计等并不冲突,二者可以相互成就!
* 安全事件仍然是网络安全的第一推动力 [3] ,漫画里这个人是被砸到了,痛了,才会去纠结“背后的真相” —> 漏洞并不可怕,可怕的是你对待漏洞的态度
这个时候应该轮到我“杠精”出来装x了:
* 安全厂商不是上帝,客户(给钱的)才是上帝,作为卑微的乙方是不可能去怪有钱的甲方爸爸的!
* 因为痛觉所以人天生能感知到被石头砸到的痛苦,而现实中的网络安全很多情况是你被黑了都不知道,这也就是安全领域里的经典2种情况:一是你被黑了你知道了,二是你被黑了你还不知道。
想起前面我直播的时候提到的一个往事,在n年前我带的团队给某客户做渗透测试服务,我们的团队小伙非常给力发现很多的高危漏洞并实现了多个系统的权限控制,于是愉快的提交了报告给客户,客户看到后当时还是非常满意的,不过意外的是在我们报告提交没多久,客户就在某著名平台上收到了好几个漏洞报告,有点着急然后就找到我们的前场商务同事沟通,这时候甚至我们当时的前场商务同事也觉得不好意思,于是理所当然的找到我这里了,然后你可能猜到了 “我就给客户看了这个漫画 ….” 当然 … 不是 …
当时我是直接给客户沟通,我说我们报告里的给咋们发现的问题值不值得你们付出的成本?!很显然客户一下“释然”了,当然我也进行解释我们优先考虑的是威胁到系统权限的高危问题,而客户收到的某著名平台上报告的问题,都是一些相对“低微”的逻辑问题,所以我们平时渗透测试是主张分期持续的模式,随后我们也重点针对逻辑问题再次进行全面测试 …
“救火英雄”
好吧,我承认作为一个已经过期了古典黑客,非常羡慕当红顶流猪猪侠同学,前面他刚开通自己的公众号:零号练习册 发表了第一篇文章[4],虽然前后修改10余次最后还是被和谐,但是从阅读量及关注量不得不承认“猪猪侠”的顶流身份,当然他那篇文章我其实并没有仔细看,相比之下对他们文章里用那个漫画印象深刻,以至于我知道他这个文章很可能再次被和谐的情况下第一时间保存的这个漫画,而不是全文。
猪猪侠文章引用这个漫画主要是在甲方的视角,强调企业需要重视基础的安全建设做到“事前防范”,在这个角度或者说前提下是非常贴切的,只是本杠精比较在意的里面有这很明显的“二元论”的视角[5],也就是能不能表扬“救火英雄”!很多的读者包括猪猪侠的文章里提到“总结会上还频繁表扬救火英雄的事迹,安全就更加难做了”
漫画的本身也是有意做这个对比,由此来强调“事前防范”的重要性,这个漫画传播的观点有点类似于我们耳熟能详的“上医治未病”典故:
《鹖冠子》中记载了春秋战国时期神医扁鹊三兄弟治病的故事。魏文侯求教于扁鹊,询问他家兄弟三人中谁的医术最好。扁鹊回答说:“长兄最善,中兄次之,扁鹊最为下。”在扁鹊看来,大哥因治病于病情发作前,名气才无法传出去,能治未病正是大哥的医术高超之处。二哥治病,往往治于病情起初之时,一般人就以为他只能看看小病,所以他的名气只及于乡里。而我是治于病情严重之时,用针刺、用猛药,救人于危重之时,所以大家都以为我医术最高明,名气因此传遍天下。
有一个细节必须提一下,这个漫画里,只突出了二哥(灭小火的哥们)与扁鹊(救火英雄),并没有把真正牛逼的Big Brother画出来 …
这个时候本“杠精”又来表示不服了,在实际的现实中不是单个角色个体,而是多个角色个体,起火负责寻常的是一个角色个体,再火还没有起来之前去消灭点是另外的角色个体,到火势打起来需要的救火英雄是另外的角色个体,所以大哥、二哥、小弟都是理想的“绝对”[5]的概念,那么救火英雄被表扬完全是应该的!但是能因为表扬了小弟,就说明大哥、二哥很憋屈!聪明老板都会来个一个集体奖?!:)
而作为小弟的“救火英雄”扁鹊名气最大,这正好也说明了一个问题:“安全事件仍然是网络安全的第一推动力“,当然猪猪侠的文章里也提到了这一点。如果从这点作为前提或者视角,那么“救火英雄”小弟被重点突出也算是必然!这个算是“历史局限性的必然”了!
当然如果在逆向的角度上去看这个问题,可能不会出现“二元论”的陷阱,所谓:
“大道废,有仁义;智慧出,有大伪;六亲不和,有孝慈;国家昏乱,有忠臣”
那么“有救火英雄”就说明我们的安全建设很可能还有大的缺失,那么我们更加需要去“治小病、治未病”了!
最后大家有啥可以聊聊的可以关注视频号:黑哥说安全
参考:
[1]《阉党、流氓、傻X- 业务与安全》2015年
https://www.vipread.com/library/topic/410
[2] “看得见”与“看得清”
[4] 猪猪侠的文章备份
https://opencode.oss-accelerate.aliyuncs.com/A1.jpg
[5] “绝对”与“相对”
原文始发于微信公众号(黑哥说安全):从虾扑温能到猪猪侠