웹 스파이더링 구성

Nexpose는 웹 사이트를 스파이더링하여 디렉토리 구조, 기본 디렉토리, 서버의 파일 및 애플리케이션, 깨진 링크, 액세스 불가능한 링크 및 기타 정보를 검색할 수 있습니다.

그다음 SQL 인젝션, CSS/XSS(Cross Site Scripting), 백업 스크립트 파일, 읽기 가능한 CGI 스크립트, 안전하지 않은 암호 사용 및 소프트웨어 결함 또는 구성 오류로 인한 기타 문제와 같은 보안 결함을 검색하기 위해 이러한 데이터를 분석합니다.

웹 스파이더링을 기본으로 사용하는 기본 스캔 템플릿:

이러한 템플릿의 설정을 조정할 수 있습니다. 또한, 웹 스파이더링 설정을 맞춤형 템플릿에 구성할 수 있습니다. 스파이더는 각 웹 페이지의 링크를 검사해 스캔된 페이지를 확인합니다. 많은 웹 사이트에서 스캔되지 않은 페이지는 주소 표시줄에 기본 URL과 매개 변수 연결 링크를 표시합니다.

예를 들어 주소 www.exampleinc.com/index.html?id=6에서 매개 변수 ?id=6은 브라우저에 제공되어야 하는 컨텐츠를 가리킬 수 있습니다. 쿼리 열을 포함하도록 설정하면, 스파이더가 이미 검색된 모든 URL 페이지에 대해 www.exampleinc.com/index.html?id=6 전체 열을 검사해 이 페이지가 분석되었는지 확인합니다.

이 설정을 사용하지 않으면 스파이더는 ?id=6 매개 변수 없이 기본 URL만 검사합니다.

이 애플리케이션은 스캔을 위해 웹 사이트에 액세스하기 위해 일반적으로 사용되는 웹 브라우저로서 웹 서버 애플리케이션에 나타납니다. 이를 위해 브라우저와 같은 방식으로 서버에 웹 페이지 요청을 전송합니다. 이 요청은 헤더라고 불리는 정보의 조각을 포함합니다. 이러한 헤더 중 사용자 에이전트는 버전 번호 및 지원하는 웹 애플리케이션 기술과 같이 사용자 브라우저의 특징을 정의합니다. 일부 웹 사이트는 지원하지 않는 브라우저의 HTTP 요청을 거절하므로 사용자 에이전트는 애플리케이션을 웹 사이트에 특정한 브라우저로 표현합니다. 기본 사용자 에이전트 스트링은 애플리케이션을 대상 웹 사이트에 Internet Explorer 7로 표현합니다.

웹 스파이더링 구성 단계 및 옵션

일반적인 웹 스파이더링 설정 구성:

  1. 스캔 템플릿 구성 패널의 웹 스파이더 링 페이지로 갑니다.
  2. 체크박스를 선택해 웹 스파이더링을 설정합니다.

注意: 웹 스파이더링 체크박스에 쿼리 열을 포함하면 스파이더가 웹 서버에 더 많은 요청을 보냅니다. 따라서 스캔 시간이 전반적으로 증가하고 합법적인 사용자를 위한 웹 사이트의 성능에 영향을 미칩니다.

  1. 필요 시 적절한 체크박스를 선택해 스파이더링 시 쿼리열을 포함합니다.
  2. 스파이더가 단일 스캔 시 계속 나타나는 CSS/XSS(Cross Site Scripting)를 테스트하기를 원하는 경우, 이 옵션에 대한 체크박스를 선택합니다.

이 테스트는 웹 서버에 저장되어 있는 악성 코드를 통한 위험한 공격 위험을 줄일 수 있습니다. 이 테스트를 설정하면 웹 스파이더 스캔 시간이 증가할 수 있습니다.

注意:  기본 사용자 에이전트 설정을 변경하면 애플리케이션이 웹 사이트에서 수신하는 컨텐츠가 변경될 수 있습니다.

  1. 기본값을 브라우저 ID(사용자 에이전트) 필드에서 변경하려면 새 값을 입력하십시오.

