欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何在Linux中安插一個(gè)后門?

2021-02-25    分類: 網(wǎng)站建設(shè)

Linux內(nèi)核是開源的代碼,能不能向其中安插一個(gè)后門呢?這是一件難度很高的操作,但是有人卻差點(diǎn)兒成功了,我們來看看這是怎么回事。

時(shí)間回到2003年,當(dāng)時(shí)Linux內(nèi)核的代碼主倉庫保存在一個(gè)叫做BitKeeper的商業(yè)軟件中。如果想對(duì)Linux內(nèi)核代碼進(jìn)行修改的話,需要走一個(gè)審批流程,以此來確定這次更改能否被接受。每一次更改都有一個(gè)簡單的說明,其中包含一個(gè)指向?qū)徟涗浀逆溄印?/p>

但是有些人不喜歡BitKeeper(堂堂的Linux怎么能保存在閉源的商業(yè)軟件中??。?, 于是一個(gè)CVS(估計(jì)好多人都沒聽說過它了吧)被建立了起來,其中保存著從BitKeeper clone來的代碼, 這樣開發(fā)人員可以用開源的CVS來訪問Linux代碼。

2003年11月5號(hào),Larry McVoy 注意到了一件怪事,CVS中的一個(gè)代碼變更沒有包含審批記錄的鏈接, 這是怎么回事?

經(jīng)過一番調(diào)查發(fā)現(xiàn):從來沒有人批準(zhǔn)過這個(gè)代碼變更,奇怪的是,這個(gè)代碼變更并沒有出現(xiàn)在BitKeeper主倉庫中,原來是有人黑進(jìn)了CVS的服務(wù)器,偷偷插入了一段代碼。這段代碼到底做了什么事情呢?

這段代碼修改了一個(gè)叫做wait4的Linux函數(shù),程序可以使用wait4來等待一些事情的發(fā)生,這個(gè)代碼變更增加了這么兩行:

if ((options == (__WCLONE|__WALL)) && (current->uid = 0)) retval = -EINVAL;

(代碼可左右滑動(dòng),懂得C語言的同學(xué)可以思考下,這段代碼有什么不尋常的?)

粗一看這段代碼,就會(huì)覺得這沒啥?。坎痪褪亲鲆稽c(diǎn)條件檢查嗎,不滿足條件就返回錯(cuò)誤。

但是仔細(xì)看看就會(huì)發(fā)現(xiàn)事情不對(duì),第一行的最后, 有個(gè)"current->uid=0", 而不是 "current->uid == 0" 。

正常的寫法應(yīng)該是“==0”, 就是檢查當(dāng)前的用戶ID是不是0, 寫成“=0”就是把當(dāng)前用戶ID設(shè)置為0 , 而ID為0的用戶是"root" !

這就意味著,如果這段代碼被執(zhí)行,當(dāng)前用戶就會(huì)變成root,可以在系統(tǒng)中為所欲為!

這其實(shí)是個(gè)經(jīng)典的后門, 想象一個(gè),一個(gè)黑客在Linux運(yùn)行了一個(gè)程序,這個(gè)程序調(diào)用了wait4, 然后這個(gè)黑客突然間具備了root權(quán)限!

這個(gè)后門可是真夠聰明的,偽裝成了條件檢查,試圖蒙混過關(guān),如果一直沒人發(fā)現(xiàn)會(huì)怎么樣呢?

首先,后門存在CVS中,不在BitKeeper的主倉庫中,從BitKeeper 代碼庫Build出的Linux肯定沒問題, 但是如果有人從CVS代碼庫中build了Linux, 那就中招了。

其次,搞破壞的家伙可能有這樣的預(yù)期:有個(gè)被Linus Torvalds所信任的內(nèi)核開發(fā)者,他討厭BitKeeper,并且在使用CVS, 那當(dāng)他修改了代碼,準(zhǔn)備通過郵件的方式向Linus Torvalds發(fā)送patch的時(shí)候發(fā)現(xiàn),咦,wait4這里也有個(gè)code change, 是做條件檢查的,也包括進(jìn)去吧。Linus收到補(bǔ)丁,一看是自己信任的兄弟提交的,沒有仔細(xì)檢查,于是后門代碼進(jìn)入了主代碼倉庫。

這當(dāng)然是猜測(cè)的場(chǎng)景,也算是一種社會(huì)工程學(xué)攻擊吧,不過Linux團(tuán)隊(duì)非常小心,把這個(gè)后門給揪了出來。

故事到這里就可以結(jié)束了,再就這個(gè)話題擴(kuò)展一下,多說兩句。

我記得剛工作的時(shí)候,有個(gè)同事給我說,在C語言中,當(dāng)需要和0比較的時(shí)候,可以把0放到前面,這么寫:

if( 0 == user_id){ ....... }

這樣即使把 == 寫成了 = , 編譯器就會(huì)發(fā)現(xiàn)錯(cuò)誤。我當(dāng)時(shí)覺得挺古怪的,把一個(gè)數(shù)字放到前面,變量放到后面。后來習(xí)慣了,在Java 也經(jīng)常會(huì)這樣寫 if (null == user){ ...... }

其實(shí)現(xiàn)在的IDE都很智能了,像這種把==寫成=的情況,IDE就可以給出警告。即使沒有用IDE,如果對(duì)源碼做靜態(tài)的代碼分析,也會(huì)被抓出來的警告的。

Linux是開源的代碼,任何人,只要你愿意,都可以查看所有的代碼,這相當(dāng)于把Linux放到了陽光底下,無數(shù)雙眼睛都盯著看,這種透明度使得在其中安插一個(gè)后門是非常難的。

當(dāng)前名稱:如何在Linux中安插一個(gè)后門?
當(dāng)前路徑:http://www.aaarwkj.com/news/102846.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站設(shè)計(jì)全網(wǎng)營銷推廣、軟件開發(fā)、網(wǎng)站內(nèi)鏈、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
欧美日韩另类激情免费| 丰满人妻的诱惑中文字幕| 国产亚洲日本一区二区三区| 亚洲精品国产二区中文字幕| 国产伦人偷精品免费视频| 日本乱一区二区三区在线| 日韩精品少妇一区二区| 亚洲成av人亚洲av| 国产传媒在线免费播放| 国产精品中文字幕有码| 中文字幕av免费专区| 日韩中文字幕在线首页| 亚洲一区二区三区在线观看呢| 日韩免费视频一区二区三区免费 | 熟女熟妇乱女乱妇综合网| 日本高清精品视频免费| 国产精品久久中文字幕网| 午夜最新福利在线视频| 国产日韩欧美一区综合| 男人的天堂成人午夜视频| 在线观看成人激情视频| 亚洲毛片一区二区在线| 中文字幕有码精品在线| 夫妻晚上同房太猛视频| 欧美黄片网站在线观看| 91美女黑丝免费国产视频 | 日韩av在线不卡一区二区| 亚洲黄香蕉视频免费看| 日韩亚洲毛片全在线播放| 国产av人妻精品一区二| 成人高清乱码一区二区三区| 很黄很刺激的视频中文字幕| 色伊人久久综合中文字幕| 日韩av天堂在线观看| 成人精品超碰一区二区| 色哟哟视频免费在线观看| 免费成人激情在线电影| 在线观看午夜视频免费| 国产av一区二区三区野战| 亚洲成年人黄色小说网站| 久久国产精品av在线观看|