自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

震驚,我被Redis入侵了

開發(fā) 前端 Redis
好吧,我也做了回標(biāo)題黨,像我這么細(xì)心的同學(xué),怎么可能讓服務(wù)器被入侵呢?其實(shí)是這樣的,昨天我和一個(gè)朋友聊天,他說他自己有一臺云服務(wù)器運(yùn)行了 Redis 數(shù)據(jù)庫,有一天突然發(fā)現(xiàn)數(shù)據(jù)庫里的數(shù)據(jù)全沒了,只剩下一個(gè)奇奇怪怪的鍵值對,其中值看起來像一個(gè) RSA 公鑰的字符串,他以為是誤操作刪庫了,幸好自己的服務(wù)器里沒啥重要的數(shù)據(jù),也就沒在意。

好吧,我也做了回標(biāo)題黨,像我這么細(xì)心的同學(xué),怎么可能讓服務(wù)器被入侵呢?

其實(shí)是這樣的,昨天我和一個(gè)朋友聊天,他說他自己有一臺云服務(wù)器運(yùn)行了 Redis 數(shù)據(jù)庫,有一天突然發(fā)現(xiàn)數(shù)據(jù)庫里的數(shù)據(jù)全沒了,只剩下一個(gè)奇奇怪怪的鍵值對,其中值看起來像一個(gè) RSA 公鑰的字符串,他以為是誤操作刪庫了,幸好自己的服務(wù)器里沒啥重要的數(shù)據(jù),也就沒在意。

經(jīng)過一番攀談交心了解到,他跑了一個(gè)比較古老已經(jīng)停止維護(hù)的開源項(xiàng)目,安裝的舊版本的 Redis,而且他對 Linux 的使用不是很熟練。我就知道,他的服務(wù)器已經(jīng)被攻陷了,想到也許還會有不少像我這位朋友的人,不重視操作系統(tǒng)的權(quán)限、防火墻的設(shè)置和數(shù)據(jù)庫的保護(hù),我就寫一篇文章簡單看看這種情況出現(xiàn)的原因,以及如何防范。

PS:這種手法現(xiàn)在已經(jīng)行不通了,因?yàn)樾掳姹?Redis 都增加了 protect mode,增加了安全性,我們只能在本地簡單模擬一下,就別亂試了。

事件經(jīng)過

其實(shí)這種攻擊手法都是 2015 年的事了,那時(shí)候 Redis 的安全保護(hù)機(jī)制比較差,只能靠運(yùn)維人員來合理配置以保證數(shù)據(jù)庫的安全。有段時(shí)間,全球幾萬個(gè) Redis 節(jié)點(diǎn)遭到了攻擊,出現(xiàn)了上述奇怪的現(xiàn)象,所有數(shù)據(jù)被清空,只剩一個(gè)鍵叫 crackit,它的值形似 RSA 公鑰的字符串。

后來查證,攻擊者利用 Redis 動(dòng)態(tài)設(shè)置配置和數(shù)據(jù)持久化的功能,把自己的 RSA 公鑰寫入到了被攻擊服務(wù)器的 /root/.ssh/authored_keys 這個(gè)文件,從而可以用私鑰直接登錄對方的 root 用戶,侵入對方系統(tǒng)。

淪陷的服務(wù)器安全防護(hù)做的很不好,具體如下:

  • Redis 的端口是默認(rèn)端口,而且可以從公網(wǎng)訪問。
  • Redis 還沒設(shè)密碼。
  • Redis 進(jìn)程是由 root 用戶啟動(dòng)的。

以上每個(gè)點(diǎn)都是比較危險(xiǎn)的,合在一起,那真是很致命了。且不說別人把公鑰寫到你的系統(tǒng)里,就說連上你的數(shù)據(jù)庫然后刪庫,那損失都夠大了。那么具體的流程是什么呢,下面我在本地回環(huán)地址上簡單演示一下。

本地演示

Redis 監(jiān)聽的默認(rèn)端口是 6379,我們設(shè)置它接收網(wǎng)卡 127.0.0.1 的連接,這樣我從本地肯定可以連接 Redis,以此模擬「從公網(wǎng)可以訪問 Redis」這一條件。

現(xiàn)在我是名叫 fdl 的普通用戶,我想用 ssh 登錄我系統(tǒng)上的 root 用戶,要輸入 root 的密碼,我不知道,所以沒辦法登錄。

除了密碼登錄之外,還可以使用 RSA 密鑰對登錄,但是必須要把我的公鑰存到 root 的家目錄中 /root/.ssh/authored_keys。我們知道 /root 目錄的權(quán)限設(shè)置是不允許任何其他用戶闖入讀寫的:

 

震驚,我被Redis入侵了

但是,我發(fā)現(xiàn)自己竟然可以直接訪問 Redis:

 

震驚,我被Redis入侵了

