주요 컨텐츠로 이동

데이터브릭스 데이터 인텔리전스 플랫폼과 HiddenLayer Model Scanner로 제3자 모델을 안전하게 배포하기

Arun Pamulapati
David Wells
Neil Archibald
Hiep Dang
이 포스트 공유하기

도입

이미지 인식, 자연어 처리, 사내 챗봇, 어시스턴트 등의 최첨단 기술을 갖춘 사전 학습된 모델/LLM으로 채워진 모델 동물원( Hugging Face 와 TensorFlow Hub와 같은 공개 리포지토리)의 대중화 덕분에 최근 몇 년간 조직에서 머신러닝, AI, 대규모 언어 모델(LLM)을 채택하는 능력이 가속화되고 있습니다.

제3자(Third-Party) 모델의 사이버 보안 위험

모델 동물원은 편리하지만, 악의적인 공격자가 공개 리포지토리의 개방성을 악용하여 악의적인 이득을 취할 수 있는 가능성을 내포하고 있습니다. 예를 들어, 공개 머신러닝 모델이 랜섬웨어로 어떻게 무기화될 수 있는지 또는 공격자가 HuggingFace 서비스를 장악하여 플랫폼에 제출된 모델을 어떻게 탈취할 수 있는지, 우리 파트너사인 HiddenLayer 의 최근 연구를 살펴보세요. 이러한 시나리오는 트로이 목마 모델과 모델 공급망 공격이라는 두 가지 새로운 위험을 야기합니다.

이러한 취약성에 대한 업계의 인식이 높아지고 있는 가운데1, 데이터브릭스는 최근 엔터프라이즈 ML 및 AI 프로그램과 관련된 위험을 문서화한 Databricks AI 보안 프레임워크(DASF)를 발표했습니다: 여기에는 모델 7.1: 백도어 머신 러닝/트로이목마 모델, 모델 7.3: ML 공급망 취약성, 그리고 Databricks 고객이 ML과 AI 프로그램을 보호하기 위해 활용할 수 있는 완화 제어 방법이 포함됩니다. 데이터브릭스에서는 모든 호스팅된 기본 모델과 내부적으로 AI 시스템에서 활용되는 모델에 대해 AI 레드 티밍(AI Red Teaming)을 수행합니다. 또한 피클 가져오기 검사 및 ClamAV 검사를 포함하여 모델/가중 파일에 대한 멀웨어 검사도 수행합니다. 데이터브릭스가 AI 개발과 사용에서 책임 있는 관행을 준수하여 지능형 애플리케이션에 대한 신뢰를 구축하는 방법에 대한 자세한 내용은 데이터브릭스의 책임 있는 AI 접근 방식을 참조하세요.

이 블로그에서는 타사 모델에 대한 위의 공격으로부터 조직을 보호하기 위해 데이터브릭스 데이터 인텔리전스 플랫폼에서 제공되는 포괄적인 위험 완화 제어 기능을 살펴보고, 모델 스캔에 HiddenLayer를 사용하여 이를 더욱 확장하는 방법에 대해 설명합니다.

보안 위험 완화

데이터브릭스 데이터 인텔리전스 플랫폼은 AI 및 ML 시스템의 보안 위험을 완화하기 위한 포괄적인 전략을 채택하고 있습니다. 다음은 타사 모델을 데이터브릭스로 가져올 때 권장하는 몇 가지 높은 수준의 완화 제어입니다:

Databricks AI Security Framework
Figure 1: Databricks Data Intelligence Platform provides comprehensive security controls to mitigate security risks from third-party models as documented in the Databricks AI Security Framework (DASF)

이러한 제어를 배포하는 방법과 조직에서 타사 모델을 더 안전하게 실행할 수 있는 방법을 살펴 보겠습니다.

DASF 1: IdP 및 MFA를 사용한 SSO

사용자를 강력하게 인증하고 모델 배포 권한을 제한하면 데이터 및 AI 플랫폼에 대한 액세스를 보호하고 머신 러닝 시스템에 대한 무단 액세스를 방지하며 인증된 사용자만 타사 모델을 다운할 수 있도록 허용하는 데 도움이 됩니다. 이를 위해 데이터브릭스에서는 다음과 같이 권장합니다:

  1. 싱글사인온(SSO) 및 다단계 인증(MFA)을 도입합니다.(AWS, Azure, GCP).
  2. SCIM을 통해 사용자 및 그룹을 SAML 2.0 IdP와 동기화합니다.
  3. IP 액세스 목록을 사용하여 확인된 IP 주소에서 인증을 제어합니다 (AWS, Azure, GCP).
  4. 클라우드 프라이빗 연결 (AWS, Azure, GCP) 서비스를 사용하여 사용자 간 통신을 하고, 데이터브릭스 제어 플레인은 공용 인터넷을 통과하지 않습니다.

