강좌
클라우드/리눅스에 관한 강좌입니다.
프로그램 분류

웹어플리케이션 보안템플릿[1] - 설치 및 적용 : PHP 버전

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

  ==========> 가이드 CD 다운로드

제 1 장  활용에 앞서


  기존의 침해사고는 운영체제의 취약점이나 어플리케이션 취약점이 주로 이용되었으나, 최근에는 홈페이지에 존재하는 웹 어플리케이션 취약점이 공격에 많이 사용되고 있다.

  홈페이지에 존재하는 웹 어플리케이션 취약점은 다른 해킹 기법과 비교하여 상대적으로 낮은 수준의 기술로도 해킹이 가능하고, 이를 이용해 많은 사용자들을 대상으로 빠른 시간내 악성코드의 전파가 가능하다. 또한 홈페이지를 방문하는 고객을 대상으로 악성코드가
전파되므로, 공격자의 입장에서는 특정 분야 사용자를 목표로 한 공격이 가능하다는 장점이 있다.

  웹 어플리케이션 취약점의 보완을 위해서는 취약점의 원인이 되는 홈페이지 소스의 수정이 필요하나, 대부분의 중소 홈페이지의 경우, 개발인력의 미비로 인해 침해사고가 지속적으로 재발하는 문제가 발생하고 있는 실정이다. 이러한 문제점을 해결하기 위해서 KISA에서는 안전한 웹 어플리케이션의 소스코드를 제작해 보급하였으며 공개 웹방화벽을 보급하여 웹 어플리케이션의 취약점을 차단하고자 하는 많은 노력을 기울이고 있다.

  본 문서에서는 PHP 환경에서 사용할 수 있는 보안모듈(KWST-KISA Web Security Template, 이하 KWST)를 제공한다. KWST는 웹 어플리케이션의 소스코드를 수정하지 못하는 곳이나 공개 웹 방화벽의 설치가 어려운 홈페이지 등에서 사용할 수 있으며 간단한 작업만으로 홈페이지에 적용이 가능한 보안 모듈 형태로 제공된다.

  KWST은 가장 일반적인 웹 개발 환경에서 적용 가능하도록 제작되었지만, 각 기관의 웹개발 환경 및 서비스가 매우 다양하므로, 정상적인 서비스에 지장이 없도록 충분한 최적화 작업 및 테스트를 하기 바란다. 향후, 추가로 ASP, JSP 보안모듈을 제작, 배포할 예정이며 모든 보안모듈 프로그램 및 관련자료는 한국정보보호진흥원 KrCERT 홈페이지에서 다운로드가 가능하다.

  모쪼록 본 프로그램이 국내 홈페이지에 대한 피해사고 감소와 홈페이지 관리자의 보안작업에 도움이 되길 바란다.

    ※ KWST는 인터넷에서 공개된 WSM(Web Security Module)을 개발한 외부전문가에게 의뢰하여 개발되었으며, 사용자의 편리성 및 보안성 강화 기능을 추가적으로 개발하여 기존 버전과 많은 변화를 보였다.


■ KWST의 주요기능

  ● 보안성 강화
      - OWASP 10대 취약점 중 주요 취약점을 해결
      - 웹 해킹 탐지 우회 차단 기능 추가
      - 소스코드 차원의 웹 어플리케이션 보안성 강화

  ● 사용자 편리성 강화
      - 관리자 페이지를 이용해 편리한 정책 설정 지원
      - 운영 중인 프로그램 소스의 최소 수정만으로 적용 가능

  ● 높은 호환성 지원
      - 다양한 웹 서버 환경과 웹 어플리케이션에서 동작할 수 있는 호환성 지원
      - 각 웹 어플리케이션 서버 버전에서 동작할 수 있도록 호환성 지원

■ 기대효과

  ● 웹 어플리케이션 개발과정에서의 보안성 강화 확보
  ● 웹 보안 템플릿 확산으로 국내 웹 어플리케이션의 보안성 향상
  ● 편리한 사용과정을 통해 기존 웹 어플리케이션 수정용이


제 2 장  설치 및 적용


  제2장에서는 KWST 설치 전에 준비할 사항과 단계별 설치 방법을 알아보고, 설치 후 적용방법에 대해서 설명한다.

1. 설치 준비

  KWST 설치를 위해서 설치할 시스템에 최신 버전의 KWST 프로그램 소스를 제공된 CD에서 복사한다.

■ 리눅스 & 유닉스 계열에서의 설치 준비

  리눅스 및 유닉스 계열에서는 다음의 방법에 따라 설치 준비를 한다.

■ 윈도우즈 계열에서의 설치 준비

  윈도우 계열 시스템에서 KWST를 설치하고자 하는 경우에는 파일을 받아 알집 등의 압축 해제 프로그램을 이용하여 압축을 해제한다. 압축 해제 후에는 마찬가지로 웹상에서 이후 설치 과정을 진행하면 된다.


