前言
隨著deepseek的在網(wǎng)絡(luò)上的爆火,如何部署私有大模型已經(jīng)是當(dāng)前的熱門話題,越來越多的人開始嘗試在本地部署私有化AI服務(wù)。其中,Ollama憑借其便捷的部署體驗,成為了站在風(fēng)口浪尖的明星工具。
專屬于自己/公司的大模型可以實現(xiàn)高度的自主可控,企業(yè)或組織能完全掌控數(shù)據(jù)的存儲、訪問和使用權(quán)限,確保敏感數(shù)據(jù)不被外部未經(jīng)授權(quán)的人員獲取,滿足對數(shù)據(jù)保密性要求高的場景,如金融機構(gòu)的客戶交易數(shù)據(jù)、醫(yī)療企業(yè)的患者隱私信息等。還可以針對特定業(yè)務(wù)領(lǐng)域和任務(wù)進行定制開發(fā),融入專業(yè)知識和業(yè)務(wù)規(guī)則,使模型更貼合實際業(yè)務(wù)需求,提供更精準(zhǔn)、有效的服務(wù)。
但在實際工作中發(fā)現(xiàn),我們發(fā)現(xiàn)Ollama大型語言模型工具的服務(wù)器存在未授權(quán)訪問情況和信息泄露風(fēng)險。
一、Ollama
Ollama是一款開源的跨平臺大模型工具,旨在簡化大語言模型(LLMs)的部署和運行,能讓用戶在Windows、Linux和macOS設(shè)備上輕松地進行本地部署。其操作簡單,深受開發(fā)者喜愛,在GitHub上收獲了眾多關(guān)注 ,也有大量用戶從Docker Hub上進行拉取使用。它就像是一個便捷的“模型管家”,幫助用戶快速搭建起自己的AI模型運行環(huán)境。
經(jīng)行業(yè)監(jiān)測數(shù)據(jù)顯示,Ollama(大語言模型服務(wù)工具)在大模型服務(wù)器中,有88.9%都“裸奔”在互聯(lián)網(wǎng)上,導(dǎo)致任何人不需要任何認證即可隨意調(diào)用、在未經(jīng)授權(quán)的情況下訪問這些服務(wù)。私有AI模型的無序搭建,存在系統(tǒng)安全隱患。
二、有哪些安全隱患
1. 未授權(quán)訪問風(fēng)險:在默認配置下,Ollama會在本地啟動一個Web服務(wù),并開放11434端口,且這一端口沒有任何鑒權(quán)機制。這就好比你家門沒鎖,任何人都能隨意進入。攻擊者無需任何認證即可直接訪問模型服務(wù),他們可以隨意調(diào)用模型接口,獲取模型信息,甚至通過惡意指令刪除模型文件或竊取數(shù)據(jù) 。
2. 數(shù)據(jù)泄露危機:Ollama的某些接口,如/api/show,允許用戶獲取模型的license等敏感信息。攻擊者可以利用這些接口,輕松提取模型數(shù)據(jù),從而引發(fā)數(shù)據(jù)泄露風(fēng)險。在數(shù)據(jù)成為重要資產(chǎn)的今天,這種風(fēng)險無疑是對企業(yè)和用戶隱私的巨大威脅。
3. 歷史漏洞利用:Ollama框架存在多個已知的歷史漏洞(如CVE-2024-39720/39722/39719/39721 )。攻擊者可以利用這些漏洞,實施數(shù)據(jù)投毒、參數(shù)竊取、惡意文件上傳以及關(guān)鍵組件刪除等操作。這不僅會破壞模型服務(wù)的核心數(shù)據(jù)和算法完整性,還會嚴(yán)重影響運行穩(wěn)定性,甚至可能導(dǎo)致整個系統(tǒng)癱瘓。例如,利用CVE-2024-39722這個路徑遍歷漏洞,攻擊者能獲取服務(wù)器上的文件信息,造成數(shù)據(jù)泄露。
Ollama大語言模型服務(wù)工具還存在遠程代碼執(zhí)行漏洞(CVE-2024-37032)該漏洞允許通過路徑遍歷任意寫入文件,從而導(dǎo)致遠程代碼執(zhí)行,一旦被惡意利用,將導(dǎo)致服務(wù)器存儲信息泄露等后果。
二、風(fēng)險復(fù)現(xiàn)
(1) Ollama未授權(quán)訪問調(diào)用
發(fā)現(xiàn)存在Ollama未授權(quán)訪問,可隨意調(diào)用,如下為復(fù)現(xiàn)步驟:訪問web頁面,通過接口/api/tags判斷Ollama模型工具內(nèi)安裝deepseek-r1;
(2)若部署 Ollama 服務(wù)時,沒有進行必要的安全配置,例如限制監(jiān)聽地址或設(shè)置防火墻規(guī)則,導(dǎo)致任何人可以調(diào)用模型。默認配置下的 Ollama 服務(wù),存在被互聯(lián)網(wǎng)非授權(quán)訪問的風(fēng)險,操作步驟如下:
1、使用Curl命令調(diào)用接口訪問未限制的模型
2、遠程代碼執(zhí)行漏洞(CVE-2024-37032)漏洞
發(fā)現(xiàn)資產(chǎn)存在Ollama遠程代碼執(zhí)行漏洞(見附件),如下為復(fù)現(xiàn)步驟:訪問資產(chǎn)頁面,通過接口/api/version判斷Ollama版本低于0.1.34;
若低于該版本,則在私有服務(wù)器中部署惡意的私有模型倉庫,當(dāng)嘗試通過/api/push端點將此惡意模型推送到遠程注冊表時,對方服務(wù)器會處理惡意文件。由于對摘要字段驗證不當(dāng),對方服務(wù)器會錯誤地將有效載荷解釋為合法的文件路徑,導(dǎo)致任意文件讀取甚至是寫入惡意代碼。
復(fù)現(xiàn)流程包括在私有服務(wù)器中運行Server.py和Poc.py,通過修改服務(wù)端和資產(chǎn)信息,操作步驟如下:
(1)運行Server.py作為惡意私有模型倉庫
(2)設(shè)置測試攻擊資產(chǎn),為http://xxxxx.xxxxxxxxx.com:10010
(3)服務(wù)器端返回/etc/passwd信息,存在該漏洞。
三、如何進行安全加固
1. 限制監(jiān)聽范圍:將Ollama的11434端口限制為僅本地訪問,通過驗證端口狀態(tài),確保服務(wù)不會暴露在公網(wǎng)環(huán)境中。這樣可以有效阻止外部攻擊者對服務(wù)的直接訪問,為系統(tǒng)增加一道安全屏障。比如在Linux系統(tǒng)中,可以修改相關(guān)配置文件,將監(jiān)聽地址設(shè)置為127.0.0.1。
設(shè)置環(huán)境變量Environment="OLLAMA_HOST=127.0.0.1",僅允許本地訪問。
2. 配置防火墻規(guī)則:對公網(wǎng)接口實施雙向端口過濾,徹底阻斷11434端口的出入站流量。這樣可以防止未授權(quán)訪問,同時減少攻擊者通過該端口發(fā)起攻擊的可能性。以常見的防火墻軟件為例,在其規(guī)則設(shè)置中添加對11434端口的禁止訪問規(guī)則。
3. 實施多層認證與訪問控制:啟用API密鑰管理是保護接口安全的有效手段,定期更換密鑰,并限制調(diào)用頻率,可以有效防止密鑰泄露帶來的風(fēng)險。此外,部署IP白名單或零信任架構(gòu),僅授權(quán)可信設(shè)備訪問,可以進一步增強系統(tǒng)的安全性。通過這種方式,即使攻擊者獲取了API密鑰,也無法輕易訪問系統(tǒng)。
4. 禁用危險操作接口:某些接口,如push、delete和pull,具有較高的風(fēng)險。建議禁用這些接口,并限制chat接口的調(diào)用頻率,以防止DDoS攻擊。通過這種方式,可以減少攻擊者利用接口進行惡意操作的可能性,保護系統(tǒng)的穩(wěn)定運行。
5. 修復(fù)歷史漏洞:及時更新軟件是修復(fù)漏洞的關(guān)鍵步驟。
針對路徑遍歷代碼執(zhí)行漏洞:升級到Ollama 0.1.34或更高版本。
在升級前,確保對digest字段進行適當(dāng)驗證,防止路徑遍歷攻擊
針對越界讀取漏洞:升級到Ollama 0.1.46或更高版本。
在升級前,對處理HTTP請求的代碼進行審查和優(yōu)化,防止越界讀取攻擊。
四、結(jié)語
在使用大模型工具時,安全是不容忽視的重要環(huán)節(jié)。希望大家能夠重視Ollama的安全問題,及時采取加固措施,共同營造一個安全可靠的AI應(yīng)用環(huán)境。
本公眾號所發(fā)布的文章皆源自于互聯(lián)網(wǎng)轉(zhuǎn)載或作者投稿并授予的原創(chuàng)作品,文章末尾有詳細出處標(biāo)注,其內(nèi)含內(nèi)容及圖片之版權(quán)均屬于原網(wǎng)站或作者本人,本公眾號對此不持立場,若發(fā)現(xiàn)有非故意侵權(quán)或轉(zhuǎn)載失當(dāng)之處,敬請隨時聯(lián)系我們進行妥善處理!本文章原文鏈接:https://blog.csdn.net/netinside_/article/details/146341261
及時掌握網(wǎng)絡(luò)安全態(tài)勢 盡在傻蛋網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)
【網(wǎng)絡(luò)安全監(jiān)管部門】免費試用
本文來源:互聯(lián)網(wǎng)
如涉及侵權(quán),請及時與我們聯(lián)系,我們會在第一時間刪除或處理侵權(quán)內(nèi)容。
電話:400-869-9193 負責(zé)人:張明