02.26 互聯網公司,怎麼防止程序員刪除數據庫,篡改、刪除產品的程序?

engrossment


在程序員或者特別是運維圈中,“刪庫跑路”往往是圈內人相互調侃的一個段子,而這也正是因為刪庫這一錯誤實在太低級,在高學歷和高技術能力的程序員中才能成為一個梗,畢更何況這一行為更是直接違反了我國《刑法》的第286條,也就是破壞計算機信息系統罪。所以真的敢在數據庫中鍵入“rm -rf / ”這個明明,等待你的可能就只有一曲《鐵窗淚》了。

微盟遭遇刪庫跑路

然而在2月23日,國內知名的智能商業服務提供商微盟系統出現故障,大面積服務集群無法響應,生產環境及數據遭受嚴重破壞。跟據官方發佈的通告稱,“犯罪嫌疑人乃微盟研發中心運維部核心運維人員賀某,賀某於2月23日晚18點56分通過個人VPN登入公司內網跳板機,因個人精神、生活等原因對微盟線上生產環境進行了惡意的破壞。”

受刪庫事件影響,微盟股價在24日出現下跌,市值一日之內蒸發約12.5億港元。“rm -rf / ”這簡單的幾個字符,為何會產生如此大的破壞力呢?事實上,rm是linux系統中刪除文件的命令。-r代表刪除這個下面的一切,f則表示不需要用戶確認直接執行。通常這個命令是用來刪除指定文件夾, 例如“rm -rf /Temp/”就是刪除/Temp/這個文件夾中的所有內容,但如果後面的文件夾路徑沒有加,“rm -rf /”在生產環境中被直接使用,就代表著清空所有數據。

事實上就像我們前文中提到的一樣,刪庫操作屬於非常低級的錯誤,但操作者畢竟是人不是機器,因此難免會有犯錯誤的時候,因此基本上所有的數據服務提供商都會準備備份服務器,或者容災系統。當一處服務器因意外停止工作時,整個系統可以切換到另一處,使得系統功能可以繼續正常工作。

沒錯,在2月23日晚間顯然有不少微盟的用戶也這麼想的。據不少商家的回憶,起初大家只以為是簡單的服務器宕機,畢竟這種情況並不罕見,強如Facebook的服務器都曾經崩潰過,而微盟方面最初公開的解釋,則是騰訊雲的硬件問題。

刪庫一時爽,客戶全完蛋

正常情況下,微盟作為一家上市企業,即便與BAT等巨頭還有一定的差距,但顯然是會配備異地容災系統,因此通過備份恢復數據也並不會太困難。然而就像微盟在公告中談及的那樣,這件事屬於“我們之中出了一個內鬼”。“核心運營”就代表其在內部的權限不低,親自動手實施這種報復性意味濃厚的行為,以他的經驗來說大概率是把事做絕,因此很可能將備份也一併進行了刪除,導致了後續微盟想要恢復所有數據,需要從此前浩如煙海的日誌中找到相應數據。

雖說是內鬼動手這種防不勝防的事件,但海恩法則有云,“每一起嚴重事故的背後,必然有29次輕微事故和300起未遂先兆,以及1000起事故隱患”,因此這一事件顯然也暴露了微盟內部流程管控上的缺陷。多副本保存、異地保存,乃至線上線下保存等容災措施,雖然可能因為內鬼的行為導致功能失效,但是他是怎麼完成針對不同數據庫實現刪庫的操作呢?

這就意味著微盟在數據庫管理員的管理方面有著一定的漏洞,例如文件加密權限隔離、雙人複核機制、針對運維的高危操作沒有審批機制,以及關鍵應用業務的刪庫監控管控等,這些監管機制在此次事件中並沒有看到起作用的影子。試想一下,如果針對刪庫這一的關鍵操作,需要有另一人來複核的話,顯然這場悲劇極有可能就不會發生。

城門失火,殃及池魚

而這一事件除了讓微盟自己遭殃之外,顯然還殃及了池魚。其一,就是目前大火的遠程辦公,由於疫情的原因,很多互聯網企業都選擇讓員工在家進行遠程辦公,但這有一個缺陷,就是對於一些需要內網的操作,只能讓員工通過VPN的方式來登陸,這其中的安全隱患不言而喻。但這個問題不解決,遠程辦公想要真正媲美線下顯然並不太可能。

其二,就是微盟代表的SaaS(軟件即服務)業務又一次走到了風口浪尖。事實上,SaaS提供了一套成熟化可供複製可以通用的軟件,能夠廣泛應用在協作、OA、企業溝通、財務、人事等場景,並且由於上雲,數據的處理速度、流程的流轉速度都比之前上了一大臺階,從而又降低了人力和時間等方面的成本。

