피드로 돌아가기
Keras Deserialization Safe Mode: Security Capabilities and Limitations
Dev.toDev.to
Security

Keras safe_mode를 통한 Lambda 실행 차단 및 Deserialization 보안 분석

Keras Deserialization Safe Mode: Security Capabilities and Limitations

Madhan Alagarsamy2026년 4월 26일5intermediate

Context

Keras 모델 로딩 과정에서 설정 구조를 통해 Layer 및 Optimizer 등 객체를 Deserialization 하는 메커니즘 존재. 이 과정에서 Python 코드 실행 가능성으로 인해 신뢰할 수 없는 모델 로드 시 임의 코드 실행(RCE) 위험 발생.

Technical Solution

  • Lambda function의 Deserialization을 원천 차단하여 익명 함수를 통한 시스템 명령 실행 경로 제거
  • safe_mode = True 설정을 통한 동적 실행 경로의 일부 제한으로 기본 보안 수준 강화
  • Class resolution, Module import, Object instantiation의 3단계 처리 과정을 통한 객체 복원 구조 설계
  • custom_objects@register_keras_serializable를 통한 신뢰 기반 객체 등록 체계 운영
  • from_config() 메서드를 활용한 객체 상태 재구성 로직 구현
  • Registry 기반의 객체 식별자 우선순위 적용을 통한 클래스 매핑 메커니즘 채택

1. 외부 모델 로드 시 반드시 safe_mode = True 설정 적용

2. Custom Object 등록 시 등록되는 클래스의 소스 코드 무결성 검증

3. Registered Name 중복 정의를 통한 Namespace Shadowing 공격 가능성 검토

4. from_config() 내부에 포함된 임의 코드 실행 가능성 전수 조사

원문 읽기