<다음의 취약점 조치방법 안내>
관리자 페이지 노출, 경로추적 및 파일 다운로드, 자동화 공격
[각 취약점 내용 및 대응방법은 '홈페이지 취약점 심층점검 가이드' 에 나온 내용]
취약한 접근 통제
인증된 사용자가 수행할 수 있는 작업에 대한 제한이 제대로 적용되지 않을 경우 발생되는 보안 약점으로 공격자는
이러한 결함을 악용하여 다른 사용자의 계정에 액세스하거나, 중요한 파일을 읽고, 데이터를 수정하거나 접근 권한을 변경하는 것이 가능함
주요 취약점
1 |
관리자
페이지 노출 |
내용 |
관리자 페이지가 추측 가능한 형태로 구성되어 있을 경우 공격자가 관리자 페이지에 쉽게 접근 가능, 이에 따라 무차별 대입 공격, SQL 인젝션 등의 공격을 통해
관리자 권한을 획득 가능 |
점검
내용 |
관리자 페이지 URL을 유추하기 어려운 이름으로 설정하고 접근 제어 è
유추하기 쉬운 URL, 관리자 페이지 및
메뉴 접근의 가능 여부 점검 è
구글 고급 검색을 통한 관리자 페이지 노출 확인 |
대응
방법 |
1) 웹 서버
내에서의 조치 가)
홈페이지 관리자 페이지는 관리용으로 지정된 디렉터리에만 보관하여 운영 나)
홈페이지 관리자 페이지에 임의의 사용자가 접근할 수 없도록 접근권한을 설정하여, 접근할수
있는 권한을 가진 단말기만 접근 가능 하도록 설정 ① IIS 웹
서버 조치 방법 [제어판] → [관리도구] → [인터넷 서비스 관리자] → 관리자 디렉터리 선택 후 마우스
오른쪽 버튼 클릭 → [등록 정보] → [디렉터리보안] → [IP주소 및 도메인 이름제한] → [편집] → ‘액세스 거부(N)’ 체크 후 관리자 IP만 허용 ② Apache 웹
서버 조치 방법 아파치 웹 서버의 설정 파일인 httpd.conf 파일에서 관리자 디렉터리에 ‘Deny’, ‘Allow’ 지시자를 이용하여 접근 제한 설정 예) /usr/local/www/admin 폴더를 192.168.10.10만 허용하고 모두 차단할 경우 <Directory "/usr/local/www/admin/"> Order
allow,deny Deny
from all Allow
from 192.168.10.10 </Directory>
③ Tomcat 조치
방법 별도 관리자 페이지 디렉터리 접근 제한을 위하여 admin.xml 파일 등 별도의
설정 파일 생성 후 다음과 같은 설정을 함 <Context path="/admin"
docBase="../webapps/admin" debug="0"
privileged="true"> <Valve
className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1"/> </Context>
2) 구글 검색기에
노출된 경우의 조치 가)
구글에 노출된 홈페이지 관리자 페이지 정보의 캐시 삭제를 요청 나)
웹 서버에 노출 방지 표준(인터넷검색엔진배제표준)을 이용하여 개인정보가 포함된 주소를 지정하는 robots.txt 파일을
만들어 가상서버의 최상단 폴더에 저장하거나 해당 페이지의 HTML 안에 메타태그를 입력 |
2 |
경로추적
및 파일 다운로드 |
내용 |
경로추적을 통해 인증되지 않은 사용자가 시스템에 접근해 중요 파일을 읽거나 권한 없는 기능 등을 수행할 수 있음 파일 다운로드 기능이 존재하는 웹 애플리케이션에서 파일 다운로드 시 파일의 경로 및 파일명을 파라미터로 받아 처리하는 경우, 파일에 대한 접근 권한이 설정되어 있지 않아 공격자가 파라미터를 조작하여 중요 파일(환경설정, 웹 소스코드, 데이터베이스
등)을 다운로드 받을 수 있음 |
점검
내용 |
경로추적 및 파일 다운로드를 통한 중요 파일 접근을 제한 è
경로 추적을 통한 중요 파일 열람 가능 여부 확인 è
파일다운로드 기능을 이용한 중요 파일 다운로드 가능 여부 확인 |
대응
방법 |
1) 웹 서버
내에서의 조치 가)
파일 내용을 웹 브라우저에 표시 할 수 있는 디렉터리를 특정 디렉터리로 한정하고 이
외의 다른 디렉터리에서는 파일 내용을 표시할 수 없도록 상위 경로 접근이 제한되도록 설정 IIS 웹 서버
조치 방법 [제어판] → [관리도구] → [인터넷 서비스 관리자] → 웹 사이트 선택 후 마우스 오른쪽
버튼 클릭 → [등록 정보] → [홈 디렉터리] → [구성] 버튼 선택 → [응용
프로그램 옵션] → ‘상위 경로 사용(P)’ 체크 해제
나)
웹 사이트에서 접근하려는 파일이 있는 디렉터리에
chroot 환경을 적용해서 경로 추적 공격을 최소화 ※ chroot 환경 : chroot 디렉터리는
해당 디렉터리가 루트처럼 다뤄짐. chroot 파일 시스템은 대부분의 유닉스를 기반으로 한 플랫폼에서
지원이 가능하고, 윈도우 플랫폼에서는 적절한 시작 디렉터리를 새로운 논리 드라이브로 만들어 웹사이트에서
해당 드라이브를 통하여 접근하게 함예) 웹 사이트의 최상위 폴더를 웹 사이트 Root 폴더로 제한
다)
PHP언어로 개발된 서버의 경우 php.ini 에서 magic_quotes_gpc를 On으로 설정하여 ‘.\ 와 .
/’ 값 입력 시 치환되도록 설정
라)
파일 다운로드의 절대 경로 설정 및 DocBase의
상위경로 또는, 타 드라이브로 설정을 변경
마)
다운로드 경로 정보를 자바스크립트나 js 소스에서
확인 가능하지 않게 제한하며, 웹 서버 서블릿 내부 또는 별도의 설정 파일에서 관리 2) 홈페이지
개발 보안 조치 가)
외부 입력 값에 대해 파일 경로를 변경할 수 있는 문자열 “..”, “/”, “\”에 대해 필터링
나)
다운로드 파일 이름을 데이터베이스에 저장하고 파일 다운로드 시 파일 경로와 파일명이
아닌 키 값을 설정하여 다운로드 되도록 구현 다)
다운로드를 제공하는 페이지의 유효 세션 체크 로직 필수 적용 |
3 |
자동화
공격 |
내용 |
애플리케이션 운영 시 특정 프로세스에 대한 접근시도 횟수 제한을 설정하지 않을 경우 공격자가 자동화 툴 및 봇을 활용하여 1분에 수백 번의 접근을 시도할 수 있음 단시간동안 특정 프로세스를 반복 실행해 시스템 성능에 영향을 미칠 수 있음 |
점검
내용 |
웹 애플리케이션에 구현된 기능의 적절성에 대한 검증 로직을 구현하여 자동화 공격 및 무차별 대입 공격을 방지 è
자동화된 공격으로 인한 특정 프로세스 반복 실행 가능 여부 점검 |
대응
방법 |
1) 보안 장비에서
조치 시스템 과부하를 방지하기 위해 패킷량을 모니터링 할 수 있는 시스템(IDS/IPS)을
구축하여 다량의 패킷이 유입될 경우 해당 접속을 차단 2) 홈페이지
개발 보안 조치 가)
특정 시간 내 동일 프로세스가 반복 실행되지 않도록 시간제한 설정
나)
웹 애플리케이션 로그인 관련 테이블에 로그인 시도 횟수를 저장하는 컬럼을 추가하여 로그인
시도가 있을 때마다 횟수를 증가시키고, 일정 횟수 이상이 되면 자동화 공격으로 인식하여 로그인을
할 수 없도록 차단
다)
게시물 등록, 메일 발송 등의 기능에서 사용자의
요청이 일회성이 될 수 있도록 캡챠(이미지를 이용하여 확인 값을 표시하고 사용자가 값을 입력하여
인증) 등을 이용 |
1.1 SQL Injection, 1.2 SSI Injection, 1.3 LDAP Injection, 1.4 XPath Injection
1.5 XSS, 1.6 CSRF, 1.7 검증되지 않은 리다이렉트 및 포워드, 1.8 파일 업로드
3.1 URL/파라미터 변조, 3.2 불충분한 세션 관리, 3.3 쿠키 변조, 3.4 디폴트/취약한 계정사용
4.1 부적절한 에러메시지 노출, 4.2 소스코드 내 중요 정보 노출, 4.3 중요 정보 비 암호화 통신
5.1 디렉터리 인덱싱, 5.2 불필요한 Method 지원, 5.3 취약한 파일 존재,
5.4 히든필드 조작, 5.5 알려진 취약점이 있는 구성요소 사용
참조 : '교육기관 홈페이지 취약점 심층점검 가이드'