搜尋此網誌

2008年5月28日 星期三

老生常談的重要性 - Patch管理基本功不可省

這幾天看了一篇文章,有個老兄 (Chris Goggans) 利用6小時的時間,成功進入了FBI的犯罪紀錄資料庫。這個問題是這個老兄在進行所謂的Pen-Testing (入侵測試,Penetration Testing)時所發現的,而所謂的Pen-Testing簡單來說就是請第三者模擬駭客攻擊自己的系統。Pen-Testing有很多方式,可分為從組織內部或是從外部發動,另外也可以根據組織主動提供資訊的詳細程度與組織人員對測試計畫的被告知程度加以區分。為了達到最真實的情形,組織不應該提供任何非公開的資訊給進行測試的人員,而且組織內所有的人員不應該被告知測試的進行。但是為了達到比較嚴格的測試,有時候組織會提供較多的資訊給測試人員,以期望他們能夠發現更多的問題。另外組織內的部分人員也會被告知測試的進行,以便進行監視,甚至同時測試其他安全機制。

Goggans指出這次主要是因為安全架構設計不良以及Patch的管理不完整,才讓他有可趁之機。Patch的管理,我想對很多安全人員或IT人員都是聽到不想再聽的觀念,也通常已經包含在日常的工作之中。但是或許也就是因為太過熟悉,所以讓大家對於這件事漸漸麻痺?又或許是因為大部分的系統(尤其是作業系統)強調具備自動更新的機制,使得管理者不再關心Patch這件事?又或是因為需要Patch的東西太多,所以管理者被許許多多的Patch所掩埋了。還是因為現在廠商與市場的主流產品不是Patch管理,所以無法吸引組織的注意(資源)。這些老生常談的問題依舊存在,或許原因真的僅是管理者一時的疏失。但是對於組織而言,把資訊系統交由專家(有些人甚至可能不是專家)處理後,是不是就可以高枕無憂?當然不是,所以才會有所謂的稽核機制的出現。但是稽核機制通常比較像是抽查的方式,運氣夠"好"的話,問題好多年不被發現也是很有可能。

另外現在也很流行ISMS或是一些資訊安全相關的法規。但是符合這些規範,就確保資訊能夠永保安康了嗎?這些規範通常在制定時,就已經有些妥協,其中最主要的原因是確保實施的可行性與彈性。所以符合規範,只不過表示組織通過這些規範要求的稽核項目,同樣並不保證真的毫無問題。當然,規範與及對應的稽核有其效果,不過在目前日益複雜的環境下,需要更全面、更即時且有效率的作法。可以採用的方式就是Pen-Testing,利用第三者的入侵測試找出環境內的安全風險,並利用自動化的工具進行資訊系統安全的平日"維護"工作。這兩者的費用都不低,以長期來說,自動化的工具當然是比較划算的作法,不過需要具備設定軟體與解讀報告的人力,同樣也是一件困難且花費寶貴資源的事情。

雖然Pen-Testing可以找出環境中存在的安全問題以便組織去解決,但是Pen-Testing同樣不是萬靈丹。Pen-Testing主要針對資訊系統的漏洞進行攻擊(尤其是自動化的工具),對於組織運作流程安全、實體安全等其他議題,是沒有太大幫助的。另外,對於組織人員在資訊安全的角色與義務的規範與執行,也通常是無能為力的。不過有些入侵測試會搭配社交工程的方式進行,對於組織人員的安全落實與否倒也算是包含在內。

總結來說,以資訊安全市場而言,每過一陣子就會有新的議題與新的產品。這些新的玩意兒吸引了媒體、廠商與使用者的眼光,也吸引了企業資源的投入。的確,因為環境的不斷變遷,會有許多新的安全議題引爆。但是這並不表示原先的安全議題已經不重要,或是所有組織都已經有了相對應的機制去防範。更不能因為某些議題已經被大家所熟悉,就假設組織有足夠的機制與能力去防護(例如病毒的問題)。資訊安全是全面性的議題,而不是趕流行。所以,組織如何找出自己最需要的安全需求並據此建立制度,然後落實監測機制以確保制度被正確地執行,才是獲得保障的方法。

原文出處:
Six hours to hack the FBI (and other pen-testing adventures)

2008年5月22日 星期四

Open Source 軟體安全再進化 - Scan開放源碼程式研究報告

Scan 這個網站於日前公布了一份為期兩年 (2006-2007) 的研究報告,這份報告是由美國國土安全局 (U.S. Department of Homeland Security) 贊助 Coverity 這家公司所進行的。這項主要針對Open Source程式碼安全性檢測的研究報告,總共有超過250個Open Source的軟體(超過5千5百萬行的程式碼)參與,並於期間不斷的重複檢測,所以總共做了14,238次檢測(超過一百億行的程式碼),最後的檢測結果也顯示在這兩年的期間內共有8,500個錯誤已經被修正。

