Gradio 5 보안 검토

Hugging Face는 사이버 보안 기업 Trail of Bits와 협력하여 Gradio 5에 대한 독립적인 보안 감사를 수행했습니다. 이 과정에서 식별된 모든 보안 위험은 Gradio 5 출시 전에 완화 및 수정되어, 라이브러리를 사용해 구축된 머신러닝 애플리케이션이 복잡한 보안 정책을 개발자가 직접 구성할 필요 없이 웹 보안 모범 사례를 따르도록 보장합니다.

사전 보안 감사 목표

Hugging Face Spaces에 있는 470,000개가 넘는 Gradio 앱의 안전을 보장하기 위해, Hugging Face는 반응형 패치 모델에서 사전 감사 모델로 전환했습니다. Trail of Bits는 Gradio 코드베이스를 네 가지 주요 위험 시나리오에 걸쳐 분석했습니다:

  • Local execution: 개발자의 로컬 머신에서 실행되는 앱.
  • Server deployment: Hugging Face Spaces 또는 기타 원격 서버에 배포된 앱.
  • Server deployment: Gradio의 내장 공유 링크를 통해 공유된 앱.
  • Supply chain: Gradio CI 파이프라인 내의 취약점.

주요 보안 발견 및 완화 조치

Trail of Bits는 네 가지 시나리오 전반에 걸쳐 여러 중요한 취약점을 식별했습니다. 이 모든 취약점은 Gradio 5.0 릴리스에서 해결되었습니다.

로컬 애플리케이션

서버의 CORS(Cross-Origin Resource Sharing) 정책에서 잘못된 구성(TOB-GRADIO-1 및 TOB-GRADIO-2)이 발견되었습니다. 인증된 서버 환경에서 이는 공격자가 악성 웹사이트를 통해 액세스 토큰을 탈취하고 사용자 계정을 장악할 수 있게 했을 가능성이 있습니다.

배포된 애플리케이션

Hugging Face Spaces 또는 기타 서버에 배포된 앱에 대해 여러 취약점이 식별되었습니다:

  • SSRF: 전체 읽기 GET 기반 서버 측 요청 위조(SSRF)를 통해 공격자는 임의의 엔드포인트(내부 네트워크 포함)에 요청을 보내고 응답을 읽을 수 있었습니다 (TOB-GRADIO-3).
  • XSS: 임의 파일 유형 업로드를 이용해 크로스 사이트 스크립팅(XSS) 페이로드를 호스팅할 수 있었으며, 이는 인증된 서버에서 계정 탈취로 이어질 수 있었습니다 (TOB-GRADIO-10).
  • Race Conditions: 레이스 컨디션이 존재하여 공격자가 사용자 트래픽을 자신의 서버로 재지정해 업로드된 파일이나 챗봇 대화를 탈취할 수 있었습니다 (TOB-GRADIO-13).
  • File Leaks: 일부 구성 요소의 특정 후처리 함수가 단순 서버 구성에서 임의 파일을 유출할 수 있었습니다 (TOB-GRADIO-16).

공유 애플리케이션

Gradio의 내장 공유 링크와 관련된 위험에는 다음이 포함됩니다:

  • Remote Code Execution (RCE): nginx 구성 오류로 인해 Gradio API 서버에서 인증되지 않은 Docker API가 노출되어 루트 권한으로 RCE가 가능했습니다. 이를 이용해 frp 터널을 악성 서버로 리다이렉트하여 사용자 트래픽을 기록할 수 있었습니다 (TOB-GRADIO-19).
  • Encryption: frp-client와 frp-server 간 통신에 강력한 암호화가 부족하여 데이터 가로채기 및 변조가 가능했습니다 (TOB-GRADIO-11).

CI 파이프라인 및 공급망

Gradio CI 파이프라인에서 공급망 위험이 식별되었습니다:

  • GitHub Actions: 여러 워크플로우가 전체 커밋 SHA 대신 태그나 브랜치 이름에 고정된 서드파티 액션을 사용하여, 액션이 조용히 수정되거나 비밀이 유출될 위험이 있었습니다 (TOB-GRADIO-25).
  • Runner Memory: GitHub 보안 연구원이 GitHub 액션이 GitHub 러너의 메모리 덤프를 통해 신뢰되지 않은 코드 실행 및 비밀 유출을 허용할 수 있다고 보고했습니다.

향후 보안 자세

퇴보를 방지하고 새로운 취약점을 식별하기 위해, Hugging Face는 Gradio 개발 라이프사이클에 여러 보안 중심 도구를 통합했습니다:

  • Security unit testsfuzzer tests는 취약점 발견을 위해 특별히 설계되었습니다.
  • CI 파이프라인에서 Semgrep와 같은 Static analysis tools를 사용해 일반적인 보안 문제를 감지합니다.
  • 보안 커뮤니티와의 Ongoing collaboration을 통해 위험을 식별하고 완화합니다.

SUMMARY: Hugging Face는 Trail of Bits와 함께 Gradio 5에 대한 포괄적인 보안 감사를 수행했으며, 식별된 모든 취약점을 수정하여 머신러닝 애플리케이션이 기본적으로 안전하도록 보장했습니다.

TITLE: Gradio 5 보안 검토

Sources