AWS WAF로 웹 애플리케이션을 보호하는 방법은 무엇입니까?



이 기사에서는 AWS WAF를 사용하여 웹 애플리케이션을 보호하는 방법에 대해 설명하고 실용적인 데모를 따라 수행합니다.

이 기사에서는 WAF를 수행하고 실제 시연으로 후속 조치를 취하십시오. 이 기사에서는 다음 사항을 다룰 것입니다.

그럼 시작하겠습니다.





'AWS WAF로 웹 애플리케이션을 보호하는 방법'에 대한이 기사를 계속 진행합니다.

몇 가지 기본 사항 시작하기

AWS는 EC2, ELB (Elastic Load Balancer), S3 (Simple Storage Service), EBS (Elastic Block Storage)와 같은 서비스를 제공하여 더 적은 CAPEX (자본 지출)로 유용하고 멋진 애플리케이션을 신속하게 생성합니다. 이러한 응용 프로그램을 만드는 동안 응용 프로그램을 보호하고 데이터를 보호하는 것도 똑같이 중요합니다. 제대로 보호되지 않으면 최근의 경우와 같이 애플리케이션 데이터가 잘못된 손에 들어갈 수 있습니다. Capital One 사건 .



Capital One은 EC2에서 웹 애플리케이션을 호스팅했지만 제대로 보호되지 않았습니다. 전 AWS 직원이이 취약점을 악용하고 S3에서 대량의 고객 데이터를 다운로드 할 수있었습니다. 나중에 다른 30 개 조직의 데이터도 AWS에서 다운로드 한 것으로 확인되었습니다. 따라서 다시 강조하면 애플리케이션을 설계하고 설계하는 것만으로는 충분하지 않고 애플리케이션을 보호하는 것도 똑같이 중요합니다.

Capital One 사용 AWS WAF (웹 애플리케이션 방화벽) 웹 애플리케이션을 보호하기 위해 해커가 S3의 데이터에 액세스하여 다운로드 할 수 있었기 때문에 제대로 구성되지 않았습니다. 이 기사에서는 SQL Injection, XSS (Cross Site Scripting) 등과 같은 일반적인 웹 공격으로부터 보호하기 위해 AWS WAF를 사용하고 구성하는 방법을 살펴 봅니다. AWS WAF는 애플리케이션로드 밸런서 , CloudFront 또는 API Gateway. 이 시나리오에서는 Application Load Balancer를 사용합니다. 브라우저를 통한 고객의 모든 요청은 AWS WAF를 거쳐 Application Load Balancer로 전달되고 마지막으로 EC2의 웹 애플리케이션으로 전달됩니다. AWS WAF를 사용하여 악의적 인 요청을 차단 일련의 규칙과 조건을 사용하여 해커로부터.

이미지-AWS WAF를 사용한 보안 웹 애플리케이션-Edureka

'AWS WAF로 웹 애플리케이션을 보호하는 방법'에 대한이 기사를 계속 진행합니다.



AWS WAF를 시작하는 일련의 단계

1 단계: 취약한 웹 애플리케이션 만들기,

첫 번째 단계는 여기에 언급 된 SSRF (Server Side Request Forgery) 공격에 취약한 웹 애플리케이션을 만드는 것입니다. 블로그 Capital One 공격이 어떻게 일어 났는지. 이 블로그에는 다음과 같은 일련의 단계가 있습니다.

  1. EC2 생성
  2. SSRF 취약성이있는 웹 애플리케이션을 생성하는 데 필요한 소프트웨어를 설치합니다.
  3. S3 읽기 전용 권한이있는 역할 생성 및 IAM
  4. EC2에 IAM 역할 연결
  5. 마지막으로 SSRF 취약성을 악용하여 IAM 역할과 관련된 보안 자격 증명을 얻습니다.

언급 된 블로그에서 일련의 단계가 완료되면 아래 URL에서 5.6.7.8을 EC2의 공용 IP 주소로 바꾸고 브라우저에서 엽니 다. IAM 역할과 관련된 보안 자격 증명은 아래와 같이 브라우저에 표시되어야합니다. 이것이 기본적으로 Capital One이 해킹 된 방법입니다. 보안 자격 증명을 가지고 해커는 S3와 같은 다른 AWS 서비스에 액세스하여 데이터를 다운로드 할 수있었습니다.