사용자 에이전트 열에 입력할 내용은 웹 사이트 관리자에게 문의하십시오.

  1. 필요 시 일반적인 사용자 이름 및 암호 사용을 확인하는 옵션을 선택합니다. 이 애플리케이션은 이러한 자격 증명 사용을 취약점으로 보고합니다. 해커가 쉽게 추측할 수 있기 때문에 안전하지 않은 방법입니다. 이 설정에서 애플리케이션은 일반적인 사용자 이름 및 암호를 검색된 인증 양식에 제출하여 웹 애플리케이션에 로그온을 시도합니다. 로그온 시도가 여러 번 발생하면 인증 서비스가 계정을 이러한 자격 증명으로 잠글 수 있습니다.

(옵션 사항) 웹 스파이더가 단순한 자격 증명을 확인하도록 설정:

웹 스파이더는 스캔 시 로그온 형식을 검색해 이러한 형식이 자동적인 해킹에 취약할 수 있는 일반적인 사용자 이름 및 암호를 허용하는지 파악할 수 있습니다. 이러한 검사를 수행하기 위해 웹 스파이더는 일반적으로 사용되는 자격 증명을 통해 이러한 형식 로그온을 시도합니다. 이런 시도가 성공하면 취약점으로 인식됩니다.

注意:  이 검사를 사용하면 특정한 보안 정책이 적용되는 인증 서비스가 일반적으로 사용되는 자격 증명으로 계정을 잠글 수 있습니다.

  1. 웹 스파이더링 구성 페이지의 단순한 자격 증명 검사 영역에서 일반적인 사용자 이름 및 암호로 표시된 체크박스를 선택합니다.

웹 스파이더 성능 설정 구성:

  1. 기본값 100을 해결 또는 남기려면 최대 외부 호스트 수를 입력합니다.

이 옵션은 스파이더가 해결할 수 있는 고유한 호스트 이름의 최대 수를 설정합니다. 이 기능을 설정하면 교차 링크 검사로 인해 특히 대규모 웹 사이트의 경우 스파이더링 프로세스 시간이 증가할 수 있습니다. 허용되는 호스트 수는 1~500입니다.

  1. 대상 웹 서버의 응답을 기다리려면 스파이더 요청 시간 초과 필드에 밀리초 수를 입력합니다. 입력 가능한 범위는 1~3600000ms(1시간)입니다. 기본값은 120000ms(2분)입니다. 웹 스파이더가 스파이더 요청 최대 재시도 필드에 지정된 값을 바탕으로 재요청을 시도합니다.
  2. 웹 스파이더링 디렉토리 깊이 제한을 설정하려면 스파이더링할 최대 디렉토리 레벨로 표시된 필드에 숫자를 입력합니다.

디렉토리 깊이를 제한하면 특히 대규모 웹 사이트의 경우 많은 시간을 절약할 수 있습니다. 디렉토리를 제한하지 않으려면 필드에 0을 입력합니다. 기본값은 6입니다.

注意: 반복 스케줄이 지정된 스캔을 제한된 시간으로 실행하면 이 시간 내에 스캔되지 않는 대상 사이트가 있을 수 있습니다. 웹 스파이더가 종료되면 후속 스캔이 시작되지 않으므로 대상 웹 사이트가 완전하게 스캔되지 않을 수 있습니다.

  1. 각 웹 사이트 스캔에 걸리는 최대 분을 설정하려면 최대 스파이더링 시간(분) 필드에 숫자를 입력합니다.

시간 제한을 설정하면 특히 대규모 대상 웹 사이트의 경우 스캔 시간이 할당된 시간을 초과하는 것을 방지할 수 있습니다. 기본값 0을 그대로 두면 시간 제한이 적용되지 않습니다. 허용되는 범위는 1~500입니다.

  1. 스파이더가 요청하는 페이지 수를 제한하려면 스파이더링할 최대 페이지 필드에 숫자를 입력하십시오.

이는 대규모 사이트를 위한 시간 절약 방법입니다. 허용되는 범위는 1~1,000,000페이지입니다.

注意:  시간 제한 및 페이지 제한을 모두 설정하면, 제한된 수치가 처음으로 초과될 때 웹 스파이더가 대상 웹 사이트 스캔을 중지합니다.

  1. 스파이더 요청 최대 재시도 필드에 실패 후 재시도 횟수를 입력합니다. 입력 범위는 0~100입니다. 값이 0이면 실패된 요청을 재시도하지 않습니다. 기본값은 2입니다.

일반 메시지와 관련된 웹 스파이더 설정 구성:

  1. 민감한 데이터 필드 이름에 대한 일반 메시지를 입력하거나 기본 열을 그대로 둡니다.

