[Hands-On] AWS Systems Manager를 활용한 취약점 점검 및 보안 패치 자동화

안녕하세요. 교보정보통신 클라우드 기술팀에서 Solutions Architect 업무를 하고있는 김희성 입니다.

Amazon Web Services(AWS)는 클라우드 기반의 인프라 관리와 자산 보안을 강화하기 위해 다양한 도구와 서비스를 제공합니다. 그 중에서도 Systems Manager는 EC2 서버를 관리 및 자동화하는 데 매우 유용한 도구입니다.

이 블로그 글에서는 위 서비스를 이용하여 EC2 서버 취약점 점검 및 보안 패치를 자동화 해보는 Hands-On을 해보도록 하겠습니다.

1. AWS Systems Manager란?

AWS Systems Manager는 AWS 클라우드 환경에서 운영 중인 인프라를 자동화하고 관리하는 서비스입니다. Systems Manager는 다양한 기능을 제공하여 EC2 인스턴스 관리, 자원 구성, 애플리케이션 관리, 인스턴스 보안 등 다양한 작업을 수행할 수 있습니다.

2. Hands-On

해당 내용을 실제로 Hands-On 을 할 수 있도록 만들어진 Infra 생성용 CloudFormation 템플릿을 제공합니다.
(yaml 파일 업로드가 되지 않아 txt 파일로 업로드합니다. CloudFormation Stack 생성시 txt파일로 넣으셔도 무방합니다.)

  • 위에서 다운로드 받았던 CloudFormation 템플릿을 이용하여 위 그림과 같은 인프라를 생성하기 위해 CloudFormation으로 들어가 Stacks에서 Create stack을 클릭합니다.
  • 다운로드 받았던 템플릿 사용을 위해 Upload a template file 선택하고 hands_on_infra.txt 선택하고 다음으로 넘어갑니다.
  • 개인이 사용하실 CloudFormation Stack name을 작성하고 리소스 구분을 위해 태그에 들어갈 개인 메일 및 영문 이름 약어를 적은 뒤 다음으로 넘어갑니다.
  • 별도의 변경사항없이 다음으로 넘어갑니다.
  • 별도의 변경사항없이 Submit을 클릭합니다.
  • 몇분 뒤 Stack의 Status가 CREATE_COMPLETE로 바뀌면서 Infra 생성이 완료됩니다.
  • EC2 콘솔로 넘어가 각 인스턴스에 등록된 태그를 확인합니다.
  • 리소스 그룹을 생성하여 다량의 Instances가 있다고 가정하고 실습을 진행 하겠습니다. 아래와 같이 설정하면 이후 추가로 생성되는 인스턴스의 경우 태그에 Env : prd, Service: web이 달려있는 리소스는 자동으로 해당 리소스 그룹에 속하게 됩니다.
  • 각 PrdWeb, PrdWas, DevWeb, DevWas와 같이 총 4개의 리소스 그룹을 생성합니다.
3-1. AWS Systems Manager – Run Command 실습

AWS Systems Manager의 Run Command는 AWS 인프라에서 명령을 실행하고 결과를 수집하는 강력한 기능입니다. 이를 활용하여 Compute Cloud Environment (CCE)의 점검을 자동화하고 문제를 신속하게 해결할 수 있습니다. 이번 내용에서는 AWS Systems Manager Run Command를 사용하여 CCE 점검을 수행하는 방법에 대해 알아보겠습니다.

1. AWS Systems Manager 콘솔로 접속하여 Run Command에 있는 Run command를 클릭합니다.

2. Command document에서 쉘스크립트 실행을 위해 AWS-RunShellScript을 검색 후 설정하고 아래 Command parameters에 취약점.txt 내용을 복사 붙여넣기 합니다.

상세한 취약점 점거에 대해서는 아래 URL을 참조하시기 바랍니다.
https://isms.kisa.or.kr/main/csap/notice/?boardId=bbs_0000000000000004&mode=view&cntId=45

3. 생성해 놓았던 리소스 그룹 사용을 위해 Choose a resource group을 선택한 후 PrdWebServer를 선택하고 Run 시킵니다.
(Enable an S3 bucket은 Hands-On이기 때문에 비활성화하도록 하겠습니다.)

4. Status Success를 확인 후 View output을 선택하여 작업 결과를 확인합니다.

5. Command parameters에 입력했던 취약점 스크립트가 동작한 것을 확인할 수 있습니다.

3-2. AWS Systems Manager – Patch Manager 실습

AWS Patch Manager는 주기적인 점검, 보안 및 패치 관리를 자동화하는 강력한 도구입니다. 이를 활용하여 EC2 인스턴스 및 온프레미스 서버의 보안 상태를 유지하고 최신 패치를 적용할 수 있습니다. 이번 글에서는 AWS Patch Manage 실습을 해보도록 하겠습니다.

1. AWS Systems Manager 콘솔 Patch Manager 에서 Start with an overview를 클릭하여 Patch Manager 화면으로 넘어갑니다.

2. Patch Manager 화면에서 실질적으로 패치를 하기 위해 Patch now를 클릭합니다.

3. Patching operation – Scan / Instances to patch – Patch only the target instances I specify
Choose a resource group – DevWasServer / Patching log storage – Do not store logs 로 설정한 뒤 Patch now를 누릅니다.

4. Status Success를 확인 후 Execution ID를 클릭하여 해당 작업으로 넘어갑니다.

5. Ouput를 클릭하여 작업 내용을 확인합니다.

6. EC2 Instance OS에 맞는 Output을 확인합니다.

3. CloudFormation Stack 삭제

4. 마무리

AWS Systems Manager는 강력한 인프라 관리 도구이며, 다른 AWS 서비스와의 통합을 통해 더 많은 기능과 자동화를 구현할 수 있습니다. Amazon CloudWatch, AWS Config, AWS Secrets Manager 외에도 AWS Inspector를 활용하여 보안 및 규정 준수를 강화할 수 있습니다.
실제 Patch 작업을 수행할 때는 애플리케이션에 미치는 영향도를 사전에 체크하여 검증하고 문제가 없는 경우 수행하는 것을 권장합니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다