「安卓(Android)被曝植入稜鏡代碼」可信度如何?如果是真的,這段代碼能做什麼?

近日,一向宣稱自己「不作惡」的谷歌,依據《外國情報監控法》向法院提請披露更多有關政府數據請求的信息,諷刺的是,來自美國國家安全局(NSA)的程序員,已經將一段NSA所編寫的代碼提交給谷歌,並且放入了其移動操作系統――安卓。 via 安卓被曝植入稜鏡 三星HTC等手機都被監控


首先 Android 是開源的,開發者可以做出自己的貢獻,提供代碼,改善項目。但與此同時,每一條代碼都是公開的,可以 review 的。,所以有了下面的事情:

NSA programmers are now refining code that Google has approved for the company』s mobile operating system, Android. Google spokeswoman Gina Scigliano confirms that the company has already inserted some of the NSA』s programming in Android OS.

但仍然需要再一次強調,代碼 and contributors 的身份都是公開的,代碼要經過社區 review,才會被通過:

「All Android code and contributors are publicly available for review at source.android.com,」 Scigliano says, declining to comment further.

如上面引用的內容所說 NSA 的程序員提交了他們的代碼,Google 通過了,這一段代碼會被應用到所有的新版本 Android 手機上。而問題的關鍵是,這些代碼有問題嗎?

NSA officials say their code, known as Security Enhancements for Android, isolates apps to prevent hackers and marketers from gaining access to personal or corporate data stored on a device. Eventually all new phones, tablets, televisions, cars, and other devices that rely on Android will include NSA code, agency spokeswoman Vanee』 Vines said in an e-mailed statement. NSA researcher Stephen Smalley, who works on the program, says, 「Our goal is to raise the bar in the security of commodity mobile devices.」

NSA 說他們這些代碼只是改善 Android 的安全機制。那事實如何?我傾向於認為如果這些代碼有問題,或者就已經有人指出問題在哪?那麼 NSA 程序員提交了哪些代碼是否才是我們更應該關心的?

石頭補充:

NSA提交的是SEAndroid的代碼,這本身就是SELinux在Android的實現,其目標是使得Android更加安全。今年Samsung新發布的Galaxy S4就是嵌入了SELinux,所以獲得美國國防部的認可,可以在軍隊使用。目前Android在商業應用面臨的最大問題就是因缺失強隔離和強制訪問導致的數據安全問題,而NSA這次提交的代碼正是解決這個問題的,其出發點也是為了保護本國的商業機密,附帶造福世界。

via http://www.businessweek.com/articles/2013-07-03/security-enhanced-android-nsa-edition#r=most%20popular


光明網的信息你也信?這段話基本上是一個外行在瞎寫。按文中的說明,「真實」的情況應該是這樣的

NSA程序員:哎,把這段代碼放到你們的操作系統里。

Google程序員:不行啊,咱們連介面都沒定義,你tm的還是用vb寫的。

NSA程序員:介面,你們自己改一改嘛,另外,老大說了,要實現不聯網也能監控上傳,這個交給你們了。

Google程序員:我艹,需求說明書有沒有,邊界定義不明確這怎麼寫?!

NSA程序員:光明網說你能寫...


能別扯了不?

安卓系統的源代碼本身相比 Windows 系統來說,是小得不能再小的一套代碼。

而這套代碼,從底到上已經被全球碼農研究得不能再透了,開源的安卓裡面若是有監控代碼,你是在侮辱全球程序員的智商。

所以說,Google 在開源 android 中植入稜鏡,這絕對不可能。

當然了,具體每個公司發布的手機,就未必清白,因為,他們自己可以植入一些東西,而那些東西對最終用戶並不是開源的,所以手機裡面植入稜鏡的可能性存在(雖然也未必真的有)。

另外,在 Android 手機中,通常可能帶有 Google 的 GMS 框架,這部分是閉源的,但 GMS 框架並不是 Android 系統的一部分。如果(僅僅是如果) Google 真想要植入監控,完全沒有必要在開源的 Android 系統中置入,而是在 GMS 框架中植入即可。

——所以簡單的說,在 Android 開源系統層面植入監控不可能,非常影響 Google 的公司形象,如果一定要植入,可能會是在 GMS 框架層面,而這嚴格的說來並不是 Android 系統的一部分,你編譯一個開源的 android 系統並不會含有這些代碼跟應用。


放心,在中國要過cta認證,國家有不成文的規定,必須要清除所有Google的默認應用,包括gmail,vending,talk,maps等等等,

其它地方都是開源的,基本不太可能埋這些東西,所以買國產的手機,都不會有這個問題;

另外,你用安卓的手機,你覺得還有什麼隱私么?

任何一個帶廣告的應用,只要你上網,幾乎都會上層你的位置信息,聯繫人信息,甚至應用信息;

沒有廣告的應用,很多也會上傳位置信息以及聯繫人信息,

你用安卓幾乎你就是裸體行走;

我是做安卓的,多年的,細節就不說了;

