压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

應用程序安全漏洞已成軟件應用大威脅

  天下沒有完美的事物,軟件會有bug,就跟一般人會說錯話、寫錯字一樣,在所難免。然而,隨著當前行動應用與大數據技術蓬勃發展,我們對于應用程序與云端服務的依賴程度日漸提升,對于系統的可靠度與軟件質量的要求也連帶水漲船高。

  不論是硬件或硬件的因素,系統只要出一次包,就可能影響成千上萬使用者。不過,若是一般的硬設備故障或網絡服務停擺,我們尚且能搭配各種高可用性與備援機制,將受影響的程度降至最低,但其中執行的程序一旦有功能性的失誤,甚至有安全漏洞,想要修正就沒那么簡單,因為可能要先找到問題所在的程序原始碼、提出解決方法、重新發布調整過的程序或安裝修補程序,甚至有時必須要先讓應用系統脫機,才能套用修正的方式,若是牽涉到服務器端與客戶端程序或設定的重新部署,來來回回之間,往往又要耗費許多時間和人力進行。

  對于軟件質量的判斷,通常我們分為功能性與安全性等兩大層面,一般應用程序或系統上線之前,多多少少都會檢核程序是否符合這兩種性質的需求,但比較偏重功能性的驗證,因為要判斷程序執行時是否能滿足需求,相對容易,至于安全性的部份,若開發時沒有考慮到功能遭到濫用的可能性,而刻意限縮特定程序執行的條件,之后若被人發現有這樣的漏洞,可能會讓人乘虛而入。

  軟件重大安全漏洞越演越烈

  對許多it人員來說,持續關注系統資安弱點信息、定期執行漏洞修補,已經成為例行公事之一。從2001到2003年之間,開始有許多惡意軟件利用windows、ie、outlook express、outlook的安全性弱點發動攻擊,肆虐全球個人計算機與服務器,像是code red、nimda、blaster、sasser等蠕蟲,也是在那段時期,微軟強化了windows xp更新機制與系統防護,并決定在每月第二周的周二定期發布系統更新。

  除了微軟,在個人計算機使用率相當高的數字內容格式adobe pdf和flash在2009年之后,也因為漏洞而頻頻遭到攻擊,到了2012年、2013年,java成為新的苦主,2013年1月,美國國土安全部計算機緊急應變小組甚至呼吁使用者,在甲骨文公司推出穩定java版本前,應繼續停用瀏覽器上的java功能,然而在2月時,幾家知名的網站和it公司也都紛紛中招,包括推特(twitter)、臉書(facebook)、蘋果和微軟都宣布內部計算機因此遭駭的狀況。

  到了今年4月,提供ssl/tls加密傳輸功能的開放源碼套件openssl,發布heartbleed臭蟲的重大安全通告,這套應用上相當普及的函式庫,在tls/dtls 傳輸安全層的heartbeat(心跳)擴充功能之中,有程序臭蟲,若該漏洞遭黑客利用來發動攻擊,會造成內存存放數據外泄,有可能從服務器端外泄到客戶端,或者由客戶端外泄到服務器端。

  受到該漏洞影響的openssl版本,包含1.0.1到1.0.1f,以及1.0.2-beta,而目前有許多linux和freebsd操作系統都內建openssl,這些版本的openssl已整合其中,因此debian、ubuntu、centos、fedora、openbsd、freebsd及netbsd當中一些版本,也都遭到波及。此外,因為許多系統與軟硬件產品也采用openssl,或是內建整合openssl的軟件平臺,例如開源的網站服務器平臺apache和nginx,所以牽涉到的范圍更廣泛。

  例如,就連google、amazon的網站服務,以及cisco、juniper的網絡設備都深陷安全漏洞的風暴,還有vmware的虛擬化平臺與管理軟件、mysql、mariadb和postgresql等數據庫系統,以及symantec、mcafee、kaspersky、f-secure、sophos旗下一些資安軟件的特定版本,也受到影響。

  由上面的例子來看,應用程序的安全漏洞所引發的效應越來越大,而且日益復雜,要在短時間內修復,都需要時間,所牽涉到的軟件性質也日益多元化──從一開始針對個人端計算機的微軟windows操作系統、ie瀏覽器與office應用程序,以及pdf、flash及java,現在許多網站服務器、云端服務運作時所仰賴的重要組件,也被踢爆有軟件安全漏洞的問題,除了事后要有完善的機制,盡速亡羊補牢,更重要的是記取教訓,做到事前預防,才能夠降低漏洞出現的機率,連帶地,后續黑客如果想要用漏洞來發動攻擊,也會越來越困難。但若要達到這樣的目標,從軟件還沒有釋出、正式上線之前的開發過程中,就要采取對應的作法,目前像是微軟、adobe、cisco等公司,都已經發展或導入了所謂的軟件安全開發生命周期(security development lifecycle,sdlc),由于安全性也是軟件質量的一部分,因此,通常都會透過測試的方式,在軟件正式發布前,執行相關的功能與安全性檢驗。

  行動裝置成為市場寵兒,也成為惡意軟件橫行的新戰場

  除了個人計算機和服務器端會有應用程序安全漏洞,行動裝置的操作系統平臺和app也都是由開發人員所寫出來的軟件,同樣不可能做到100%無漏洞,而兩個主要平臺android和ios,當然也是有心人士鎖定的目標。

  以市占比例最大的android裝置數量來說,市調分析機構gartner和idc均預測今年底將突破10億個,因為太過普及,所以,在這個平臺所發展的惡意、高風險或擾人app也是最多。根據趨勢科技全球技術支持與研發中心所發布的《2013年trendlabs信息安全總評》來看,2013年底已累積140萬個,單就2013這一年就出現了1百萬個新的app威脅,2014年底預估將突破300萬個,不過在趨勢科技最新公布的《2014年第一季trendlabs信息安全總評》當中,他們發現相關的app威脅現在就已經突破2百萬個。

  除了app威脅,過去我們所熟悉的網絡釣魚網站、垃圾郵件詐騙威脅,行動裝置同樣會面臨,值得注意的是,針對行動裝置平臺的漏洞攻擊也開始增多,例如去年android平臺爆出masterkey漏洞(cve-2013-4787),已經安裝的正常app可能在不知情的狀況下被偷換成惡意軟件;另一個攻擊是叫做backdoor.androidos.obad的惡意軟件,運用類似后門程序與rootkits的手法,透過操作系統漏洞──root與裝置管理者的權限,取得整臺android裝置的權限;而蘋果的行動裝置平臺ios6也傳出安全漏洞,若iphone或ipad接上黑客所改造、特制的充電座,這個弱點將會授與對方完整存取這個設備的權限。

  有些漏洞則可以影響任何行動裝置操作系統平臺,因為問題出在跟所連接的周邊裝置有關,例如行動裝置搭配的sim卡,當中所采用的舊型加密系統有程序臭蟲,黑客只需傳送sms簡訊到這臺裝置,即可觸發裝置錯誤,進而釋出56位長度的安全密鑰,而這把密鑰可以觸發下載惡意的java applet,以便散播簡訊和位置監控等惡意行為。

  到了今年3月,趨勢科技發現了一個針對android 4.0以上版本的系統漏洞,它要是遭到有心人士濫用,可能會造成系統不斷重新啟動的狀態,如此等于讓行動裝置應提供的各種功能處于失效狀態,無法操作、通話。同月,又出現了另一個自定權限漏洞,它讓app能夠讀取其他app所保護的數據,而這可能會導致機密外泄。

  ios和mac os x今年初也出現安全漏洞cve-2014-1266,這是跟ssl/tls加密聯機有關的弱點,攻擊者可能擷取或修改聯機過程中所傳輸的數據,問題在于傳輸時并未驗證聯機的真實性。若未修補這項漏洞,蘋果的行動裝置在連上因特網時,有可能因此受到監聽及聯機挾持。

  該漏洞影響的操作系統版本算是不少,包括ios 6到6.1.4、ios 7到7.0.5、mac os x 10.9和10.9.1,以及apple tv 6.0和6.0.1。后來,蘋果為此陸續發出ios 7.0.6、mac os x 10.9.2和apple tv6.0.2的安全更新檔。

  程序代碼少了括號,系統安全性竟然就破功?

  從上述來看,應用程序的安全漏洞太多了,從個人計算機、服務器,現在連云端服務、行動裝置也都遭殃,簡直是野火燒不盡,春風吹又生,然而真的每一個問題都無法事先預防嗎?不能在軟件開發的過程中,就及早發現問題并解決掉嗎?

  其實這是可以做到的,有的程序臭蟲之所以產生,甚至只是因為一些小疏忽所造成,前面提到的ios和mac os x漏洞cve-2014-1266,就是典型的例子,一些專家追本溯源后發現,原本的程序代碼只是少了一個括號,若加上去,程序運作就安全了。

  這個操作系統的安全性弱點很特別,很多人都叫它「goto fail」漏洞,因為,關鍵在這兩種操作系統數據安全組件securetransport安全傳輸功能的sslkeyexchange.c程序代碼當中,一支sslverifysignedserverkeyexchange函式寫錯了,里面有兩行的goto fail敘述緊接著執行,第一個goto fail是正確的,它對應到if敘述,但第二個goto fail就不是條件式,不論前面的if條件式是否成立,程序代碼總是會執行到第二個goto fail,也就是回傳err,而且也不會執行sslrawverify函式。

  接下來會發生什么事?google資深軟件工程師adam langley在他的部落格《imperialviolet》上,透過〈apple's ssl/tls bug〉這篇文章,提出了進一步解釋。他認為,這里的err將會包含1個值,因為sha1更新作業會順利完成,所以,驗證簽署的作業永遠不會失敗。

  此外,這個驗證簽署的作業會檢查serverkey exchange傳輸訊息的簽名,這會用在dhe和ecdhe的ciphersuites加密演算集,讓聯機能與臨時密鑰(ephemeral key)溝通,服務器可以藉由自身憑證的暫時密鑰和簽署,讓客戶端知道聯機是從這邊而來的。然而,如果臨時密鑰和憑證煉(certificate chain)之間的連結斷了,一切的驗證和信任關系將會面臨崩壞。因為,在這樣的環境下,服務器端有可能送出一個正確的憑證煉給客戶端,卻是以錯誤的私鑰來簽署交握,或者根本就不用簽署就可驗證聯機,服務器無法證明它的憑證里面擁有與公鑰匹配的私鑰。

  基本上,這個安全漏洞會影響任何使用securetransport的系統,但不包括chrome和firefox,因為它們都使用nss for ssl/tls,然而,這意義不大,因為更底層的操作系統軟件更新機制仍然是用securetransport來進行。同時,這個程序臭蟲,也會影響任何使用dhe或ecdhe的cipher suites加密算法的站臺。

  該漏洞倒是不會影響tls 1.2,因為在當中負責驗證serverkeyexchange訊息的函式是不同的,然而,為了讓客戶端能接受該訊息,攻擊者還是可以自行挑選任何的tls版本。一旦客戶端只啟用tls 1.2,就會解決這個問題,同樣地,如果客戶端只選擇完全以簡單的rsa演算集,也就等于沒有進行serverkeyexchange的作業,此時,也可以解決該漏洞。

  這類的臭蟲一旦出現,要如何偵測出來呢?adam langley說,若在蘋果的軟件開發工具平臺xcode編譯這段程序代碼時,可以加上-wall的參數來啟用所有警示,可以隱約看見出問題的程序代碼段落(即便不是使用2013年發布的gcc 4.8.2或clang 3.3)。因此,他認為若有更明顯的警示,將有助于及時發現這個問題,但這么一來,對于整體程序代碼也會產生誤報率太高的狀況。

  相較于每隔一陣子就撲天蓋地而來的各種應用程序安全漏洞信息,蘋果爆出這個嚴重危害ssl安全傳輸功能的操作系統漏洞,雖然只是滄海一粟,乍看之下,它似乎是個離譜的微小錯誤,卻能讓網絡傳輸不再安全,同時,這個紕漏可能有許多開發人員就算用人工方式逐行檢查,未必能一眼識出,而且,就算透過整合式開發工具,或是程序代碼安全檢測工具,也不一定能偵測出來。

  此外,也幸好有蘋果愿意開放部分版本的系統程序代碼,還有發掘出該問題的資安專家,外界才有機會更全面地了解這樣的問題何以發生,并進行充分的討論,從而學到教訓,不再重蹈覆轍。雖然類似這樣的漏洞、甚至更難以發現的漏洞,未來可能還是會出現,但認真研究過這種問題的開發人員,想必將更有機會消弭掉這類漏洞。

  除此之外,我們也必須意識到應用程序漏洞遭到濫用的方式,也在轉變。

  例如,讓許多網站管理者都相當頭痛的目標式攻擊,黑客通常會設法尋找、利用網站的漏洞,以便取得系統控制權,并在站內植入惡意軟件,以便感染瀏覽網站的用戶計算機。

  而根據賽門鐵克4月發布的最近一期全球網絡安全威脅研究報告(internet security threat report,istr),就2013這一整年而言,最常被有心人士利用的網站弱點是ssl與tls網絡安全傳輸協議的會談重建程序漏洞(ssl and tls protocol renogotiation),這幾年以來,有不少攻擊事件都跟這有關,例如diginotar的數字證書外泄、beast攻擊(browser exploit against ssl/tls attack)、ssl會談重建程序攻擊(ssl renegotiation attack)、crime攻擊,以及lucky 13攻擊。

  這跟今年爆出的ios、mac os x的ssl漏洞,以及openssl的heartbleed漏洞陸續被揭露,似乎都有一些關聯性,這樣的發展趨勢,軟件開發人員和資安人員需多加留意。

上一篇:智能無懼挑戰 山石網科轟動RSA2015

下一篇:國產軟件系列研究:大型企業最擔心信息安全