문서API 참조
Documentation

스케줄링 최적화

Sandfly 스캔 스케줄은 쉽게 추가할 수 있으며, Sandfly는 보호된 호스트에 미치는 영향을 최소화하도록 설계되었습니다. 특정 환경, 일반적으로 대규모 및/또는 비표준 환경에서는 스캔을 예약할 때 고려해야 할 추가 요인이 있습니다.

고려해야 할 주요 요인은 공유 리소스(예: SAN 장치, NFS 서버, VM 호스트 머신 등)에 미치는 영향입니다. 파일 및 디렉토리 sandfly가 동일한 공유 스토리지를 사용하는 많은 호스트에서 실행될 때, 해당 공통 스토리지 장치에 가해지는 누적 부담이 눈에 띌 수 있습니다.

고려해야 할 또 다른 중요한 요인은 민감한 호스트입니다. 이러한 장치는 다양할 수 있습니다: 부하가 높은 호스트, 제한된 리소스를 가진 경량 장치(예: IoT 장치, 네트워크 카메라 등), 미션 크리티컬 서비스를 제공하는 시스템(예: 기본 데이터베이스, 코어 라우터 등), 약간의 추가 활동에도 영향을 받는 호스트의 애플리케이션, 스캐닝 기간을 제한하는 운영 요구 사항이 있는 호스트 또는 기타 경우들입니다. 이러한 호스트 하위 집합은 승인된 보안 스캔에 대해 특별한 주의가 필요할 수 있습니다.

Sandfly는 이러한 요인을 염두에 두고 스캔 스케줄을 구성하여 환경과 보호된 호스트에 미치는 영향을 최소화할 수 있도록 합니다. 일반적으로 환경에 따라 그룹을 정의하고, 호스트 태그를 사용하여 해당 호스트를 표시한 다음, 다양한 그룹에 대해 Trickle 스캔을 사용하는 별도의 스케줄을 설정하여 가장 최적화된 스케줄을 구성해야 합니다. 아래에서 이를 수행하는 방법에 대해 자세히 설명하겠습니다.

그룹핑

일반적으로 다양한 호스트 그룹에 대한 스케줄을 갖는 것은 전반적인 성능에 크게 도움이 됩니다. 그룹핑에서 고려해야 할 두 가지 측면이 있습니다:

Sandfly 유형별

모든 sandfly가 호스트에 미치는 영향이 동일하지는 않습니다. File, Directory, 그리고 훨씬 적은 정도로 Log 및 User sandfly는 파일시스템에 액세스하는 반면, Process sandfly는 CPU에 영향을 미칩니다. 따라서 Sandfly Type별로 스케줄을 분리하는 것은 관련 리소스 영향을 줄이는 한 가지 방법입니다.

  • 낮은 강도의 sandfly 유형(process/user/log)은 더 자주 실행하도록 예약하거나 더 높은 비율의 sandfly 선택으로 스케줄할 수 있습니다. 이 그룹핑 계층에는 기본적으로 활성화된 Recon sandfly도 포함됩니다.
  • 높은 강도의 sandfly 유형(file/dirs)은 덜 자주 실행하도록 예약하거나 더 낮은 비율의 sandfly 선택으로 스케줄할 수 있습니다.

호스트 민감도별

공유되거나 민감한 호스트의 경우, 이들을 자체적인 소규모 그룹으로 구성하고 더 가볍고/또는 덜 빈번한 스캔을 실행하는 것이 좋습니다. 또한 이러한 공유 리소스에 연결하는 호스트가 많은 경우, 공유 리소스에 모두 한 번에 액세스하지 않도록 인터리브된 스케줄로 하위 그룹으로 나눌 수도 있습니다.

그룹핑 요약

단일한 최적의 스케줄링 시나리오는 없습니다. 스케줄 최적화는 고유한 환경의 요구 사항에 크게 의존합니다. 그렇긴 하지만, 다음과 같은 고수준 영역들은 스케줄 최적화라는 최종 목표를 향해 호스트를 그룹으로 나누기 위한 합리적인 출발점입니다:

  • 다른 스캔된 호스트들에게 공유 리소스 역할을 하는 Linux 호스트.
  • 스캐닝에 민감하고/또는 기타 특별한 액세스 요구 사항이 있는 Linux 호스트.
  • 동일한 공유 리소스를 사용하는 호스트 스캔을 인터리브하여 역할별로 및/또는 잠재적으로 하위 분할된 기타 모든 Linux 호스트.

태깅

