adsense

글 목록

웹 개발 취약점 정리 - 5. 잘못된 보안 구성 취약점 조치방법




<다음의 취약점 조치방법 안내>

디렉터리 인덱싱, 불필요한 지원, 취약한 파일 존재, 히든필드 조작, 알려진 취약점이 있는 구성요소 사용


[각 취약점 내용 및 대응방법은 '홈페이지 취약점 심층점검 가이드' 에 나온 내용]


잘못된 보안 구성

기본적으로 탑재되어야 하는 보안 구성이 제대로 적용 되어 있지 않은 경우,

애플리케이션에서 사용되는 소프트웨어가 최신 상태가 아닐 경우 발생 가능

주요 취약점

5.1 디렉터리 인덱싱, 5.2 불필요한 지원, 5.3 취약한 파일 존재

5.4 히든필드 조작, 5.5 알려진 취약점이 있는 구성요소 사용


1

디렉터리 인덱싱

내용

특정 디렉터리 내 파일 리스트를 노출하여 응용시스템의 구조가 외부에 노출될 수 있음

점검 내용

특정 디렉터리 내 불필요한 파일 정보의 노출을 차단

è  URL주소창에 디렉터리를 입력하여 인덱싱 여부 확인

è  디렉터리 끝에 특수 문자열을 붙여 인덱싱 여부 확인

è  구글 고급 검색을 통한 디렉터리 노출 확인

대응 방법

웹 서버 내에서의 조치

디렉터리 리스팅이 불가능 하도록 모든 페이지에 대해 디렉터리 리스팅 차단 설정

 

IIS 웹 서버 조치 방법

[제어판] → [관리도구] → [인터넷 서비스 관리자] → 웹 사이트 선택 후 마우스 오른쪽 버튼 클릭 → [등록 정보] → [홈 디렉터리] → ‘디렉터리 검색(B)’의 체크 해제

 

Apache 웹 서버 조치 방법

아파치 웹 서버의 설정 파일인 httpd.conf 파일에서 Options ‘Indexes’ 지시어 삭제 후 저장

<Directory "/usr/local/apache/htdocs">

Options Indexes FollowSymLinks Includes

</Directory>

 

Tomcat 조치 방법

web.xml 파일에서 디렉터리 나열을 차단하는 지시어(listings, false)를 설정

<init-param>

<param-name>listings</param-name>

<param-value>false</param-value>

</init-param>

 

   

2

불필요한 Method 지원

내용

웹 서비스 제공 시 불필요한 Method(PUT, DELETE, OPTIONS ) 허용으로 공격자가 악성파일 업로드 또는 중요파일 삭제 가능

점검 내용

불필요한 Method를 통한 악의적인 행위를 차단

è  불필요한 Method가 활성화 되어 있는지 여부 확인

대응 방법

웹 서버 내에서의 조치

홈페이지 운영에 불필요한 Method(PUT, DELETE, OPTIONS ) 비활성화

 

Apache 웹 서버 조치 방법

아파치 웹 서버의 설정 파일인 httpd.conf 파일에서 허용할 메소드에 대해 ‘LimitExcept’ 지시자를 사용하여 저장 (Limit 지시자(Black-List 방식)가 아닌 LimitExcept 지시자(White-List 방식) 사용 권고)

<Directory "/">

<LimitExcept GET POST> // 허용할 메소드

Order deny,allow Deny from all

</LimitExcept>

</Directory>

 

Tomcat 조치 방법

web.xml 파일에서 http-method 지시어에 불필요한 Method를 입력하여 비활성화