所以什麼稜鏡計劃,簡直就是弱爆了;


我覺得什麼稜鏡之類的,都沒有360上傳數據來的快而且準確啊


我覺得如果Android代碼中有上傳用戶信息的部分,commit上去24小時之內那個伺服器就被全世界的程序員DDOS了。


剛才在月光博客
月光博客的微博 新浪微博 上看到的:

IT新聞是這麼出來的:美國國安局的程序員將一段代碼提交給谷歌開源移動操作系統安卓-&>&>美國國安局曾經實施稜鏡計劃-&>&>安卓系統被曝植入稜鏡-&>&>全球3/4智能手機被美國國安局監控

謬讚了,還希望能通過傳送門去到月光大大的微博上點贊!


對於Android代碼的疑問,其實可以參考windows和linux系統。什麼「從底到上已經被全球碼農研究得不能再透了」實在nb得不能直視,也沒能力評價。單說linux系統里的RNG函數。

It"s worth noting that the maintainer of record (me) for the Linux RNG
quit the project about two years ago precisely because Linus decided to
include a patch from Intel to allow their unauditable RdRand to bypass
the entropy pool over my strenuous objections.
&>From a quick skim of current sources, much of that has recently been
rolled back (/dev/random, notably) but kernel-internal entropy users
like sequence numbers and address-space randomization appear to still be
exposed to raw RdRand output.
(And in the meantime, my distrust of Intel"s crypto has moved from
"standard professional paranoia" to "actual legitimate concern".)

原討論見鏈接:http://lists.randombit.net/pipermail/cryptography/2013-July/004728.html

不管是系統級別的功能,還是應用軟體加密解密時候需要用到的隨機數,都依賴強而可靠的演算法和硬體。稍微了解一點encryption應該知道randon number的重要性。如果NSA或者intel或者兩者聯手在RNG上做一點手腳,那就從底層(sha0/sha1/sha512/md5 .etc)繞過所有加密保護了,尤其網路通訊,毫無安全可言。任何密文在NSA面前就是白紙黑字的渣。

再說Microsoft,skype什麼的應該是婦孺皆知了,還不知道的話真對不起snowden。

_NSAKEY NSA key這段故事也比較有意思。

回頭說到Android,也許代碼量是比linux windows小很多,但是真有人能把它完全吃透。。。其實好像在討論不同層面的東西: 倒底是指 把源代碼從頭到尾 看 100遍甚至看1000遍,還是摸透主要功能函數的algorithm運行機理?如果是前者,那找個碼農甚至有興趣的中學生也能做得到,如果是後者,恐怕要依賴無數專精某一特定領域的人和團隊共同努力才能確保。

以上僅拼湊羅列點論據,既無實力也無時間論證細節,只想發表一點感慨:以為android 「從底到上已經被全球碼農研究得不能再透了」 就能高枕無憂,實在是讓人擔憂呀


嘖嘖嘖,2011年曾經流傳過FBI僱傭OpenBSD的IPSEC的開發人員,在OpenBSD的IPSEC實現中增加後門,現在又開始流傳稜鏡加入Android的新聞。雖然我本人內心深處也是支持一點點陰謀論的,但是將後門嵌入Android這樣的開源系統,無論是實施的風險(被開發人員拒絕並公開這種行為),隱藏秘密(代碼要足夠隱蔽,不被他人在閱讀的時候發現)的風險都是很大的。如果我是FBI,CIA,我手頭上有大把大把更好的方式來實現稜鏡的監控效果,我為何要選擇將後門嵌入Android的開源代碼這種愚蠢的方法?我相信想實施監控的高智商人群不至於這麼愚蠢吧。

對於2011年針對OpenBSD的流言,Update on the OpenBSD IPSEC backdoor allegation [LWN.net]已經做了很好的說明,可以終結了。而稜鏡的流言,我想不久之後也會歸於平靜。


不同意樓上兩位的說法……

他們把谷歌想的太好,也把安全想的太簡單了。

首先需要確定的是新聞的用詞的確可以斟酌一下,暗示性太強。

首先說說Google,那麼大一家公司,怎麼不可能和政府合作?其本身就對著數據有著強烈的需求,就拿Google map的街景車來說,一個公司收集各地各個wifi的密碼為了什麼?再退一步,光是收集了那麼多wifi ap的mac地址,以後針對目標的大致定位也是分分鐘的事情。說我yy的就當我yy吧。

再來討論下實際的……先說開源藏後門而不被發現的問題。Windows用的夠廣泛了吧?新版本的很多開發工作都是在國內完成,甚至其源碼還有幾家被授權的中國安全公司進行審計,發現後門了嗎?另一面,每周Windows總有那麼多的安全補丁在不停的升級,還是不停的爆出漏洞,你能確定哪些漏洞是無意,哪些是故意留下的?「故意留下的漏洞就是後門」。絕大多數的安卓開發者甚至連Linux的內核(我也不懂)都不懂,只會開發遊戲應用,你指望他們發現後門?指給他們看都看不懂。

