★ 웹 취약점 분류 TOP 10
A1 –인젝션
SQL, OS, LDAP 인젝션과 같은 인젝션 결함은 신뢰할 수 없는 데이터가 명령어나 질의어의 일부분으로써 인터프리터에 보내질때 발생한다. 공격자의 악의적인 데이터는 예기치 않은 명령 실행이나 권한없는 데이터에 접근하도록 인터프리터를 속일 수 있다.
SQL 인젝션은 웹과 DB간의 언어인 SQL 쿼리를 악용하여 로그인 우회 및 시스템 내부에 접근하는 기법이며, 악성파일 실행은 URL 파라미터(filename=a.txt; uname -a)에 시스템 명령어를 삽입, 실행 시켜 시스템 권한 획득에 사용되는 기법이다.
A2 –크로스 사이트 스크립팅(XSS)
XSS 결함은 적절한 확인이나 제한 없이 어플리케이션이 신뢰할 수 없는 데이터를 갖고, 그것을 웹 브라우저에 보낼때 발생한다. XSS는 공격자가 피해자의 브라우저내에서 스크립트의 실행을 허용함으로써, 사용자의 세션을 탈취하거나, 웹 사이트를 변조하거나, 악의적인 사이트로 사용자를 리다이렉트할 수 있다.
타 공격 기법들은 웹 서버를 공격하나 XSS는 사용자를 공격하는 기법으로, 특히 사용자 로그인 이후에 제공되는 쿠키 혹슨 세션을 가로채어 권한 획득 등에 악용할 수 있다. 주로 전달매체로는 웹 브라우저 자체 취약점 혹은 프로그램 오류 등이다.
A3 –취약한 인증과 세션 관리
인증과 세션관리와 연관된 어플리케이션 기능은 종종 올바로 구현되지 않는다. 그결과, 공격자로 하여금 다른 사용자의 아이덴터티로 가장힐 수 있도록 패스워드, 키, 세션 토큰 체계를 위태롭게 하거나, 구현된 다른 결함들을 악용힐 수 있도록 허용한다.
A4 –안전하지 않은 직접 객체 참조
직접 객체 참조는 파일, 디렉토리, 데이터베이스 키와 같이 내부적으로 구현된 객체에 대해 개발자가 참조를 노출할 때 발생한다. 접근 통제에 의한 확인이나 다른 보호가 없다면, 공격자는 이 참조를 권한없는 데이터에 접근하기 위해 조작할 수 있다.
A5 –크로스 사이트 요청 변조(CSRF)
CSRF 공격은 로그온된 피해자의 브라우저가 취약한 웹 어플리케이션에 피해자의 세션 쿠키와 어떤 다른 자동으로 포함된 인증정보를 갖고 변조된 HTTP 요청을 보내도록 강제한다. 이것은 공격자가 피해자의 브라우저로 하여금 취약한 어플리케이션이 피해자로부터의 정당한 요청이라고 착각하게 만드는 요청들을 생성하도록 강제하는 것을 허용한다.
A6 –보안상 잘못된 구성
훌륭한 보안은 어플리케이션, 프레임워크, 어플리케이션서버, 웹서버, 데이터베이스 서버와 플랫폼에 대해 보안 구성이 정의되고 적용하기를 요구한다. 대부분이 보안을 기본적으로 탑재되지 않기 때문에 이 모든 설정은 정의되고, 구현되고, 유지되어야만 한다. 이것은 어플리케이션에서 사용되는 모든 코드 라이브러리를 포함하여 모든 소프트웨어가 최신의 상태를 유지하는 것을 포함한다.
A7 –안전하지 않은 암호 저장
많은 웹 어플리케이션들이 적절한 암호나 해쉬를 갖고 신용카드 번호, 주민등록번호, 그리고 인증 신뢰 정보와 같은 민감한 데이터를 적절히 보호하지 않는다. 공격자는 아이덴터티 도난, 신용카드 사기, 또는 다른 범죄를 저지르기 위해 그렇게 약하게 보호된 데이터를 훔치거나 조작할 지 모른다.
A8 –URL 접근 제한 실패
많은 웹 어플리케이션들이 보호된 링크나 버튼을 표현하기 전에 URL 접근 권한을 확인한다. 그러나, 어플리케이션은 이 페이지들이 접근될 때마다 매번 유사한 접근 통제 확인이 필요하다. 공격자는 이 감춰진 페이지에 접근하기 위해 URL을 변조 시킬 수 있다.
A9 –불충분한 전송 계층 보호
어플리케이션은 종종 민감한 네트워크 트래픽의 인증, 암호화, 그리고 비밀성과 무결성을 보호하는데 실패한다. 실패할 때에는 대체로 약한 알고리즘을 사용하거나, 만료되거나 유효하지 않은 인증서를 사용하거나 또는 그것들을 올바로 사용하지 않을 때이다.
A10 –검증되지 않은 리다이렉트와 포워드
웹 어플리케이션은 종종 사용자들을 다른 페이지로 리다이렉트 하거나 포워드 한다. 그러나, 목적 페이지를 결정하기 위해 신뢰되지 않는 데이터를 사용한다. 적절한 확인이 없다면, 공격자는 피해자를 피싱 사이트나 악의적인 사이트로 리다이렉트 할 수 있고, 포워드를 권한 없는 페이지의 접근을 위해 사용할 수 있다.
SQL, OS, LDAP 인젝션과 같은 인젝션 결함은 신뢰할 수 없는 데이터가 명령어나 질의어의 일부분으로써 인터프리터에 보내질때 발생한다. 공격자의 악의적인 데이터는 예기치 않은 명령 실행이나 권한없는 데이터에 접근하도록 인터프리터를 속일 수 있다.
SQL 인젝션은 웹과 DB간의 언어인 SQL 쿼리를 악용하여 로그인 우회 및 시스템 내부에 접근하는 기법이며, 악성파일 실행은 URL 파라미터(filename=a.txt; uname -a)에 시스템 명령어를 삽입, 실행 시켜 시스템 권한 획득에 사용되는 기법이다.
A2 –크로스 사이트 스크립팅(XSS)
XSS 결함은 적절한 확인이나 제한 없이 어플리케이션이 신뢰할 수 없는 데이터를 갖고, 그것을 웹 브라우저에 보낼때 발생한다. XSS는 공격자가 피해자의 브라우저내에서 스크립트의 실행을 허용함으로써, 사용자의 세션을 탈취하거나, 웹 사이트를 변조하거나, 악의적인 사이트로 사용자를 리다이렉트할 수 있다.
타 공격 기법들은 웹 서버를 공격하나 XSS는 사용자를 공격하는 기법으로, 특히 사용자 로그인 이후에 제공되는 쿠키 혹슨 세션을 가로채어 권한 획득 등에 악용할 수 있다. 주로 전달매체로는 웹 브라우저 자체 취약점 혹은 프로그램 오류 등이다.
A3 –취약한 인증과 세션 관리
인증과 세션관리와 연관된 어플리케이션 기능은 종종 올바로 구현되지 않는다. 그결과, 공격자로 하여금 다른 사용자의 아이덴터티로 가장힐 수 있도록 패스워드, 키, 세션 토큰 체계를 위태롭게 하거나, 구현된 다른 결함들을 악용힐 수 있도록 허용한다.
A4 –안전하지 않은 직접 객체 참조
직접 객체 참조는 파일, 디렉토리, 데이터베이스 키와 같이 내부적으로 구현된 객체에 대해 개발자가 참조를 노출할 때 발생한다. 접근 통제에 의한 확인이나 다른 보호가 없다면, 공격자는 이 참조를 권한없는 데이터에 접근하기 위해 조작할 수 있다.
A5 –크로스 사이트 요청 변조(CSRF)
CSRF 공격은 로그온된 피해자의 브라우저가 취약한 웹 어플리케이션에 피해자의 세션 쿠키와 어떤 다른 자동으로 포함된 인증정보를 갖고 변조된 HTTP 요청을 보내도록 강제한다. 이것은 공격자가 피해자의 브라우저로 하여금 취약한 어플리케이션이 피해자로부터의 정당한 요청이라고 착각하게 만드는 요청들을 생성하도록 강제하는 것을 허용한다.
A6 –보안상 잘못된 구성
훌륭한 보안은 어플리케이션, 프레임워크, 어플리케이션서버, 웹서버, 데이터베이스 서버와 플랫폼에 대해 보안 구성이 정의되고 적용하기를 요구한다. 대부분이 보안을 기본적으로 탑재되지 않기 때문에 이 모든 설정은 정의되고, 구현되고, 유지되어야만 한다. 이것은 어플리케이션에서 사용되는 모든 코드 라이브러리를 포함하여 모든 소프트웨어가 최신의 상태를 유지하는 것을 포함한다.
A7 –안전하지 않은 암호 저장
많은 웹 어플리케이션들이 적절한 암호나 해쉬를 갖고 신용카드 번호, 주민등록번호, 그리고 인증 신뢰 정보와 같은 민감한 데이터를 적절히 보호하지 않는다. 공격자는 아이덴터티 도난, 신용카드 사기, 또는 다른 범죄를 저지르기 위해 그렇게 약하게 보호된 데이터를 훔치거나 조작할 지 모른다.
A8 –URL 접근 제한 실패
많은 웹 어플리케이션들이 보호된 링크나 버튼을 표현하기 전에 URL 접근 권한을 확인한다. 그러나, 어플리케이션은 이 페이지들이 접근될 때마다 매번 유사한 접근 통제 확인이 필요하다. 공격자는 이 감춰진 페이지에 접근하기 위해 URL을 변조 시킬 수 있다.
A9 –불충분한 전송 계층 보호
어플리케이션은 종종 민감한 네트워크 트래픽의 인증, 암호화, 그리고 비밀성과 무결성을 보호하는데 실패한다. 실패할 때에는 대체로 약한 알고리즘을 사용하거나, 만료되거나 유효하지 않은 인증서를 사용하거나 또는 그것들을 올바로 사용하지 않을 때이다.
A10 –검증되지 않은 리다이렉트와 포워드
웹 어플리케이션은 종종 사용자들을 다른 페이지로 리다이렉트 하거나 포워드 한다. 그러나, 목적 페이지를 결정하기 위해 신뢰되지 않는 데이터를 사용한다. 적절한 확인이 없다면, 공격자는 피해자를 피싱 사이트나 악의적인 사이트로 리다이렉트 할 수 있고, 포워드를 권한 없는 페이지의 접근을 위해 사용할 수 있다.
'Web H&S > Web Basic' 카테고리의 다른 글
1. SQL Injection (0) | 2010.12.09 |
---|---|
국내 환경에서의 취약점 분류 (0) | 2010.12.06 |
Web Log - W3C, NCSA 유형 (0) | 2010.12.06 |
HTTP 메소드 종류 및 로그에 남는 정보 (0) | 2010.12.06 |
Get & Post Method (0) | 2010.11.29 |