본문 바로가기

웹해킹

OWASP TOP 10

OWASP TOP 10

OWASP(Open Web Application Security Project)

- 국제 웹 보안 표준 기구

OWASP TOP 10 은 웹 애플리케이션 취약점 중에서 빈도가 많이 발생하고 보안상 영향을 크게 줄 수 있는 10가지 취약점

출처 : http://ko.wikipedia.org/wiki/OWASP

 

 

출처 : http://blog.pages.kr/590

 

A1. 인젝션

- 참고 : http://www.youtube.com/watch?v=Bi5eJ1WxJQk 

   설명

1. ID 조회 하는 폼에서 Injection 공격 시도

2. ' 을 입력하여 오류 메시지를 발생 시켜 SQL 정보 추출(My SQL)

3. 'or '1' ='1  구문으로 항상 참이 되도록 입력(모든 사용자 정보 추출)

4. ' union select null-- 구문으로 컬럼 갯수 추출(컬럼 2개)

5. ' union select @@version, null-- 구문으로 SQL  버전 정보 추출

6. ' union select database(), null-- table_schema 정보 추출(dvwa)

7. ' union select table_name, column_name from information_schema.columns where table_schema='dvwa'--

  table 이름과 colums 이름 추출(users 테이블에 id, password column이 있는 것을 확인)

8. ' union select user, password from users-- 구문으로 users 테이블 정보 조회

9. password 부분이 MD5 로 암호화되어 있어 crack 시도

 

종류

Blind SQL Injection

- http://hackerschool.org/HS_Boards/data/Lib_share/The_basic_of_Blind_SQL_Injection_PRIDE.pdf

에러 메시지 없이 참과 거짓을 이용하여 서버의 반응을 통해 정보 추출

 

Mass SQL Injection

- 다량의 웹사이트에 SQL Injection 공격을 행하는 것

- 데이터베이스에 악성코드를 경유하는 웹페이지로 리다이렉션하는 URL 을 삽입하여 일어남

 

대응 방안

- 데이터베이스와의 연동 부분에서는 동적 SQL을 더이상 사용하지 말고 저장프로시저를 사용해야 한다.

- 개발단계에서 모든 입력값에 대한 적절한 검증절차를 설계하고 구현해야 한다. 입력값의 크기를 검사하고 특수문자가 있는 경우 위험하지 않은 다른 문자로 치환 후 입력값이 혀용범위 내에 존재하는지 검사

- 오류 메시지에 정보가 노출이 되지 않도록 수정

- 웹방화벽 사용

- 데이터베이스 주기적인 백업

출처 : http://www.boannews.com/media/view.asp?idx=14290

 

 

 

A2. XSS
- 크로스 사이트 스크립팅

참고 : http://www.youtube.com/watch?v=_YgZKDJlhjo

- 게시판 등에 스크립트를 삽입하여 클릭한 사용자의 정보(cookie 값등)를 가져와 인증 우회

- URL 링크를 통해서도 가능

- 가장 많은 취약점 발생

- 해킹 시도 시 XSS 공격을 통하여 다양하게 활용 가능

 

대응 방안

- 문자열을 치환

- HTML 인코딩

- 화이트리스트 방식(안전한 것만 허용)

 

 

A3. 취약한 인증과 세션 관리

침고 : http://www.youtube.com/watch?v=cIsGOOLOJH4

- 관리자 페이지 노출이나 접근 권한이 없는 웹페이지에 접근 가능한 취약점을 이용

- 다른 사용자가 작성한 게시판 글등을 수정 및 삭제 가능한 취약점

- 인증정보를 암호화 하지 않을 때 취약점 발생

 

대응방안

- 관리자 페이지 노출 시키지 않음

- IP 제한(인가 받은 IP만 허용) 

- 인증 정보 암호화

 

 

A4. 안전하지 않은 직접 객체 참조

참고 : http://www.youtube.com/watch?v=q9sMSxvdp6E

- 제한된 자원을 직접 참조할 때 사용자에게 접근 권한이 있는지에 대한 취약점

- 파일 다운로드 취약점

 

대응방법

- 사용자 혹은 세션 당 간접 객체 참조를 사용

- 직접 참조 시 사용자 접근 권한 확인

 

 

A5. CSRF

- 크로스 사이트 요청 변조

참고 : http://www.youtube.com/watch?v=9kISsi9xk-s

- XSS 와 비슷하게 게시판이나 URL 링크를 통해 다른 사용자가 의도하지 않은 행위를 발생 시킴

- 패스워드 변경 및 클릭시 자동 댓글 및 자동 글쓰기

- XSS와 다른 점은 XSS는 사용자 정보를 탈취하고 CSRF 는 의도하지 않은 행위를 발생 시킴

 

대응방안

- 인증용 Hidden 필드를 모든 폼에 넣어주고 동작하기 전에 Hidden 필드 값 확인

- Referer 를 확인하여 신뢰할 수 있는 위치에서 요청한 건지 확인(paros등으로 수정 가능하여 완벽한 대응방안이 아니다)

- 주요 액션을 처리할 때 추가 인증 수단 사용

- 쿠키값에 TimeStamp 를 삽입하여 쿠키값이 시간마다 변경되도록 함

 

 

A6. 보안상 잘못된 구성 

참고 : http://www.youtube.com/watch?v=XmUQ13NCNd8

- 디폴트 패스워드, 사용자 권한, 보안 설정, 취약한 버전 미패치, 다양한 정보가 포함된 에러 페이지

 

대응방안

- 최신 버전으로 패치

- 패스워드 설정 및 주기적인 변경

- 정보가 포함되어 있지 않은 에러 페이지로 리다이렉션

 

 

A7. 안전하지 않은 암호저장

참고 : http://www.youtube.com/watch?v=0OALXZ2O0zs

- 민감한 내용이 담긴 데이터를 암호화 하지 않았을 경우

- 데이터베이스에 저장된 중요한 데이터가 암호화되지 않았을 경우

 

대응방안

- 강력한 암호화 방식 사용

- 중요한 데이터는 암호화

- 백업 데이터도 암호화, 허가된 사용자만 복호화된 데이터에 접근

 

 

A8. URL 접근 제한 실패

참고 : http://www.youtube.com/watch?v=ysls8Uj-juA

- URL 변경으로 인가되지 않은 페이지 접근

- 악성코드가 내포된 웹페이지로 리다이렉션 URL 삽입

 

대응방안

- 각각의 페이지에 적절한 인증 및 접근 제어

 

 

A9. 불충분한 전송 계층 보호

참고 : http://www.youtube.com/watch?v=xBU5Q-C9rVk

- 네트워크 트래픽이 암호화되어 있지 않아 정보나 인증관련 토큰을 가로챌 수 있다.

- 스니핑

 

대응방안

- SSL 통신(HTTPS)

 

 

A.10 검증되지 않은 리다이렉트와 포워드

참고 : http://www.youtube.com/watch?v=jfcCIctvop8
- 공격자는 악성코드가 내포된 웹페이지로 리다이렉션 시킴

 

대응방법

- 게시물이나 URL 을 통해 리다이렉션 되므로 리다이렉션 할 때는 확인 필수

- 해당 페이지에 대한 접근 권한 설정

- 웹방화벽을 이용해 페이지 변조 방지

 

 

참고 : OWASP TOP 10_Korean.pdf

'웹해킹' 카테고리의 다른 글

국정원 8대 웹 취약점  (0) 2012.12.22