OWASP TOP 10
OWASP(Open Web Application Security Project)
- 국제 웹 보안 표준 기구
OWASP TOP 10 은 웹 애플리케이션 취약점 중에서 빈도가 많이 발생하고 보안상 영향을 크게 줄 수 있는 10가지 취약점
출처 : http://ko.wikipedia.org/wiki/OWASP
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 을 통해 리다이렉션 되므로 리다이렉션 할 때는 확인 필수
- 해당 페이지에 대한 접근 권한 설정
- 웹방화벽을 이용해 페이지 변조 방지
'웹해킹' 카테고리의 다른 글
국정원 8대 웹 취약점 (0) | 2012.12.22 |
---|