qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Android平臺中的安全編程

           CERT安全編程團隊,隸屬于卡內基梅隆大學軟件工程學院,最近發布了Android平臺上Java應用的安全編程指南。
            CERT在該領域已經有所積累,并且在2013年發布CERT Java安全編程規范,后來出版Java編程指南:可靠安全編程的75條建議一書,該Android指南是對以上工作成果的拓展和延伸。所以,在新版Android編程規范和指南中,一部分是參照已有的Java規范指南,當然也少不了與Android相關,致力于解決移動相關問題的新規則。
            Lori Flynn是發起CERT Android編程規范和指南的研究人員之一,據她所說,“其他地方也存在這樣的Android安全編程建議,但是我們發現這些建議都不完整并且分散在網絡的各個角落。”CERT研究人員采用以下三種方式制定了新版Android編程規范與指南:
            挖掘CERT已有的安全編程規范;
            研究已有漏洞數據庫,包括國土安全部的國家漏洞數據庫等;
            研究目前與安全相關的文獻,比如,研究論文、在線文章以及安全會議演講等。
            所有規范和指南都可以在CERT Wiki上獲取。每條記錄以簡要概述開頭,然后描述此條規范所要解決的安全問題,并且包括違規代碼案例。Wiki中還提供了基于嚴重程度的評分、漏洞被惡意使用的可能性,以及如果在代碼中發現漏洞,修復漏洞的成本等。
            小編聯系了Lori Flynn,并針對CERT Android安全編程規范和指南采訪了她。Lori目前在CERT的工作不僅包括完善新版安全編程規范,還包括對移動應用進行組合性靜態分析,檢查是否符合Android平臺的數據流規則。她工作經歷豐富,包括網絡安全研究,基于標準的安全分析,以及合作開發了一種檢測多態程序的新型靜態分析方法,并且取得了專利。Flynn在圣克魯斯獲得了加利福尼亞大學的計算機科學博士學位,她的研究方向是移動自組網絡的安全多播路由協議。
            Lori,您能簡要介紹一下Android安全編程規范和指南的目標受眾有哪些嗎?
            我們制定的Android安全編程規范和指南目前主要面向使用Java語言的Android應用開發人員。但是,我們也在著手制定適用于基于底層(非Java)語言如C和C++所開發應用的安全規范。我們的目標是幫助開發人員構建可靠安全的系統,但是這些規范和指南對實現其他質量特性如可靠性也大有裨益。
            所有希望保護客戶系統免受危害的組織或個人,在其開發人員遵循規則和指南并產出安全代碼后,都會從中受益。金融、衛生和防御系統都必須小心保護其應用所處理的信息。有些應用處理的數據非常敏感——比如,用戶的信用卡信息、位置、短信、聯系方式和照片。除了對用戶造成潛在傷害外,非安全代碼可能會使處于金融風險中的開發人員走上法庭,也可能使整個公司失去公眾信任(和導致銷售損失),或導致困難局面,使給公眾造成不安全印象的單應用銷售乏力。
            總而言之,知曉Android安全編程規范和指南,不論對于大型組織還是獨立應用開發者都會有所幫助。軟件開發管理者、軟件需求方,或者其他軟件開發和需求專家可以將安全編程規范作為禁止性需求的參考。教育工作者也可以通過該指南教會學生安全開發Android應用的方法。
            據您所知,移動相關人員在碰到應用安全問題時面臨的主要挑戰是什么?在移動領域,您是否知道某些特定安全相關問題?
            除了已知的公認安全編程問題以及規范和指南給出的修復方法外,無法有效把控應用的數據去向也是我們面臨的挑戰之一。信息泄露如此泛濫,Android應用之間的相互影響是主要原因。我們目前正在研發靜態分析工具,用于檢測和消除這些漏洞。有了這些工具,用戶——包括個人和組織——將更有信心解決部分應用的數據泄露問題。然而,盡管我們目前的工作有效促進了安全分析的發展,但是還是無法解決底層代碼或反射面臨的安全問題。數據流安全問題同樣非常嚴重,所以有許多工業界和學術界的研究人員在這方面傾注心血。
            另一個問題是可用性。實際上在我們深入分析數據流時,應用需要給用戶展現對應選項,還得讓用戶(開發人員用戶排除在外)容易明白這些選項的意義。Adrienne Porter Felt(Google)已經發表了若干非常優秀的研究論文,分析了用戶界面安全問題并給出了修復建議。她的工作涉及面向開發人員的可用性問題,比如與權限相關的不恰當API,可能導致正常開發人員的權限過大,進而被惡意應用利用。
            Android安全還面臨另一個問題,在Google修復Android暴露的安全問題后,因為各種原因,移動運營商可能在很長時間后才將安全更新推送給用戶。這就導致在這段時間內,與應用相關的數據將面臨巨大的風險。
            遵循Android安全編程規范和指南,對應用有哪些好處?您有沒有這方面的案例,遵循指南后,應用能夠避免以前遇到的安全問題?
            如果我們能夠嚴格遵守Android安全編程規范和指南,數據和系統會更安全。舉個例子吧,DRD00-J禁止將敏感數據保存到SD卡中,因為其他應用可以讀取SD卡,DRD01-J限制內容提供者中敏感數據的權限等。Skype的Android應用曾經出現過一個漏洞,該應用將聯系信息和個人用戶信息保存在未加密數據庫中,并且沒有實施權限控制。如果應用遵守DRD01-J就可以避免該問題。
            為了改善語言的安全現狀,SCI(Secure Coding Initiative)發起了開發編程語言國際規范的工作。該規范致力于防范代碼漏洞,并充分利用在研發CERT安全編碼規范和一致性測試中所收集的信息。
            您對應用CERT安全編程規范和指南有哪些建議方法,工具、流程或其他方法都可以?感興趣的開發人員或組織要如何開始呢?
            我建議開發人員首先通讀我們的技術報告,移動源碼安全分析實驗室:Java和Android安全編程規則和分析,然后瀏覽Android安全編程首頁。我們打算創建單獨的CERT編程規范,就像其他CERT安全編程規范一樣可以通過CERT編程規范Wiki主頁訪問。該首頁概述了我們目前在研發Android安全編程規范方面的工作:分析(適用性)和擴展已有Java規范;分析(適用性)和擴展Java指南,雖然該指南還在制定過程中;制定面向Android的安全編程規范,但該規范并不一定只針對Java語言。查看出現在首頁中的三個主題鏈接,這是Android安全編程規范制定中的主要課題。
            接下來,我建議開發人員瀏覽一遍DRD規范和指南,并考慮如何將它們應用到應用編程中。然后,我建議大家閱讀Java CERT Oracle安全編程規范(Addison-Wesley Professional, 2011)中適用于Android的Java規范,包括Wiki,關注該書相關的主題。這些規則是安全應用必須遵守的,這也是將其放在指南前面的原因。讀完規則后,以同樣方式閱讀Java編程指南:可靠安全編程的75條建議(Addison-Wesley Professional,2013)。雖然我們不一定能夠立即將書中列出的規范和指南應用到工作中,但是這些知識精華會印入我們的腦海,當開發應用需要用到這些規范和指南時,我們可以再仔細查看。另外我們值得做的是訂閱安全編程簡報,LinkedIn上的安全編程討論,還有安全編程wiki中的提醒,當增加新規范和指南時會立即提醒。這些渠道有助于開發人員及時知曉安全方面的修復程序。
            您在Android安全編程規范方面的工作完成了嗎?或是您有沒有設想將來涉及其他領域?
            我們在Android安全編程指南方面的工作還在繼續。另一個我們特別想研究的領域是分析CERT安全編程指南在基于C和C++的Android應用中的適用性。我們已經有了初步的分析,但是要檢驗Android底層編程接口如何影響已有編程規則的適用性,還要付出更多努力。同時,我們也會完善應用于反射的初步規則和指南。
            你們的團隊還有其他類似的項目嗎?
            我們的CERT安全編程倡議(SCI)已經為C、C++、Java和Perl制定了安全編程規范,其中一些規范已經被像Cisco和Oracle這樣的企業在公司范圍內采用。我們鼓勵開發人員以及其他使用這些語言工作的組織使用我們的安全編程規范,這將會帶來諸多好處,就像使用Android安全編程規范和指南一樣。
            SCI的目標是將漏洞的數目降低到某個級別,有效緩解運營環境中的風險應用。該目標通過在實現和測試階段預防編程錯誤或檢測并清除安全缺陷來達成。同時,SCI也在持續壯大源碼分析實驗室(SCALe),支持根據我們的編程規范對系統進行一致性測試,包括針對移動平臺(Mobile SCALe)的一致性測試。移動SCALe目前專注于Android平臺,因為這是我們在制定安全編碼規范和指南時所面向的首個移動平臺。我們還計劃支持針對Apple iOS和Microsoft Windows 8的安全編程規范和一致性測試。

          posted on 2014-06-30 17:56 順其自然EVO 閱讀(156) 評論(0)  編輯  收藏 所屬分類: android

          <2014年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 绵竹市| 静海县| 合江县| 长顺县| 雷山县| 聂荣县| 武夷山市| 葵青区| 望城县| 华蓥市| 青冈县| 谷城县| 乌鲁木齐县| 镇巴县| 孟村| 瑞丽市| 门头沟区| 平安县| 册亨县| 松滋市| 红原县| 政和县| 顺昌县| 洪洞县| 贵德县| 金门县| 明星| 盈江县| 桦甸市| 绵竹市| 博客| 百色市| 屏东市| 长泰县| 新丰县| 晋州市| 佳木斯市| 新田县| 广水市| 攀枝花市| 西盟|