모든 페이지(/*)에 대하여 PUT, DELETE, TRACE, OPTIONS Method 사용 제한

<security-constraint>

<web-resource-collection>

<web-resource-name>Protected Context</web-resource-name>

<url-pattern>/*</url-pattern>

<http-method>PUT</http-method>

<http-method>DELETE</http-method>

<http-method>TRACE</http-method>

<http-method>OPTIONS</http-method>

</web-resource-collection>

<auth-constraint />

</security-constraint>

 

 

3

취약한 파일 존재

내용

웹 루트 하위에 내부 문서나 백업파일, 로그파일, 압축파일과 같은 파일이 존재할 경우 파일명을 유추하여 파일명을 알아내고, 직접 요청하여 해킹에 필요한 서비스 정보를 획득

점검 내용

취약한 파일의 위치를 예측하여 파일 및 정보 획득을 방지

è  웹 루트 디렉터리 내 웹 서비스에 불필요한 파일이 존재 하는지 확인

è  각종 샘플페이지의 디렉터리 및 파일 존재여부 확인

대응 방법

웹 서버 내에서의 조치

가)   웹 서버는 개발과 운영 환경을 분리하여 운영 환경에서 소스 코드 수정 또는 테스트 목적의 임시 파일을 생성하지 않도록 함

 

나)   웹 서버의 디렉터리에 존재하는 기본 설치 파일, 임시 및 백업 파일을 조사하여 웹 사용자가 접근하지 못하도록 조치

 

기본 파일 위치

아파치(Apache) : ServerRoot/cgi-bin/
톰켓(Tomcat)   : TOMCAT_HOME/examples
웹투비(WebToB) : ServerRoot/cgi-bin/

 

다)   정기적으로 불필요 파일을 검색하여 제거

 

 

4

히든필드 조작

내용

Hidden Field의 인자를 조작하거나 숨겨진 기능을 찾아 애플리케이션의 비정상적인 동작을 유도, 승인되지 않은 페이지에 접근 가능하거나 애플리케이션 오류를 발생시켜 정보 획득 및 추가 공격 가능

점검 내용

Hidden Field 조작을 통한 악의적인 행위를 방지

è  테스트 계정, default 계정 등 취약한 계정 사용 여부 확인

대응 방법

홈페이지 개발 보안 조치

가)   중요 정보(개인정보, 패스워드 등)는 클라이언트에서 확인 가능한 소스코드 내의 Hidden Field에서의 저장을 지양하고, 저장이 불가피할 경우 해당 내용은 암호화 처리

 

나)   중요한 정보 및 숨겨진 기능 처리는 서버에서 이루어질 수 있도록 설계


다)   Hidden Field 데이터에 대한 입력 값 검증 로직을 구현하여 무결성 체크

   

 

5

알려진 취약점이 있는 구성요소 사용

내용

웹 애플리케이션에서 취약점이 알려진 라이브러리, 프레임워크, 모듈 등을 사용하여 발생할 수 있는 취약점

점검 내용

알려진 취약점을 통한 공격을 사전에 방지

è  웹 애플리케이션 및 상용 소프트웨어의 버전 확인

대응 방법

웹 서버 내에서의 조치

가)   웹 서버에는 공개용 웹 게시판 사용 지양

 

나)   부득이하게 시 보안 패치 또는 최신버전의 제품으로 설치하며, 정기적으로 게시판 배포 사이트에 방문하여 보안 취약점 정보를 확인

 

다)   서버 정보 노출 방지

Apache 웹 서버 조치 방법

아파치 웹 서버의 설정 파일인 httpd.conf 파일에서 ServerTokens Prod 설정

ServerTokens Prob

ServerSignature Off

 

Tomcat 조치 방법

server.xml 파일에서 Connector 태그에 server="" 추가

<Connector port="8080" protocol="HTTP/1.1"

server="Tomcat" // 서버 정보에 표시할 문자 connectionTimeout="20000"

redirectPort="8443" />

 

라)   사용하고 있는 구성요소에 대한 취약점을 항상 체크 및 제거

 

마)   취약점이 있는 구성요소를 보안 패치 또는 최신 버전으로 업데이트

 


취약점 관련 추가 내용들

1. 입력값 검증 부재 관련 취약점 조치방법

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 파일 업로드

2. 취약한 접근 통제 취약점 조치방법

2.1 관리자 페이지 노출, 2.2 경로추적 및 파일 다운로드, 2.3 자동화 공격

3. 취약한 인증 취약점 조치방법

3.1 URL/파라미터 변조, 3.2 불충분한 세션 관리, 3.3 쿠키 변조, 3.4 디폴트/취약한 계정사용

4. 민감한 데이터 노출 취약점 조치방법

4.1 부적절한 에러메시지 노출, 4.2 소스코드 내 중요 정보 노출, 4.3 중요 정보 비 암호화 통신


참조 : '교육기관 홈페이지 취약점 심층점검 가이드'