DASF 43: 액세스 제어 목록 사용

최소 권한 원칙을 준수하여 작업 공간 개체에 대한 액세스 제어 목록(ACL)을 구현하려면 데이터브릭스의 Unity Catalog를 활용하세요. ACL은 폴더, 노트북, 모델, 클러스터, 작업 등 다양한 작업 공간 오브젝트에 대한 권한을 관리하는 데 필수적입니다. Unity Catalog는 중앙 집중식 거버넌스 도구로서, 조직이 MLOps 수명 주기 전반에 걸쳐 일관된 표준을 유지하고 팀이 워크스페이스를 제어할 수 있도록 지원합니다. 이 도구는 여러 툴마다 관련된 팀에 필요한 권한을 설정해야 하는 복잡성을 제거하여 ML 환경에서 ACL 설정의 복잡성을 해결합니다. 이러한 액세스 제어 목록(ACL)을 사용하여 조직에서 타사 모델을 가져오고, 배포하고, 실행할 수 있는 사용자를 제한하는 권한을 구성할 수 있습니다.

일반적인 사용자 역할에 맞추어 워크스페이스 수준 권한을 설정하는 방법에 대해서는 데이터브릭스 그룹 및 권한 시작을 위한 제안을 참조하세요.

DASF 42: MLOps 및 LLMOps(스캔 모델) 사용

모델 동물원은 리포지토리 콘텐츠에 대한 보안 조치가 제한적이므로 위협 행위자가 공격을 배포할 수 있는 잠재적 벡터가 될 수 있습니다. 제3자 모델을 배포하려면 이러한 취약점을 해소하기 위해 철저한 검증과 보안 스캔이 필요합니다. Modelscan이나 Fickling 라이브러리와 같은 도구는 머신 러닝 모델의 무결성을 평가하기 위한 오픈 소스 솔루션으로 제공되지만, 프로덕션에 사용할 수 있는 서비스로는 부족합니다. 보다 강력한 옵션으로는 멀웨어와 취약점을 비롯한 머신 러닝 모델 내의 숨겨진 위협을 발견하도록 설계된 사이버 보안 도구인 HiddenLayer Model Scanner가 있습니다. 이 고급 스캐너는 데이터브릭스와 통합되어 레지스트리와 ML 개발 수명 주기 동안 모델을 원활하게 스캔할 수 있습니다.

Figure 2. Model Scanner scans Third-party models prior to training, while MLDR monitors deployed models for inference attacks
Figure 2. Model Scanner scans Third-party models prior to training, while MLDR monitors deployed models for inference attacks

HiddenLayer의 Model Scanner는 ML 운영 라이프사이클의 여러 단계에서 보안을 보장하는 데 사용할 수 있습니다:

  1. 다운로드 시 제3자모델을 스캔하여 멀웨어 및 백도어 위협을 방지합니다.
  2. 데이터브릭스 레지스트리 내의 모든 모델을 스캔하여 잠재적인 보안 위험을 식별합니다.
  3. 새 모델 버전을 정기적으로 스캔하여 개발 초기에 취약점을 탐지하고 완화합니다.
  4. 프로덕션으로 전환하기 전에 모델 스캔을 시행하여 안전성을 확인합니다.

HiddenLayer Model Scanner 로 허깅페이스 모델 다운로드 및 스캔하기

HiddenLayer는 데이터브릭스 환경(DBR 11.3 LTS ML 이상)에서 실행할 수 있는 AISec 플랫폼용 데이터브릭스 노트북을 제공합니다. 타사 모델을 데이터브릭스 데이터 인텔리전스 플랫폼에 다운로드하기 전에 노트북을 수동으로 실행하거나 MLOps 루틴에서 CI/CD 프로세스에 통합할 수 있습니다. HiddenLayer는 모델이 안전한지 또는 안전하지 않은지 여부를 판단하고 심각도, 해시, MITRE ATLAS 전술 및 기술(예: AML.T0010.003 - ML Supply Chain Compromise: Model)과 같은 맥락을 포함하여 검출 세부 정보를 제공합니다. 모델에 내재된 사이버 보안 위험 또는 악성 코드가 포함되어 있음을 알게 되면 모델 파이프라인에서 추가 검토를 위해 모델을 거부할 수 있습니다. 모든 탐지는 HiddenLayer AISec 플랫폼 콘솔에서 볼 수 있습니다. 개요에서 각 탐지 목록을 제공하며 대시보드는 탐지에 대한 집계된 뷰를 보여줍니다. 특정 모델에 대한 탐지는 모델 카드로 이동한 다음 탐지를 선택하여 볼 수 있습니다.

