Metadata v2 사용
    • PDF

    Metadata v2 사용

    • PDF

    Article Summary

    VPC 환경에서 이용 가능합니다.

    개요

    Metadata v1 의 SSRF 보안 취약성을 보완하기 위하여 Metadata v2 방식의 호출 방식을 사용 할 수 있습니다.

    • Metadata v1 - 요청 / 응답 방식
    • Metadata v2 - 세션 지향 방식

    서버 인스턴스의 설정에 따라서 v1, v2 방식을 모두 사용하거나 v2 방식만 사용하도록 변경할 수 있습니다.

    Metadata v1 보안 취약점

    Metadata v1 방식을 사용 가능한 서버 인스턴스에서 서비스를 운영하거나 소프트웨어를 구동하는 경우,
    meta data (server or role data) 의 노출을 막기 위한 추가적인 조치와 주의가 필요할 수 있습니다.
    만약 운영중인 서비스에 SSRF 취약점이 존재하고 이를 인지하지 못하고 있다면 외부에서 서버 인스턴스의 Metadata API를 호출하고
    meta data를 획득할 수 있습니다.
    이러한 보안 취약점을 차단하기 위해서는 서버 인스턴스의 Metadata 버전 설정을 v2 만 사용 가능하도록 변경해야 합니다.
    Metadata v2 방식은 PUT 메소드를 통해 토큰을 발급하고 Metadata API 호출에 대해서 토큰 인증을 수행하여
    SSRF 취약점으로 인한 meta data의 노출을 보호할 수 있습니다.

    서버 인스턴스의 Metadata 버전 설정

    서버 인스턴스 생성 후 콘솔을 통한 설정 변경만 가능합니다.

    1. 서버 콘솔 접속 [Services > Compute > Server]
    2. [서버 관리 및 설정 변경 > Metadata API 관리] 메뉴를 통한 버전 선택
    • v1 및 v2
      • v1, v2 버전을 모두 사용 가능
      • Metadata API 호출 시 토큰 헤더 전달 여부에 따라서 v1, v2 방식 구분
      • 토큰 헤더 미입력 시 인증 절차 없이 요청 수행
      • 토큰 헤더 입력 시 전달된 헤더 값에 대한 인증 포함하여 요청 수행
    • v2 (토큰 필수)
      • v2 버전만 사용 가능
      • Metadata API 호출 시 토큰 헤더값 필수 입력

    예시

    • Header
      • X-NCP-METADATA-TOKEN-TTL-SECONDS : 토큰 발급 시 세션 기간(초) 을 설정하기 위한 헤더 (1 ~ 21600 초)
      • X-NCP-METADATA-TOKEN : Metadata API 호출 시 발급받은 토큰을 전달하기 위한 헤더

    별도의 명령

    [roor@test-server ~]# TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-NCP-METADATA-TOKEN-TTL-SECONDS: 21600"`
    
    [root@test-server ~]# curl -H "X-NCP-METADATA-TOKEN: $TOKEN" http://169.254.169.254/latest/meta-data
    

    결합된 명령

    [root@test-server ~]# TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-NCP-METADATA-TOKEN-TTL-SECONDS: 21600"` \
    && curl -H "X-NCP-METADATA-TOKEN: $TOKEN" http://169.254.169.254/latest/meta-data
    

    참고
    토큰이 정상적으로 발급되지 않은 경우 오류 메시지가 변수에 저장될 수 있습니다.
    이 경우에 Metadata API 호출이 정상 작동하지 않습니다.

    인증 오류 응답

    [root@test-server ~]# curl -H "X-NCP-METADATA-TOKEN: wrong-token" -i http://169.254.169.254/latest/meta-data
    HTTP/1.1 401 401
    Date: Tue, 11 Apr 2023 02:42:02 GMT
    Server: Apache
    Referrer-Policy: unsafe-url
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: text/plain;charset=UTF-8
    
    Unauthorized.
    [root@test-server ~]#
    

    이 문서가 도움이 되었습니까?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.