강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
웹어플리케이션 보안템플릿[3] - 기본 설정 및 정책 설정 : PHP 버전
조회 : 8,890  


제 5 장 기본 설정


  제5장 기본 설정에서는 KWST에 대한 가장 중요한 부분으로 보안모듈 기본설정, 사이트 설정, 보안모듈 적용대상 등 운영에 관련된 정책 설정에 대하여 설명한다.

1. 보안 모듈 기본 설정

  보안 모듈 기본 설정에서는 모듈이름, 집행모드 그리고 알림방식에 대해서 설정한다.


■ 모듈이름 설정

  설치한 KWST 관리자 페이지의 이름을 설정한다. 설정된 모듈이름은 각 관리자 페이지의 타이틀(title)에 표시되며 관리자가 임의대로 모듈이름을 설정하면 된다.

■ 집행모드 설정 (*설정상 주의필요)

  집행모드 설정은 KWST 설정에 있어서 가장 중요한 부분으로 설치한 KWST를 실제 집행할 것인지 혹은 설치만하고 집행하지 않을 것인지 등을 설정한다. 집행모드에는 총 3개의 모드가 있으며 적용모드, 감사모드 그리고 비적용모드가 있다.

  ● 적용모드(enforcing)
      - 집행모드가 적용모드로 설정되어 있을 경우에는 KWST에서 정의한 정책들에 의해 탐지를 수행하고 차단 또는 허용된다.

  ● 감사모드(permissive) - 기본 설정 상태
      - 감사모드로 설정되어 있을 경우에는 적용모드와 마찬가지로 KWST에서 정의한 정책들에 의해 탐지를 수행하지만 무조건 허용됨
      - 설치 초기에 정책을 작성하는 과정에 감사모드로 정책의 안정화하는 것이 좋음

  ● 비적용모드(disabled)
      - 비적용모드로 설정되어 있을 경우에는 KWST 프레임워크에서 바로 빠져나와 아무런 탐지도 적용도 되지 않음

■ 알림방식 설정

  알림방식 설정은 집행모드가 적용모드로 설정되어 있을 때 비정상적인 행위로 탐지되어 사용자의 접근이 차단할 필요가 있을 경우 어떻게 차단할 것인지에 대한 설정이다. 알림방식에는 경고모드, 알림모드 그리고 스텔스모드가 있다.

  ● 경고모드(alert)
      - 집행 결과를 경고창으로 알리며 사용자에게 곧바로 결과를 알리고자 할 때 설정

  ● 메시지모드(message)
      - 집행 결과를 메시지로 알림, 일반적인 에러 메시지처럼 알림

  ● 스텔스모드(stealth)
      - 권한이 없다는 403 접근 거부 페이지를 보여줌
      - KWST 웹보안모듈이 설치되어 운영하고 있다는 것을 숨기고자 할 때에 유용함


2. 사이트 설정

  사이트 설정에서는 현재 운영 중인 사이트에 대한 전반적인 설정으로 현재 운영 중인 사이트를 폐쇄할 것인지 서비스할 것인지에 대한 설정과 사이트의 문자셋이 무엇인지를 설정한다. 지원하는 문자셋으로는 UTF-8과 eucKR이 있다.

■ 사이트 폐쇄여부 설정
  KWST 설치되어 운영 중인 사이트를 일시적으로 또는 영구적으로 차단하고자 한다면 사이트를 폐쇄 할 수 있다.

  ● 열림
      - 사이트를 정상적으로 운영함

  ● 폐쇄
      - 사이트를 폐쇄하여 운영하지 않음, 다음의 그림은 사이트가 폐쇄된 화면

■ 사이트 문자셋 설정
  KWST를 설치 운영하고자 하는 웹 페이지나 웹 서버의 설정에 따라 문자셋(charset)을 설정한다. 국내에서 주로 사용되는 UTF-8와 eucKR 두 개의 문자셋만을 제공하며 문자셋이 잘못 설정될 경우에 각 에러 메시지들이 깨져서 보이게 되므로 정확하게 설정해야 한다.

  ● UTF-8
      - 서버 및 웹 페이지 설정이 UTF-8인 경우

  ● eucKR(CP949)
      - 서버 및 웹 페이지 설정이 eucKR(CP949)인 경우

  정상적으로 문자셋이 설정되어 있을 경우에는 다음의 그림과 같이 제대로 된 알림 메시지를 볼 수 있다.

  다음의 그림은 문자셋이 잘못 설정된 경우의 알림 메시지이다. 글씨가 깨어져 정확히 확인할 수 없게 된다.

3. 보안모듈 적용대상 설정

  보안모듈 적용대상 설정은 KWST 웹보안모듈에 의해서 탐지할 대상들에 대한 설정이다. 기본으로 GET, POST, FILE, COOKIE 등에 전역변수들을 대상으로 탐지를 수행하도록 설정되어 있다.


■ GET 변수 설정
  GET 변수들을 대상으로 탐지를 수행할지 안할지를 설정한다.

■ POST 변수 설정
  POST 변수들을 대상으로 탐지를 수행할지 안할지를 설정한다.

■ FILE 변수 설정
  FILE 변수들을 대상으로 탐지를 수행할지 안할지를 설정한다.

■ COOKIE 변수 설정
  COOKIE 변수들을 대상으로 탐지를 수행할지 안할지를 설정한다.



