사이버 보안 연구원들은 악의적인 공격자가 서비스 거부, 모델 중독, 모델 도용 등 다양한 작업을 수행하기 위해 악용할 수 있는 Ollama 인공 지능(AI) 프레임워크의 6가지 보안 결함을 공개했습니다.
Oligo Security 연구원 Avi는 “이 취약점을 통해 공격자는 서비스 거부(DoS) 공격, 모델 중독, 모델 도용 등을 포함하여 단일 HTTP 요청으로 광범위한 악의적인 작업을 수행할 수 있습니다.”라고 말했습니다. Lumelsky는 지난주에 발표된 보고서에서 이렇게 말했습니다.
Ollama는 사용자가 Windows, Linux 및 macOS 장치에서 LLM(대형 언어 모델)을 로컬로 배포하고 운영할 수 있는 오픈 소스 애플리케이션입니다. GitHub의 프로젝트 저장소는 현재까지 7,600번 포크되었습니다.
6가지 취약점에 대한 간략한 설명은 다음과 같습니다.
- CVE-2024-39719 (CVSS 점수: 7.5) – 공격자가 서버에 파일이 있는지 확인하기 위해 엔드포인트 /api/create를 사용하여 악용할 수 있는 취약점(0.1.47 버전에서 수정됨)
- CVE-2024-39720 (CVSS 점수: 8.2) – /api/create 엔드포인트를 통해 애플리케이션이 충돌하여 DoS 조건이 발생할 수 있는 범위를 벗어난 읽기 취약성(버전 0.1.46에서 수정됨)
- CVE-2024-39721 (CVSS 점수: 7.5) – “/dev/random” 파일을 입력으로 전달할 때 /api/create 엔드포인트를 반복적으로 호출하면 리소스 고갈을 유발하고 궁극적으로 DoS를 유발하는 취약점(버전 0.1.34에서 수정됨)
- CVE-2024-39722 (CVSS 점수: 7.5) – 서버에 존재하는 파일과 Ollama가 배포된 전체 디렉터리 구조를 노출시키는 api/push 엔드포인트의 경로 탐색 취약점(버전 0.1.46에서 수정됨)
- 신뢰할 수 없는 소스의 /api/pull 엔드포인트를 통해 모델 중독으로 이어질 수 있는 취약점(CVE 식별자 없음, 패치되지 않음)
- /api/push 엔드포인트를 통해 신뢰할 수 없는 대상에 대한 모델 도용으로 이어질 수 있는 취약점(CVE 식별자 없음, 패치되지 않음)
해결되지 않은 두 가지 취약점 모두에 대해 Ollama의 관리자는 사용자가 프록시 또는 웹 애플리케이션 방화벽을 통해 인터넷에 노출되는 엔드포인트를 필터링할 것을 권장했습니다.
Lumelsky는 “기본적으로 모든 엔드포인트가 노출되어서는 안 된다는 의미입니다.”라고 말했습니다. “그건 위험한 가정입니다. 모든 사람이 이를 알고 있거나 Ollama로의 http 라우팅을 필터링하는 것은 아닙니다. 현재 이러한 엔드포인트는 백업을 위한 별도의 문서나 문서 없이 모든 배포의 일부로 Ollama의 기본 포트를 통해 사용할 수 있습니다.”
Oligo는 Ollama를 실행하는 9,831개의 고유한 인터넷 연결 인스턴스를 발견했으며 그 중 대부분이 중국, 미국, 독일, 한국, 대만, 프랑스, 영국, 인도, 싱가포르 및 홍콩에 위치하고 있다고 말했습니다. 인터넷 연결 서버 4개 중 1개는 확인된 결함에 취약한 것으로 간주됩니다.
이번 개발은 클라우드 보안 회사인 Wiz가 원격 코드 실행을 위해 악용될 수 있는 Ollama(CVE-2024-37032)에 영향을 미치는 심각한 결함을 공개한 지 4개월여 만에 이루어졌습니다.
Lumelsky는 “승인 없이 Ollama를 인터넷에 노출시키는 것은 도커 소켓을 공용 인터넷에 노출시키는 것과 같습니다. 왜냐하면 파일을 업로드할 수 있고 모델 풀 및 푸시 기능(공격자가 악용할 수 있음)을 갖고 있기 때문입니다.”라고 Lumelsky는 말했습니다.