취약점 분석/평가 기본항목
코드 |
취약점명 |
설명 |
등급 |
BO |
버퍼 오버플로우 |
메모리나 버퍼의 블록크기보다 더 많은 데이터를 넣음으로써 결함을 발생시키는 취약점 |
상 |
FS |
포맷 스트링 |
스트링을 처리하는 부분에서 메모리공간에 접근할 수 있는 문제를 이용하는 취약점 |
상 |
LI |
LDAP 인젝션 |
LDAP(Lightweight Directory Access Protocol) 쿼리를 주입함으로서 개인정보 등의 내용이 유출될 수 있는 문제를 이용하는 취약점 |
상 |
OC |
운영체제 명령 실행 |
웹사이트의 인터페이스를 통해 웹 서버를 운영하는 운영체제 명령을 실행하는 취약점 |
상 |
SI |
SQL Injection |
SQL 문으로 해석 될 수 있는 입력을 시도하여 데이터베이스에 접근할 수 있는 취약점 |
상 |
SS |
SSI Injection |
SSI(Server-Side Include) 는 Last Modified와 같이 서버가 HTML 문서에 입력하는 변수 값으로 웹서버상에 있는 파일을 include 시키고, 명령문이 실행되게 하여 데이터에 접근 할 수 있는 취약점 |
상 |
XI |
XPath 인젝션 |
조작된 XPath(XML Path Language)쿼리를 보냄으로써 비정상적인 데이터를 쿼리해 올 수 있는 취약점 |
상 |
DI |
디렉터리 엔덱싱 |
요청 파일이 존재하지 않을 때 자동적으로 디렉터리 리스트를 출력하는 취약점 |
상 |
IL |
정보누출 |
웹 사이트 데이터가 노출되는 것으로 개발과정의 코멘트나 오류 메세지 등에서 중요한 정보가 노출되어 공격자에게 2차 공격을 하기 위한 중요한 정보를 제공할 수 있는 취약점 |
상 |
CS |
악성콘텐츠 |
웹애플리케이션에 정상적인 컨텐츠 대신에 악성 컨텐츠를 주입하여 사용자에게 악의적인 영향을 미치는 취약점 |
상 |
XS |
크로스사이트 스크립팅 |
웹 애플리케이션을 사용해서 다른 최종 사용자의 클라이언트에서 임의의 스크립트가 실행되는 취약점 |
상 |
BF |
약한 문자열 강도 |
사용자의 이름이나 패스워드, 신용카드 정보나 암호화 키등을 자동으로 대입하여 여러 시행착오 후에 맞는 값이 발견되는 취약점 |
상 |
IA |
불충분한 인증 |
민감한 데이터에 접근 할 수 있는 곳에 취약한 인증 메커니즘으로 구현된 취약점 |
상 |
PR |
취약한 패스워드 복구 |
취약한 패스워드 복구 메커니즘(패스워드 찾기 등)에 대해 공격자가 불법적으로 다른 사용자의 패스워드를 획득, 변경, 복구할 수 있는 취약점 |
상 |
CF |
크로스 사이트 요청변조(CSRF) |
CSRF 공격은 로그온한 사용자 브라우저로 하여금 사용자의 세션 쿠키와 기타 인증 정보를 포함하는 위조된 HTTP 요청을 취약한 웹애플리케이션에 전송하는 취약점 |
상 |
SE |
세션 예측 |
단순히 숫자가 증가하는 방법 등의 취약한 특정 세션의 식별자 (ID) 를 예측하여 세션을 가로챌 수 있는 취약점 |
상 |
IN |
불충분한 인가 |
민감한 데이터 또는 기능에 대한 접근권한 제한을 두지 않은 취약점 |
상 |
CS |
불충분한 세션만료 |
세션의 만료 기간을 정하지 않거나, 만료일자를 너무 길게 설정하여 공격자가 만료되지 않은 세션 활용이 가능하게되는 취약점 |
상 |
SF |
세션고정 |
세션값을 고정하여 명확한 세션 식별자(ID)값으로 사용자가 로그인하여 정으된 세션 식별자가사용 가능하게 되는 취약점 |
상 |
AU |
자동화 공격 |
웹애플리케이션에 정해진 프로세스에 자동화된 공격을 수행함으로써 자동으로 수많은 프로세스가 진행되는 취약점 |
상 |
PV |
프로세스 검증 누락 |
공격자가 응용의 계획된 플로우 통제를 우회하는것을 허가하는 취약점 |
상 |
FU |
파일 업로드 |
파일을 업로드 할 수 있는 기능을 이용하여 시스템 명령어를 실행 할 수 있는 웹 프로그램을 업로드 할 수 있는 취약점 |
상 |
FD |
파일 다운로드 |
파일 다운로드 스크립트를 이용하여 시스템 명령어를 실행할 수 있는 웹프로그램을 업로드 할 수 있는 취약점 |
상 |
AE |
관리자 페이지 노출 |
단순한 관리자 페이지 이름(admin, manager 등)이나 설정, 프로그램 설계상의 오류로 인해 관리자 메뉴에 직접 접근할 수 있는 취약점 |
상 |
PT |
경로추적 |
공격자에게 외부에서 디렉터리에 접근 할 수 있는것이 허가되는 문제점으로 웹 루트 디렉터리에서 외부의 파일까지 접근하고 실행할 수 있는 취약점 |
상 |
PL |
위치공개 |
예측 가능한 디렉터리나 파일명을 사용하여 해당 위치가 쉽게 노출되어 공격자가 이를 악용하여 대상에 대한 정보와 민감한 정보가 담긴 데이터에 접근이 가능하게 되는 취약점 |
상 |
SN |
데이터 평문 전송 |
서버와 클라이언트간 통신 시 암호화하여 전송을 하지 않아 중요정보 등이 평문으로 전송되는 취약점 |
상 |
CC |
쿠키변조 |
적절히 보호되지 않은 쿠키를 사용하여 쿠키 인젝션 등과 같은 쿠키 값 변조를 통한 다른 사용자로의 위장 및 권한 상승 등이 가능한 취약점 |
상 |
조치방안
취약점 명 |
대응방안 |
운영체제 명령 실행 |
허용 가능한 명령어를 지정해서 지정된 명령어만 실행할 수 있도록 수행 |
SQL 인젝션 |
웹 방화벽에서 모든 사용자 입력폼을 대상으로 특수문자, 특수구문 필터링 규칙 적용 |
XPath 인젝션 |
웹 방화벽에서 모든 사용자 입력폼을 대상으로 특수문자, 특수구문 필터링 규칙 적용 |
정보누출 |
개발단계에서 작성된 주석 제거, 모든 에러코드에대해 통합 에러페이지로 리다이렉트 설정 |
악성콘텐츠 |
웹 방화벽에서 모든 사용자 입력폼을 대상으로 특수문자, 특수구문 필터링 규칙 적용 |
크로스 사이트 스크립팅(XSS) |
웹 방화벽에서 모든 사용자 입력폼을 대상으로 특수문자, 특수구문 필터링 규칙 적용 JAVA 내장함수인 replaceAll 메소드를 사용하여HTML 태그 실행에 사용되는 문자열을 치환 |
약한 문자열강도 |
비밀번호 설정시 영문자,숫자,특수문자가 반드시 하나씩 존재하도록 설정, 로그인시 아이디와 패스워드에 따라 다르게 출력되는 팝업창 금지 (계정 유추 가능) 일관성있는 팝업창 출력 |
불충분한 인증 및 인가 |
로그인한 사용자들의 아이디 정보를 세션에 저장하여 세션에 저장된 아이디 값과 전달된 파라미터 값을 비교하여 사용자 검증을 할수 있도록 설정해야함 |
취약한 패스워드 복구 |
사용자 비밀번호 찾기시 DB 에 저장되어 있는 사용자정보와 입력한 사용자정보의 일치성 검사 찾은 비밀번호는 웹페이지에 노출시키지 않고 개인 이메일이나 SMS를 통해 전달되어야 함 |
불충분한 세션 관리 |
로그인시 세션값을 검증하고 저장소에 저장, 저장소에 존재하는 세션의 계정은 중복 접속 할 수 없도록 설정 |
크로스 사이트 요청변조(CSRF) |
예측할수 없는 임의의 토큰을 추가하여 정상적인 요청과 비정상적인 요청을 판별하는 것을 권장하며 추가적으로 XSS와 공격 방식이 유사 하기 때문에 비슷한 방식의 대응 설정 |
자동화 공격 |
웹 방화벽에서 특정 시간내에 동일한 프로세스가 반복실행되지 않도록 시간 제한을 설정 다량의 패킷이 유입될 경우 차단 설정 로그인관련 테이블에 로그인 시도 횟수를 저장하는 컬럼을 추가하여 횟수를 검증하며 일정 횟수 이상은 차단시켜버림 |
파일 업로드 |
화이트리스트 정책을 활용 , 허용가능한 파일 확장자 목록 설정 파일 업로드시 업로드 시간이나 특수한 규칙을 사용하여 파일명을 변경시켜 공격자가 업로드 된 파일을 경로상에서 찾지 못하게 하는방법을 사용 |
경로추적 및 파일 다운로드 |
파일 다운로드시 상위경로로 접근되지 않도록 권한 설정 파라미터 변수에 null여부 체크 및 상대경로를 설정할수 있는 문자(/, \\, &, .등)가 존재할 경우 파일다운로드가 불가능 하도록 설정 |
데이터 평문전송 |
SSL(클라이언트와 서버간의 정보를 암호화)등의 암호화 통신을 적용 |
쿠키변조 |
웹 어플리케이션 운영시 쿠키 방식대신 세션방식을 사용 |
URL/파라미터 변조 |
서버로 전송된 입력값으리 경우 세션 및 데이터베이스와 비교하여 데이터가 변조되었는지 검증할 수 있는 과정 |