如果 Redis 是以 root 的身份運(yùn)行的,那么我就可以通過操作 Redis,讓它把我的公鑰寫到 root 的家目錄中。Redis 有一種持久化方式是生成 RDB 文件,其中會包含原始數(shù)據(jù)。

我露出了邪惡的微笑,先把 Redis 中的數(shù)據(jù)全部清空,然后把我的 RSA 公鑰寫到數(shù)據(jù)庫里,這里在開頭和結(jié)尾加換行符目的是避免 RDB 文件生成過程中損壞到公鑰字符串:

 

震驚,我被Redis入侵了

命令 Redis 把生成的數(shù)據(jù)文件保存到 /root/.ssh/ 中的 authored_keys 文件中:

 

震驚,我被Redis入侵了

現(xiàn)在,root 的家目錄中已經(jīng)包含了我們的 RSA 公鑰,我們現(xiàn)在可以通過密鑰對登錄進(jìn) root 了:

 

震驚,我被Redis入侵了

看一下剛才寫入 root 家的公鑰:

 

震驚,我被Redis入侵了

亂碼是 GDB 文件的某種編碼吧,但是中間的公鑰被完整保存了,而且 ssh 登錄程序竟然也識別了這段被亂碼包圍的公鑰!

至此,擁有了 root 權(quán)限,就可以為所欲為了。。。

吸取教訓(xùn)

雖然現(xiàn)在基本不會受到這種攻擊(新版本的 Redis 沒有密碼時(shí)默認(rèn)不對外網(wǎng)開放),但是對于系統(tǒng)的安全性是每個(gè)人都應(yīng)該重視的。

我們自己折騰東西,用個(gè)低配云服務(wù)器,為了省事兒一般也不認(rèn)真配置防火墻,數(shù)據(jù)庫不設(shè)密碼或者設(shè)成 admin、root 這樣簡單的密碼,反正也沒啥數(shù)據(jù)。這樣肯定不是個(gè)好習(xí)慣。

現(xiàn)在我們的計(jì)算機(jī)系統(tǒng)越來越完善,每個(gè)成熟的項(xiàng)目都由最優(yōu)秀的一幫人維護(hù),從技術(shù)上說應(yīng)該算是無懈可擊了,那么唯一可能出問題的地方就在于使用它們的人。

就像經(jīng)??吹接腥说?QQ 被盜,我相信盜號的人肯定不是跑到騰訊的數(shù)據(jù)庫里盜號,肯定是 QQ 號主安全防范意識差,在哪個(gè)釣魚網(wǎng)站輸入了自己的賬號密碼,導(dǎo)致被盜。我基本沒見過微信被盜的,可能是微信弱化密碼登錄,改用二維碼掃描登錄的原因。這應(yīng)該也算是一種安全方面的考量吧,畢竟微信是有支付功能的。

上面這種騙局對于技術(shù)人來說,看看 url,瀏覽器分析一下網(wǎng)絡(luò)包就很容易識別出來,但是你還別不信,一般人真的搞不明白怎么識別釣魚網(wǎng)站和官方網(wǎng)站。就像我真沒想到都 2020 年了,還有人在找 Redis 的這個(gè)漏洞,而且還有人中招。。。

那么說回 Redis 數(shù)據(jù)庫的使用,在官網(wǎng)上明確寫出了安全防護(hù)的建議,我簡單總結(jié)一下吧:

  • 不要用 root 用戶啟動(dòng) Redis Server,而且一定要設(shè)置密碼,而且密碼不要太短,否則容易被暴力破解。
  • 配置服務(wù)器防火墻和 Redis 的 config 文件,盡量不要讓 Redis 與外界接觸。
  • 利用 rename 功能偽裝 flushall 這種危險(xiǎn)命令,以防被刪庫,丟失數(shù)據(jù)。

 

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2013-06-20 11:11:00

程序員經(jīng)理

2020-04-07 08:00:02

Redis緩存數(shù)據(jù)

2024-01-15 09:15:52

parallel語句函數(shù)

2022-09-05 09:02:01

服務(wù)器CPU服務(wù)

2018-01-30 09:25:04

2017-05-17 16:14:49

P2PCDNHTTP協(xié)議

2021-06-29 10:02:04

亞馬遜機(jī)器解雇

2011-03-08 09:41:49

2024-08-23 09:46:46

2021-05-10 07:30:33

Google技術(shù)谷歌

2023-05-18 00:05:47

2019-01-11 08:37:34

云計(jì)算京東云金山云

2021-01-18 11:27:03

Istio架構(gòu)云環(huán)境

2021-09-13 08:41:52

職場互聯(lián)網(wǎng)自閉

2022-05-11 09:18:04

微軟PowerShell降級

2023-10-31 08:01:48

Mybatis參數(shù)jdbcurl?

2021-02-05 08:10:28

Redis集群數(shù)據(jù)

2021-01-27 09:04:34

Redis集群數(shù)據(jù)

2017-03-07 16:08:36

2010-08-30 11:12:42

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號