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

웹서버구축 보안점검가이드[5] - 웹 패키지 S/W 관리

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

제 6 장  웹 패키지 S/W 관리


제1절 사용 중인 웹 패키지 S/W 파악
  현재 홈페이지 내에서 사용 중인 웹 패키지 S/W를 파악하고, 리스트를 구축하여 관리한다.

  특히 공개용 웹 게시판의 경우, 소스가 공개돼 있어 취약점이 자주 발표되고 있고 또한 취약점 패치가 바로 이루어지지 않는 경우가 있을 수 있어, 중요한 웹 서버에서는 가능한 사용을 하지 않도록 한다. 중요 웹 서버에서 부득이 하게 공개용 웹 게시판을 사용할 경우에는 필히 웹 방화벽을 적용, 운영하여야 한다.


제2절 주기적인 취약점 및 패치 확인
  사용 중인 웹 패키지 S/W의 새로운 취약점 발견 여부 및 해당 취약점에 대한 패치를 주기적으로 실시하여야 한다. 주요 보안 사이트와 보안 메일링 리스트를 이용해 주요 최신 취약점을 확인하여 취약점 발표 여부와 함께 패치를 진행하도록 한다.

  가. 주요 웹 패키지 리스트
    - 제로보드 (http://www.nzeo.com)
    - 테크노트 (http://www.technote.com)
    - phpBB (http://www.phpbb.com)

  나. 주요 보안 취약점 발표 사이트
    - Securityfocus (http://www.securityfocus.com)
    - Xfocus (http://xforce.iss.net/xforce/alerts/advisories)
    - Microsoft (http://www.microsoft.com/technet/security/advisory/default.mspx)
    - FrSIRT (http://www.frsirt.com/)
    - milw0rm (http://www.milw0rm.com/)

  다. 주요 보안관련 메일링 리스트
    - Securityfocus (http://www.securityfocus.com/archive)
    - Securiteam (http://www.securiteam.com/)


제3절 주요 웹 패키지 취약점 리스트

1. 제로보드
  제로보드는 사용의 편리성과 공개 프로그램으로 인해 가장 많이 사용되고 있는 게시판 프로그램 중의 하나이다. 국내 웹 호스팅 업체, 해외 동포 사이트, 중국 사용자 등 다수의 사이트에서 설치, 운용 중이다. 중국의 경우 한국 IT 기술을 모방하는 경향이 있어, 대만의 제로보드 사용자 포럼(http://czeo.com/) 까지 구성될 정도로 폭넓게 사용 중이다.

  현재, 제로보드 5 버전이 개발 중에 있으며, 별도의 홈페이지를 통해 베타버전을 다운로드, 테스트 해볼 수 있다.

    - 제로보드 공식 사이트 : http://www.nzeo.com
    - 제로보드 5 버전 공식 사이트 : http://beta.zb5.zeroboard.com/

  가. 최근 발표된 보안 취약점 내역
    ● 2004년 12월 20일 취약점 패치(www.bugtraq.org에 게시된 취약점)
      - 파일 노출 취약점(다운로드 취약점)
        􀓋시스템 내부 중요 파일들의 내부 정보를 노출시킨다.
      - 외부 소스 실행 취약점(원격 파일 삽입 취약점)
        􀓋include 항목의 변수를 외부에서 설정할 수 있어 원격의 파일을 참조시켜 시스템정보를 파악하고 웹 서비스 권한을 획득 할 수 있다.

    ● 2005년 1월 13일 취약점 패치(www.bugtraq.org에 게시된 취약점)
      - XSS 취약점
        􀓋서버 설정에 따라서 $dir, $_zb_path 변수를 이용, 외부에서 임의의 스크립트를 실행하는 문제로써 preg_replace에서 정규 표현식을 이용할 때 quotes를 하지 않아 발생

    ● 2005년 4월 4일 취약점 패치 (4.1 pl7 패치)
      - 비밀글을 임의로 읽을 수 있는 보안 취약점 등
        ※ 게시판 운영과 관련 있는 취약점으로 홈페이지 변조와는 관련이 없는 취약점임

    ● 2006년 3월 15일 취약점 패치 (4.1 pl8 패치)
      - 임의의 스크립트 파일 업로드 가능 취약점
        􀓋이미지 파일 업로드 부분에서 스크립트 파일을 업로드 할 수 있는 취약점 수정
      - SQL Injection 취약점 패치
      - XSS 취약점 패치

    ● 2006년 12월 3일 취약점 패치
      - htaccess 파일 업로드로 인한 취약점
        􀓋이미지 파일 업로드 부분에서 스크립트 파일을 업로드 할 수 있는 취약점 수정


  나. 보안 대책
    ● 기존 제로보드 프로그램을 일부 수정하여 사용하고 있는 경우
      - 새로운 패치를 모두 설치할 경우, 운영 중인 게시판의 동작에 문제가 있을 수 있으므로 패치를 설치하지 않고,
      - 현재 사용 중인 버전을 확인 후, 각 패치 버전별 수정내용을 확인하여 변경이 필요한 개별 파일의 소스를 수정하거나 부분 패치 파일을 설치한다.
      - 제로보드 버전 확인 방법
        http://www.홈페이지 주소/게시판 디렉토리명/license.txt
        예) http://www.nzeo.com/bbs/license.txt

    ● 제로보드 프로그램을 수정 없이 그대로 사용 중인 경우,
      - 가장 최신버전의 패치를 설치한다 (2007년 2월 현재, 4.1 pl8 발표 중).

    ● 제로보드 패치 다운로드
      http://www.nzeo.com/bbs/zboard.php?id=cgi_download2

2. 테크노트

  - 공식 사이트 : http://www.technote.co.kr/

  가. 최근 발표된 취약점 내역
    ● 2004년 9월 5일 발표 취약점
      - 테크노트 게시판에 파일 다운로드 시 파일 이름값을 이용하여 시스템 명령어를 실행 가능

    ● 테크노트 프로그램을 수정 없이 그대로 사용 중인 경우,
      - 가장 최신버전의 패치를 설치한다 (2007년 2월 현재, TECHNOTE 6.9P 발표 중).

    ● 테크노트 패치 다운로드
      http://www.technote.co.kr/php/technote1/board.php?board=bug&command=skin_insert&exe=insert_down_69p

  나. 보안 대책

< print.cgi 수정 >
print.cgi 소스에서 31번째 라인에 있는 &parse; 함수의 바로 아래 라인에 아래의 코드를
추가한다.
&error_message‘( 파일명 확인’) if($FORM‘img’=~/\;/);
&error_message‘( 파일명 확인’) if($FORM‘img’=~/\%/);
&error_message‘( 파일명 확인’) if($FORM‘img’=~/\|/);
< library/Lib-5.cgi 수정 >
library/Lib-5.cgi 첫 번째 라인에 아래의 코드를 추가한다.
&error_message‘( 파일명 확인’) if($FORM‘filename’=~/\;/);
&error_message‘( 파일명 확인’) if($FORM‘filename’=~/\%/);
&error_message‘( 파일명 확인’) if($FORM‘filename’=~/\|/);

3. 그누보드

  가. 공식 사이트 : http://sir.co.kr/?doc=_gb.php

  나. 최근 발견된 보안 취약점
    ● 취약점 1 : 외부 PHP 소스 실행 취약점 (버전 3.40 이하)
      - include 항목의 변수를 외부에서 설정할 수 있어 원격에 파일 참조시켜 시스템 정보를 파악하고 웹 서비스 권한을 탈취할 수 있다.

    ● 취약점 2 : 폼 메일을 이용한 스팸 메일 발송 (버전 3.38 이하)
      - 스팸메일 발송 가능하다.

  다. 보안 대책
    ● 취약점 1 : 외부 PHP 소스 실행 취약점

index.php에 아래 내용 추가
if (!$doc || ereg“( ://”, $doc))
$doc = “./main.php”;

    ● 취약점 2 : 폼메일을 이용한 스팸 메일 발송

formmail.php 내에 다음의 내용 추가
// 회원에게 메일을 보내는 경우 메일이 같은지를 검사
if ($mb[mb_email] != $email)
echo “”;
exit;
(3.38 이하 버전)
// 이전 폼 전송이 같은 도메인에서 온것이 아니라면 차단
if (!preg_match“( /^(http|https):\/\/$_SERVER[HTTP_HOST]/i”,
strtolower($_SERVER[HTTP_REFERER])))
echo “”;
exit;

출처 :

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,035 명
  • 현재 강좌수 :  35,801 개
  • 현재 접속자 :  184 명