본문 바로가기

기술자료/기술운영자료

국가사이버안전센터(NCSC) 8대 보안취약점

출처 블로그>[vagabond] | vagab0nd

원문 http://blog.naver.com/realnaut/120194672152

1. 디렉토리 리스팅 취약점

홈페이지의 속성을 설정하는‘웹사이트 등록정보’에 특정디렉토리에 대하여
‘디렉토리 검색’항목이 체크되어 있거나(IIS 웹서버), ‘httpd.conf 파일’
에서‘Indexes’옵션이 ON되어 있는 경우(아파치 웹서버)에

인터넷 사용자에게 모든 디렉토리 및 파일 목록이 보여지게 되고,

파일의 열람 및 저장도 가능하게 되어 비공개 자료가 유출될 수 있다.

 


2. 파일 다운로드 취약점

게시판 등에 저장된 자료에 대해‘다운로드 스크립트’를 이용하여 다운로드
기능을 제공하면서, 대상 자료파일의 위치 지정에 제한조건을 부여하지
않았을 경우에 URL칸의 다운로드 스크립트의 인수값에‘../’문자열 등을 입력하여
시스템 디렉토리 등에 있는 /etc/passwd와 같은 비공개 자료들이 유출될 수
있다. 특히, 리눅스 및 유닉스 계열의 웹서버에 각별한 주의가 필요하다.

 

다운받기 위한 파일 이름에“..”, “/”, “\”와 같은 문자열이 존재하면
모두 필터링해야 한다. 이 부분은 웹 서버 설정으로 해결할 수 있는 것이
아니고 스크립트의 내용을 수정해야 한다. 


3. 크로스사이트 스크립트 취약점 

게시판에 새 게시물을 작성하여 등록할 때와 같이 사용자의 입력을 받아
처리하는 웹 응용프로그램에서 입력 내용에 대해 실행코드인 스크립트의
태그를 적절히 필터링하지 않을 경우에 악의적인 스크립트가 포함된 게시물을

등록할 수 있어 해당 게시물을 열람하는 일반 사용자의 PC로부터

개인정보인 쿠키를 유출할 수 있는 등의 피해를 초래할 수 있다.

 

스크립트를 모두 필터링한다.
스크립트 문장에 사용되는 메타캐릭터가 포함되어 있을 때 이를 변환시키는 필터링을 수행한다.
글 올리기를 제한한다.

 


4. 파일 업로드 취약점

첨부파일 업로드를 허용하는 홈페이지 게시판에서 .php, .jsp 등의 확장자
이름의 스크립트 파일의 업로드를 허용할 경우에 해커가 악성 실행 프로그램을

업로드한 후에 홈페이지 접속 방식으로 원격에서 서버컴퓨터의

시스템 운영 명령어를 실행시킬 수 있다.

 

첨부 파일의 형태(실행 가능한 확장자 : php, php3, asp, jsp, cgi, inc,
pl)를 필터링하기 위해 소스코드를 수정한다.

 


5. WebDAV 취약점

윈도우 서버 컴퓨터에서 기본으로 설치되는 원격관리기능인 WebDAV가
계속 사용가능하도록 설정되어 있고, WebDAV 라이브러리 파일의 속성
및 홈페이지 디렉토리에 쓰기 권한이 모두 허용되어 있는 경우에
해커가 WebDAV 도구를 사용, 원격에서 홈페이지 디렉토리에 임의의
파일을 삽입하여 화면을 변조할 수 있다.

 

 

6. 테크노트(Technote) 취약점

국내에서 개발되어 무료 배포중인 게시판 제작 프로그램‘테크노트’의
일부 CGI프로그램들에서 인수값 처리시에‘|’문자 이후에 나오는 컴퓨터
운영 명령어가 실행될 수 있는 결함이 있어 해커는 홈페이지 접속 방식으로
컴퓨터 명령어를 실행하여 화면을 변조 하거나 컴퓨터를 조작할 수 있다.
'테크노트’는 리눅스 및 유닉스 계열의 홈페이지 서버 컴퓨터에 주로
사용되고, 윈도우 계열의 홈페이지에서도‘Perl’이 지원될 경우에 사용될 수 있다.

 


7. 제로보드(Zeroboard) 취약점

국내에서 개발되어 무료 배포중인 게시판 제작 프로그램‘제로보드’의
일부 PHP프로그램이 원격에 있는 PHP파일을 실행할 수 있는 결함이 있어
해커는 홈페이지 접속 방식으로 컴퓨터 명령어를 실행하여 화면을 변조
하거나 컴퓨터를 조작할 수 있다.
`제로보드’는 리눅스 및 유닉스 계열의 홈페이지 서버 컴퓨터에 주로 사용
되고, 윈도우 계열의 홈페이지에서도‘PHP’가 지원될 경우에 사용될 수 있다.

 


8. SQL Injection 취약점

웹브라우저 주소(URL)창 또는 사용자 ID 및 패스워드 입력화면 등에서
데이터베이스 SQL문에 사용되는 문자기호(‘ 및“)의 입력을 적절히
필터링 하지 않은 경우에 해커가 SQL문으로 해석될 수 있도록 조작한
입력으로 데이터베이스를 인증절차없이 접근, 자료를 무단 유출하거나 변조할 수 있다. 

 

SQL Injection 취약점은 홈페이지 프로그램 내부에 존재하는 것이다.
취약점을 제거하기 위해 ID 및 Password란에 필히 특수문자(따옴표,
공백 등)는 넣지 못하도록 소스코드를 수정한다.