http://5.6.7.8:80?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/Role4EC2-S3RO

2 단계: Application Load Balancer 생성

AWS WAF는 웹 애플리케이션과 직접 연결할 수 없습니다. 그러나 Application Load Balancer, CloudFront 및 API Gateway 와만 연결할 수 있습니다. 이 튜토리얼에서 우리는 Application Load Balancer 및 AWS WAF 연결 동일합니다.

2a 단계 : 대상 그룹은 EC2 인스턴스 모음이며 Application Load Balancer를 생성하기 전에 생성해야합니다. EC2 관리 콘솔에서 왼쪽 창에있는 대상 그룹을 클릭하고 '대상 그룹 생성'을 클릭합니다.

2b 단계 : 대상 그룹 이름을 입력하고 '만들기'를 클릭합니다. 대상 그룹이 성공적으로 생성됩니다.

2c 단계 : 대상 그룹이 선택되었는지 확인하고 대상 탭을 클릭하고 편집을 클릭하여 대상 그룹에 EC2 인스턴스를 등록합니다.

2d 단계 : EC2 인스턴스를 선택하고 '등록에 추가'를 클릭 한 다음 '저장'을 클릭합니다.

대상 그룹에 대해 아래와 같이 인스턴스를 등록해야합니다.

2e 단계 : Application Load Balancer를 생성 할 시간입니다. EC2 관리 콘솔의 왼쪽 창에서로드 밸런서를 클릭하고 '로드 밸런서 생성'을 클릭합니다.

'Application Load Balancer'에 대해 '만들기'를 클릭합니다.

'AWS WAF로 웹 애플리케이션을 보호하는 방법'에 대한이 기사를 계속 진행합니다.

2f 단계 : Application Load Balancer의 이름을 입력합니다. 모든 가용 영역이 선택되었는지 확인하고 다음을 클릭합니다.

2g 단계 : '보안 설정 구성'에서 다음을 클릭합니다.

'보안 그룹 구성'에서 새 보안 그룹을 생성하거나 기존 보안 그룹 중 하나를 선택합니다. EC2의 웹 페이지에 액세스하기 위해 포트 80이 열려 있는지 확인합니다. 다음을 클릭하십시오.

2h 단계 : '라우팅 구성'에서 '기존 대상 그룹'을 선택하고 이전 단계에서 생성 된 그룹을 선택합니다. 다음을 클릭하십시오.

2i 단계 : 대상 EC2 인스턴스는 이미 대상 그룹의 일부로 등록되었습니다. 따라서 'Register Target'탭에서 변경없이 다음을 클릭합니다.

2j 단계 : 마지막으로 Application Load Balancer의 모든 세부 정보를 검토하고 생성을 클릭합니다. Application Load Balancer는 아래와 같이 생성됩니다.

2k 단계 : Application Load Balancer의 도메인 이름을 가져 와서 아래 URL에서 강조 표시된 텍스트를 바꾸고 브라우저에서 동일하게 엽니 다. Application Load Balancer를 통해 웹 애플리케이션에 액세스하고 있으며 보안 자격 증명이 아래와 같이 표시됩니다. 보안 자격 증명 유출을 막기위한 후속 단계에 표시된대로 AWS WAF를 사용하여 아래 URL을 차단할 수 있습니다.

MyALB-1929899948.us-east-1.elb.amazonaws.com ? url = http : //169.254.169.254/latest/meta-data/iam/security-credentials/Role4EC2-S3RO

3 단계 : AWS WAF (웹 애플리케이션 방화벽) 생성

Java에서 2 진수에서 10 진수로

3a 단계 : AWS WAF 관리 콘솔로 이동하여 '웹 ACL 구성'을 클릭합니다. AWS WAF 개요가 표시됩니다. 다음은 AWS WAF의 계층입니다. 웹 ACL에는 일련의 규칙이 있고 규칙에는 후속 단계에서 생성 할 일련의 조건이 있습니다. 다음을 클릭하십시오.

3b 단계 : 웹 ACL 이름, 리전을 North Virginia (또는 EC2가 생성 된 위치)로, 리소스 유형을 'Application Load Balancer'로 입력하고 마지막으로 이전 단계에서 생성 된 Application Load Balancer를 선택합니다. 다음을 클릭하십시오.

