Post

[AWS-Security] 4.4. 단기 및 장기 자격증명 선택

[AWS-Security] 4.4. 단기 및 장기 자격증명 선택

1. 자격증명의 종류와 수명

  • IAM 사용자 (장기) : 일반적으로 며칠, 몇 달, 몇 년 단위로 만료되거나 아예 만료되지 않는 수명이 긴 자격 증명(패스워드, 액세스 키)
  • IAM 역할 (단기) : 몇 분에서 몇 시간(최대 12시간) 안에 만료되는 수명이 짧은 자격증명

2. 수명이 긴 자격증명의 위험

  • ‘최소 권한 원칙’이 공격자가 얻는 권한의 범위를 줄이는 방법이라면, ‘자격증명 만료’는 공격자가 권한을 행사할 수 있는 시간을 줄여 심각한 공격 위험을 차단한다.
  • AWS만의 특수성 : AWS 자격증명(패스워드, 액세스 키)은 도난 당했는지 알아채기가 어렵다. 주기적으로 관리해야 한다. (만료 및 교체)

2.1. 사이버 킬 체인

  • 공격이 시작되더라도 자격증명이 빠르게 만료되면 공격자에게 공격을 수행할 시간을 많이 주지 않게 된다.
  • 공격자의 일반적인 첫 번째 단계는 정찰(Recon)이며, 이들은 인프라의 형태와 높은 가치의 목표 대상을 파악하고 권한을 상승시키기 위해 다른 IAM 엔터티를 추가로 살펴본다.
  1. 정찰 : 공격 대상의 연구, 식별, 선택 (은행을 털기 전 CCTV 위치, 경비원 수, 뒷문 자물쇠 상태 등 약점을 조사하는 단계)

  2. 무기화 : 원격 접근 멀웨어를 익스플로잇과 결합해 제공 가능한 페이로드로 연결 (은행의 낡은 뒷문(취약점)을 뚫기 위해, 만능 열쇠(악성코드)를 조립하여 준비하는 단계)

  3. 전달 : 공격 표적에게 이메일이나 웹 사이트 등을 통해 무기 전송 (만능 열쇠를 은행 내부로 몰래 들여보내는 과정)

  4. 익스플로잇 : 무기의 코드가 실행돼 취약한 애플리케이션이나 시스템을 악용 (직원이 택배 상자를 여는 순간, 숨겨진 열쇠가 작동해 뒷문을 열어두는 단계)

  5. 설치 : 이 무기는 대상 시스템에 백도어를 설치해 지속적인 접근을 허용 (나중에도 언제든 드나들 수 있도록 창문 하나를 뚫어놓는 작업)

  6. 명령 및 제어 : 외부 서버는 공격 대상 네트워크 내에서 ‘키보드 액세스’를 제공하는 무기와 통신 (도둑이 은행 밖에서 안전하게 원격으로 명령을 내리고 조종하는 단계)

  7. 행동 : 공격자는 데이터의 유출이나 파괴 등 침입의 목적을 달성하기 위해 노력 (돈과 데이터를 담아 훔쳐 가거나, 흔적을 없애기 위해 불을 지르는 단계)

결론 공격을 완수하는 데 많은 시간이 소요된다. 자격증명의 수명을 짧게 유지하면, 공격자가 목표를 달성하기 전에 시스템에서 접속을 끊어버릴 수 있다.

3. 자격증명 교체와 관련된 장단점

  1. 흑백 논리로 볼 수 없는 자격증명의 수명
    • 위에서 “자격증명은 빨리 만료될수록 좋다”고 했지만, 만약 매 시간 패스워드를 변경해야 한다면 사용자에게 엄청난 골칫거리가 된다.
    • 단기 자격증명이 무조건 안전하고 장기 자격증명이 무조건 위험한 것은 아니다.
    • 하지만, 일반적으로 만료는 빠를수록 좋기 때문에, 아예 만료되지 않는 것보다 3개월이나 6개월 후에라도 만료되도록 설정하는 것이 훨씬 안전하다.
  2. 조직 상황에 맞는 최적의 ‘만료 시점’ 찾기
    • 조직은 극단적인 1시간 주기 만료와 만료 기한 없음 사이에서 고민해야 한다.
    • 보안과 편의성 사이에 적절한 균형을 제공하는 ‘몇 개월’ 수준의 중간 지점으로 자격증명 만료 시점을 정하게 된다.
  3. 액세스 키 교체의 한계와 AWS Config 활용
    • AWS IAM이 패스워드와 달리 액세스 키를 자동으로 만료시키는 메커니즘을 제공하지 않는다.
    • AWS Config 서비스의 access-keys-rotated 관리형 규칙 템플릿을 통해 키의 수명을 관리할 수 있다. (최대 수명을 넘기면 알람 발생)

4. IAM 역할의 균형

  • 장기와 단기의 중간 지점
    • IAM 역할(Role)은 장기 자격증명과 단기 자격증명 사이의 일종의 중간 지점을 제공한다.
    • 사용자가 역할을 수임(Assume)하여 단기 자격증명을 얻어 사용하면, 장기 자격증명에 대한 의존성을 줄일 수 있다.
  • 표면적인 의문점
    • 역할을 수임하려면 결국 사용자 본인에게 장기 자격증명(액세스 키)이 있어야 하므로, 똑같이 위험한 것 아닐까 하는 의문이 들 수 있다.
  • 노출 빈도의 획기적 감소
    • 역할을 사용하는 궁극적인 이점은 장기 자격증명을 ‘자주 사용하지 않는다’라는 사실에서 비롯된다.
    • 사용자의 장기 액세스 키는 역할을 수임하기 위해 STS를 호출 할 때 한번만 사용된다.

결론 노출될 가능성이 가장 높은(자주 사용하는) 자격증명이 금방 만료되는 단기 자격증명이 되므로 해킹 위험을 줄일 수 있다. 결과적으로 사용자는 액세스 키를 지속적으로 변경하는 불편함 없이도 수명이 짧은 자격증명을 사용하는 보안 이점을 얻을 수 있다.

This post is licensed under CC BY 4.0 by the author.