저번 과제와 마찬가지로 대표적인 웹 취약점 4가지를 정리하였다.
파일 다운로드 취약점과 파일 업로드 취약점은 점검 및 조치하기위해 기술적인 부분이 요구되어 중요도가 높은편이고, 소스코드 내 주요 정보 취약점과 공개용 웹 게시판 취약점은 관리적인 부분이 요구되어 중요도가 낮은 편이다.
1. 파일 다운로드 취약점
URL에 경로조작(Path Traversal)관련 문자를 입력하여 일반사용자가 접근할 수 없는 영역에 접근한 후, 민감한 파일을 다운로드할 수 있는 취약점
1) 계정 관련 파일(passwd)을 다운로드
etc 디렉토리로 이동하여, 계정 관련 파일을 다운로드한다.
웹서버에 저장된 계정관련 정보가 노출되어 있는 것을 확인할 수 있다.
대응방안
- 화이트 리스트 또는 블랙리스트 정책
사용자가 다운로드할 수 있는 파일명을 데이터베이스에 저장하여 해당 파일만 접근하도록 하고, 이외에 파일을 접근하지 못하도록 설정 - .. 또는 /와 같은 경로조작(Path Traversal)에 활용되는 문자를 필터링
예를들어, PHP언어로 개발된 서버의 경우 php.ini 내용 중 magic_quotes_gpc 항목의 값을 On으로 설정하여 '.\ 와 ./' 값 입력 시 치환되도록 설정할 수 있다. - 파일명을 URL 인코딩하여 전송함으로써 경로 조작을 방지
URL 인코딩하여 전송 시 경로조작에 사용되는 특수문자(.. 또는 /)가 인코딩 되어 경로 조작을 방지할 수 있다.
예를 들어 정상적인 report.pdf은 인코딩 이후에도 report.pdf로 동일하지만, 경로조작을 시도하는 구문인 ../passwd은 %2E%2E%2Fpasswd으로 인코딩 되기 때문에 경로조작을 방지할 수 있다.
2. 파일 업로드 취약점
서버 측에서 실행될 수 있는 스크립트 파일(asp, jsp, php파일 등)이 업로드 가능하고 해당 파일이 실행이 가능한 경우 시스템 내부명령어를 실행하거나 외부와 연결하여 시스템을 제어할 수 있는 취약점
해당 카테고리에 포함되는 대표적인 취약점은 웹셸 취약점이 있다.
1) 프록시를 통해 스크립트 파일 업로드
프록시를 통해 홈페이지 게시판에 허용되는 확장자(jpg)로 변경
업로드된 URL 접속 시 jsp 파일이 동작하는 것을 확인
대응방안
- 블랙리스트 정책 또는 화이트 리스트 정책을 통한 접근제어
미리 정의된 업로드 파일의 확장자(hwp, pdf, xls 등)만 허용하고, 그 외 서버에 영향을 미칠수 있는 확장자(ASP, PHP, JSP, GCI등)은 업로드를 제한하도록 설정 - 파일 저장시 외부에서 입력된 파일명을 그대로 저장되지 않도록 함
업로드된 파일 경로가 노출되어, 해당 URL로 접속시 악성 스크립트가 실행되는 등의 공격을 피하기 위함 - 업로드된 파일이 웹서버에 실행되지 않도록 설정을 변경
실행권한 없음 설정을 통해 파일이 업로드 되더라도, 해당 파일이 시스템에서 실행되지 않도록 하기 위함
3. 소스코드 내 중요정보 노출 취약점
소스코드에 민감한정보(개인 정보, 시스템정보등)이 포함되어 있을 때 발생할 수 있는 취약점
개발자가 디버깅 또는 다른 사용자의 협업을 위해 작성한 주석 또는 소스코드에 민감한 정보가 포함되어 발생한다.
1) 소스코드에 내부 IP 정보 노출
2) 소스코드에 관리자 로그인 페이지 노출
대응방안
홈페이지 소스코드에 민감한 정보(ID, 패스워드, 시스템관련등)이 포함되었는지 정기적인 점검 필요
4. 공개용 웹 게시판 취약점
공개용 웹 게시판을 사용할 경우 인터넷에 공개된 각종 취약점 정보로 인해 홈페이지 변조 및 해킹 경유지로 사용될 수 있는 취약점
*교육기관에서는 웹서버 구축시 발생하는 금전적, 시간적이 비용을 줄이기 위해 공개용 게시판을 이용한다
1) 제로보드라는 공개용 웹게시판을 사용
2) 공개용 웹 게시판(FCKeditor)를 사용
대응방안
- 웹 서버에는 공개용 웹 게시판(제로보드, 테크노트, 그누보드등) 사용을 지양
- 부득이 사용해야 하는 경우 정기적인 보안 패치와 최신 버전 업데이트를 수행하고, 보안 취약점 정보를 확인
참고자료