Home Blogs 손쉬운 WAF 튜닝
Applications

About The Author

Outline

중소기업과 신규 기업은 심각한 보안 문제에 직면해 있습니다. 전담 보안 전문가 또는 타사 관리 서비스를 고용하는 비용을 최소화하면서 웹 애플리케이션을 안전하게 보호할 수 있는 정교한 보안 솔루션이 필요합니다. 새로운 공격 기법이 끊임없이 등장함에 따라 웹 애플리케이션 보안은 그 어느 때보다 중요하고 도전적인 요소가 되고 있습니다.

Edgecast, 이제 Edgio, WAF가 솔루션입니다. 관리를 단순화하는 강력하고 정교한 솔루션을 제공합니다. 실시간 대시보드 및 로그 전달을 통해 최신 가시성을 확보할 수 있으므로 관리자가 신속하게 위협을 식별하고 조치를 취할 수 있습니다.

이 블로그에서는 기업이 추가 지원 비용 없이 오탐률을 식별 및 제거하고 웹 애플리케이션에 대한 맞춤형 솔루션을 구축하는 방법에 대해 중점적으로 다룹니다.

이 공간을 처음 접하고 Edgio WAF를 아직 사용해 본 적이 없다면 이 짧은 튜토리얼을 통해 사용자 인터페이스와 작동 방식을 이해하세요.

이미 계정이 있는 경우, 이 연습을 저와 함께 해 주시기 바랍니다.

1. 먼저 실시간 대시보드로 이동하여 WAF 이벤트를 시간별로 필터링합니다. 웹 트래픽을 분석하려는 기간입니다. (참고: 이전에 일부 규칙 튜닝을 이미 수행한 경우 최신 튜닝 후 시간 프레임을 선택해야 합니다.)

그림 1: 지난 6시간 동안 발생한 WAF 이벤트

2. 이 트래픽에 의해 트리거된 상위 10개의 규칙 ID를 살펴보십시오. 규칙 ID는 트래픽을 추가로 필터링하고 다양한 WAF 이벤트의 페이로드를 관찰하는 데 유용합니다. 즉, 추가 분석을 위해 이러한 규칙 ID별로 트래픽을 하나씩 필터링하십시오.

그림 2: WAF 이벤트에 의해 실행된 상위 10개 규칙

다음으로, 일치된 값 필드를 보고 이 규칙을 트리거한 페이로드 값을 검토합니다.

그림 3: 일치된 값 열 아래의 페이로드 값

4. 페이로드 값을 분석하여 악의적인지 확인합니다. 그들이 어떻게 생겼는지 확실하지 않습니까? 다음은 페이로드에서 찾을 수 있는 몇 가지 잠재적인 악성 값입니다.

  • 경로 통과: http://some_site.com.br/../../../../some dir/some file¹ http://testsite.com/get.asp?f=/etc/passwd²‍
  • LFI 취약점: 공격자가 .ini와 같은 서버의 중요한 파일에 액세스하려고 합니다. 엣지캐스트 WAF는 이 파일과 다른 많은 중요한 파일시스템 확장을 기본적으로 차단한다.³‍
  • 크로스 사이트 스크립팅: http://testsite.test/<스크립트>경고(“테스트”);</스크립트>⁴ <img src=”http://url.to.file.which/not.exist” OnError=alert(document.cookie);>⁵‍
  • SQL 인젝션: SELECT * from items where ‘a’=’a’;⁷‍ SELECT 1;⁶
  • 원격 코드 실행: Eval(“\$$user = ‘$regdate’);⁸‍
  • 시간 기반 공격: 선택 1 및 sleep(2);⁹ 선택 벤치마크(2000000,MD5(‘A’));¹⁰

