기록이 힘이다.

[AWS 네트워크 입문] 7장 네트워크 보안 본문

개발환경/AWS

[AWS 네트워크 입문] 7장 네트워크 보안

dev22 2023. 9. 17. 18:13
728x90

1. 보안 그룹과 네트워크 ACL

접근 제어 

보안상 위협으로부터 제반 시설 및 환경을 보호하기 위한 보안 대책입니다. 인가된 대상은 접근에 허용하고, 인가되지 않은 대상은 접근을 거부하여 보안 측면을 강화할 수 있습니다.

 

식별 ---> 인증 ---> 권한

 

IP 주소를 통해 대상을 식별하거나 프로토콜과 포트 번호를 통해 서비스를 식별하는 기준이 될 수 있습니다.

 

보안 그룹과 네트워크 ACL

IP 주소와 프로토콜과 포트 번호를 통해 대상을 식별하고 제어 정책에 따라 대상의 허용 여부를 판단합니다. 트래픽의 방향성에 따라 인바운드 규칙과 아웃바운드 규칙으로 나뉘어 집니다. 

 

  보안 그룹 네트워크 ACL
트래픽 제어 대상 인스턴스 레벨 서브넷 레벨
이전 상태 정보 기억 Stateful(기억) Stateless(기억 X)
허용/거부 규칙 허용 규칙만 존재 허용/거부 규칙 존재

 

2. VPC 플로우 로그

VPC에서 속한 네트워크 인터페이스에서 송수신되는 트래픽에 대한 정보를 수집할 수 있는 기능입니다. 이를 통해 네트워크 연결 문제 해결, 보안 문제 확인, 네트워크 접근 제어 정책이 정상적으로 동작하는지 확인해 볼 수 있습니다. 특정 유형의 트래픽을 감지하여 알람을 만들거나 트래픽의 변화와 패턴을 파악하기 위한 통계 지표도 만들 수 있습니다. 

 

VPC 플로우 로그는 네트워크 인터페이스에 대한 로그 정보를 실시간으로 게시하지는 않습니다. 

 

VPC 플로우 로그 레코드의 기본 형식

<ver> <acco-id> <inf-id> <srcaddr> <dstaddr> <srcport> <dstport> <prot> <pkts> <bytes> <start> <end> <act> <log-stat>

 

VPC 플로우 로그를 통해 VPC 로그 정보를 수집하려면 IAM 정책과 역할을 달성해야 합니다. --> 7절에서 

 

 보안 그룹과 네트워크 ACL 차이와 VPC 플로우 로그

보안 그룹 - 인바운드 Stateful 검증

사용자 PC 에서 Server-EC2 로 SSH 접근을 시도하면, 보안 그룹의 인바운드 규칙을 확인합니다. 접 근 허용 되고 도달합니다. 보안 그룹은 Stateful 동작을 하므로 인바운드 규칙에 허용된 대상은 아웃바운드 규칙을 무시하고 전달합니다. 

 

보안 그룹 - 아웃바운드 Stateful 검증

외부 인터넷 구간으로 HTTP 접근을 시도하면 실패하게 됩니다. 아웃바운드 규칙이 존재하지 않아 거부.

 

외부 웹 서버로 도달 stateful 동작을 하므로 아웃바운드 규칙에서 허용된 대상은 인바운드 규칙을 무시하고 전달

 

VPC 플로우 로그 확인

보안 그룹에 의해 허용되거나 거부된 로그 정보들을 확인

기본적으로 vpc 에서는 플로우 로그가 비활성화 상태

IAM 정책과 역할 CloudWatch 로그 그룹을 생성해둔다

https://ongja.notion.site/ongja/CNBA71-VPC-IAM-6029e5e1e79c4261ac791b447d211304

 

[CNBA71] VPC 플로우 로그 IAM 권한 설정

작성자 : ongja.cloudnet@, 업데이트 : 2020.08.21

ongja.notion.site

VPC -> 가상 프라이빗 클라우드 -> VPC -> 'My-VPC' 선택 -> 작업 -> 플로우 로그 생성

vpc 플로우 로그는 vpc 내 네트워크 인터페이스별로 로그 정보를 수집합니다. 

인바운드 규칙에 HTTP 추가하면 접근이 가능하다 CloudWatch Logs 에 로그 스트림 확인

보안 그룹은 인스턴스 레벨에서 개별 관리 _==> Server-EC2-2에 같은 방법으로 접근 안됨

네트워크 ACL 을 통한 접근 제어

네트워크 ACL의 인바운드 규칙을 확인 후 보안 그룹 인바운드 규칙도 확인하며, 아웃바운드도 마찬가지 . 

Stateless 동작으로 인바운드 규칙에서 허용하더라도 아웃바운드 규칙을 확인합니다.

서브넷 레벨에서 접근 제어를 수행하기 때문에 동일 서브넷에 속한 Server-EC2와 Server-EC2-2는 동일한 영향

 

일반적으로 접근 제어 보안은 보안 그룹을 통하여 대부분 필터링 하지만 IP 대역 레벨에서 차단이 필요할 경우 네트워크 ACL을 사용합니다. 네트워크 ACL은 Stateless이기 때문에 인바운드 규칙과 아웃바운드 규칙 설정에 민감하여 잘 안쓰는 편.

3. VPC 트래픽 미러링

트래핑 미러링이란 네트워크 환경에서 발생하는 트래픽을 복제하여 특정 장치로 전달하여 해당 정보를 모니터링할 수 있는 기능입니다. 

 

