강좌

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


제7장 고급 설정


  제7장 고급 설정에서는 각 페이지별로 정책 설정한다. 이때에 설정된 페이지들은 정책 설정에서 설정한 정책보다 우선 탐지된다.



1. 신규 페이지 추가

  위의 그림은 아무런 페이지별 정책도 설정되지 않은 초기 상태의 고급 설정 페이지의 화면이다.“ 추가”버튼을클릭하면아래와같이관리할페이지를추가할수있다.

■ 페이지 추가

  페이지 추가 버튼을 누르면 다음과 같은 폼이 나타난다.

  ● 페이지 이름
      - 추가할 페이지 이름으로 http://host/path에서 /path 입력
      - ex) http://testcom/test.php일 경우“/test.php”이 부분을 입력하면 됨
      - 반드시“페이지보기”버튼을 클릭하여 정상적으로 /path를 적었는지를 확인해 보아야 다음으로 진행이 됨

  다음의 그림은“페이지보기”클릭 후 페이지 이름을 잘못 입력하였을 때의 내용으로 “웹페이지를 찾을 수 없습니다.”라고 표시된다.

  ● 사용여부
      - 현재 추가할 페이지에 대한 접근을 허용할 것인지 차단할 것인지를 설정한다. 이때에 차단으로 설정할 경우 해당 페이지에 대한 접근은 무조건 차단된다.

  ● 허용기반
      - 추가할 페이지에서 사용하는 변수들에 대하여 화이트리스트 방식으로 설정할 것인지 아니면 블랙리스트 방식으로 설정할 것인지를 나타낸다. 화이트리스트로 설정할 경우에는 정해진 변수 이외에는 어떠한 변수에 사용도 차단되며 블랙리스트 방식의 경우에는 지정된 변수의 사용이 무조건 차단된다.

  페이지 이름 부분에“/test.php”로 입력하고 페이지보기를 실행하였을 때에 다음과 같이 관리할 대상이 제대로 표시되면 ”Confirm”버튼을 클릭하고 페이지를 추가한다.

  다음과 같이 정상적으로 페이지를 추가되면 관리 대상 페이지 목록에 나타난다. 앞서 입력한“test.php”가 추가되어 있는 것을 볼 수 있다.



2. 관리 페이지 수정과 삭제

  고급설정에서관리할페이지목록별각표시줄에오른쪽부분에는“수정”,“ 삭제”버튼
이 있다. 이 버튼을 클릭함으로써 수정 및 삭제가 가능하다.

■ 페이지 수정

  수정 버튼을 클릭하면 위의 그림과 수정할 페이지 목록 바로 밑에 수정할 수 있는 폼이 나타난다. 페이지 추가와 마찬가지로 사용여부와 허용기반을 수정할 수 있다. 현재에는 페이지 이름에 대한 수정 기능은 지원하지 않는다.

■ 페이지 삭제

  페이지 삭제는 삭제 버튼을 클릭하면 다음의 그림과 같이 삭제 여부를 확인한다. “확인”을 클릭하게 되면 해당 페이지는 페이지별 관리 대상에서 삭제할 수 있다.


3. 각 페이지별변수 설정

  각 페이지별 변수 설정은 관리 페이지 목록에서 페이지 이름 부분에 “설정”버튼을 클릭하여 설정할 수 있다.

  아래의 그림은 페이지별 변수 설정 화면이다. 아랫부분에 변수 관리 설정 부분에 허용하거나 차단할 변수들에 목록이 표시된다. 관리할 변수의 추가하려면 중간에 있는 “추가”버튼을 클릭하면 다음의 그림과 같이 변수 정보 입력 폼이 표시되고 변수 정보 입력 폼을 작성하고 “Confirm”을 클릭하면 된다.

■ 변수 추가

  변수 추가 버튼을 누르면 아래와 같은 폼이 나타난다. 입력 폼에 추가할 변수 정보를 입력하고 “Confirm”을 클릭하면 변수가 추가된다.

  ● 입력 폼별 설명
      - Name : 변수명
      - Format : 변수값 입력 형태(정규표현식)
      - GET : GET 메소드에 대한 허용 여부
      - POST : POST 메소드에 대한 허용 여부
      - SQL Injection : SQL Injection 공격 탐지 여부
      - XSS : XSS 공격 탐지 여부
      - WORD : 불량 단어 탐지 여부
      - TAG : 불량 태그 탐지 여부
      - Minlength : 변수 최소 길이
      - Maxlength : 변수 최대 길이

  “test.php”페이지에서 변수 id와 no를 사용하고 id 변수는 알파벳으로만 구성되고 길이는 최소 4에서 최대 32이고 no변수는 숫자로만 구성되어지며 길이가 최소 1에서 최대 32로 구성된다고 할 때에 해당 변수들에 정책을 추가한다면 다음의 그림과 같이 설정한다.

■ 변수 수정과 삭제

  변수 수정과 삭제 기능은 각 변수 목록에 오른쪽에 위치한 수정과 삭제 버튼을 통해서 수행한다.

● 수정 클릭시의 확인 창

● 삭제 클릭시의 확인 창


4. 페이지별 정책 테스트

■ 설정하지 않은 id 사용

  변수 aa는 허용되지 않았기 때문에 다음의 그림과 같이 차단된다.

■ 잘못된 형태의 값을 입력

  변수 no는 [0-9] 정규표현식에 따라 숫자로만 구성되어야 한다.

■ 최소, 최대 길이 범위를 벗어난 입력

  변수 no는 최소 1에서 최대 6 자리만 허용되도록 정책이 설정되어 있어 7자리 이상입력하면 다음과 같이 차단된다.

■ 허용되지 않은 메소드 접근

  GET 메소드가 허용되지 않았을 때 GET으로의 접근은 차단된다.




제 8 장  로그 관리


  제8장 로그 관리는 KWST에 의해서 탐지된 결과를 저장할 로그 파일에 대한 설정이다. 로그 파일이름기록여부 그리고 기록방식 등을 설정한다.

■ 로그 파일이름 설정

  로그 파일이름은 기본으로 kwst_log.txt로 설정되어 있다. 기본 파일이름을 이용할 경우에는 로그 정보가 유출되므로 관리자만 아는 이름으로 수정하여 사용하길 추천한다.

  ● 로그 파일 이름 규칙
      - Year.Month.Day-로그파일이름(ex. 20071016-kwst_log.txt)

■ 로그 기록여부 설정

  로그를 기록할 것인가 기록하지 않을 것인가를 설정한다.

  ● 기록
      - 로그를 기록함

  ● 무기록
      - 로그를 기록하지 않음

■ 로그 기록방식 설정

  기록할 로그의 방식을 설정한다. 설정에 따라 간략하게 또는 상세하게 로그가 기록된다. 시스템 디스크 용량이 충분하다면 상세하게 기록하도록 설정할 것을 추천한다.

  ● 간략
      - 로그를 간략하게 기록함

  ● 상세
      - 로그를 상세하게 기록함

■ 로그 문자셋 설정

  기록할 로그의 문자셋을 설정한다. 각 시스템의 환경에 따라 설정하면 된다. 이것을 제대로 설정하지 않으면 나중에 로그를 확인할 때에 글씨가 깨질 수 있으므로 정확히 설정하도록 한다.

■ 로그 목록개수 설정

  로그 관리에서 출력할 로그의 개수를 설정한다. 기본 20개로 설정되어 있다.

■ 로그 목록
  일별로 로그를 출력하며 가장 최근의 로그 파일이 제일 위에 놓인다.




출처 :

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


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

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