5. 페이로드가 악의적인지 여전히 확실하지 않은 경우, 이를 파악하는 가장 좋은 방법은 해당 페이로드를 사용하여 요청을 시작한 클라이언트 IP 목록을 보는 것입니다. 클라이언트 IP가 분산되어 있는 경우, 즉 가변적이면 페이로드가 가양성일 가능성이 높습니다. 그러나 모든 클라이언트 IP의 값이 같으면 잠재적인 볼륨 공격을 나타내므로 악의적인 페이로드로 분류됩니다. 이를 설명하기 위해 3단계를 참조하여 일치하는 이 값({“IATA”:[“TGZ”,”MEX”]}을 선택하고 예로 사용하겠습니다. 이 페이로드를 보낸 클라이언트 IP 목록을 찾으려면 다음과 같이 일치하는 값을 필터로 추가합니다.

그림 5: 페이로드 값을 전송한 클라이언트 IP: {“IATA”:[“TGZ”,”MEX”]}.

이 경우, 이 요청을 만드는 IP 주소의 다양성을 고려할 때, 이러한 요청이 실제 사용자로부터 시작되었을 가능성이 높으며, 이는 오탐에 대한 좋은 후보가 될 수 있습니다.

6. 가양성이 확인되면 관리 규칙 섹션에서 예외를 만들 수 있지만, 그렇게하기 전에 쿼리 문자열, 요청 헤더, URL 또는 기타 위치 등 이 페이로드가 발견된 위치를 찾아야합니다. 이 작업은 5단계의 동일한 페이지에 있는 일치 대상 열을 보면 쉽게 수행할 수 있습니다. 이 사용 사례에서는 아래와 같이 “data” 쿼리 인수에서 페이로드를 찾았습니다.

그림 6: 페이로드 값의 위치: {“IATA”:[“TGZ”,”MEX”]}.

7. 엄지 손가락의 좋은 규칙은 거짓 긍정적 인 페이로드를 포함하는 필드에서 이러한 특정 일치 항목을 필터링한 다음 실제 악성 페이로드를 전달하는 매개 변수에 대해 일치하는 다른 요청이 없는지 확인하는 것입니다. 다시 말해, 특정 일치 대상 필드의 페이로드는 악의적이지 않습니다. 이 작업은 해당 필드에 일치 필드에서 필터를 추가하여 수행할 수 있습니다. 이 사용 사례를 살펴보면 이 쿼리 인수에 악의적인 페이로드가 없음을 확인할 수 있습니다.

그림 7: query 인수에 전송된 모든 페이로드 값: data.

8. 예외를 생성하기 전의 마지막 단계는 일치하는 필드에 의해 트리거된 규칙 ID를 찾는 것입니다. 이 가양성에 의해 트리거된 모든 규칙(규칙 ID)을 기록하려고 합니다. 사용 사례에 따라 이 정보는 5단계의 동일한 페이지에서 확인할 수 있습니다.

그림 8: 페이로드 값에 의해 트리거되는 규칙 목록: {“IATA”: [“TGZ”,”MEX”]}.

9. 예외를 만들 시간입니다. 관리되는 규칙 섹션으로 이동하여 이러한 예외를 추가할 관리되는 규칙을 클릭합니다.

그림 9: WAF 구성에 대해 생성된 기존 관리 규칙

10. 예외 탭으로 이동하여 새 조건 추가를 클릭합니다. 페이로드가 발견된 args, request_cookies 또는 URL과 같이 필드에서 일치하는 유형을 선택합니다. 그런 다음 쿼리 또는 쿠키와 같은 매개 변수의 이름을 입력합니다. 마지막으로, 페이로드가 트리거한 모든 규칙 ID 목록을 입력합니다.

그림 10: 관리되는 규칙 구성 아래의 예외 탭

11. 가서 그 조건을 만드십시오. 관리되는 규칙을 저장한 후 30초 이내에 WAF를 통과하는 이 오탐을 확인할 수 있습니다.

12. 이제 이것이 어떻게 작동하는지 알았으므로 3 단계로 돌아가서 다른 규칙 ID로 트래픽을 필터링하고 가능한 한 많은 오탐을 제거하려면이 프로세스를 반복하십시오.

네가 해냈어. 트래픽에 맞게 WAF 솔루션을 사용자 지정했습니다.

몇 가지 최종 팁

Edgio WAF를 처음 사용하는 경우, 블록 모드를 켜기 전에 이 연습을 2-3회 수행하는 것이 좋습니다. 교통량에 따라 2-7일마다 이 운동을 반복할 수 있습니다. 기존 Edgio WAF 고객에게는 3-4주마다 이 미세 조정 연습을 수행하는 것이 좋습니다. 고려해야 할 한 가지 더 고려해야 할 사항은 관리 규칙의 임계값을 10 미만으로 낮추고 점차적으로 최적의 값 5로 만드는 것입니다. 이를 통해 보다 정확하고 선명한 규칙 집합을 꾸준히 큐레이션할 수 있습니다. Edgio WAF는 실시간 트래픽을 위한 실제 준비 환경(감사 모드)인 이중 WAF를 제공합니다. 정상적인 트래픽을 차단할 염려 없이 규칙 집합에 대한 모든 반복 업데이트 및 미세 조정에 감사 모드를 사용할 수 있습니다.

웹 애플리케이션을 안전하게 보호하는 Akamai의 모든 보안 기술에 대해 자세히 알아보려면 지금 당사에 연락하십시오.

리소스:

¹⁻² OWASP, “경로 트래버설,” owasp.org, owasp.org/www-community/attacks/Path_Traversal.

³ 공격 보안, “파일 포함 취약점,” offensive-security.com, offensive-security.com/metasploit-unleashed/file-inclusion-vulnerabilities/.

⁴⁻⁵ OWASP, “크로스 사이트 스크립팅,” owasp.org, owasp.org/www-community/attacks/xss/.

⁶⁻⁷OWASP, “SQL 인젝션,” owasp.org, owasp.org/www-community/attacks/SQL_Injection.

⁸ Netsparker, “원격 코드 평가(실행) 취약점,” netsparker.com, netsparker.com/blog/web-security/remote-code-evaluation-execution/.

⁹⁻¹⁰ Ahmad, Ashraff, “웹 애플리케이션의 타이밍 기반 공격,” owasp.org, owasp.org/www-pdf-archive/2018-02-05-AhmadAshraff.pdf.