모든 스캔 스케줄은 호스트 태그를 기반으로 호스트를 포함하거나 제외하는 기능을 제공합니다. 이는 유사한 호스트 그룹을 스케줄별로 설정하는 방법의 핵심입니다. 따라서 호스트를 그룹화하는 방법에 대한 계획이 있으면, 다음 단계는 그룹화와 일치하는 하나 이상의 호스트 태그로 태그를 지정하는 것입니다.

Hosts Management 페이지의 툴바에 있는 "Tag" 버튼을 통해 호스트를 일괄적으로 태그할 수 있습니다.

An image of the Bulk Edit Tags form accessed via the Hosts Management page.

Bulk Edit Tagging via Hosts Management

스케줄

마지막 단계는 새로운 스케줄을 설정하여 이 계획을 실행에 옮기는 것입니다.

사용자 인터페이스(UI)를 통해 스캔 스케줄을 추가하는 방법에 대한 자세한 내용은 Adding Schedule - Scan Hosts 문서를 참조하십시오.

스케줄 옵션 고려사항

스캔 스케줄은 다음 스케줄 옵션을 사용하여 제어됩니다:

  1. 공유 리소스에서 중복을 줄일 수 있는 스캔 간 시간의 하한 및 상한 범위.
  2. {선택적으로} 스캔이 실행되는 제한된 시간 창 추가.
  3. 포함 및/또는 제외된 태그를 통한 호스트 그룹핑.
  4. 스캔된 호스트에 다양한 방식으로 영향을 미치는 Sandfly Types.
  5. 선택된 Sandfly의 백분율, 백분율이 클수록 더 많이 실행하고 처리합니다.
  6. 대부분의 경우 스캐닝을 더욱 분산시키기 위해 기본 Trickle 스캔 모드를 사용해야 합니다.

최적화 예시

위에서 다룬 정보를 종합하여, 가상의 스캔 스케줄 최적화 사례를 제공합니다.

4개의 네트워크 블록(10.1.0.* - 10.1.3.*)에 웹서버 호스트들이 있고, 이 호스트들은 모두 다른 네트블록의 공유 NFS 서버에 연결됩니다. 또한 이러한 호스트들을 모니터링하는 3개의 네트워크 카메라가 있습니다.

NFS 서버는 "NFS Server"로 태그를 지정하고 2개의 스캔 스케줄을 만들 수 있습니다. 하나는 ("NFS Servers - Process/Log/User Scan"이라는 이름으로) 정상적인 비율로 process/user/log/recon을 사용하고, 다른 하나는 ("NFS Servers - File/Dirs Scan"이라는 이름으로) 더 낮은 sandfly 선택 백분율과 선택적으로 더 큰 시간 범위로 file/dirs를 사용합니다. 또는 file/dirs 스케줄은 시간 창 제한 옵션을 사용하여 원하는 성능 목표에 따라 잠재적으로 더 정상적인 스케줄 시간 및/또는 백분율로 피크가 아닌 시간 또는 오프 피크 기간 동안 서비스에 영향을 미치는 스캔을 실행할 수 있습니다.

웹서버들은 잠재적으로 짝수 및 홀수 번호의 네트워크 블록을 기반으로 호스트 태그를 지정할 수 있습니다. 예를 들어 10.1.0.* 및 10.1.2.* 네트워크에 있는 웹서버에는 "Webserver - Even", 홀수 번호 네트워크에는 "Webserver - Odd"로 태그를 지정합니다. 다음으로 4개의 스캔 스케줄을 만듭니다. 정상적인 비율로 process/user/log/recon을 사용하지만 중복될 가능성이 다소 적은 시간 범위를 갖는 두 개의 스케줄을 만듭니다. 이러한 낮은 영향 스케줄의 이름을 "Webservers, Odd - Process/Log/User Scan" 및 "Webservers, Even - Process/Log/User Scan"으로 지정합니다. 두 번째 세트는 더 낮은 sandfly 섹션 백분율로 file/dirs를 사용하고 가장 중요하게는 서로 중복될 가능성이 훨씬 적은 시간 범위를 갖습니다. 이러한 높은 영향 스케줄의 이름을 "Webservers, Odd - File/Dirs Scan" 및 "Webservers, Even - File/Dirs Scan"으로 지정합니다.

네트워크 카메라들은 "Cameras"로 태그를 지정하고 이러한 장치들을 압도하지 않도록 모든 Sandfly 유형을 사용하지만 더 낮은 sandfly 선택 백분율로 이들만을 위한 1개의 스캔 스케줄을 만들 수 있습니다.


이 페이지가 도움이 되었나요?