DASF 23: 모델 등록, 버전 관리, 승인, 프로모션 및 배포

Unity Catalog의 MLflow 모델 레지스트리 호스팅 버전인 Models in Unity Catalog를 사용하면 데이터브릭스 워크스페이스에서 에셋을 공유하고 데이터와 모델 모두에서 리니지를 추적하는 Unity Catalog의 기능을 활용하면서 ML 모델의 전체 수명 주기를 관리할 수 있습니다. 데이터 과학자는 Unity Catalog의 MLFlow 모델 레지스트리에 제3자 모델을 등록할 수 있습니다. Unity Catalog에 등록된 모델에 대한 액세스 제어에 대한 자세한 내용은 Unity Catalog 권한 및 보안 오브젝트를 참조하세요.

팀원이 모델을 승인하면 배포 워크플로를 트리거하여 승인된 모델을 배포할 수 있습니다. 이렇게 하면 조직에서 제3자 모델에 대한 검색, 승인, 감사 및 보안을 강화하면서 모든 민감한 데이터를 보호하고 Unity Catalog의 권한 모델을 사용하여 데이터 유출의 위험을 줄일 수 있습니다.

HiddenLayer Model Scanner는 데이터브릭스와 통합되어 전체 MLflow 모델 레지스트리를 스캔합니다.

HiddenLayer는 또한 MLflow 모델 레지스트리의 모든 모델을 로드하고 스캔하여 교육 및 개발을 계속할 수 있는 안전한 모델인지 확인하는 노트북을 제공합니다. 이 노트북을 데이터브릭스 워크플로우 Job으로 설정하여 모델 레지스트리의 모델을 지속적으로 모니터링할 수도 있습니다.

새 모델이 등록되면 모델 스캔

지속적인 통합, 지속적인 배포(CI/CD) 프로세스의 근간은 코드의 자동화된 빌드, 테스트 및 배포입니다. 모델 레지스트리 웹후크는 테스트 또는 배포 파이프라인을 실행하고 선택한 플랫폼을 통해 알림을 전송하는 푸시 메커니즘을 제공함으로써 CI/CD 프로세스를 용이하게 합니다. 모델 레지스트리 webhook는 새 모델 버전 생성, 새 댓글 추가, 모델 버전 단계 전환과 같은 이벤트가 발생하면 트리거될 수 있습니다. webhook 또는 트리거는 특정 이벤트에 따라 코드 실행을 유발합니다. 머신 러닝 작업의 경우, 모델 레지스트리에 새 모델이 도착하면 모델을 스캔하는 데 사용할 수 있습니다. 이를 위해 "이벤트"를 사용하게 됩니다: ["REGISTERED_MODEL_CREATED"]를 웹훅으로 사용하여 새로 등록된 모델이 생성될 때 이벤트를 트리거합니다.

MLflow Model Registry Webhooks 에는 두 가지 유형이 있습니다:

  • Job 트리거가 있는 Webhook: 데이터브릭스 작업 공간에서 작업 트리거하기
    • 이 패러다임은 MLFlow 모델 레지스트리에 방금 등록된 모델을 스캔하거나 모델 버전이 다음 단계로 승격될 때 사용할 수 있습니다.
  • HTTP 엔드포인트가 있는 Webhook: 모든 HTTP 엔드포인트에 트리거 보내기
    • 이 패러다임을 사용하여 모델 스캔 상태를 수신자 목록에 있는 사람들에게 알릴 수 있습니다.

스테이지가 변경될 때 모델 스캔하기

위에서 설명한 프로세스와 유사하게 모델 단계를 전환할 때 모델을 스캔할 수도 있습니다. 여기서는 "이벤트"를 사용합니다: ["MODEL_VERSION_CREATED, MODEL_VERSION_TRANSITIONED_STAGE,MODEL_VERSION_TRANSITIONED_TO_PRODUCTION"]을 webhook으로 사용하여 연결된 모델에 대한 새 모델 버전이 생성되거나 모델 버전의 단계가 변경되거나 모델 버전이 프로덕션으로 전환될 때 이 이벤트를 트리거하여 모델을 스캔할 수 있습니다.

요구 사항에 더 적합한 특정 이벤트는 Webhook 이벤트 설명서를 참조하세요. 참고로, Unity Catalog에서 모델을 사용하는 경우에는 Webhook을 사용할 수 없습니다. 이 경우에는 아래 문서의 방법을 참조하세요: Can I use stage transition requests or trigger webhooks on events?