儘管微盟事件對於SaaS業內的其他企業也或多或少有所影響,但其自己受到的損失可能並沒有想象中那麼大。君不見,隨著生產環境和數據的修復,在2月25日港股收盤時,微盟股價還上漲4.22%至6.18港幣。業內有觀點認為,這或許是因為微盟作為一家老牌廠商,其所沉澱的客戶數據是海量的,因此對於客戶來說想要離開可能也並不那麼容易。

而SaaS,就是服務商為商家既提供設施又提供人手來解決相應需求,其關鍵的指標就是續約率,而為了讓客戶續約,SaaS服務商可謂是八仙過海各顯神通,但微盟這一事件顯然會對用戶的信心造成一定的影響。與此同時,阿里的釘釘和騰訊的企業微信其實也在蠶食著SaaS的市場,並且阿里和騰訊不收錢只要流量的打法,無疑更切合國人鍾愛免費的特點,因此在這樣的雙重打擊之下,SaaS行業在國內的前景也蒙上了一層陰影。

歸根結底,微盟這次馬失前蹄的關鍵,可能正如有行業人士所言,是企業文化建設出現了問題。馬雲曾有云,員工辭職的原因無外乎“錢給少了,心裡委屈了”,而這次微盟的核心運維不惜以違法犯罪為代價,也要讓其付出損失,其中必有故事。如果微盟乃至其他提供數據庫服務的企業不能引以為戒,要麼提升員工的歸屬感,要麼嚴格規章制度,或許這種刪庫跑路的案例還會接著重演。


三易生活


如何防止程序員刪庫跑路呢?

這個問題之前在新聞中報道過的不止一次了,其實最關鍵的就是權限,控制每個開發人員的權限。

具體如何控制呢?從以下幾個方面:

1、數據庫權限

正式環境開發人員不具備任何delete、insert、update更操作權限,只能進行selete,執行sql升級,必須又dba進行審核執行。

不同項目程序使用不同的用戶,根據程序使用範圍授權相應的權限,程序連接數據庫必須使用密文,通過自己特有的方式進行加、解密。對程序進行區別用戶,對以後問題的查找是非常有利的。

2、服務器權限限制

所有開發人員是沒有服務器root權限的,登錄服務器必須通過堡壘機,並且堡壘機有日誌、命令、視頻監控功能,可以記錄每個人員的操作。

堡壘機的登錄,必須做登錄限制,比如:只允許公司的地址進行登錄等。

正式環境的升級必須通過專門的發佈系統進行升級,比如jenkins、ansibles都可以結合起來使用,進行權限控制。

3、本地git權限控制

git上所有項目,只有對應項目的開發人員有提交權限,其他權限沒有,並且git都有歷史提交日誌,可以記錄某人、某個時間,做了什麼提交。

git權限由質量管理工程師統一分配、管理。

4、賬號、權限的及時回收

針對已經離職的開發人員,對授權的用戶、權限必須及時、有效的進行回收,避險賬號洩漏等。

以上思路,希望對大家有一定的幫助。


懸鐘Mr


“刪庫跑路”是違法的,沒有哪個程序員會無故冒這樣的風險。

造成這種結果,只有兩個原因,一是心理委屈了,再就是錢給的不到位。


當然,防止人為的意外事故(黑客、競爭對手),保護公司的數據資產安全也是非常有必要的。可以從以下幾個方面入手:信息的保密性、真實性、完整性、未授權拷貝和寄生系統的安全。

一、劃分安全域

根據辦公PC的重要程度來劃分安全域:

重度PC、中度PC、輕度PC。

像研發、運維人員對於電腦配置和網絡環境要求比較高,這類PC就應該劃入重度PC。對於客服、銷售人員平常只用上一下CRM等系統就可以劃到輕度PC。

對於服務器和辦公網環境必須劃分安全域,隨著服務器數量的增多還需要劃分安全子域。

二、終端管理

嚴格對訪問進行限制。

必要時可以上保壘機對於運維操作進行審計。補丁方面可以利用第三方的軟件類似有LANDdesk等,或者微軟自帶的WSUS等。組策略可以根據主機中固策略做。

三、DLP

像財務、研發方面的數據都非常重要。不能輕易流出公司,對這類數據必須要做防洩漏管理,可以安裝像賽門鐵克相關方面的安全軟件。

四、防網關病毒

在辦公邊界佈署上網行為管理軟件,記錄重點崗位的電腦上網行為,如有異常及時預警,隨時調整安全級別。

五、遠程訪問

遠程訪問最好要有保壘機,通過保壘機登陸後才能操作。

六、介質管理

這個是最基本的,U盤等移動設備必須要進行管控。防病毒感染、惡意拷貝,拷貝要有記錄,很多行為管理軟件都有這方面的功能。

七、代碼審計

成型產品的代碼要有行為審計。代碼的增、刪、改操作要有授權機制。

八、備份

這是最後一道防線,服務、數據、程序、設備等的備份,要有任何一個模塊出現問題,都可在短時間內恢復生產的能力。


以上是我的回答,希望能對您有所幫助。祝好!


分享到:


相關文章: