• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 94, comments - 250, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            安全幻想曲2008

            Posted on 2008-08-15 09:27 Condor 閱讀(187) 評論(1)  編輯 收藏 引用

                                       ==Ph4nt0m Security Team==
                                   Issue 0x01, Phile #0x04 of 0x06

            |=---------------------------------------------------------------------------=|
            |=----------------------=[       安全幻想曲2008       ]=---------------------=|
            |=---------------------------------------------------------------------------=|
            |=---------------------------------------------------------------------------=|
            |=--------------------=[           By axis             ]=--------------------=|
            |=--------------------=[   <axis_at_ph4nt0m_dot_org>   ]=--------------------=|
            |=---------------------------------------------------------------------------=|

                我見過的大多數安全人員,都對技術有著一種狂熱,甚至是一種偏執。這種情緒在做安
            全研究員的時候是非常有好處的,因為作為研究員,可能要偏執考慮到一些極端的情況。這
            種鉆研精神,是光靠勤奮所無法達到的。但是在甲方做安全的話,可能更多時候需要的就不
            是狂熱,而是掌握平衡的藝術。在商業利益與安全性發生沖突時,如何處理好這個平衡,是一
            個關鍵。

                舉一個簡單的例子來說,眼下最流行的XSS攻擊,其修補方案從總體上來說,大致可以分
            為escape output和filter input兩種。對于狂熱的安全人員來說,當然是恨不得把網站全
            部弄成靜態的,輸出都采用escape output,全部輸出純文本,就天下太平了。然而現實與理
            想總是有差別的,首道難關就是網站肯定會有些富文本的需求。

                當安全和需求相抵觸時,一定是安全給商業需求讓路。這里要避免一個誤區,就是安全
            應該是為需求而服務的,而不是成為需求的障礙。其實這個觀點大多數人都心知肚明,但是
            在實際操作起來的時候往往會事與愿違。

                再回到富文本上來,當需求決定需要有富文本輸出的時候,狂熱的安全人員(下稱為狂戰
            士吧)就只好退而求其次,要求對富文本做filter input,對其他沒有富文本的地方做escape
            output。接下來問題來了,對于程序員來說,富文本往往采用了一些第三方的,或者是基于第
            三方的富文本編輯器,還有的是自己實現了一個。而這些富文本編輯器,往往在考慮
            xss defense的時候有所欠缺。這時候采用什么樣的策略來做filter input,就成為了新的
            問題。

                第一個難關就是程序員會拉上商業,一起來和狂戰士PK,說filter input很容易誤殺客
            戶的正常操作,還會影響到性能。當然這小小的難關還難不倒狂戰士。狂戰士往往會輕蔑的
            一笑,然后把風險推到商業上,說出了問題讓他背黑鍋之類。這種狠話一放出來,商業往往就
            會退縮了,畢竟狂戰士這么個狠角色是擺在那里的。所以最后會決定讓程序員去整filter。

                于是程序員簡單寫了個基于正則的blacklist,并且禁用了部分標簽,比如script。狂戰
            士這時候又蹦了出來,對程序員指手畫腳,要求禁用style,因為這玩意太難控制了,黑客有幾
            百種利用style的方式;狂戰士還說,基于正則的匹配這個魔法等級太低了,要換個高級魔法,
            比如個語法分析器,類似html purify這種,還要有log analysis和realtime monitor功能。

                一般到了這個時候,程序員對狂戰士的忍耐已經差不多到極限了,因為甲方網站很少以
            安全為主要考核因素,沒人會認為一個視頻網站或者是交友網站的安全需要做的比FBI更好,
            因為沒那么大的成本投入。于是程序員說要釋放這么個高級魔法需要一個團的程序員配合,
            還需要召喚很長時間才能放出來,所以狂戰士的這個非常牛B的魔法無法完成。而一般在這
            個時候,程序員往往會用啥性能和穩定性之類的因素來忽悠狂戰士,說這種魔法一般有一定
            概率會反噬,沒整好就把自己整殘了。

                狂戰士無奈之下,只好同意程序員實現一部分的魔法,filter部分過濾完整有效就行了。
            做好這個之后,狂戰士還讓程序員去對沒有富文本需求的地方使用escape output。程序員
            這時候對狂戰士已經忍無可忍了,因為由于以前從來沒有注意過xss這方面的問題,所以需要
            escape的地方是以“千”或者是“萬”為單位的,多如牛毛。于是程序員開始消極怠工,并且開
            始訴苦。這條路走不通了,狂戰士只好開始尋求更好的方案。

                后來狂戰士回家睡了一覺,在夢中有仙人傳授武藝,于是馬上想到了新的辦法。第一招
            是filter output,不過這個扯淡的方法根本屬于yy,因為對服務器壓力太大。第二招是使用
            WAF,就是web application firewall,開個虛擬補丁,這樣程序員不補也能搞定web漏洞。不
            過這樣就依賴于WAF的規則了,而且治標不治本。看來昨晚那個仙人估計是灶君一類低級的
            小神,盡出餿點子。看來狂戰士還得繼續和程序員PK下去了。

                可以見到,那些牛圈里的狂戰士常認為是“奇技淫巧”的XSS問題里,有這么多頭疼的問題。
            簡單的問題變得越來越復雜。

                安全是一個持續的過程(process)。既然是過程,就會有第一步、第二步 ... 第N步,有
            一個持續的概念在里面,不能今天整了,明天就不管了。今天的安全并不代表明天的安全,新
            的技術和應用在不斷發展,就會不斷帶來新的問題。經常看到一個升級反而把漏洞升級出來
            的例子。所以安全是一個持續的對抗過程,hacking與anti-hacking的過程,廣義來說,更是
            一個弱化風險的過程。

                很多BOSS往往都會這么問狂戰士:我上了這個720安全衛士是不是桌面安全就不用管了?
            我上了這個賣紅茶IPS是不是就能擋住所有刺客入侵了? 狂戰士這時候很無奈的說:不行,還
            是有很多trojan和rootkit可以bypass主動防御,很多shellcode和0day可以anti IPS。 于
            是BOSS很生氣的說: 那我花這么多錢買這個做啥? 狂戰士一般會忽悠他說:上了這個可以解
            決90%的攻擊。 于是BOSS會很不滿意,讓狂戰士出技術分析報告,一定要有充分的理由才行,
            狂戰士往往要面對這種煩惱。

                其實BOSS的這種觀點是一種急功近利的想法,沒有認識到安全是一個過程,并且是一個
            持續改進的過程。不是買個box就能解決問題的。沒有100%的安全,有漏洞的地方太多了。
            經常有魔法師用木桶原理來闡述安全問題,但其實很多時候,連木板在哪里,到底那塊木板才
            是短板,都沒有一個很清晰的認識,因為很多時候根本無法量化,所以狂戰士的工作經常陷入
            誤區。板子太多了,系統、網絡、用戶、應用、數據、桌面......

                放眼看去,全是短板,每塊板子都能讓刺客或盜賊輕松的進來,偷走核心數據或者弄攤網
            站然后揚長而去。或者各種短板互相組合,讓問題變得更加撲朔迷離。

                前面說的WAF就是一種比較功利的做法,雖然廠商經常會蹦出來說這玩意是需要有專人
            維護的,也是一個持續的過程。但實際上很多購買WAF的用戶都沒有好好的去做這個過程。
            其實WAF、IPS最大的軟肋不是在沒人跟進上,而是在于其是串聯的網絡上的,特別是開了虛
            擬補丁的阻斷模式的時候。這對于高可用性的應用來說,絕對是無法忍受的。沒人敢背這個
            誤殺的黑鍋。要是因此導致了PV下降,可能老板就要喊到辦公室去喝茶了。不過WAF也不是
            完全沒用,如果能夠用好的話,對于網站還是還是很有幫助的,至少在monitor和攻擊流量分
            析上起著積極的意義。不過前提是用好。

                剛才說了安全是一個過程(Process),其實有人跟進這個過程還不夠,下面還要重點說說
            深度防御的思想。經常看到YY小說的作者在寫到黑客攻防的時候,說到XXX在xx分鐘內就突
            破了N道防火墻,N大于100;變形金剛里也這么有這種場景。其實這純粹是扯淡,沒事整那么
            多防火墻做什么,無端影響了可用性。不過YY作者深度防御的理念還是正確的,只是他不知
            道那玩意不應該單純叫防火墻,要想表達這個思想,可以整個專業名詞,比如:多層防御體系。
            這樣裝B就可以裝的比較像樣了。舉例來說,可以在應用層校驗用戶輸入數據,DB層面檢查每
            條sql,操作系統上細分權限,服務最少化,網絡上防御arp spoof,加密傳輸通道,做好ACL…類
            似措施還有很多,防御的方案交叉層疊起來,就能起來一個比較好的保護效果。

                不過偏偏還有不識趣的,比如前面的很多程序員都會說,我都已經做了filter input,還
            要escape output做啥。狂戰士一般聽到后會有想要狂化的沖動。按耐住狂化,告訴程序員,
            說filter input可能會做不干凈,會被bypass,畢竟如果遇到一個手執絕世0day(bypass
            filter)的9級刺客,什么牛B的防御魔法都擋不住,所以能escape output的地方,最好escape
            掉,這樣最干凈。可是即便是這樣做好了,還是有些會有很難處理和發現的地方,比如在DOM
            里的XSS,比如在JS里面一些寫的很BT的地方,等。這些只能靠肉眼去看了。PK還得進行下去。

                但是程序員還是不能很好的理解,他們跑出來說:我這里做了完善的access control,只
            有管理員才看的到,這里就算有注射有跨站就隨他去了,不需要修復。想偷這種懶的人其實
            不在少數。這種想法違背了深度防御的思想。先姑且不論如果管理員密碼泄露,或者管理員
            是個內鬼的情況。如果刺客通過注射拿到了管理員密碼,或者是直接通過XSS和CSRF來對后
            臺進行注射,那么前面的access control就完全沒作用了。

                在一定程度上,是可以容忍風險的存在的,但是從長期來看,這種做法是非常不可取的。
            比如有的管理員會說防火墻只允許80端口,那么RPC漏洞或開其他端口的應用漏洞是否就可
            以不補了。也許一時來說是沒什么問題,但是如果放置不管將導致沒有人來維護漏洞,也許
            哪天的防火墻策略變更,或者來自內部系統的威脅,都有可能導致當時看起來無害的漏洞被
            利用。而這種做法的一個后果往往是難以檢查原因,就是說咋死的都不知道。所以這又回到
            了開始的話題:安全是一個持續的過程。

                在灌輸完深度防御的思想給程序員以后,狂戰士又被另外一種程序員打擊到崩潰了。面
            對滿目都是紅色的掃描報告,他們說:我這個xxx ftp沒漏洞,除非狂戰士可以證明黑客能搞
            進來拿到shell。一般狂戰士聽到這種要求,狂化的概率在80%以上。首先,不是只有能拿到
            shell的才叫漏洞。一個dos可能會造成業務的中斷,一個infomation leak可能會為后續攻
            擊帶來便利,等等。

                面對scan report以及CVE查詢出來的漏洞,大部分都是沒有現成的exp能夠利用的,而且
            要利用漏洞可能有各種苛刻的條件,比如要求本地交互shell啊,或者要求有帳戶之類。而更
            多的時候,漏洞根本連細節的都沒有,只有一個漏洞公告里一個簡單的劃分critical,標紅。
            就算有exp,可能還要考慮到exp的穩定性和成功率、語言版本啥的,打過去也不一定能成功。
            更何況狂戰士無法處心積慮了為了POC給程序員看,而花費大量的精力來追求一個可能沒有
            結果的漏洞。

                但是無法POC不代表就沒有風險了。我們的目標是要保證一個系統長期的在任何情況下
            都能安全運行,機密數據不會外泄,業務不會中斷。所以這種程序員犯的錯誤就是偷換了概
            念,把威脅范圍縮小了,用個體來代替全局。很多時候威脅可能來自內部,可能來自誤操作,
            可能來自其他的風險。要說服這種程序員很辛苦,只能夠靠長期的“忽悠”,來慢慢感化他們,
            要是運氣好還能做出一兩個POC來震撼下他們,劉震撼(ZhenHan.Liu)就是為此而生的。佛曰:
            我不下地獄誰下地獄。

                作為一個優秀的狂戰士,往往要有相當程度的mission impossible的修為。很多時候,
            需要為瀏覽器漏洞、操作系統漏洞擦屁股,不然最后吃虧的還是自己的用戶。面對釣魚和詐
            騙,很多時候那些認為web安全是“奇技淫巧”狂戰士們認為解決方案是impossible的,認為
            no patch for stupid。比如phishing,誠然,如果有一個一勞永逸的方案,那么這種完美魔
            法要是放出來了絕對可以獲得圣階魔導師的稱號。但是YY歸YY,現實歸現實。狂戰士們很頭
            疼這種問題,但是卻不得不去面對它。

                魔法最終還是放出來了,可惜不完美。目前anti-phishing的魔法,有整到瀏覽器里內置
            對抗的(IE7/8),也有瀏覽器toolbar、擴展的,有在IM里做過濾的,還有窮舉malicious sites
            的,更有發動人民戰爭來維護一個blacklist的,其難度和成本從低到高什么都有,不過基本
            都無法一次性解決問題。比較有創意的魔法屬于yahoo發明的sign seal,基于認證機器的原
            理來識別真實網站,不過這個方法的缺陷在于需要長期教育用戶,實際使用效果不一定好。
            yahoo還整了個domainkey技術來在郵件里對抗phishing,不過這個缺陷更明顯,需要郵件服
            務商支持。yahoo的狂戰士挺有想法的,就是太理想化了一點。

                說到安全世界的另外一股強大力量不能不提教廷,這個宗教從精神上統治了安全世界,
            一群群紅衣主教們整出來了一堆標準、規范比如BS7799之類來幫助狂戰士們更好的忽悠他
            們的BOSS。其實標準是死的,主教們的出發點是好的,不過這些標準啥的就和秘籍差不多,狂
            戰士們以為他們讀明白了,其實很少人真正讀懂了。那玩意如果拿來忽悠BOSS們確實是一套
            套的,但用在實處則有一個本地化的過程。必須要把標準之類的東西和實際情況結合起來,
            不然就只能停留在忽悠的層面上。

                最能體現問題的出在編碼規范上。可能有N個權威的機構都出了他們自己的code規范,
            或者某些狂戰士傭兵團(安全公司)也自己整了套。不過在具體使用的時候,很多狂戰士都是
            拿了一套去用在所有的公司身上,其實這樣的結果就是到最后沒有程序員遵守用那玩意,因
            為在實際情況中往往不好用。每個公司都有自己的體系、環境和編碼習慣。系統的designer
            和architect只要不是小白一般都或多或少的會考慮點安全風險,規范只有本地化以后才能
            很好的用起來,不然絕對會水土不服。所以要是再遇到什么安全公司拿標準、規范來忽悠的
            時候,狂戰士們就要睜亮了眼睛了!

                胡侃瞎吹了這么多其實也沒說到重點,不過重點已經不是本文要講的事情了,想要講的
            東西還有很多,也許以后會陸續寫出來。狂戰士是份很好的職業,希望有更多的狂戰士甚至
            是半獸人朋友能夠加入我所在的狂戰士傭兵團!

            -EOF-

            Feedback

            # re: 安全幻想曲2008[未登錄]  回復  更多評論   

            2008-08-15 16:46 by niino
            很不錯...
            不過向來不喜歡狂戰士這職業
            ...刺客我倒很感興趣
            精品国产乱码久久久久软件| 亚洲午夜久久影院| 免费精品国产日韩热久久| 久久久久亚洲AV无码专区网站| 日批日出水久久亚洲精品tv| 国内精品久久久久影院亚洲| 99精品久久久久中文字幕| 精品人妻伦九区久久AAA片69| 久久国产欧美日韩精品| 久久无码av三级| 国产精品成人久久久| 久久久国产精品福利免费| 亚洲国产成人精品91久久久 | 色综合久久久久综合99| 久久久久久久91精品免费观看| 99久久国产热无码精品免费| 日本加勒比久久精品| 久久国产精品成人影院| 色婷婷综合久久久久中文字幕| 久久久国产精品福利免费 | 国产成人久久精品一区二区三区 | 97精品国产97久久久久久免费| 国产香蕉久久精品综合网| 国产精品99久久不卡| 久久99精品久久只有精品 | 国产精品久久久久9999高清| 亚洲精品久久久www| 99久久婷婷国产一区二区| 久久久久人妻一区精品色 | 思思久久99热只有频精品66| 久久www免费人成精品香蕉| 久久精品一区二区国产| 成人免费网站久久久| 亚洲国产精品成人久久| 亚洲中文精品久久久久久不卡| 女同久久| 亚洲人成网站999久久久综合| 午夜精品久久久久久久无码| 久久精品中文字幕大胸| 久久久黄色大片| 麻豆亚洲AV永久无码精品久久|