제 6 장  정책 설정


  제6장 정책 설정에서는 KWST에서 탐지할 공격 형태들을 유형별로 설정한다. 대표적인 공격들인 SQL Injection, XSS, 불량단어(WORD), 불량태그(TAG), 아이피주소, 파일별로 정책을 설정할 수 있다.

1. SQL Injection 정책 설정

  SQL Injection 공격 형태를 정규표현식 형태로 설정할 수 있다. 이렇게 설정된 정규표현식 규칙에 포함되는 모든 공격은 탐지된다.

  ● 적용여부
      - SQL Injection 공격 탐지를 수행할지 안할지를 설정한다.

  ● 목록
      - SQL Injection 공격 형태를 정규표현식으로 설정한다.

■ SQL Injection 공격 탐지 차단

  변수에“1 or 1 --”와 같이 목록에 포함된 형태의 SQL Injection 공격 코드를 넣었을 때 다음과 같이 탐지되고 차단된다.


2. XSS 정책 설정

  XSS 공격 형태를 정규표현식 형태로 설정할 수 있다. 이렇게 설정된 정규표현식 규칙에 포함되는 모든 공격은 탐지된다.

  ● 적용여부
      - XSS 공격 탐지를 수행할지 안할지를 설정한다.

  ● 목록
      - XSS 공격 형태를 정규표현식으로 설정한다.

■ XSS 공격 탐지 차단

  변수에“javascript:”와 같이 목록에 포함된 형태의 XSS 공격 코드를 넣었을 때 다음과 같이 탐지되고 차단된다.

3. 불량단어 정책 설정

  불량단어 형태를 정규표현식 형태로 설정할 수 있다. 이렇게 설정된 정규표현식 규칙에 포함되는 모든 공격은 탐지된다. 불량단어는 스팸성 글이나 악성 댓글을 차단하는데 유용하다.

  ● 적용여부
    - 불량단어 탐지를 수행할지 안할지를 설정한다.

● 목록
  - 불량단어 형태를 정규표현식으로 설정한다.


■ 불량단어 공격 탐지 차단

  변수에“현찰게임과 같이 목록에 포함된 형태의 불량단어를 넣었을 때 다음과 같이 탐지되고 차단된다.

4. 불량태그 정책 설정

  불량태그 형태를 정규표현식 형태로 설정할 수 있다. 이렇게 설정된 정규표현식 규칙에 포함되는 모든 공격은 탐지된다.

  ● 적용여부
      - 불량태그 공격 탐지를 수행할지 안할지를 설정한다.

  ● 목록
      - 불량태그 공격 형태를 정규표현식으로 설정한다.


■ 불량태그 공격 탐지 차단

  변수에“<iframe”와 같이 목록에 포함된 형태의 불량태그를 넣었을 때 다음과 같이 탐지되고 차단된다.

5. 아이피 정책 설정

  아이피 정책 설정에서는 아이피 주소를 정규표현식 형태로 설정하여 접근 통제할 정책을 설정한다. 이렇게 설정된 정규표현식 규칙에 포함되는 모든 아이피는 적용기반에 따라 차단되거나 허용된다.

  ● 적용여부
    아이피 탐지를 수행할지 안할지를 설정한다.

  ● 적용기반
    - 화이트리스트 : 목록에 포함된 아이피 주소에서만 접근을 허용함
    - 블랙리스트 : 목록에 포함된 아이피 주소에서의 접근은 차단함

  ● 목록
      - 아이피 주소를 정규표현식으로 설정한다.

■ 아이피 탐지 차단

  위의 그림과 같이 아이피 설정 부분에 블랙리스트 방식으로“127.0.0.1”를 설정하고 접근했을 때 아래의 그림과 같이 탐지된다.


6. 파일 정책 설정

  파일 정책은 업로드하는 파일들에 이름과 타입 그리고 크기로 허용할 것인지 차단할 것인지를 설정한다.

■ 파일이름

  ● 적용여부
      - 파일이름 탐지를 수행할지 안할지를 설정한다.

  ● 적용기반
      - 화이트리스트 : 목록에 포함된 파일이름만 업로드를 허용함
      - 블랙리스트 : 목록에 포함된 파일이름은 업로드를 차단함

  ● 목록
      - 파일이름을 정규표현식으로 설정한다.

■ 파일타입

  ● 적용여부
      - 파일타입 탐지를 수행할지 안할지를 설정한다.

  ● 적용기반
      - 화이트리스트 : 목록에 포함된 파일타입만 업로드를 허용함
      - 블랙리스트 : 목록에 포함된 파일타입은 업로드를 차단함

  ● 목록
      - 파일타입을 정규표현식으로 설정한다.

■ 파일크기

  ● 적용여부
      - 파일크기 탐지를 수행할지 안할지를 설정한다.

  ● 최소크기
      - 업로드를 허용할 최소크기 값을 설정

  ● 최대크기
      - 업로드를 허용할 최대크기 값을 설정

■ 파일 업로드 탐지 차단

  허용하지 않은 확장자인“*.php”를 가진 파일을 업로드할 때에 다음과 같이 탐지되고 차단된다.






출처 :

[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1702


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
krcert
인터넷 침해사고대응지원센터의
허락하에 본 사이트에서 pdf 파일 형식으로 배포 됩니다.