본문 바로가기

Certification/[FCF] Fortinet Certified Fundamentals

[FCF] Cybersecurity 2.0 - Lesson 04: WAF(웹 애플리케이션 방화벽)

A. WAF 개요

1. WAF의 탄생 배경

WAF의 전신은 1990년대 처음 개발된 애플리케이션 방화벽입니다. 주로 네트워크 기반 방화벽이지만 명령줄 컴퓨터 프로그램인 FTP(파일 전송 프로토콜) 및 RSH(원격 셸)과 같은 일부 응용 프로그램이나 프로토콜을 대상으로 할 수 있습니다. 1991년 월드 와이드 웹(World Wide Web)의 등장은 인터넷 세계의 빅뱅이었으며, 이후 빠른 속도로 확장되어 왔습니다. 인터넷의 접근성과 개방성 덕분에 누구나 인터넷을 검색하고 탐색할 수 있었지만 악의적인 행위자가 자신의 추악한 목적으로 인터넷을 사용하는 것도 허용되었습니다.

더 많은 사람과 조직이 간첩, 절도 및 기타 범죄의 피해자가 되면서 HTTP 기반 사이버 공격에 대한 방어책을 개발하는 것이 최우선 과제가 되었습니다. WAF는 네트워크 주소의 차단 목록을 기반으로 결정을 내리고 특정 프로토콜과 포트 번호를 차단하는 기존의 엣지 방화벽 방법에 의존할 수 없었습니다. 모든 웹 애플리케이션은 HTTP와 포트 80 또는 443을 사용했기 때문에 이 접근 방식은 그다지 유용하지 않았습니다.

WAF는 HTTP/HTTPS 트래픽을 모니터링하고 웹 애플리케이션과 주고받는 악성 트래픽을 차단할 수 있는 어플라이언스 또는 소프트웨어입니다. 특정 웹 애플리케이션과 애플리케이션 수준의 콘텐츠를 대상으로 한다는 점에서 기존 엣지 방화벽과 다른 반면, 엣지 방화벽은 네트워크 수준에서 LAN과 외부 서버 사이에 보안 게이트웨이를 형성합니다. 특히, WAF는 HTTP 트래픽을 검사하여 SQL 주입, 사이트 간 스크립팅, 파일 포함, 보안 구성 오류 등 웹 애플리케이션 보안 결함에서 발생하는 공격을 차단할 수 있습니다. 직장과 집에서 우리가 웹 애플리케이션 및 웹 서버와 인터페이스 하는 데 많은 시간을 소비한다는 점을 감안할 때 WAF는 악의적인 행위자와 그들의 악의적인 온라인 계획에 맞서는 무기고의 필수 구성 요소가 됩니다.

 

2. WAF의 발전

SQL 주입이라는 일반적인 공격 방법을 살펴보겠습니다. 온라인 비즈니스를 운영하고 있고 고객과 파트너가 사이트에 로그인하여 제품과 서비스를 구매한다고 상상해 보세요. 일반적인 로그인 페이지에서는 사용자 ID와 비밀번호를 묻습니다. John Smith라고 하는 개인이 그의 사용자 ID(jsmith)와 암호를 입력합니다.

이 정보는 백엔드 데이터베이스에서 확인됩니다. 비밀번호가 true이면 John Smith가 로그인하지만 비밀번호가 false이면 로그인하지 못 합니다. 이제 악의적인 행위자는 아마도 John의 비밀번호를 알지 못할 것입니다. 그는 언제든지 추측할 수 있지만 시간이 매우 오래 걸 릴 수 있습니다. 대신, 공격자는 비밀번호에 “abc123 또는 2+2=4”를 입력합니다. John의 자격 증명이 확인을 위해 데이터베이스로 다시 전송되면 비밀번호 "abc123"이 거짓일 가능성이 높습니다. 그러나 2+2=4라는 표현은 참입니다. 이 결함으로 인해 악의적인 행위자는 일부 사이트에 침입할 수 있었습니다. 1세대 WAF는 차단 목록과 서명 기반 HTTP 속성을 사용하여 방화벽에 공격을 경고했기 때문에 이와 같은 SQL 주입 공격은 더 이상 성공하지 못했습니다.

인터넷의 인기가 치솟으면서 웹 애플리케이션의 수가 급증하고 복잡성이 증가하면서 서명 기반 접근 방식이 더 이상 쓸모 없게 되었습니다. 또한, 실제로는 합법적인 연결이었던 공격에 대한 경고인 오탐(false positive)의 횟수도 IT 보안 팀의 역량을 넘어서는 비율로 증가했습니다. 때문에 다음 세대에서는 WAF가 더욱 지능화되었습니다. 방화벽을 통해 학습 하는 요소가 있었습니다.

WAF는 애플리케이션의 동작을 학습하여 애플리케이션에 액세스 하려는 시도가 정상인지 불규칙인지, 따라서 의심스러운지를 평가의 기준을 생성합니다. 또한 방화벽이 알려진 서명의 변형을 탐지할 수 있도록 허용하는 세션 모니터링 및 경험적 접근 방식을 도입했습니다. 이는 한 단계 발전한 것이지만 IT 보안이 애플리케이션 학습을 감독했기 때문에 방어팀은 계속해서 늘어나는 기존 방법의 변종이나 새로운 공격을 따라잡을 수 없었습니다. 게다가 애플리케이션 코드의 알려지지 않은 약점을 악용하는 제로데이 공격에 대한 방어 수단도 없었습니다.

 

3. WAF와 ML

WAF 개발의 논리적 전환은 인간 감독의 방해를 받지 않는 기계 학습이었습니다. 이제 행동 분석은 기계 속도로 수행될 수 있으며 끊임없이 변화하는 위협 속성에 적응할 수 있습니다. 방화벽에는 기타 보안 기능이 강화되었습니다. 이러한 자산 중에는 DDoS(분산 서비스 거부) 방어, IP 평판, 바이러스 백신 및 DLP(데이터 손실 방지)가 있습니다. 방화벽은 허용 가능한 HTTP 동작을 위반하는 모든 작업을 중지할 수 있습니다. 사용자를 식별하고 사용자가 수행하려는 작업을 해당 권한과 연관시키고 역할 범위를 벗어나는 모든 작업을 중지할 수 있습니다.

WAF는 또한 다른 방화벽 및 샌드박스와 같은 네트워크의 다른 보안 장치와 정보를 공유하고 협업하도록 설계되었습니다. 이는 방화벽을 독립적으로 작동하는 것이 아니라 연동된 집단 방어에 통합하는 역할을 했습니다. 그리고 샌드박싱을 통해 의심스러운 자료를 네트워크와 분리하여 안전하게 테스트할 수 있었습니다.

이러한 샌드박스 환경에서는 제로데이 공격이 노출되어 격리될 수 있으며 해당 서명이 네트워크의 다른 장치와 공유될 수 있습니다. 또한 이러한 새로 운 발견은 인터넷의 위협 인텔리전스 센터에 업로드되어 다른 네트워크로 전달될 수 있습니다.

Fortinet에는 FortiWeb™이라는 WAF가 있습니다. FortiWeb™은 FortiGate® 및 FortiSandbox™와 통합될 수 있습니다. FortiGuard® Labs는 Fortinet의 위협 인텔리전스 센터로, FortiWeb™ 및 기타 Fortinet 보안 패브릭 제품에 대한 필수 업데이트를 제공할 수 있습니다.