이 애플리케이션은 민감한 필드 이름을 취약점으로 보고합니다. 폼액션에서 해결된 민감한 데이터를 제출합니다. 일반 메시지와 일치하는 이름은 민감한 데이터 필드 이름으로 인식됩니다.

  1. 민감한 컨텐츠에 대한 일반 메시지를 입력합니다. 이 애플리케이션은 민감한 취약점 열을 보고합니다. 이 필드를 비워두면 민감한 열을 검색하지 않습니다.

디렉토리 경로와 관련된 웹 스파이더 설정 구성:

  1. 스파이더가 robots.txt 프로토콜에 명시된 표준을 준수하도록 하려면 체크박스를 선택합니다.

Robots.txt는 웹 사이트가 공개되지 않도록 스파이더 및 기타 웹 로봇이 웹 사이트의 전체 또는 일부에 액세스하지 못하게 하는 규칙입니다.

注意: 포함된 모든 부트스트랩 경로의 스캔 범위에는 웹 스파이더 구성에서 설정된 시간 및 페이지 제한이 적용될 수 있습니다. 부트스트랩 경로 스캔 전에 지정된 시간 또는 페이지 제한에 도달하면 이러한 경로는 스캔 되지 않습니다.

  1. 주요 웹 사이트 URL에서 링크가 제공되지 않는 애플리케이션에 대한 기본 URL 경로를 부트스트랩 경로 필드에 입력해 스파이더가 이러한 URL을 포함하도록 할 수 있습니다.

예: /myapp. 쉼표로 여러 입력을 구분합니다. 이 필드를 비워 두면, 스파이더가 부트스트랩 경로를 스캔에 포함하지 않습니다.

  1. 제외할 기본 URL 경로를 제외된 경로 필드에 입력합니다. 쉼표로 여러 입력을 구분합니다.

제외할 경로를 입력하면 애플리케이션이 이러한 URL의 스파이더링을 시도하거나 관련된 어떠한 취약점 또는 파일도 검색하지 않습니다. 이 필드를 비워 두면, 스파이더가 어떠한 경로도 스캔에서 제외하지 않습니다.

다른 모든 스캔 템플릿 설정을 원하는 대로 구성합니다. 스캔 템플릿 구성이 완료되면 저장을 클릭합니다.

웹 스파이더링 세부 튜닝

웹 스파이더는 웹 서버를 크롤링하여 웹 사이트의 전체 구조를 파악합니다. 이는 웹 사이트를 보호할 수 있는 포괄적인 프로세스입니다. 대부분의 웹 애플리케이션 취약점 테스트는 웹 스파이더링을 사용합니다.

Nexpose는 SQL 인젝션, CSS/XSS(Cross Site Scripting), 백업 스크립트 파일, 읽기 가능한 CGI 스크립트, 안전하지 않은 암호 사용 및 사용자 소프트웨어 결함 또는 구성 오류로 인한 기타 문제와 일반적인 문제에 대해 스파이더 데이터 진단 웹 맞춤형 애플리케이션을 사용합니다.

웹 스파이더는 기본적으로 3개의 스레드 및 20ms의 요청당 지연 시간으로 사이트를 크롤링합니다. 이때 발생하는 트래픽의 양은 검색 및 링크된 사이트 컨텐츠에 따라 다릅니다. 이 애플리케이션을 다중 프로세서 시스템에서 실행하는 경우, 스파이더 스레드 수를 프로세서당 3개로 늘리십시오.

150ms당 평균 1페이지를 처리하고 500페이지를 호스팅하는 응답 서버의 경우 전체 웹 스파이더 스캔 시간은 90초에 미치지 않습니다. 10,000페이지를 호스팅하는 동일한 서버의 스캔에는 약 28분이 소요됩니다.

웹 스파이더링 스캔 템플릿을 구성하는 경우 디렉토리 또는 경로의 최대 수와 웹 사이트당 크롤링할 최대 페이지 수를 입력합니다. 이러한 값은 웹 스파이더링 작업 시간을 제한할 수 있습니다. 기본적으로 스파이더는 교차 사이트 링크를 무시하며 스캔하는 종단점에만 머뭅니다.

사용자의 자산 인벤토리에 웹 사이트가 없으면 이 기능을 해제하십시오. 그렇지 않으면 많은 시간이 걸릴 수 있습니다.