幾個(gè)月前,我從事一個(gè)項(xiàng)目,在我們團(tuán)隊(duì)部署應(yīng)用程序 2 個(gè)月后,應(yīng)用程序數(shù)據(jù)被綁架。您可能想知道數(shù)據(jù)綁架意味著什么。好吧,數(shù)據(jù)綁架是惡意用戶未經(jīng)授權(quán)訪問數(shù)據(jù)并出于惡意目的加密或刪除該數(shù)據(jù)的過程。這些惡意目的可能涉及索要贖金、出售數(shù)據(jù)、政治目的、破壞競爭對(duì)手的業(yè)務(wù)等等。我想人類所能做的邪惡程度是難以想象的。
怎么回事
好吧,讓我們回到故事。我是一個(gè)單獨(dú)的后端開發(fā)人員,開發(fā)類似 CRM 的應(yīng)用程序。它被設(shè)計(jì)為一個(gè)內(nèi)部工具,我設(shè)置了 CI/CD 管道來處理對(duì)單個(gè) Ocean 液滴的自動(dòng)部署。我打算將該環(huán)境用作托管的_開發(fā)_環(huán)境以進(jìn)行測試。一天早上,我被一條消息叫醒,詢問為什么該應(yīng)用程序不再工作。我不知道的是,產(chǎn)品所有者已經(jīng)開始將開發(fā)環(huán)境用作生產(chǎn)環(huán)境,除了我沒有將該環(huán)境設(shè)置為生產(chǎn)就緒之外,這還不錯(cuò)。我快速瀏覽了應(yīng)用程序日志并意識(shí)到?jīng)]有通過任何數(shù)據(jù)庫調(diào)用。接下來我做的是打開我的數(shù)據(jù)庫客戶端并連接到云實(shí)例。我連接了,令我驚訝的是數(shù)據(jù)庫是空的。我的意思是那里只有默認(rèn)的 集合。我開始恐慌,然后我仔細(xì)看了看,發(fā)現(xiàn)了一個(gè)看起來很奇怪的收藏。我打開它芒果數(shù)據(jù)庫安裝步驟,看到一條奇怪的記錄芒果數(shù)據(jù)庫安裝步驟,其中包含一條消息,要求我向指定的電子郵件地址發(fā)送電子郵件以檢索我的數(shù)據(jù)。在這一點(diǎn)上,我已經(jīng)知道發(fā)生了什么。我們的數(shù)據(jù)被綁架了。我聯(lián)系了產(chǎn)品負(fù)責(zé)人解釋剛剛發(fā)生的事情,令我松了一口氣的是,他們解釋說沒有對(duì)應(yīng)用程序進(jìn)行任何認(rèn)真的操作,他們所做的只是添加用戶和項(xiàng)目記錄,這意味著我們可以重新創(chuàng)建丟失的記錄。我決定給這個(gè)惡意的人發(fā)電子郵件,他要求價(jià)值 250 美元的 BTC 讓他返回?cái)?shù)據(jù)。
產(chǎn)品負(fù)責(zé)人建議我們不要理會(huì)他,只是經(jīng)歷重新創(chuàng)建丟失記錄的痛苦過程。
保護(hù)您的數(shù)據(jù)
在這件事之后,我決定不再讓類似的事情發(fā)生,因?yàn)槿绻€注不同,它可能會(huì)產(chǎn)生災(zāi)難性的影響。所以我研究了如何防止這種情況并保護(hù) 免受互聯(lián)網(wǎng)上的惡意人員的攻擊。讓我們來看看采取一些措施來保護(hù)您的數(shù)據(jù)。
在您的 實(shí)例上啟用身份驗(yàn)證
默認(rèn)情況下, 安裝時(shí)禁用身份驗(yàn)證。這對(duì)于在本地計(jì)算機(jī)上進(jìn)行快速開發(fā)非常有用,但是當(dāng)您將其安裝在具有公共訪問權(quán)限的服務(wù)器實(shí)例上時(shí)會(huì)帶來風(fēng)險(xiǎn)。要保護(hù)您的數(shù)據(jù)庫,請(qǐng)?jiān)谶\(yùn)行任何 實(shí)例時(shí)啟用身份驗(yàn)證。 為寫了一篇文章來幫助輕松完成這項(xiàng)工作。你應(yīng)該檢查一下。
在非標(biāo)準(zhǔn)端口上運(yùn)行
的標(biāo)準(zhǔn)端口是 27017,這是攻擊者嘗試?yán)玫牡谝粋€(gè)端口。建議在不同的端口上設(shè)置 ,以使攻擊者的生活更加困難。這可以按照此處突出顯示的步驟來完成。
使用防火墻規(guī)則阻止到 端口的所有傳入流量
我們可以更進(jìn)一步,通過指定防火墻規(guī)則來阻止所有傳入運(yùn)行 實(shí)例的指定端口的流量。這可以使用 linux 上的ufw或 上的 防火墻來完成。這也可以在云服務(wù)提供商的網(wǎng)絡(luò)級(jí)別上完成。 Ocean 提供云防火墻可以附加到 ,AWS 有安全組用于 EC2 實(shí)例,GCP 有防火墻規(guī)則用于 VM 實(shí)例等。所以請(qǐng)確保只允許來自 VM 實(shí)例的流量地址。
設(shè)置連續(xù)數(shù)據(jù)備份
在發(fā)生危機(jī)時(shí),備份是救命稻草,可以確定您的企業(yè)是死了還是活了下來。確保經(jīng)常備份您的 非常重要。備份間隔取決于您的業(yè)務(wù)需求、預(yù)算和恢復(fù)期目標(biāo)。托管的 供應(yīng)商抽象了這個(gè)過程,并以一定的代價(jià)使事情變得順暢。如果您自托管數(shù)據(jù)庫實(shí)例,則可以在實(shí)例卷上進(jìn)行定期備份/快照,或者可以實(shí)施數(shù)據(jù)的定期導(dǎo)出。 備份文檔很好地介紹了如何實(shí)現(xiàn)這一點(diǎn)。
加密
加密也是一種有助于保護(hù)數(shù)據(jù)免受惡意互聯(lián)網(wǎng)用戶侵害的工具。 數(shù)據(jù)加密可以在傳輸中使用TLS/SSL和/或使用 支持的任何加密標(biāo)準(zhǔn)在靜態(tài)中完成。您可以在此處找到有關(guān)的更多信息。
結(jié)論
安全性非常重要,在處理軟件應(yīng)用程序時(shí)應(yīng)該認(rèn)真對(duì)待。讓事情順其自然可能不會(huì)有好的結(jié)局。本文并不試圖涵蓋所有安全最佳實(shí)踐,而是強(qiáng)調(diào)一些重要的實(shí)踐。隨意探索更多保護(hù)您的數(shù)據(jù)的方法,并在下面的評(píng)論中告訴我。
參考文獻(xiàn)