此份報告並不針對單一軟體的檢測結果做出報告,僅針對全面性的數據做出報告分析。因為每個軟體的程式碼行數有很大的差距,所以此研究報告的指標是採用每一千行程式的錯誤數 (static analysis defect density,以下簡稱錯誤率)作為主要憑據。此數據由兩年前的0.3降到0.25,減少了約16%。當然並不是每個軟體都有相同的改進,有些軟體甚至出現該數據上升的情形。

此研究不但希望知道Open Source軟體在安全性的表現,更希望知道這些軟體是否持續改進其安全性,也因此才會維持長時間的研究計畫,並重複對單一軟體進行檢測。為了因應評定軟體持續改進的結果,該研究把這些軟體分成不同的rungs,其中目前已經有十一個軟體達到rung 2的等級,而且這些軟體的檢測結果也被簡單的列在該網站的網頁上。這些軟體包含Amanda、NTP、OpenPAM、OpenVPN、Overdoes、Perl、PHP、Postfix、Python、Samba與TCL。

報告中並將所有檢測出的錯誤做出分類排行,發現錯誤類型的分佈極不平均。其中前兩名是Null Pointer Dereference與Resource Leak,而且比例就佔了所有檢測出的錯誤一半以上(53.68%)。

此外,此份報告的結果也顯示出Function的長度與軟體整體的錯誤率並沒有任何關聯,這與我們一般的認知並不相同。不過報告也特別提出,因為此份報告並沒有分析Function的長度與Function自身的錯誤率的關係,所以並無法完全肯定Function長度與錯誤率的真正關係。而且此研究使用之方法主要為靜態程式碼分析,還有其他錯誤需要用其他的方式才能檢測出來。另外就是較長的程式碼通常比較難加以維護,這部分也是此份報告沒有加以評估與分析的。

最後,對於大家常討論的Open Source與商業軟體程式碼安全性的比較,在這篇報告中也因為研究計劃定位與商業機密的問題,並不予以討論。

有興趣的人可以下載完整的報告進一步加以了解。

完整報告:
Coverity White Paper: Scan Open Source Report 2008

2008年5月18日 星期日

你會是下一條大魚嗎? - 偽裝成Google AdSense的釣魚信件實例說明

釣魚攻擊 (Phishing) 簡單來說,就是假冒成你所信任的網站,對你進行詐欺的動作。釣魚攻擊的管道有很多,最常見的方式就是透過電子郵件 (E-mail)。此外透過即時通訊 (Instant Messaging)與電話也是可能的方式。釣魚攻擊已經成為近幾年主要的攻擊行為之一,對於攻擊者來說,效果也通常不錯。
因為釣魚攻擊主要透過網站(網路)透過進行詐欺的行為,因此有不少的產品針對這些特性希望提供避免使用者遭受釣魚攻擊的保護。但是儘管這類工具可以提供基本的保護,但是要完全防堵這類攻擊卻是不足的。
其中最主要的原因在於釣魚攻擊屬於社交工程 (Social Engineering) 的攻擊手法之一。社交工程的攻擊手法就是針對人性的弱點加以利用,以達到遂行者的目的。這部分的問題除了透過使用者自我警覺外,任何外界的機制都是很難有效預防的。除此之外就是網路上缺乏一般人夠容易使用並確認的認證機制,所以大家只能相信眼睛所看到資訊來判斷對方的身分。再加上網路的交易行為越來愈多樣化,除了透過瀏覽器外,可能也包含了其他的交易方式,更是加深了判斷與防堵的難度。

前幾天我收到一封自稱Google寄來的信件,因為我剛好正在申請Google的服務,剛看到標題時還以為應該是回覆的信件。正想要進一步觀看內容時就發現這是一封釣魚攻擊的信件,躲過了我成為釣魚者名單內下一條大魚。以下提供一些方式給大家參考 (請參見附圖):
1. 如果你的收信軟體有提供釣魚攻擊相關的提示,這是很重要的一個判斷依據。
2. 這封信的收件者是我們部門的別名,而不是我個人的信箱。除非有人故意惡作劇,不然應該不會用這個電子郵件去申請服務。
3. 打開信件完整標頭可以看到真正的回信電子郵件信箱與畫面顯示不同,而且該回信電子郵件信箱還是Google的競爭對手之一。
4. 信件傳送路徑同樣經由Google的競爭對手還有另外一家名稱怪異的公司。如果你對這個網域不熟悉,可以透過whois服務查出註冊該網域的公司名稱。其實還有其他信件標頭欄位可以看出部分端倪,不過因為這對於一般人來說並不容易判斷,而且效果也不是最直接,所以其他欄位有需要再參考即可。
5. 最重要的指標就是實際導向的網址。雖然畫面上顯示是adwords.google.com,但是實際上連結的是www.adwords.google.com.foii0ls.cn。如果你的收信軟體沒辦法像我使用的軟體在滑鼠移到連結上就顯示真正的路徑,你可以透過觀看原始碼的方式或是在點選後再次確認該網址是否正常。老實說,這個網址算是很差的偽裝。有些比較好的偽裝就是把英文的l改成數字1,或是把英文O改成數字0,企圖混淆使用者的眼睛。針對此問題一般的建議是不要使用電子郵件內的連結,而是透過自己平常使用的路徑當作入口再進入該項服務。

這個例子只是提供大家一個參考的方向。因為詐騙沒有一定的手法,而且技巧只會越來越先進與多樣化,所以最佳的保護方法還是提高自己的警覺性,以免成為別人網中的大魚。

2008年5月15日 星期四

出門前請記得刮自己的鬍子 - 談精誠網站遭植入惡意連結

如果要我說對於資訊業界接觸以來感受到最矛盾的事情,其中首先浮現的就是資訊公司本身的資訊化程度通常都不高,至少不比他自己的客戶高。

資訊公司的業務在客戶那邊,往往把自己的產品說的多神奇,似乎用了他的產品就等於上了天堂。但是如果你夠聰明,你可以問他,他自己的公司有用這個產品,又從這個產品得到甚麼效益?當然不是所有的產品都適合廠商自己使用,但是我相信可以適用的產品也不在少數。但是事實卻是,很多廠商自己根本不使用自己銷售的產品,能夠在公司擺個固定的機器測試已經算是不錯了。有些可能只是有需要的時候才測一下,至於甚麼時候叫有需要,大家就心照不宣了。
那麼原因在哪?我想原因可能很多,最重要的原因可能是因為賣產品給自己的公司沒有業績,所以誰要做白工?那麼公司管理階層難道不知道用了自己的產品可以上天堂嗎?也許他們知道吧,不過他們倒是抱著我不入地獄誰入地獄的心態在服務客戶,真是佛心來的。

所以囉,就發生了資安業界的龍頭,儘管自己公司代理了有關網站與程式安全的檢查工具,仍舊無法避免自己的網站發生了XSS (Cross-Site Scripting) 的漏洞。該篇報導說這是很諷刺的事情,我倒覺得這其實很可笑。因為XSS浮出檯面已有數年的時間,這幾年更是最主要的攻擊方式,再加上自己的公司既然都已經銷售相關的產品,難道連該掃一下自己公司的網站都不知道嗎?解釋是,因為程式是好幾年前開發的,而且銷售該類產品屬於其他部門...好吧,一家公司要大到心臟跟腦袋分開也不是那麼容易的。

不過我也不會太過苛責這家公司,因為畢竟他們不是第一個,也不會是最後一個。更何況連國際大廠也是會出紕漏,所以大家就將就著用吧。只不過下次當你的廠商再跟你推銷產品時,別忘了問他們公司自己使用的感覺如何啊。不過更別忘了,很多業務是舌燦蓮花的,所以答案可不可信,就憑你自己的判斷了。

P.S. Application Security 確是目前重要的資訊安全問題之一,不過在台灣還是過冷,而且還多是停留在銷售產品,可惜了啊。

原文出處:
精誠資訊網站傳漏洞 遭植入惡意連結

2008年5月13日 星期二

讓我們為棄暗投明的蠕蟲喝采 - 利用蠕蟲散布軟體的更新程式

在電腦界,有兩種蟲是大家比較熟悉的。這兩種蟲雖然出現在不同的地方,不過基本上都是受人厭惡的害蟲。其中一個是臭蟲(Bugs),通常指的是軟體的錯誤。另一個算是今天的主角,就是蠕蟲(Worms)。蠕蟲屬於惡意程式(Malwares)的一種,跟病毒一樣是歷史悠久的前輩。有些人會稱蠕蟲為蠕蟲病毒,基本上這是一個不準確的稱法。病毒與蠕蟲並不一樣,其中主要的差別點在於蠕蟲可以自行複製,而不需要依賴錯誤的(人為)操作行為。另一個差別則是在於蠕蟲並不需要依附在其他的檔案下,而病毒必須要依附在其他檔案下。一般病毒通常是感染執行檔,不過也有會感染其他檔案格式的病毒。

基本上,蟲本身並沒有所謂的好壞,只是針對人類本身的利益當作判斷的出發點。所以自然界有所謂的害蟲,也有所謂的益蟲。那麼在電腦界,蠕蟲除了用來散佈這些帶有惡意行為的程式外,應該也可以做些有益的事情。所以微軟(Microsoft)的研究家們,希望利用蠕蟲的特性,來達到產品更新的目的。相較於傳統利用中央控管的更新方式,透過蠕蟲散佈的自動化更新可以達到更快速且避免造成伺服器效能瓶頸的優點。但是因為一般蠕蟲在散佈時容易造成網路的雍塞,所以必須透過一些更聰明的方式,來找到需要更新的設備,且同時避免造成網路過大的負擔。這個研究除了上述的主要目的外,也希望透過這個研究找出新一代(惡意)蠕蟲擴散的方式,並找出有效的防治之法。因為新一代的蠕蟲為了更有效的擴散,必然也會朝著減少網路負擔的方式加以改進,以期有效避免被其他安全機制所發現。希望這個一石二鳥的計畫能夠成功,也讓大家從此不再需要聞蟲色變了。

原文出處:
Friendly 'worms' could spread software fixes

2008年5月9日 星期五

硬碟加密技術只不過是另外一個玩具!? - 利用記憶體資料殘存特性破解硬碟加密技術

隨著電腦使用越來越方便,越來越多人把個人重要資料存放在電腦硬碟中。前一陣子吵得沸沸揚揚的陳X希事件,就是一個個人機密資料外洩的受害案例。對個人用戶,機密資料外洩可能就是躲一陣子了事。但是對於企業用戶,事情可能就不是那麼簡單了,嚴重的話,可能連公司都不夠賠。筆記型電腦、USB隨身碟,這些產品使得這類問題更加難以管理。筆記型電腦與USB隨身碟失竊的機會相當高,連帶也使得存在其內的資料受到威脅。現在有一些較高級的商業筆記型電腦配備生物辨識系統,必須原主人才能開機,就是為了避免設備失竊而使得資料遭受濫用。如果電腦本身沒有備配生物辨識系統,一般比較簡單的做法就是採用硬碟加密(透過作業系統或3rd Party的軟體)的技術,將資料經過加密後才存在硬碟內,如此可避免其他人經由非正常管道取得原始的檔案內容。這類的產品很多,也各有不同的訴求重點,不過一個大家共有的訴求重點就是使用更安全的加密演算法。不過學過密碼學的人應該都知道,目前這些常用的演算法,其實最不安全的項目之一就是Key值。只要Key值被取得,甚麼演算法也是沒用。就像你家的門鎖裝的再高級,如果鑰匙被小偷拿到了,除非有其他的安全機制,不然就等於把全家送給小偷了。所以這些廠商應該很小心的保護這些演算法所使用的Key值嗎?嗯...答案似乎是令人失望的。

根據普林斯頓 (Princeton) 一群研究家的研究結果顯示,可以透過讀取記憶體內殘存的Key值,成功破解加密軟體。因為記憶體在斷電之後,裡面的資料並不是隨即消失,而是大約在數秒的時間內漸漸消散。如果將記憶體加以冷卻,資料保留的時間可以更長,也讓有心者有更多的時間取得存放在記憶體內的Key值。這個現象在資訊安全的領域中叫做"Data remanence",大家比較常聽到的應該是硬碟內的檔案內容在檔案刪除後依舊有可能被讀取(即使把磁軌覆寫,仍舊有可能被讀取到原始的內容)。其他包含磁帶、光碟片、磁片等許多記憶性的儲存設備都有這樣的問題。只不過記憶體內資料保留的時間相當短,所以平常較不為人所知。

發生這樣事情的原因,可能有很多個。一個比較有可能的原因是,開發軟體的人並不知道這樣的現象,畢竟資訊人員不是電腦知識的百科全書,更何況這個情況牽扯到了整個電腦執行環境安全的相關議題。另外一個原因是即使廠商知道了這個問題,可能也想不出甚麼好的解法,只好當作不知道或是祈禱在被發現前可以找到有效的解法。後者在業界應該也是蠻常發生的。其實本來就沒有一個安全機制是沒有弱點的,但是如果花了大錢的結果,卻是不堪一擊,那可是令人不勝唏噓啊。對使用者而言,不要完全信賴任何一個安全機制,或許是目前可以常保數位資料平安的不二法門。

原文出處:
Cold boot disk encryption attack is shockingly effective

2008年5月8日 星期四

