應該是去年的年初,我受到普元公司的邀請去參加了一次SCA、SOA的技術交流會,當時也是自己第一次去和那么多陌生的朋友交流技術心得,同時也被普元公司的這種純技術性的交流方式所打動,也在想哪一天阿里巴巴也能夠舉辦一次這樣的小規模有針對性地技術交流會那會讓我們這些技術人員收益菲淺。一年后的今天,當老大問我有個這樣的會議是否要參加的時候,自己毫不猶豫地報了名,雖然看起來和自己專注的工作不是很相關,但是還是那個想法:首先不了解是無法知道是否和自己相關與否,其次就算不相關,多學多聽,觸類旁通的技術延展只會給自己帶來更多的想象空間和創新思維。
按照會議安排,早晨有兩個講座,下午有四個講座,每個講座1個小時左右。第一個出場的是騰訊的安全中心總監楊勇,整個演講很輕松,首先是對騰訊的整體產品結構和背景作了一下闡述,然后就從安全中心這個整體來講述安全對于騰訊的意義,如何實施以及一些流程的制定。沒有過多的牽涉安全問題的細節,著重是講述了安全中心面臨的四個方面的問題,以及通過什么手段去解決。這其實和他本身所處的工作職責來說相符合,如果僅僅只是來講某一個安全技術應用,那么就有些太過狹隘了。不過在提問的時候一個問題的回答讓我還是留有一些印象的,主持人收集到一個問題:“騰迅安全中心的建設初期遇到的最迫切需要解決的問題是什么?”,他回答道:“其實騰訊安全中心從建設初期到現在一直面臨各種迫切的問題,只是隨著時間的不同而不同的演變,最早的協議安全到客戶端安全到奧運期間的信息安全都是一個發展的階段”(因為沒有ppt以及記錄,因此描述的可能不太準確)。但是這個思想任何技術行業都是一樣的,時代不同關注不同,需要解決的問題也是在發展的。
第二個議題是Discuz的劍心帶來的“web應用程序中的字符集攻擊”,這個演講就相對來說比較注重專業細節方面的闡述。作為互聯網應用開發者,使用Java的人第一堂課就是中文亂碼,很多人只看到如何去配置或者寫一點轉換語句就可以解決,但是對于編碼方式就不求甚解,ISO-8859-1,GB2312,UTF-8,UTF-16區別是什么,為什么會引起亂碼。其實了解了編碼的原理就很能夠解釋如何會產生亂碼,同時產生亂碼的時候也可以根據亂碼的情況了解可能是因為什么編碼轉化造成的(阿里巴巴的寶寶寫了一篇很詳細的文章說了這個問題,進入公司以后我也是看了那片文章才系統地對編碼方式做了完整的了解,以前都是碎片)。不過今天聽了這個演講,到讓我知道了原來編碼方式也被人用來攻擊。其實基本的思想主要就是一點:由于信息轉發中對于不同編碼解析的方式不同或者是過濾不同,導致出現一些漏洞。通俗的比喻就是刺殺秦始皇的圖窮匕見,侍衛就好比第一層把關的信息轉發者認為著幅圖沒有威脅,但是真的按照刺客的處理方式那么就是一個最好的攻擊性工具。記得我在和同事探討REST對于Http協議的使用時說最重要的就是REST不再使用Http協議作為傳輸承載協議而是作為業務協議,那么解析業務的時候究竟是分析協議中指定的編碼方式還是內容中的編碼方式,結果會大不一樣,同時作為安全人員的角度來看,這也會存在一種安全隱患。所以其實任何一種錯誤都可以被利用作為攻擊的手段。
下午的議題一共有四個,雖然時間比較長一直連續講到6點多,但是就像主持人講的,每一個人都“堅持”下來了,呵呵,當然堅持并不是因為不好聽,而是做在那兒聽比寫代碼要累很多,當然講課的同學們也是十分辛苦的。下午第一個演講的是team509的創始人吳石,講的主題是“部分軟件安全的思考”,內容專業化很強,對很多比較底層的安全問題(操作系統等)作了一些介紹,當然對于我這個門外漢只能聽懂個大概意思,不過還是有所了解那些名詞的意思到底是什么。第二個是微軟的大牛蛙同學,也是安全領域專家講述了一下微軟的SDL(Security Development Lifecycle),望名生意,安全實施的流程化。第三個演講是兩位同學做的,也是我下午聽得比較有感觸地,先是網名余弦(鐘晨鳴)北京知道創宇信息技術公司的安全研究員,講的是CSRF蠕蟲技術,從一個黑客的角度來闡述CSRF的原理以及危害性。這部分比較技術化一些,但是由于和我關注的Web安全也比較相關一些,所以聽起來也不是比較迷糊。雖然聽著他講CSRF,但是其實我腦子里面已經在考慮關于Open API的一些安全問題。其實在阿里軟件承載淘寶的API過程中,對于客戶端的安全問題就一直都在談,但是對于SIP來說總是鞭長莫及,因為服務集成平臺只會保障ISV和ISP之間的信息交互的真實性,但是用戶是否由于ISV的技術問題導致信息偽造提交,那么就不得而知,但是最后表現出來的結果就是ISP的Open API計劃為ISP帶來了更多的安全隱患,也就是說原來淘寶一家漏洞,以后可能會是千千萬萬家ISV的漏洞,其實這也是上面幾個演講提到的合作風險問題,第三方的技術能力不得而知,同時產生的風險也會很難控制。其實從這里也多多少少看出來為什么FaceBook,myspace,最早對于用戶安全隱私數據的開放不僅僅是開放了數據API,同時也會有整一套上層框架支持,其實也是出于開發者能力不足引起隱私數據被惡意修改而作的防護措施。那么現在Open 用戶的數據特別是以后涉及到金額的api如何保證isv不欺詐,isv不被欺騙,這可能是后續需要更加重視的問題。同時,在聽了CSRF的攻擊中談到的對于資源定位猜測以及操作的時候,讓我對REST的風格又打了一個冷顫,REST對于資源的規劃和定位十分容易,但是這也為這類攻擊提供了便利,同時對于資源操作依賴于Http協議,也會讓資源的安全性打了折扣,這需要對Open API開發人員做更多的安全工作指導,或者提供安全框架來防范Open API可能會產生的安全漏洞。緊接著后面的演講是北京知道創宇信息技術公司的創始人趙偉,應該是業界比較資深的專家了,本來的議題是“惡意網站檢測”,不過他還是講了他這些年來的一些經歷以及安全領域的黑色產業鏈的問題。平時這方面關注的不多,不過今天這一番交流,讓我對安全領域的發展以及現況有所了解,甚至有時候就覺得現在上網就算裝了一大堆東西還是感覺在“裸奔”。最后一個議題是51.com的鄭歆煒講的“運維安全經驗談”,總結了運維所面對的問題以及解決方案,協調,溝通,總結,知識庫,其實這些對于開發人員來說何嘗不是呢。最后小黑作了一個簡短的總結,同時預報了明天他會做一次附加的構建安全Web架構的講座,期待明天半天的研討會和附加講座。
好久沒有踏踏實實地坐著好好聽課了,這次一天半的學習對于自己來說也算是一次新知識的掃盲,同時也為自己后續的工作可能存在的問題或者可以借鑒的知識作一個鋪墊。