목차
1. 특정 국가 차단 (Browsec VPN 사용)
2. 특정 User-Agent 차단 (User-Agent Switcher 사용)
3. custom rule 작성 시 참고사항
1. 특정 국가 차단
무료로 사용 가능한 VPN 중, 싱가포르의 트래픽을 차단해보겠다
1-1) 차단 전 확인
WAF를 설정하기 전에는 싱가포르에서 접속이 되는지 확인해보자
Browsec을 ON 시킨 후, Change > Singapore
DVWA로의 접속은 잘 된다
1-2) Rule 생성
만들어둔 WAF Web ACLs에서 Rules 탭으로 이동
전 실습과는 다르게 Add my own rules and rule groups를 누른다
Rule Name은 맘대로 정해주자
Statement의 Inspect는 Origin from a country in 으로, Country Code는 싱가포르를 검색해 지정해준 후 Rule 생성을 완료해주자
1-3) 차단 확인
다시 싱가포르인 상태로 DVWA에 들어가보면
접속이 막혔다 (차단 성공)
2. 특정 User-Agent 차단
2-1) 차단 전 확인
Browsec은 이제 끄고, User-Agent Switcher를 켜서 iOS > iPhone 6으로 설정해주자
DVWA엔 잘 접속 된다
2-2) Rule 생성
위와 똑같이 WAF에서 Add my own rules and rule groups를 눌러주자
마찬가지로 이름은 맘대로 설정해준 후, Inspect로 Header를 택해준다
우린 Header의 User-Agent 필드에서 iphone 이란 단어를 포함(Contains)하는 트래픽을 찾아내야 한다
이 때, 대문자/소문자 상관 없이 검사하기 위해 Lowercase 라는 Text transformation 옵션을 넣어준다
그러고 Add Rule > Save로 완료
2-3) 차단 확인
마찬가지로 DVWA 서버에 들어가보니
막혀있다 (차단 성공)
3. custom Rule 작성 시 참고 사항
3-1) If a request
If a request에서 Statement에 대한 사항을 AND, OR, NOT으로 지정해줄 수 있다
AND나 OR로 지정한다면 Statement를 한번에 여러개 만들수있다
3-2) Inspect
위의 2개는 국가나 IP로 제한하는거고, 아래의 Request Components들에 대해 알아보자면
이름 | 설명 |
Header | 특정 요청 헤더 Header field name에 특정 필드 이름을 넣으면 된다 필드 종류는 HTTP 헤더 검색해보기 |
Single query parameter | 쿼리 문자열의 일부로 정의한 모든 파라미터. WAF는 지정한 파라미터의 값을 검사함 Query argument도 정해줘야 함 |
All query parameter | Single query parameter와 유사하지만, WAF가 쿼리 문자열 내의 모든 매개변수 값을 검사함 규칙 비용에 10 WCUs 추가됨 |
URI path | 리소스를 식별하는 URL의 부분 |
Query string | ? 문자 뒤에 나타나는 URL의 부분 (?가 있을 때) |
Body | 요청 헤더 바로 뒤에 오는 요청 부분 여기엔 웹 요청에 필요한 추가 데이터가 포함됨 |
HTTP method | 웹 요청이 오리진에게 수행을 요구하고 있는 작업 유형을 나타냄 |
3-3) Text transformation
패턴 또는 집합 제약 조건을 찾는 문에서 요청을 검사하기 전에, WAF에서 적용할 변환을 제공할 수 있음
각 변환은 10WCU임
이름 | 설명 |
Compress whitespace | 여러 공백을 하나의 공백으로 바꾸고 공백 문자로 바꿈 ex) \t를 tab으로, \n을 새 줄로 |
HTML entity decode | HTML로 인코딩된 문자를 디코딩 ex) %quot를 "로 바꿈 |
Lowercase | 소문자로 변환 - 즉 대문자/소문자 구분 없이 보겠다는 뜻 |
Command line | 공격자가 OS CLI 명령을 삽입하는 등 명령의 일부 또는 전체를 위장하는 상황 완화 ex) \ " ' ^ 문자 삭제 |
URL decode | URL로 인코딩된 요청을 디코딩 |
끝
다음엔 JSON을 사용해서 직접 Rule을 작성해보겠다
실습 시리즈
'공부 > AWS' 카테고리의 다른 글
[AWS WAF] #5 실습 마무리 : 로깅 확인 & 리소스 삭제 (0) | 2021.02.26 |
---|---|
[AWS WAF] #4 JSON으로 WAF Rule 직접 작성해보기 (0) | 2021.02.26 |
[AWS WAF] #2 SQL Injection & XSS 공격과 방어 (AWS managed rule) (1) | 2021.02.25 |
[AWS WAF] #1 사전 리소스들과 WAF 구성 (0) | 2021.02.25 |
[AWS WAF] #0 실습 전 준비 (0) | 2021.02.25 |
댓글