Top 10 2013 | ||
A1 | Injection | 인젝션 |
A2 | Broken Authentication and Session Management | 취약한 인증과 세션관리 |
A3 | Cross-site scripting(XSS) | 크로스 사이트 스크립팅 |
A4 | Insecure Direct Object References | 불완전한 직접 객체 참조 |
A5 | Security Misconfiguration | 보안상 잘못된 구성 |
A6 | Sensitive Data Exposure | 중요한 정보 노출 |
A7 | Missing Function Level Access Control | 접근 제한 함수의 미흡 |
A8 | Cross-site Request Forgery(CSRF) | 크로스 사이트 요청 변조 |
A9 | Using known vulnerable Components | 알려진 취약점이 있는 컴포넌트 사용 |
A10 | Unvalidated Redirects and Forwards | 검증되지 않은 리다이렉트와 포워드 |
A1. Injection(인젝션)
사용자가 입력한 데이터가 명령어나 질의어의 일부로써 다른 프로세스를 호출하는 웹 어플리케이션에서 인젝션은 이루어진다. 공격자는 명령어나 질의어를 악의적으로 변조하여, 데이터를 수정, 변경, 삭제를 하거나,
웹 어플리케이션을 손상시키고, 시스템에 치명적인 피해를 입힐 수 있는 취약점이다.
취약점 | 설명 | 비고 |
SQL Injection | 데이터베이스로 전달되는 SQL query를 변조시켜, 일반적으로 접근이 불가능한 정보 또는 데이터에 접근한다. | |
Command Injection | 시스템 명령어를 호출하는 어플리케이션의 query를 변조하여 악의적인 시스템 명령어를 실행시키는 공격이다. | |
Include Injection | 서버사이드스크립트의 Include함수를 이용한 공격방법이다. Include함수는 특정파일의 내용을 읽어 실행 하는 함수이다.악성스크립트 파일을 삽입하거나, 웹쉘을 업로드한다. | 업로드 취약점 |
LDAP Injection | LDAP란 TCP/IP에서 디렉토리 서비스를 조회하고 수정하는 프로토콜이다. 즉, 웹 서버의 파일이나 장치들과 같은 자원 등의 위치를 찾을 수 있도록 해주는 프로토콜이다. 사용자 입력부분에 LDAP쿼리를 입력함으로써 정보를 획득하는 공격방법이다. |
A2. Broken Authentication and Session Management(취약한 인증과 세션관리)
인증과 세션(쿠키)의 관리는 웹 어플리케이션의 보안에 있어서 중요한 요건들이다.
취약한 인증과 세션 관리는 공격자가 다른 사용자의 권한을 획득하는 취약점을 나타낸다.
취약점 | 설명 | 비고 |
세션 또는 쿠키 타임아웃 미설정 | 세션 또는 쿠키의 타임아웃 시간이 설정되어 있지 않거나 비정상적으로 긴 경우 | 세션 하이재킹 |
로그인정보가 URL에 노출 | 로그인 정보가 URL에 노출되거나, 인증 과정 시 로그인 정보가 URL에 노출되는 경우 | |
다중 세션 허용 | 동일한 인증이 동시에 발생 가능한 경우 |
A3. Cross-site scripting(XSS) (크로스 사이트 스크립팅)
XSS는 공격자가 희생자의 웹 페이지에서 악성 스크립트를 삽입하여 이를 실행 시킨 희생자는 공격자가 삽입한 악성 스크립트에 의해 정해놓은 행동을 강제적으로 실행하는 취약점이다.
강제 실행 됨으로써 희생자의 환경 설정을 마음대로 변경하거나,
쿠키를 가로채 희생자의 권한에 접근이 가능하다.
취약점 | 설명 | 비고 |
Reflected XSS | 스크립트가 서버에 저장되지 않고, 악성 스크립트가 포함된 URL을 희생자에게 유도한다. | |
Stored XSS | 게시물과 같이 DB에 저장되는 자원에 악성 스크립트를 주입하여, 게시물을 열었을 경우 희생자에게 악성 스크립트가 실행되도록 유도한다. | |
DOM based XSS | 자바스크립트를 이용하여 HTML페이지를 변조하여 XSS공격을 한다. |
A4. Insecure Direct Object References(불완전한 직접 객체 참조)
파일, 디렉토리, 데이터베이스 와 같은 일반 사용자들이 알 수 없는 정보가 노출되어,
다운로드 취약점등을 이용한 공격으로 시스템 파일에 접근하는 취약점이다
취약점 | 설명 | 비고 |
파일 업로드 취약점 | 악성 파일 또는 웹쉘을 업로드하여 서버의 시스템을 공격한다 | |
다운로드 취약점 | 파일 다운로드를 이용하여 서버의 중요파일 또는 소스파일을 다운로드한다. | 소스코드 노출 |
백업파일 노출 | .org, .log등 웹 서버의 중요문서를 노출 |
A5. Security Misconfiguration(보안상 잘못된 구성)
웹 어플리케이션, 데이터베이스 등 보안설정이 기본적인 설정으로 되어 있거나, 취약한 설정을
했을 경우 발생하는 취약점이다.
• 디렉토리 리스팅 – 서버의 인덱스파일이 없거나 잘못될 경우 디렉토리 목록이 출력되며 서버의 자원이 노출된다.
• 소스코드 노출
• 관리자(admin) 페이지 노출
• 웹 서버 정보 노출(버전 등)
• 부적절한 에러 메시지 노출
A6. Sensitive Data Exposure(중요한 정보 노출)
사용자들의 주민등록번호, 전화번호, 주소와 같은 개인정보가 안전하게 보호되고 있지 않기
때문에 개인정보 노출의 취약점이 발생할 수 있다.
• 중요정보 또는 개인정보 비 암호화 통신 및 저장
• 부적절한 암호화 알고리즘 사용
• 암호화에 사용되는 키값, 인증서, 비밀번호를 안전하지 않은 장소에 저장
A7. Missing Function Level Access Control(접근 제한 함수의 미흡)
관리자 페이지 또는 권한이 설정되어 있는 페이지에 대한 접근을 제한해야 하는 페이지에 접근
제한 권한 레벨을 설정하는 함수가 반영되지 않을 경우 발생하는 취약점이다.
A8. Cross-site Request Forgery(CSRF) (크로스 사이트 요청 변조)
서버에서 사용자의 입력에 대해 유효성검증을 적절히 하지 않았을 경우 공격자가 작성한 악성 스크립트에 희생자가 접근할 경우 희생자의 권한으로 공격자가 의도한 행위를 강제적으로 실행하는 공격기법이다.
1. 공격자 웹 서버에 악성 스크립트를 작성한다.
2. 희생자가 악성 스크립트를 포함한 페이지에 접근한다.
3. 희생자가 희생자 권한으로 공격자가 설정한 행위를 웹 서버에 요청한다.
A9. Using known vulnerable Components (알려진 취약점이 있는 컴포넌트 사용)
취약점을 가진 컴포넌트를 이용할 경우에는 공격 가능한 유형, 영향 등을 확인할 수 있으며,
대부분의 컴포넌트가 관리자 권한으로 실행되는 경우가 많아 피해가 커질 수 있는 취약점이다.
• Active X 취약점
• 최신 취약점 미 패치
A10. Unvalidated Redirects and Forwards (검증되지 않은 리다이렉트와 포워드)
웹 어플리케이션에서 페이지 이동, 또는 마우스 클릭과 같은 이벤트에 대한 유효성 검증을 하지 않아
피싱 사이트, 악성코드가 포함된 사이트로 유도하는 취약점이다.
• 신뢰되지 않는 URL주소로 자동 접속
'web' 카테고리의 다른 글
[SQL Injection] SQL Injection이란? (0) | 2015.03.02 |
---|---|
webhacking.kr을 통해 배우는 웹 해킹 기초 (0) | 2015.03.02 |
인코딩과 인코딩 방식 (0) | 2014.07.07 |
쿠키(Cookie)와 세션(Session) (0) | 2014.07.05 |
HTTP란? (2) | 2014.06.04 |