유저의 입력 정보를 이용해 웹어플리케이션을 공격하는 경우에 웹개발자의 큰 실수라고 여겨지고 있기 때문에,
모든 데이터는 적정하게 확인되어 back-end 서버에 송신되기 전에 「cleaned」될 필요가 있습니다.
Barracuda Web Application Firewalls에서는 온라인 폼, 쿠키, URL에 입력되는 입력 데이터를 분석해 필요에 따라서
데이터를 Sanitization(무해화) 하는 것으로 보안상의 틈을 막을 수가 있습니다.
Form Protection
많은 웹프로그래머는 라디오 버튼 또는 드롭 다운 메뉴 리스트 같은 특정 HTML 컨트롤로 인해 유저 인풋은 규정치를
넘지않고 브라우저는 이 제약된 값을 신뢰하여 처리한다고 생각하고 있습니다. 그러나 이 생각은 잘못이며, 공격에 대한 네트워크의 취약성을 방치하게 됩니다. 브라우저는 확실히 적절하게 유저 입력을 제한하려고 합니다. 악의 있는 유저는 브라우저와 어플리케이션간에 프록시를 설정하여 브라우저로부터 안보이는 부분에서 field type를 변경할 수가
있습니다. 즉 라디오 버튼 필드를 이용해 실행 가능한 버퍼 오버플로우를 발생시킬 수 있습니다. 이러한 공격 형태는 "form tampering"으로 알려져 있습니다.
Barracuda Web Application Firewalls은 세션 마다 어플리케이션에 의해 작성된 모든 field type를 기억하고 있어 각
필드의 유저 응답이 프로그래머가 정의한 것인지 확인합니다.
( 그림 1 : 웹방화벽 입력 데이터 검증 )
Cookie Protection
해커가 자주 사용하는 방법으로서 쿠키를 사용하는 코드의 취약성을 악용 한 것이 있습니다.
쿠키는 유저를 정의하기 위한 가장 일반적인 방법이기 때문에, 해커가 정당한 유저의 쿠키를 추측할 수 있다면 해커는
근본적으로 바로 그 유저가 "되는" 일이 가능합니다. Barracuda Web Application Firewalls는 이러한 공격을 막기
위해서 2개의 방법을 이용합니다:
-
Cookie Encryption
쿠키의 해독를 불가능하게 만들어 모든 공격을 무효화 할 수 있습니다. Barracuda Web Application Firewalls은 유저에게 송신된 쿠키를 암호화하고 이어지는 유저 요청에 근거해, Barracuda Web Application Firewalls는
어플리케이션의 변경없이 back-end 웹서버에 되돌리기 전에 쿠키를 복호화(decode) 합니다. -
Cookie Signing
서버가 생성한 각 쿠키에 대해, Barracuda Web Application Firewalls는 1개의 쿠키에 대해서 부수적으로 그
쿠키의 digital signature를 생성합니다. Barracuda Web Application Firewalls은 원본 쿠키와 그 digital signature 사이에 불일치로 판명되었을 경우, 오리지날 쿠키의 위조를 탐지할 수가 있습니다.
SQL & OS Command Injection
어플리케이션 레이어에 대한 공격에는 SQL 인젝션이나 OS커멘드 인젝션 공격 그리고 JavaScript 인젝션에 의한 phishing 공격, 일명 크로스 사이트 스크립트 공격(XSS) 등 무수한 방법이 있습니다.
이러한 공격은 데이타베이스 테이블의 도난, 또는 사용자를 속여 신분이나 개인정보를 취득하기 위해서 어플리케이션의 실제 프로그램 코드를 위험에 처하게 만들기 때문에 특별히 위험하다고 말할 수 있습니다. 결국 이러한 두 타입의 공격은, 유저로부터 수신한 입력의 인증 확인을 잊은 프로그래머의 일반적인 실수에 의해 생기고 있습니다.
Barracuda Web Application Firewalls은 SQL과 JavaScript구문 요소에 필요한 모든 유저 입력을 상시 모니터링 하는 것으로 이러한 타입의 공격을 방어합니다. 비록 프로그래머가 입력 내용의 확인을 잊어도 Barracuda Web Application Firewalls은 공격 데이터를 노멀라이즈하여 자동적으로 어플리케이션을 보호합니다.