2. 설치과정

  웹 어플리케이션 보안 템플릿(KWST) 설치 과정은 총 4단계로 0. 설치 동의, 1. 권한 설정, 2. 문자셋(charset) 설정, 3. 관리자 계정 설정으로 이루어진다. 윈도우 계열에서는 2.권한 설정 과정은 거치지 않는다.

  KWST 설치 초기 페이지는 위와 같이 install.php 파일이다. 앞의 설치 준비 과정을 통해 압축 해지한 위치를 웹 브라우저를 통해 연결할 수 있다.

■ 설치 1단계 - 설치 동의 단계

  설치를 위해서 웹 브라우저를 이용하여 위의 설치전체경로에 접근하면 아래의 그림과 같이 안내문과 라이센스를 확인하는 화면이 나타난다. 현재 KWST는 무료로 공개되기 때문에 바로“위의 라이센스를 모두 읽었으며 동의합니다.”를 클릭하고 다음 단계로 진행한다.


■ 설치 2단계 - 권한 설정 단계

  권한 설정 단계는 설치하고자 하는 시스템에 쓰기 권한이 정상적으로 설정되어 있는지를 확인하는 단계이다. 윈도우즈 계열에서는 기본적으로 쓰기 권한이 주어져 있기 때문에 권한 설정 단계를 거치지 않고 바로 문자셋 설정 단계로 바로 진행된다.

  KWST를 설치하기 위해서는 kwstphp/와 kwstphp/log 디렉터리 권한이 707로 설정되어 있어야 한다. 권한 설정이 완전히 이루어지지 않으면 다음 단계로 진행되지 않기 때문에 시스템에 터미널로 접속하여 다음의 방법으로 반드시 권한을 707로 설정해야한다.

  권한 설정이 완료되면 다음의 그림과 같이 녹색 글씨로“설정이 완료되었습니다.”라는 메시지를 확인할 수 있다. 그리고 다음 단계를 눌러 문자셋 설정 단계로 진행한다.


■ 설치 3단계 - 문자셋 설정 단계

  문자셋 설정은 KWST를 적용하고자 서버나 웹 페이지의 문자셋에 맞추어 설정하여야 한다. 그렇지 않은 경우 KWST 메시지를 확인할 때에 글씨가 깨진 상태로 출력되게 된다. 다음의 방법으로 시스템 상태를 확인하고 반드시 정확한 문자셋으로 설정하고 다음 단계인 관리자 계정 설정 단계로 진행한다.

  아래의 방법은 Apache 웹 서버에서 문자셋이 어떻게 설정되어 있는가를 확인하는 방법이다. 본인의 시스템에 따라 확인하기 바란다. 위의 경우에는 UTF-8로 웹 서버가 문자셋을 설정하고 있는 것을 나타낸다.


■ 설치 4단계 - 관리자 계정 설정 단계

  관리자 계정은 KWST 관리자 페이지에 인증을 하기 위한 관리자 계정이다. 아이디와 암호는 보안상 아주 중요하기 때문에 쉽지 않은 암호로 생성하길 바란다. 아이디와 암호는 찾기 기능이 없으므로 반드시 기억해야 하며 아이디와 암호를 잃어버린 경우에는 재설치 과정을 거쳐야 하므로 주의하길 바란다.

   아이디와 암호, 암호확인을 정확히 입력한 후“설치 완료하기(Finish)”버튼을 누르면 “설치가 완료되었습니다.”라는 메시지와 함께 설치가 완료된다.

3. 적용 과정

  웹 어플리케이션 보안모듈을 각 웹 페이지나 프로그램에 적용하기 위해서는 KWST를 적용하고자 하는 대상 파일에 4줄로 구성된 코드를 추가해야 된다. 예를 들어 http://test.com/test.php 웹 프로그램에 KWST를 적용한다면 test.php 파일의 첫 줄에 아래와 같이 추가해야 된다.

  추가할 소스코드의 내용은 위와 같다. 위의 코드에서“KWST 프로그램 위치 절대 경로”부분을 KWST 프로그램이 설치된(압축 해제된) 경로로 수정해야 한다. 예를 들어 KWST가 “/var/www/html/kwstphp”에 설치된 경우라면 다음과 같이 수정하고 설치할 웹 페이지 첫줄에 추가하면 된다.

  실제 예로 제로보드에 lib.php 파일에 KWST를 적용한다면 다음과 같이 추가하면 된다. 이렇게 추가되면 제로보드 lib.php 파일에 KWST가 적용되게 된다.


  이처럼 적용하고자 하는 웹 페이지나 프로그램을 모두 수정하면 된다. 그러나 위 과정은 상당히 번거로우며 수정할 때에 PHP 문법적 에러가 발생하지 않도록 꼼꼼하게 하여야 한다. 수정이 완료되면 다음과 같은 방법으로 정상적으로 에러가 없는지 확인하도록 한다.

  위와 같이 실행하였을 때에 경고나 에러가 발생하지 않으면 정상적으로 수정이 완료된 것이다.





출처 :

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  102 명