VPC 플로우 로그 VPC 트래픽 미러링
-VPC 상 네트워크 플로우를 로그 형태로 표현
-타깃: S3 버킷이나 CloudWatch Logs로 전달
-구조: 레코드 형태로 제한된 필드 정보 제공
-VPC 상 트래픽의 실제 네트워크 패킷 정보를 수집
-타깃: 다른 ENI나 NLB로 전달
-구조: 실제 네트워크 패킷

VPC 트래픽 미러링 구성

미러 소스 / 미러 타깃 / 미러 필터 / 미러 세션 

 

VPC  트래픽 미러링 동작

미러 타깃 지정 -> 미러 필터 구성 -> 미러 세션 생성(소스, 타깃, 필터 연결)

VPC 트래픽 미러링 제약 사항 

EC2 인스턴스 유형의 제약 -Nitro  유형만 지원

미러 소스와 미러 타깃의 위치 - 동일한 VPC에 속해 있거나 다른 VPC라면 VPC 피처링이나 전송게이트웨이를 통해 연결되어 있어야 합니다.

미러 세션 수 - 계정 당 1,000개의 제약, 네트워크 인터페이스 당 3개

트래픽의 프로토콜 제약 - ARP, DHCP, NTP, EC2 메타데이터 X

 

4. AWS WAF(Web Application Firewall)

 

WAF란 웹 애플리케이션 보안에 특화된 전용 방화벽입니다. SQL Injection  공격, XSS 공격, CSRF 공격 등과 같이 웹 서비스 취약점에 대한 공격을 탐지하고 차단하는 기능을 수행합니다. 웹 접근 트래픽에 대한 페이로드 분석 및 패턴 기반의 필터링을 통해 공격을 탐지하고 차단할 수 있습니다. 

 

과거에는 시스템과 네트워크 공격이 중심이었다면, 요즘에는 웹 애플리케이션 공격이 높아지고 있습니다. 가트너에 따르면 모든 정보 보안 공격에 75% 이상이 웹 애플리케이션 대상이라고 추산하고 있습니다. 

 

AWS WAF 를 AWS 서비스 중에서 CloudFront, ALB, API Gateway에 배포할 수 있습니다. 

 

주요 기능

   웹 트래픽 필터링 / 자동화 및 유지 관리/ 가시성 보장(CloudWatch)/ AWS Firewall Manager와 통합

 

구성

단계별로 Web ACL, Rule, Statement로 구성됩니다.  

 

특장점

민첩한 보안 / 동적 확장 / 효율적인 비용 / 손쉬운 배포 및 유지 관리 / API를 통한 자동화 

 

기본 환경에서 웹 취약점 검증

계정 정보 목록이 모두 노출. 웹 서버 리눅스 쉘에서 필요한 정보들을 확인.

Web ACL 생성

서비스 -> WAF & Shield -> AWS WAF -> Web ACLs -> Create Web ACL
  • Step 1
    Describe web ACL and associate it to AWS resources

  • Step 2
    Add rules and rule groups

직접적인 연결이 아닌 VPN이나 Proxy, Tor node에 의해 접근하는 대상을 차단

OWASP에서 정의한 웹 주요 취약점을 탐지하여 차단

허가되지 않는 SQL Injection 공격을 탐지하여 차단

  • Step 3
    Set rule priority
  • Step 4
    Configure metrics
  • Step 5
    Review and create web ACL

AWS WAF의 Web ACL은 CloudFront, ALB, API Gateway에 배포할 수 있습니다. 

취약점 공격 검증 

SQL database

NoExecURI

Core rule set

Anonymous IP List에 의하여 차단됨

 

Block 설정이 아닌 Count 설정을 통해 탐지 상태를 카운트할 수도 있습니다.

CloudWatch 그래프 형태로 확인 가능

 

5. AWS IAM(Identity & Access Management)

 

AWS 서비스와 리소스에 대한 액세스를 안전하게 관리하는 기능입니다. AWS 사용자 및 그룹을 만들고 관리하거나 권한을 통해 AWS 리소스에 대한 액세스를 허용하거나 거부할 수 있습니다. AWS IAM은 대부분의 AWS 서비스와 연결되어 활용할 수 있으며, 추가 비용 없이 제공하고 있습니다.

 

IAM 세부 요소

IAM 사용자와 그룹

IAM 정책(Policy)

 - 자격 증명 기반 정책 

 - 리소스 기반 정책

 

 - 정책 구성 요소 : JSON 형식으로 구성, 가장 제한적인 정책 우선

IAM 역할

 

IAM 주요 기능

강화된 보안

세부적인 제어 관리

임시 자격 증명

액세스 분석

외부 자격 증명 활용

 

AWS CloudTrail

AWS 계정의 관리, 규정 준수, 운영 및 위험 감사를 지원하는 서비스입니다. 

발생한 모든 행위에 대한 이벤트를 한 곳으로 모아서 분석, 리소스 변경 추적, 문제 해결을 간소화할 수 있습니다. 

 

모범 사례 조치 사항

모든 리전에 CloudTrail을 활성화하여 AWS의 모든 API 호출에 대한 이력을 남깁니다. 

CloudTrail 로그파일의 무결성 확인을 위해 Validation 옵션을 활성화합니다. 

CloudTrail 로그파일을 저장하는 S3 버킷에 대해 퍼블릭 접근을 차단합니다. 

CloudTrail 로그파일을 저장하는 S3 버킷에 대해 액세스 로그를 지정합니다. 

CloudTrail과 CloudWatch를 연계하여 동일 모니터링 툴에 의해 같이 모니터링합니다.