摘要:最近安全事故瀕發(fā)啊,前幾天發(fā)生了順豐高級運維工程師的刪庫事件,今天又看到了工程師在線執(zhí)行了危險命令導(dǎo)致某公司損失萬。。該公司表示,如再犯類似事故,將直接開除,并表示之后會逐步收回運維部各項權(quán)限。
最近安全事故瀕發(fā)啊,前幾天發(fā)生了《順豐高級運維工程師的刪庫事件》,今天又看到了 PHP 工程師在線執(zhí)行了 Redis 危險命令導(dǎo)致某公司損失 400 萬。。
什么樣的 Redis 命令會有如此威力,造成如此大的損失?
具體消息如下:
據(jù)云頭條報道,某公司技術(shù)部發(fā)生 2 起本年度 PO 級特大事故,造成公司資金損失 400 萬,原因如下:由于 PHP 工程師直接操作上線 redis,執(zhí)行 keys wxdb(此處省略)cf8 這樣的命令,導(dǎo)致redis鎖住,導(dǎo)致 CPU 飆升,引起所有支付鏈路卡住,等十幾秒結(jié)束后,所有的請求流量全部擠壓到了 rds 數(shù)據(jù)庫中,使數(shù)據(jù)庫產(chǎn)生了雪崩效應(yīng),發(fā)生了數(shù)據(jù)庫宕機事件。
該公司表示,如再犯類似事故,將直接開除,并表示之后會逐步收回運維部各項權(quán)限。
看完這個消息后,我心又一驚,為什么這么低級的問題還在犯?為什么線上的危險命令沒有被禁用?這事件報道出來真是覺得很低級。。。
且不說是哪家公司,發(fā)生這樣的事故,不管是大公司還是小公司,我覺得都不應(yīng)該,相關(guān)負責(zé)人應(yīng)該引咎辭職!!!
對 Redis 稍微有點使用經(jīng)驗的人都知道線上是不能執(zhí)行 keys * 相關(guān)命令的,雖然其模糊匹配功能使用非常方便也很強大,在小數(shù)據(jù)量情況下使用沒什么問題,數(shù)據(jù)量大會導(dǎo)致 Redis 鎖住及 CPU 飆升,在生產(chǎn)環(huán)境建議禁用或者重命名!
還有哪些危險命令?Redis 的危險命令主要有以下幾個:
keys
客戶端可查詢出所有存在的鍵。
flushdb
Delete all the keys of the currently selected DB. This command never fails.
刪除 Redis 中當(dāng)前所在數(shù)據(jù)庫中的所有記錄,并且此命令從不會執(zhí)行失敗。
flushall
Delete all the keys of all the existing databases, not just the currently selected one. This command never fails.
刪除 Redis 中所有數(shù)據(jù)庫中的所有記錄,不只是當(dāng)前所在數(shù)據(jù)庫,并且此命令從不會執(zhí)行失敗。
config
客戶端可修改 Redis 配置。
怎么禁用或重命名危險命令?看下 redis.conf 默認配置文件,找到 SECURITY 區(qū)域,如以下所示。
################################## SECURITY ################################### # Require clients to issue AUTHbefore processing any other # commands. This might be useful in environments in which you do not trust # others with access to the host running redis-server. # # This should stay commented out for backward compatibility and because most # people do not need auth (e.g. they run their own servers). # # Warning: since Redis is pretty fast an outside user can try up to # 150k passwords per second against a good box. This means that you should # use a very strong password otherwise it will be very easy to break. # # requirepass foobared # Command renaming. # # It is possible to change the name of dangerous commands in a shared # environment. For instance the CONFIG command may be renamed into something # hard to guess so that it will still be available for internal-use tools # but not available for general clients. # # Example: # # rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 # # It is also possible to completely kill a command by renaming it into # an empty string: # # rename-command CONFIG "" # # Please note that changing the name of commands that are logged into the # AOF file or transmitted to slaves may cause problems.
看說明,添加 rename-command 配置即可達到安全目的。
1)禁用命令
rename-command KEYS "" rename-command FLUSHALL "" rename-command FLUSHDB "" rename-command CONFIG ""
2)重命名命令
rename-command KEYS "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" rename-command FLUSHALL "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" rename-command FLUSHDB "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" rename-command CONFIG "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
上面的 XX 可以定義新命令名稱,或者用隨機字符代替。
經(jīng)過以上的設(shè)置之后,危險命令就不會被客戶端執(zhí)行了
關(guān)注下面的微信公眾號,回復(fù) “答案” 獲取全套Redis面試題及答案。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/77298.html
摘要:最近的互聯(lián)網(wǎng)線上事故發(fā)生比較頻繁,年月號順豐發(fā)生了一起線上刪庫事件,在這里就不介紹了。最后的最后,線上操作的任何一條命令,再小心也不為過,因為由于你的一個符號而引起的事故可能是你所承擔(dān)不起的。 摘要: 使用 Redis 的開發(fā)者必看,吸取教訓(xùn)啊! 原文:Redis 的 KEYS 命令引起 RDS 數(shù)據(jù)庫雪崩,RDS 發(fā)生兩次宕機,造成幾百萬的資金損失 作者:陳浩翔 Fundebu...
摘要:最近的互聯(lián)網(wǎng)線上事故發(fā)生比較頻繁,年月號順豐發(fā)生了一起線上刪庫事件,在這里就不介紹了。最后的最后,線上操作的任何一條命令,再小心也不為過,因為由于你的一個符號而引起的事故可能是你所承擔(dān)不起的。 摘要: 使用 Redis 的開發(fā)者必看,吸取教訓(xùn)啊! 原文:Redis 的 KEYS 命令引起 RDS 數(shù)據(jù)庫雪崩,RDS 發(fā)生兩次宕機,造成幾百萬的資金損失 作者:陳浩翔 Fundebu...
摘要:表示受勒索軟件侵害的食品和農(nóng)業(yè)企業(yè)因支付贖金生產(chǎn)力損失和補救成本而遭受重大經(jīng)濟損失。公司也可能會丟失專有信息和個人身份信息,并可能因勒索軟件攻擊而遭受聲譽損失。年月,針對美國一家農(nóng)場的勒索軟件攻擊致其運營暫時關(guān)閉,造成約萬美元的損失。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-siz...
閱讀 4675·2021-09-22 16:06
閱讀 2074·2021-09-22 15:22
閱讀 1410·2019-08-30 15:54
閱讀 2511·2019-08-30 15:44
閱讀 2341·2019-08-29 16:31
閱讀 2010·2019-08-29 16:26
閱讀 2328·2019-08-29 12:41
閱讀 730·2019-08-29 12:22