3c 단계 : 여기에 특정 웹 애플리케이션 요청을 차단하는 조건 만들어야합니다. 아래로 스크롤하여 '문자열 및 정규식 일치 조건'에 대해 '조건 만들기'를 클릭합니다.

3d 단계 : 조건의 이름, 유형을 '문자열 일치'로 입력하고 '모든 쿼리 매개 변수'를 필터링하고 나머지 매개 변수를 아래와 같이 정확하게 입력합니다. 그리고 '필터 추가'를 클릭 한 다음 생성을 클릭합니다. 여기서는 쿼리 매개 변수의 값을 169.254.169.254로 포함하는 URL과 일치하는 조건을 만들려고합니다. 이 IP 주소는 EC2 메타 데이터 .

3e 단계 : 이제 조건 모음 인 규칙을 만들 차례입니다. '규칙 만들기'를 클릭하고 아래 표시된대로 매개 변수를 지정합니다. '조건 추가', 생성 및 '검토 및 생성'을 클릭합니다.

'AWS WAF로 웹 애플리케이션을 보호하는 방법'에 대한이 기사를 계속 진행합니다.

3f 단계 : 마지막으로 모든 세부 정보를 검토하고 '확인 및 생성'을 클릭합니다. 웹 ACL (액세스 제어 목록)이 생성되고 아래와 같이 Application Load Balancer와 연결됩니다.

3g 단계 : 이제 브라우저를 통해 Application Load Balancer URL에 액세스하십시오. 2k 단계 . 이번에는 URL이 웹 ACL 조건과 일치하고이를 차단하므로 '403 Forbidden'이 표시됩니다. 요청이 EC2의 Application Load Balancer 또는 웹 애플리케이션에 도달하지 않습니다. 여기서 우리는 애플리케이션이 보안 자격 증명에 대한 액세스를 허용하지만 WAF가 동일한 것을 차단하고 있음을 알 수 있습니다.

4 단계 : 이 자습서에서 생성 된 AWS 리소스를 정리합니다. 정리는 아래에 언급 된 것과 정확히 동일한 순서로 수행되어야합니다. 이는 AWS가이 자습서의 일부로 생성 된 관련 리소스에 대한 청구를 중지하도록하기위한 것입니다.

  • 규칙에서 조건 삭제
  • WebACL에서 규칙 삭제
  • WebACL에서 ALB 연결 해제
  • WebACL 삭제
  • 규칙 삭제
  • 조건에서 필터 삭제
  • 조건 삭제
  • ALB 및 대상 그룹 삭제
  • EC2 종료
  • IAM 역할 삭제

결론

앞서 언급했듯이 AWS를 사용하여 웹 애플리케이션을 만드는 것은 매우 쉽고 흥미 롭습니다. 그러나 우리는 또한 애플리케이션이 안전하고 데이터가 잘못된 사람에게 유출되지 않도록해야합니다. 보안은 여러 계층에 적용될 수 있습니다. 이 자습서에서는 AWS WAF (웹 애플리케이션 방화벽)를 사용하여 EC2 메타 데이터의 IP 주소와 일치하는 것과 같은 공격으로부터 웹 애플리케이션을 보호하는 방법을 살펴 보았습니다. WAF를 사용하여 SQL Injection 및 XSS (Cross Site Scripting)와 같은 일반적인 공격으로부터 보호 할 수도 있습니다.

AWS WAF 또는 실제로 다른 보안 제품을 사용한다고해서 애플리케이션이 안전하게 보호되지는 않지만 제품을 올바르게 구성해야합니다. 제대로 구성되지 않으면 Capital One 및 기타 조직에서 발생했던 것처럼 데이터가 잘못된 손에 들어갈 수 있습니다. 또한 고려해야 할 또 다른 중요한 사항은 보안을 처음부터 생각해야하고 이후 단계에서 애플리케이션에 연결하지 않아야한다는 것입니다.

이것으로 AWS WAF를 사용하여 웹 애플리케이션을 보호하는 방법에 대한이 기사의 끝으로 이동합니다. 또한 Solution Architect 시험에 응시하는 데 필요한 사항을 정확히 다루는 커리큘럼을 마련했습니다! 에 대한 과정 세부 정보를 볼 수 있습니다. 훈련.

질문이 있으십니까? 이 AWS 란 무엇입니까 블로그의 댓글 섹션에 언급 해 주시면 다시 연락 드리겠습니다.