吃荷包蛋算甚麼,多人泡湯才夠夯。 - IBM利用資料中心排放的熱能加熱游泳池

記得在很久很久以前(其實也才差不多10年前左右,只是人云:『人間一年過,dotCOM已數載。』所以對我來說已經是好幾十年前的事了),就是AMD剛推出CPU不久的時候,Intel與AMD兩家廠商為了拼效能,所以不斷提高CPU內部的運作時脈(也就是這時候開始有了倍頻的技術),但是在散熱技術沒有同時進化的情況下,當時CPU的溫度可說就像去年中的股市一樣,一發不可收拾。也就是在那個時候,聽說有人在CPU上面成功的煎出了荷包蛋。老實說,對此我半信半疑,因為溫度雖然夠高,但是直接把生雞蛋"淋"到CPU上面,電腦大概不死也半條命了。當然用個容器裝起來煎倒是有可能,只是因為當時電腦可是高價品,我實在沒有自行嘗試的勇氣。

時光飛逝,雖然電腦設備所散發出來的熱量不斷創高,但是因為散熱技術的演進,所以兩者也就暫時相安於尷尬的平衡下。不過這幾年環保與節能的意識抬頭,再加上能源費用不斷飆漲,使得資訊業者也吹起了綠能風。小到IC,中到硬碟、CPU,再到單一電腦設備,無一不朝更有效率的利用能源著手。除了這些"小東西",用來擺放這些"小東西"的機房,當然也不能置身事外。機房本身擺放的設備就散發出不少熱量,再加上機房都有一定的操作溫度(每個機房不太一樣,不過一般都在攝氏20度出頭),所以機房內的冷氣可是一個吃錢的大戶。也因為如此,能夠有效減低熱量與散熱就是很重要的一件事(對地球...還有對股東)。講那麼多,今天的重點就是在蘇黎世(Zurich)有一家叫GIB-Services的公司與IBM合作,將資料中心內的熱能所加熱過的水導入游泳池,變成了溫水游泳池!老實說,這東西的技術能力對這些公司來說應該不高,但是拖了這麼多年才有人開始去做,是環保?還是為了商業利益?當然以目前來看,兩者能夠雙贏也是美事一件,只是身為IT業界的龍頭,是不是可以更早就發現自身對於環境的義務,在環境尚未遭受過多破壞之前就加以防範?

台灣的電腦密度這麼高,再加上台灣人喜歡泡湯更甚於溫水游泳池,所以或許哪天我們也可以享用資料中心提供的溫泉與美食(不過會不會有輻射的問題??)。

原文出處:
Datacentre used to heat swimming pool

2008年5月6日 星期二

資訊安全是一場笑話? - Security榮登有史以來最失敗技術的榜首

前幾天不小心瞄到一篇文章,標題是"Tech's all-time top 25 flops" (有史以來最失敗的25項技術 )。第25名是PS/2。注意是PS/2,而不是PS2!PS/2是一種電腦系統,不過後來大家比較熟悉的是其定義的介面。幾年前還有一些PS/2介面的鍵盤跟滑鼠,只是現在大概都改用USB介面了吧。
文章很長,一時好奇心起想看看第一名是甚麼東西(其實是英文不太好)。不看還好,一看真的倒吸一口氣,竟然是"Security"!作者的解釋是因為自從有電腦以來,雖然大家不斷試著改善安全的問題,但是安全的問題卻只是越來越嚴重,所以相信電腦可以安全加以使用是一件不切實際的事情。他的建議就是面對電腦是不安全的這件事吧。(原文為Now that we've built a digital world on an insecure foundation, the solutions for security are really hard – maybe too hard. We may just need to live with the fact that computer technology is largely unsecure, so caveat utilisator.)

身為資訊安全專家,怎麼可能忍受這樣的論點。其實對於安全,本來就是一件無法完全達成的任務。就像政府有再好的執法系統,也不可能完全消滅犯罪行為。但也不能因為無法消滅犯罪行為,就完全捨棄執法系統。事實上,安全本來就不是也無法達成完全的安全,只能盡量依據各種不同的環境需求去達成可以接受的安全防護等級。所以重點在於目前的安全防護對個人/組織是否足夠,又應該如何加以不斷改進與因應新的安全威脅。各位可以自行想想看,如果你正在使用的電腦連防毒軟體都沒有,你敢上網嗎?

大約在10年前,我看過一句話"Security is not a destination, but the journey",這句話正可以很明白的點示出安全本身就是一個不斷演化的過程。所以我要說的是"資訊安全不是一場笑話,至少目前還不是。"

原文出處:
Tech's all-time top 25 flops

About