DASF 34: 여러 격리 계층에서 모델 실행하기

모델 서빙에는 전통적인 위험과 모델 반전(Model Inversion)과 같은 모델별 위험이 있으므로, 실무자들은 이런 위험을 고려해야 합니다. 데이터브릭스 모델 서빙은 기본 제공 보안 기능과 함께 실시간 ML 모델을 API로 배포하기 위해 프로덕션에 바로 사용할 수 있는 서버리스 프레임워크를 제공합니다. 이 솔루션은 애플리케이션이나 웹사이트와의 통합을 간소화하며, 운영 비용과 복잡성을 최소화합니다.

모델 변조나 도난과 같은 적대적인 ML 공격으로부터 보호하려면 머신 러닝 알고리즘의 입력과 출력에서 비정상적인 활동을 면밀히 조사하는 HiddenLayer Machine Learning Detection & Response (MLDR)과 같은 실시간 모니터링 시스템을 배포하는 것이 중요합니다.

기존 멀웨어나 적대적 ML 기법을 통한 침해가 발생하는 경우, HiddenLayer MLDR과 함께 제공되는 데이터브릭스 모델을 사용하면 영향 받는 모델의 충격이 제한됩니다:

  1. 사용 후 안전하게 삭제되는 전용 컴퓨팅 리소스로 격리.
  2. 승인된 리소스로만 액세스를 제한하도록 네트워크를 세분화
  3. 최소 권한 원칙이 적용되어, 격리된 환경 내에서 잠재적인 위협을 효과적으로 차단

DASF 5: 데이터 및 기타 개체에 대한 액세스 제어

대부분의 프로덕션 모델은 격리된 시스템으로 실행되지 않으며, 효과적으로 실행하려면 기능 저장소 및 데이터 세트에 대한 액세스가 필요합니다. 격리된 환경에서도 모델에 의한 의도치 않은 데이터 액세스를 방지하기 위해 데이터 및 리소스 권한을 세심하게 관리하는 것이 필수적입니다. Unity Catalog의 권한과 보안 적용 오브젝트를 활용하는 것은 LLM을 기업 데이터베이스 및 문서와 안전하게 통합하는 데 필수적입니다. 이는 특히 데이터베이스의 행이나 PDF 문서의 텍스트를 요약하는 등, 특정 도메인과 사용 사례에 맞게 LLM을 조정하는 검색 증강 생성(RAG) 시나리오를 생성하는 데 적합합니다.

이러한 통합으로 인해 민감한 기업 데이터에 새로운 공격 표면이 도입될 수 있습니다. 이런 데이터가 적절하게 보호되지 않거나 권한이 과도하게 부여된 경우 손상될 수 있어, 잠재적으로 승인되지 않은 데이터가 모델에 공급될 수 있습니다. 이러한 위험은 추론을 위해 feature store 테이블을 활용하는 테이블 형식 데이터 모델에까지 확대됩니다. 이러한 위험을 완화하려면 Unity Catalog를 사용하여 데이터와 기업 자산에 올바른 권한이 부여되고 보안이 유지되도록 하세요. 또한 모델과 데이터 소스 간의 네트워크 분리를 유지하여 악의적인 모델이 민감한 기업 정보를 유출할 가능성을 방지해야 합니다.

결론 

그리고 MFA, ACL, 모델 스캐닝, 안전한 Databricks 모델 서빙 인프라를 사용하는 SSO를 통해 이러한 위험을 완화하는 방법에 대해 자세히 논의했습니다. 데이터브릭스 AI 보안 프레임워크(DASF) 백서에서 AI 보안 관리를 위한 보다 실행 가능한 프레임워크를 확인하세요.

우리는 정확성과 최신 정보 제공을 위해 노력하고 있으며, 진화하는 이 주제에 대한 여러분의 피드백을 환영합니다. AI 보안 워크샵에 관심이 있으시면 [email protected] 으로 문의하세요. 데이터브릭스의 보안 best practice에 대한 자세한 내용은 Security and Trust Center를 참조하세요.

이 블로그에 언급된 노트북을 다운로드하고 HiddenLayer AISec Platform, Model Scanner, MLDR에 대해 자세히 알아보려면 https://hiddenlayer.com/book-a-demo/ 을 방문하세요.

1 OWASP Top 10 for LLM Applications: LLM05: Supply Chain Vulnerabilities and MITRE ATLAS™ ML Supply Chain Compromise: Model

 

(번역: Youngkyong Ko) Original Post

Databricks 무료로 시작하기

관련 포스트

모든 플랫폼 블로그 포스트 보기