웹 표준 점검항목
웹
- 운영체제 명령 실행
개요 : 웹 어플리케이션에서 system(), exec()와 같은 시스템 명령어를 실행시킬 수 있는 함수를 제공하며 사용자 입력 값에 대한 필터링이 제대로 이루어지지
않을 경우 공격자가 운영체제 시스템 명령어를 호출하여 백도어 설치나 관리자 권한 탈취 등 시스템 보안에 심각한 영향을 미칠 수 있는 취약점.
1) URL – 파라미터에 ls.cat등의 명령어 삽입, (리눅스)
2) URL – 파라미터에 dir, ipconfig 등의 명령어 삽입 (윈도우) - SQL 인젝션
개요 : 데이터베이스와 연동된 웹 어플리케이션에서 SQL 질의문에 대한 필터링이
제대로 이루어지지 않을 경우 공격자가 입력이 가능한 폼(웹 브라우저 주소입력창
또는 로그인 폼 등)에 조작된 질의문을 삽입하여 웹 서버의 데이터베이스 정보를
열람 또는 조작을 할 수 있는 취약점
1) URL 검색 폼 : ‘,”,;.#.– dlqfur ‘having 1=1 — 입력 //DB에러문구발생
2) URL 검색 폼 : ‘ and ‘a’=’a, ‘ and ‘a’=’b 입력후 결과 비교 //두입력에 대한 서로 다른 반응
3) 로그인 폼 : ‘ or ‘1=1 입력 // 로그인성공 - XPath 및 XQuery 인젝션
개요 : 데이터베이스와 연동된 웹 어플리케이션에서 XPath 및 XQuery 질의문에 대한 필터링이 제대로 이루어지지 않을 경우 공격자가 입력이 가능한 폼(웹 브라우저 주소입력창 또는 로그인 폼 등)에 조작된 질의문을 삽입하여 인증 우회를 통해 XML 문서로부터 인가되지 않은 데이터를 열람 할 수 있는 취약점.
1) 로그인 폼 ‘, * | user[@role=’admin 입력 // 계정 및 개인 정보 노출
2) 로그인 폼 something’ or ‘1’=’1 입력 // 계정 및 개인 정보 노출 - 정보누출
개요 : 웹 어플리케이션의 민감한 정보가 개발자의 부주의로 인해 노출되는 것으로 중요 정보(관리자 계정 및 테스트 계정 등)를 주석구문에 포함시켜 의도하지 않게 정보가 노출되는 취약점 또한 디폴트로 설정된 에러 페이지를 그대로 사용할 경우 시스템 내부 문제점을 자세하게 출력해주기 때문에 절대경로, 상태코드, 데이터베이스 종류, 질의문 등이 노출될 수 있으며 이밖에도 공격자가 검색엔진을 통하여 각종 개인 정보 및 서버 정보 등 해킹에 필요한 정보를 획득할 수 있음
1) 웹 페이지 전체 – 웹 페이지 소스보기 // 중요정보 노출
2) URL – URL에 웹 서버 디렉터리 명 입력 // 서버정보 노출
ex) http://www.test.or.kr/board.php?search=content&login=yes&id=test - 악성콘텐츠
개요 : 웹 어플리케이션에서 사용자 입력 값에 대한 필터링이 제대로 이루어지지 않을 경우 공격자가 악성콘텐츠를 삽입할 수 있으며, 악성콘텐츠가 삽입된 페이지에 접속한 사용자는 악성코드 유포 사이트가 자동으로 호출되어 악성코드에 감염될 수 있는 취약점 악성콘텐츠는 SQL 인젝션, Cross Site Script, 파일 업로드를 통한 페이지 위변조 기법 등을 통해 삽입이 가능하므로 해당 취약점을 반드시 제거하여 악성콘텐츠 삽입이 불가능 하도록 조치가 필요함.
1)XSS 발생 지점에 입력
2)XSS 발생 지점에 입력 // 악성콘텐츠 삽입 - 크로스 사이트 스크립트(XSS)
개요: 웹 어플리케이션에서 사용자 입력 값에 대한 필터링이 제대로 이루어지지 않을 경우, 공격자가 입력이 가능한 폼(웹 브라우저 주소입력 또는 게시판 등)에 악의적인 스크립트를 삽입하여 사용자 세션 도용, 악성코드를 유포할 수 있는 취약점.
1)사용자 입력 폼 – 입력 // 팝업창
2)URL 검색 폼 – 입력 // 팝업창 - 약한 문자열 강도
개요 : 웹 어플리케이션에서 회원가입 시 안전한 패스워드 규칙이 적용되지 않아 취약한 패스워드로 회원가입이 가능할 경우 공격자가 추측을 통한 대입 및 주변 정보를 수집하여 작성한 사전파일 통한 대입을 시도하여 사용자의 패스워드를 추출할 수 있는 취약점.
1) 로그인 폼 – 추측 가능한 계정 및 패스워드를 입력하여 로그인 시도 // 로그인 성공 - 불충분한 인증 및 인가
개요 : 웹 어플리케이션에서 개인정보 수정 페이지나 통합 로그인(SSO)과 같은 곳에서 사용자 인증이 미흡(아이디로 인증)할 경우 공격자가 파라미터로 전달되는 값을 수정하여 사용자 도용 및 개인정보 노출 문제가 발생할 수 있는 취약점 또한 관리자 권한을 가지고 있는 페이지에 대해 접근 제한을 설정하지 않았을 경우 공격자가 해당 페이지로 접근하여 조작이 가능한 문제가 발생 할 수 있음.
1) URL – 웹 프록시 도구를 사용하여 각종 파라미터 변조 // 인증 우회를 통한 사용자 페이지 접근
2) URL – 페이지 명을 추측하여 URL 강제 브라우징 // 관리자 기능 페이지 접근 - 취약한 패스워드 복구
개요 : 웹 어플리케이션에 존재하는 비밀번호 찾기 기능 또는 관리자에 의한 임시 비밀번호 발급 시 사용자 인증이 미흡하거나 비밀번호를 화면에 즉시 출력할 경우 공격자가 불법적으로 다른 사용자의 비밀번호를 획득, 변경, 복구 할 수 있는 취약점. - 불충분한 세션 관리
개요 : 웹 어플리케이션에서 사용자가 로그인을 할 경우 매번 동일한 세션 ID(일정한 패턴이 존재)를 발급하거나 세션 타임아웃을 너무 길게 설정하였을 경우 공격자가 다른 사용자의 세션을 재사용 하여 해당 사용자의 권한을 탈취할 수 있는 취약점.
1) 로그인 후 세션 ID – 세션 값 을 변조하여 로그인 시도 // 다중로그인 성공
2) 로그인 후 세션 ID – 로그인과 로그아웃을 반복하며 수집된 세션 ID의 패턴 분석 // 타 사용자 로그인 성공 - 크로스 사이트 리퀘스트 변조(CSRF)
개요 : 웹 어플리케이션에서 정상적인 경로를 통한 요청과 비정상적인 경로를 통한 요청을 서버가 구분하지 못할 경우 공격자가 스크립트 구문을 이용하여 정상적인 사용자로 하여금 조작된 요청을 전송 하도록 하여 게시판 설정 변경 및 자동 댓글, 회원 등급 변경 등의 문제가 발생할 수 있는 취약점.
크로스 사이트 리퀘스트 변조의 경우 공격을 당한 사용자의 권한을 그대로 사용하게 되므로 사용자의 권한 수준에 따라 그 피해범위가 달라질 수 있음.
1) 사용자 입력폼 – 입력 // 조작된 요청 실행 - 자동화 공격
개요 : 웹 어플리케이션 운영 시 특정 프로세스에 대한 접근시도 횟수 제한을 설정하지 않을 경우 공격자가 자동화 툴 및 봇을 활용하여 일분에 수백 번의 접근을 시도 할 수 있으며 특정 프로세스를 반복 수행함으로써 자동으로 수많은 프로세스(DoS, 무차별 대입 기법 등)가 진행되어 시스템 성능에 영향을 미칠 수 있는 취약점.
1) 로그인 폼 – 자동화 도구를 이용한 무차별 대입 공격 시도 // 계정 정보 획득 - 파일 업로드
개요 : 파일 업로드 기능이 존재하는 웹 어플리케이션에서 확장자 필터링이 제대로 이루어지지 않았을 경우 공격자가 악성 스크립트 파일(웹쉘)을 업로드 하여 웹을 통해 해당 시스템을 제어할 수 있어 명령어 실행 및 디렉터리 열람이 가능하고 웹 페이지 또한 변조가 가능한 취약점.
1) 게시판(파일 업로드) – 악성 스크립트 파일 업로드 시도 // 업로드 성공 - 경로 추적 및 파일 다운로드
개요 : 파일 다운로드 기능이 존재하는 웹 어플리케이션에서 파일 다운로드 시 파일의 경로 및 파일명을 파라미터로 받아 처리하는 경우 파일에 대한 접근 권한이 설정되어 있지 않다면 공격자가 파라미터를 조작하여 환경설정 파일, 웹 소스코드 파일, 데이터베이스 연동 파일 등을 다운 받을 수 있는 취약점 경로추적의 경우 인증되지 않은 사용자가 시스템에 접근하여 중요한 파일을 읽거나 권한 없는 기능 등을 수행할 수 있는 취약점.
1) URL – 파일 다운로드 시 파라미터 값을 조작하여 서버 파일 다운로드 시도 // 파일 다운로드 성공
2) 웹 루트 상위로 접근 시도 // 주요 파일 노출 - 데이터 평문전송
개요 : 로그인 또는 실명인증 시 민감한 데이터(개인 식별번호, 계정정보 등)가 평문으로 통신채널을 통해 송수신 될 경우 공격자가 감청(스니핑)을 통해 다른 사용자의 민감한 데이터를 획득 할 수 있는 취약점.
1) 웹 어플리케이션 -> 로그인 시 전송 데이터 확인 // 개인 정보 노출 - 쿠키 변조
개요 : 웹 어플리케이션 운영 시 사용자 인증 방식 중 하나인 쿠키를 공격자가 변조하여 다른 사용자로 전환하거나 권한 상승이 가능한 취약점 클라이언트 측에 저장되는 쿠키는 그 특성상 변조 위험에 노출되어 있으나 활용 분야가 다양하고 구현이 쉽다는 이유로 인해 현재까지 많이 사용되고 있음.
1) 쿠키 – 쿠키 값 변조 시도 // 권한 상승 - URL/파라미터 변조
개요 : 웹 어플리케이션 상에 존재하는 모든 실행경로에 대해서 접근제어를 검사하지 않거나 미흡한 경우 공격자가 접근 가능한 실행경로를 통해 사용자의 정보를 유출 하거나 일시적인 권한 상승이 가능한 취약점.
URL/파라미터 변조의 경우 불충분한 인증 및 인가 취약점과 유사하지만 프로세스 검증을 우회하는 것 이외에 사용자 입력 값에 대한 검증 누락이 발생하는 모든 상황을 포함하고 있으므로 SQL 인젝션, 불충분한 인증 및 인가, 크로스 사이트 스크립트(XSS) 공격에 활용될 수 있음.
1) 게시판 파라미터 – 게시판 페이지에 존재하는 파라미터 변수 값 조작 // 일시적인 권한 상승
웹서버
- 디렉터리 인덱싱
개요 : 웹 어플리케이션을 사용하고 있는 서버의 미흡한 설정으로 인해 인덱싱 기능이 활성화가 되어있을 경우, 공격자가 강제 브라우징을 통해 서버내의 모든 디렉터리 및 파일에 대해 인덱싱이 가능하여 웹 어플리케이션 및 서버의 주요 정보가 노출될 수 있는 취약점.
1) URL – 웹어플리케이션 경로 직접 접근 // 디렉터리 및 파일 목록 노출 - 관리자페이지 노출
개요 : 웹 어플리케이션의 전반적인 기능 설정 및 회원 관리를 할 수 있는 관리자페이지가 추측 가능한 형태로 구성되어 있을 경우 공격자가 관리자페이지에 쉽게 접근을 할 수 있으며 무차별 대입 공격을 통하여 관리자 권한을 획득할 수 있는 취약점.
1)URL – 추측 가능한 관리자페이지 (admin,manager, webmaster 등) 경로로 직접 접근 // 관리자 페이지 접속 - 위치공개
개요 : 개발 과정 또는 소스코드를 수정하였을 경우 백업파일, 로그파일, 압축파일과 같은 파일이 자동적으로 생성되어 웹 어플리케이션 상에 노출될 경우 공격자가 유추 후 직접 접근을 요청하여 핵심정보를 획득할 수 있는 취약점.
1) 웹 어플리케이션 – 추측 가능한 백업 파일명으로 직접 접근 가능 // 백업 파일 노출
2) 웹 어플리케이션 – 디렉터리 인덱싱을 통해 노출된 백업파일 확인 // 백업 파일 노출 - 웹 서비스 메소드 설정 공격
개요 : 웹 어플리케이션에서 일반적으로 사용하는 GET, POST 메소드 이외의 PUT, DELETE, COPY, MOVE 등의 불필요한 메소드를 허용하였을 경우 공격자가 이를 이용하여 웹 서버에 파일을 생성하거나 삭제 및 수정이 가능한 취약점.
1) 웹 어플리케이션 – 악의적인 목적으로 사용할 수 있는 메소드 요청 // 메소드 허용