然後關於稜鏡,或者說監控。大家把這個想的太簡單了,覺得監控就是看你的通話記錄,看你的郵件,看你的xxx。這些是監控的基礎,對於政府而言是很容易做到。難處是在海量數據的面前,如何高效的識別處理,如何開創性的來應用這些數據發現原來發現不了的東西。僅僅打個比方,某兩個月,西部某地菜刀等刀具賣的很好……這些公開的數據可能在有些人眼裡就是渣,但是串聯起來……更何況稜鏡把公開,不公開的信息都整合了,這才是可怕的……

綜合這些我的理解,nas或者美國政府授意Google在andriod里添加某些功能的代碼是十分可能的。也許和大家想的直接添加選控,添加讓手機爆炸的後門不同。更可能是在某些條件下默默收集些半公開的信息作為監控源的一部分,發揮某些作用吧。

其他可能性的等有時間了在補充吧……

最後借用安全圈裡非黑產的一句話,現在做it但是不了解安全卻覺得自己已經懂安全的「專業」人員,比不懂安全的普通人危害更大……

_____

吃午飯補充一下

看了評論,越來越理解了最後一句話……普及安全,尤其是向it資深人士普及安全任重道遠……因為太多的東西不能講深,講深了,估計就刪帖了……

那些還在讀書,學過一些滲透寫過一些工具的孩子們,攻防不僅僅在線上,還有線下。如何用自己的技術作為一部分堅實的基礎來好好的把線上線下的hacking結合起來,是你們需要好好思考的。

那些搞it的,要把握住不同環境中真正的攻防需求,別總以為安全(尤其是國家層面)是技術問題,其實更是管理和運維,合理分析需求,恰當利用調度各種資源,才是安全工作的核心。技術,只是墊腳石……

國內的安全基調是維穩,一切都是以防,管,控為主,對內大於對外。美國則是相反,外部威脅更多,所以攻擊為主,許多公開實施的手段已經武器化了,那些沒公開的呢?如果攻防不在一個維度上,那打起來連還手之力都沒有。很多專業人仍舊活在「大清」的維度里,唉……

本人滲透起家,嘗嘗單打獨鬥(所以窮),親手累計脫過過億的庫,也親自跟過各類**人士。與***,***,**,**合作,也做黑產多年。因為貪圖在各個國家玩樂與自由,所以始終不是「自己人」。但是沒吃過豬肉,總見過豬跑。本想在知乎普及點信息安全的理念,沒想到,呵呵……如果國內it行業始終抱著如此的想法,未來堪憂。

以上那段是本人在吹牛,不承擔任何責任與後果。


Android的代碼是開源的,但是build後的代碼與你手機上用的不是一樣的。而且,驅動部分也不是開源的。google花了大力氣繞過GPL協議,為了不就是保護閉源的代碼么。

植入代碼這件事情我認為是有可能的,並不奇怪。就如同印表機列印出來的紙會有密文,intel處理器有暗門一樣。

應該不是空穴來風。

作為企業,學會的很重要的事情就是與政府打交道,任何地方都是一樣的。不能說美國企業就一定不會屈服政府。


如果沒記錯的話,安卓是開源系統,也就是說谷歌把一段監視代碼放進去給全世界程序員看,非常牛逼的監視技術嗯


中國的媒體也就是畢業大學生的水平,一邊意淫一邊猜測,然後按照自己的想像寫成文字……順便一提,怕被監控的人你可以回憶一下這周你打的電話發的簡訊都是些多麼無聊的內容,你是奧巴馬你要這堆信息來有用嗎?


理論上 (只是理論上) 開源還是可以不知不覺地植入代碼的. 只是沒有那麼好操作就是. 詳見編譯器理論..


CPU都可以有後門,Android為什麼不能來一個?


首先是,google這麼干,然後呢?

證據呢?

就因為---

美國國安局的程序員將一段代碼提交給谷歌開源移動操作系統安卓-&>&>美國國安局曾經實施稜鏡計劃-&>&>安卓系統被曝植入稜鏡-&>&>全球3/4智能手機被美國國安局監控

那也成吧~~~~~~

你要明白相比這個,你在牆內的一切都是被記錄監控的,你需要知道誰在監控你嗎?

你會知道是誰嗎?

整一個這麼大的事情,無非就是 想要 google徹底滾粗, 還有蘋果滾粗~~

然後各種國產xx之流超級"系統"就該開始了~~


要是真植入了稜鏡代碼,會讓你那麼容易地發現嗎,你會仔細研究每個部分的代碼嗎。另外,即使源代碼不植入,還可以有別的途徑,請看Ken·Thompson的演講:ACM Classic: Reflections on Trusting Trust


推薦閱讀:

Android 中開關和複選框的區別是什麼?
Android新手看什麼書?
如何看待使用 native 開發 Android/iOS 跨平台應用?
(2013.12)最近需要購入一台筆記本,有高手給點好建議么?
作為一個個人android開發者,下面哪些能力是比較重要的?

TAG:Android開發 | 信息安全 | NSA |