Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

AWS GuardDuty와 vSRX 가상 방화벽 통합

솔루션 개요

AWS GuardDuty는 AWS 환경 내에서 예기치 않은 잠재적으로 무단 활동의 악의적인 활동을 식별하는 지속적인 보안 모니터링 서비스입니다. AWS GuardDuty가 탐지한 위협은 보안 피드로 AWS 환경의 vSRX로 전송됩니다. vSRX는 두 가지 방법으로 피드에 액세스할 수 있습니다.

  • AWS S3 버킷에서 피드 직접 다운로드

  • 방화벽 디바이스가 주니퍼 ATP 클라우드에 등록되어 있는 경우, 피드는 방화벽 디바이스에 ATP 클라우드 보안 인텔리전스(SecIntel) 피드와 함께 방화벽 디바이스에 푸시됩니다.

차례로 vSRX를 사용하면 피드에서 작업을 수행하고 피드에서 식별된 위협 소스에 대한 연결을 차단하거나 로그할 수 있습니다. AWS 구성 요소에 대한 자세한 내용은 AWS 설명서를 참조하세요.

이 솔루션에서 지원되는 배포 시나리오는 다음과 같습니다.

  • AWS GuardDuty와 vSRX의 직접 통합

    이 구축에는 주니퍼 ATP 클라우드 라이선스가 필요하지 않습니다. AWS GuardDuty의 위협 피드는 AWS Lambda 함수를 통해 처리된 다음 AWS S3 버킷에 저장됩니다. AWS Lambda 함수를 구성하고 배포해야 합니다. 배포되면 Lambda 함수는 AWS GuardDuty 조사 결과의 데이터를 악성 IP 주소 및 URL 목록으로 변환합니다. 결과 목록은 구성된 AWS S3 버킷에 vSRX에서 수집할 수 있는 형식으로 저장됩니다. AWS S3 버킷에서 위협 피드를 주기적으로 다운로드하도록 vSRX를 구성해야 합니다. 또한 트래픽이 SecIntel 정책에 도달하기 위해 방화벽 디바이스에서 IDP 서명 패키지를 이미 사용할 수 있는지 확인해야 합니다.

    그림 1: vSRX 가상 방화벽에 의한 위협 피드 직접 수집 Flowchart of AWS security monitoring architecture: GuardDuty finds threats, CloudWatch logs them, Lambda processes them, IAM manages access, S3 stores data, vSRX instances receive feeds for action.
  • ATP 클라우드를 사용하여 AWS GuardDuty와 vSRX의 통합

    이 구축을 위해 주니퍼 ATP 클라우드 라이선스를 SRX 시리즈 방화벽 및 vSRX에 설치해야 합니다. 자세한 정보는 ATP 클라우드용 소프트웨어 라이선스를 참조하십시오. AWS GuardDuty의 위협 피드는 AWS Lambda 함수를 통해 처리됩니다. Lambda 함수를 구성 및 구축하고 vSRX에서 ATP 클라우드를 활성화해야 합니다. AWS Lambda 함수는 OpenAPI를 사용하여 위협 피드를 ATP 클라우드로 전송합니다(C&C 범주에 피드 업로드). 위협 피드는 ATP 클라우드 SecIntel 피드와 함께 등록된 모든 vSRX에 푸시됩니다.

    그림 2: ATP 클라우드 Workflow diagram showing integration of AWS security services with Juniper ATP Cloud and vSRX firewalls. AWS CloudStack includes GuardDuty for threat detection, CloudWatch for monitoring, and Lambda for processing. Juniper ATP Cloud receives data via Sky Open APIs for threat analysis. vSRX firewalls enforce security policies using threat intelligence from Juniper ATP Cloud. 를 통한 위협 피드 수집

AWS GuardDuty와 vSRX 가상 방화벽을 통합하는 워크플로

GitHub 리포지토리에서 필요한 파일 검색

필요한 파일을 검색하려면:

  1. GitHub 리포지토리 https://github.com/Juniper/vSRX-AWS 로 이동합니다.
  2. 코드 드롭다운 목록을 클릭합니다.
  3. ZIP 다운로드를 클릭합니다.

    vSRX-AWS-master.zip 파일이 시스템에 다운로드됩니다. SRX-GD-Threatfeed 폴더에 있는 manifest.xml 및 cc_schema 파일이 필요합니다.

S3 버킷 구성

이 단계는 위협 피드가 vSRX 가상 방화벽에 의해 직접 수집되는 경우에만 필요합니다. 위협 피드 수집이 ATP 클라우드를 통해 이루어지는 경우 S3 버킷을 구성할 필요가 없습니다.

  1. AWS Management 콘솔에 로그인하고 버킷 생성 페이지로 이동합니다.
  2. S3 버킷에 이름과 리전을 할당합니다.
  3. 모든 공개 액세스 차단 옵션을 선택 취소합니다.
  4. 나머지 옵션은 기본 상태로 두고 버 킷 생성을 클릭합니다.
    상단의 녹색 경고는 새 버킷을 확인합니다.
  5. 새로 생성된 버킷을 클릭하면 더 많은 옵션이 표시됩니다.
  6. 개체 탭에서 업로드를 클릭한 다음 파일 추가를 클릭하여 이전에 검색한 두 파일을 업로드합니다.
  7. cc_schema 및 매니페스트 파일로 이동한 다음 업로드를 클릭합니다.
  8. 이제 개체 탭에 나열된 두 파일을 선택한 다음 작업 드롭다운 목록을 클릭합니다.
  9. [Make Public]을 선택합니다.
    이 작업을 통해 누구나 파일에 액세스하고 읽을 수 있습니다.
  10. 공개하기를 클릭합니다.
    모범 사례:
    • 나중에 참조할 수 있도록 S3 버킷 이름을 기록해 둡니다.

    • S3 버킷 액세스는 SRX 시리즈 방화벽이 S3 버킷에서 파일과 피드를 다운로드할 수 있도록 항상 공개되어야 합니다.
    • 다운로드 또는 읽기 작업에 API 키가 필요하지 않도록 S3 버킷을 구성합니다.

    • S3 버킷에 대한 쓰기 액세스는 Lambda 함수에서만 사용할 수 있습니다.

    • S3 구성 세부 정보는 Amazon S3 설정을 참조하세요.

GuardDuty 구성

GuardDuty 결과는 S3 버킷 또는 CloudWatch 이벤트로 내보낼 수 있습니다. 이 솔루션에서는 결과를 CloudWatch 이벤트로 내보냅니다. 결국 CloudWatch 이벤트 규칙은 Lambda 함수를 트리거하여 결과를 vSRX 가상 방화벽과 호환되는 형식으로 변환하고 AWS S3 버킷에 푸시합니다.

AWS guardduty를 구성하려면 다음을 수행합니다.

  1. AWS 계정에 로그인합니다.
  2. 서비스 탭을 클릭하고 GuardDuty를 검색합니다.
  3. GuardDuty 서비스를 선택합니다.

    GuardDuty에서 생성된 이벤트 목록이 표시되는 GuardDuty 조사 결과(GuardDuty Findings) 페이지가 나타납니다.

  4. 왼쪽 창에서 설정을 클릭합니다.

    [About GuardDuty] 페이지가 나타납니다.

  5. [Finding export options] 섹션에서 업데이트된 결과의 빈도를 선택합니다. 사용 가능한 옵션은 다음과 같습니다.
    • 6시간마다 CWE 및 S3 업데이트(기본값)

    • 1시간마다 CWE 및 S3 업데이트

    • 15분마다 CWE 및 S3 업데이트

  6. 옵션을 선택하고 저장을 클릭합니다.

    선택한 빈도에 따라 GuardDuty 서비스는 정기적으로 이벤트를 생성하고 해당 이벤트를 클라우드 워치 이벤트(CWE) 서비스와 공유합니다.

Lambda 함수 구성

AWS Lambda 함수는 ATP 클라우드 OpenAPI를 사용하여 GuardDuty 결과를 ATP 클라우드에 업로드합니다. Lambda 함수는 표준 SRX 매니페스트 파일 형식의 피드 정보로 AWS S3 버킷을 업데이트합니다. Lambda는 ATP 클라우드 웹 포털에서 조직별로 생성된 애플리케이션 토큰으로 구성해야 합니다. 위협 피드는 C&C 범주에서 사용할 수 있습니다.

Lambda 함수를 생성하려면 다음을 수행합니다.

  1. Lambda> 서비스로 이동합니다.
  2. 함수 생성을 클릭합니다.
  3. Lambda 함수에 이름을 할당합니다.
  4. 함수가 작성될 런타임 언어를 선택합니다. 예를 들어 런타임 python 3.6입니다.
  5. [Execution role] 섹션에서 [ Use an existing role]을 선택합니다.
  6. 기존 역할 드롭다운 목록에서 guardduty-lambdarole-test 옵션을 선택합니다.

    드롭다운 목록 아래에 표시되는 링크를 열어 역할 세부 정보를 검토합니다.

    참고:

    적절한 IAM(Identity and 액세스 관리) 역할을 제공해야 합니다. 새 IAM 역할을 생성하고 Lambda 함수에 역할을 할당합니다. 이를 통해 Lambda 함수는 S3 버킷에 객체를 업로드하거나 S3 버킷에서 객체를 쓰기/읽을 수 있습니다. 자세한 내용은 IAM 사용자 생성 단원을 참조하십시오

  7. 역할 세부 정보를 순서대로 입력하고 Lambda 페이지로 돌아가서 함수 생성을 클릭합니다.
  8. Lambda 파일을 업로드합니다.
    1. GitHub 리포지토리 https://github.com/Juniper/vSRX-AWS 에 로그인하고 SRX-GD-ThreatFeed 폴더로 이동한 다음 SRX-GD-ThreatFeed.zip 람다 파일을 다운로드합니다.
    2. Lambda > 함수 > your_lambda_function_name로 이동합니다.
    3. 작업 > .zip 파일 업로드를 클릭합니다. 함수 코드 섹션에서 SRX-GD-ThreatFeed.zip 파일을 업로드합니다.
    4. 확인을 클릭합니다.

      Lambda 구성이 환경 변수 섹션에 표시됩니다. 표 1 의 지침에 따라 Lambda를 구성합니다.

  9. Lambda 함수를 구성합니다.
    1. Lambda > Functions(Lambda Functions)> > your_lambda_function_name 환경 변수 편집(Edit Environment variables)로 이동합니다.
    2. 표 1에 제공된 지침에 따라 구성을 완료합니다.
      표 1: AWS Lambda 구성

      매개 변수

      설명

      MAX_ENTRIES

      해당 데이터 파일에 유지될 최대 항목 수를 정의합니다. 이 제한에 도달하면 이전 항목이 만료됩니다.

      기본값: 10000

      범위:1000-100000

      예: 1000

      IP_FEED_NAME

      S3 데이터 파일의 키 이름이기도 한 CC IP 피드 이름을 정의합니다. 제거해야 하는 오경보 항목이 있는 경우 IP_FEED_NAME 매개 변수에서 파생된 해당 키에서 수동으로 삭제해야 합니다.

      예: custom_cc_(content_type)_data

      DNS_FEED

      S3 데이터 파일의 키 이름이기도 한 CC DNS 피드 이름을 정의합니다. 제거해야 하는 오경보 항목이 있는 경우 DNS_FEED 매개 변수에서 파생된 해당 키에서 수동으로 삭제해야 합니다.

      예: custom_cc_dns_(content_type)_data

      S3_BUCKET

      S3 버킷의 이름입니다. 버킷 이름은 S3 URL 이름에도 사용됩니다.

      예: guardduty-통합-test

      SEVERITY_LEVEL

      AWS Guardduty 이벤트 IP/URL이 피드 파일에 추가되는 수준을 초과합니다.

      참고:

      심각도 수준은 ATP 클라우드 위협 수준과 일대일로 매핑됩니다.

      기본값: 8

      범위: 1-10

      예: 4

      SKY_APPLICATION_TOKEN

      ATP 클라우드 OpenAPI에 항목을 업로드하는 데 사용됩니다. 주니퍼 ATP 클라우드 웹 포털에 로그인하여 애플리케이션 토큰을 생성해야 합니다. 애플리케이션 토큰을 생성하려면 프리미엄 라이선스로 구성된 디바이스가 하나 이상 있어야 합니다. 자세한 정보는 ATP 클라우드용 소프트웨어 라이선스를 참조하십시오.

      예: TOKEN_VALUE

      SKY_OPENAPI_BASE_PATH

      Lambda 함수에서 ATP 클라우드로 피드를 업로드하는 데 사용되는 Sky Open API의 기본 경로입니다.

      예: https://threat-api.sky.junipersecurity.net/v1/cloudfeeds

      FEED_TTL

      TTL(Time to Live)을 사용하여 피드가 활성화되는 일 수를 지정합니다. 피드 항목은 TTL 내에서 업데이트되지 않으면 SRX 시리즈 방화벽에서 만료됩니다.

      기본값: 3456000

      범위: 86400-31556952

      FEED_UPDATE_INTERVAL

      피드의 업데이트 간격입니다.

      기본값: 300

      범위: 300-86400

      참고:
      • vSRX 방화벽에서 위협 피드를 직접 수집하는 경우 SKY_APPLICATION_TOKEN 및 SKY_OPENAPI_BASE_PATH 매개 변수를 정의할 필요가 없습니다. 이러한 파라미터가 구성되지 않은 경우 피드는 AWS S3 버킷에 직접 업로드됩니다.

      • ATP 클라우드를 통해 위협 피드를 수집하는 경우 SKY_APPLICATION_TOKEN 및 SKY_OPENAPI_BASE_PATH 매개 변수를 정의해야 합니다. AWS Lambda에서 ATP 클라우드로 피드를 업로드하려면 이러한 파라미터를 구성해야 합니다. 매개 변수S3_BUCKET 정의할 필요가 없습니다.

  10. 시간 제한 설정을 구성합니다. Lambda > 함수 > your_lambda_function_name > 기본 설정 으로 이동하여 타임아웃 을 10초로 업데이트합니다.
  11. 저장을 클릭합니다.

CloudWatch 구성

규칙을 생성하고 이벤트 소스(GuardDuty)와 이벤트 대상(Lambda 함수)을 지정합니다.

규칙을 만들려면:

  1. 이벤트 > 규칙을 선택합니다.

    규칙 페이지가 나타납니다.

  2. 규칙 만들기를 클릭합니다.
  3. 이벤트 소스 섹션에서 서비스 이름을 GuardDuty 로 선택하고 이벤트 유형을 GuardDuty Finding으로 선택합니다.
  4. [Targets] 섹션에서 [Add Targets]를 클릭하고 Lambda 함수가 선택되어 있는지 확인합니다.

    GuardDuty와 Lambda 함수를 이벤트 소스 및 대상으로 지정하면 CloudWatch Logs Insights를 통해 로그를 검색하고 분석할 수 있습니다.

  5. 세부 정보 구성을 클릭합니다.
  6. 규칙 정의 페이지에서 규칙의 이름을 지정합니다.
  7. 규칙 만들기를 클릭합니다.

AWS GuardDuty와 vSRX 가상 방화벽의 직접 통합 구성

다음 섹션에는 vSRX 가상 방화벽에 필요한 CLI 구성이 나열되어 있습니다.

이 예에서는 프로필 이름, 프로필 규칙 및 위협 수준 점수를 구성합니다. 이러한 위협 수준 점수와 일치하는 모든 것은 맬웨어 또는 감염된 호스트로 간주됩니다. ATP 클라우드 위협 수준은 AWS GuardDuty의 심각도 수준과 일대일로 매핑됩니다.

참고:

AWS GuardDuty에서 심각도 수준은 언제든지 변경할 수 있지만 심각도 수준은 항상 vSRX 가상 방화벽에서 구성한 위협 수준과 일치해야 합니다.

AWS GuardDuty를 사용하여 vSRX 가상 방화벽을 구성하려면(ATP 클라우드 미사용):

  1. 콘솔 창을 열고 vSRX 가상 방화벽에 로그인합니다.

    login as: root@user-vsrx

    % cli

  2. show configuration 명령을 실행하여 기존 SecIntel 세부 정보를 확인합니다.

    root@user-vsrx> show configuration | display set | match security-intel

  3. IDP 보안 패키지가 vSRX 가상 방화벽에 다운로드되었는지 확인합니다. 주니퍼 보안 엔지니어링 포털에서 IDP 보안 패키지를 수동으로 다운로드하고 설치하려면 다음 명령을 사용합니다

    root@user-vsrx> request security idp security-package download

    root@user-vsrx> request security idp security-package download status

    root@user-vsrx> request security idp security-package install

    root@user-vsrx> request security idp security-package install status

  4. 구성 모드로 진입합니다.

    root@user-vsrx> configure

  5. 보안 인텔리전스 URL을 구성합니다.

    root@user-vsrx# set services security-intelligence url https://guardduty-integration-test.s3-us-west-2.amazonaws.com/manifest.xml

  6. 보안 인텔리전스 프로필 및 정책을 구성합니다. 이 예에서 프로필 이름은 secintel_profile 이고 위협 수준 8 이상은 차단됩니다.
  7. 보안 정책을 구성하고 보안 정책에 보안 인텔리전스 정책을 할당합니다.

    root@user-vsrx# set security policies from-zone trust to-zone untrust policy 1 match source-address any

    root@user-vsrx# set security policies from-zone trust to-zone untrust policy 1 match destination-address any

    root@user-vsrx# set security policies from-zone trust to-zone untrust policy 1 match application any

    root@user-vsrx# set security policies from-zone trust to-zone untrust policy 1 then permit application-services security-intelligence-policy secintel_policy

  8. 명령을 실행 request services security-intelligence download status 하여 SecIntel 피드 다운로드 상태를 확인합니다.

    root@user-vsrx# request services security-intelligence download status

    vSRX 가상 방화벽은 이전에 Lambda 함수로 구성한 CC 범주에 대한 DNS 및 IP 피드를 모두 검사하기 시작했습니다.

  9. 다음 명령을 실행하여 SecIntel 범주에 대한 세부 정보를 표시합니다.
    root@user-vsrx# show services security-intelligence category detail category-name CC feed-name cc_guardduty_ip count 10 start 0 all-logical-systems-tenants
  10. 명령을 실행하여 run show security dynamic-address category-name CC 일치하는 항목을 확인합니다.

    IP 주소를 보면 vSRX 가상 방화벽이 피드를 수신하고 있으며 AWS GuardDuty와 직접 통합되었음을 알 수 있습니다.

보안 인텔리전스 통계를 확인하려면 명령을 show services security-intelligence statistics 사용합니다.

ATP 클라우드를 사용하여 AWS GuardDuty로 vSRX 가상 방화벽 구성

ATP 클라우드를 사용하여 AWS GuardDuty로 vSRX 가상 방화벽을 구성하려면 다음을 수행합니다.

  1. ATP 클라우드 라이선스를 설치합니다.
  2. vSRX 가상 방화벽을 ATP 클라우드에 등록합니다. 주니퍼 ATP 클라우드 웹 포털을 사용하여 SRX 시리즈 방화벽 등록을 참조하십시오.

    root@user-vsrx# request services advanced-anti-malware enroll https://amer.sky.junipersecurity.net/v2/skyatp/ui_api/bootstrap/enroll/HASH/HASH.slax

    등록 스크립트는 3단계에서 사용될 aamw-ssl tls 프로필을 생성합니다.
  3. 보안 인텔리전스 URL을 구성합니다.
    set services security-intelligence url https://cloudfeeds.argonqa.junipersecurity.net/api/manifest.xml set services security-intelligence authentication tls-profile aamw-ssl
  4. 보안 인텔리전스 프로필 및 정책을 구성합니다. 이 예에서 프로필 이름은 이고 secintel_profile 위협 수준 8 이상은 차단됩니다.

    set services security-intelligence profile secintel_profile category CC

    set services security-intelligence profile secintel_profile rule secintel_rule match threat-level 8

    set services security-intelligence profile secintel_profile rule secintel_rule match threat-level 9

    set services security-intelligence profile secintel_profile rule secintel_rule match threat-level 10

    set services security-intelligence profile secintel_profile rule secintel_rule then action block drop

    set services security-intelligence profile secintel_profile rule secintel_rule then log

    set services security-intelligence profile ih_profile category Infected-Hosts

    set services security-intelligence profile ih_profile rule ih_rule match threat-level 8

    set services security-intelligence profile ih_profile rule ih_rule match threat-level 9

    set services security-intelligence profile ih_profile rule ih_rule match threat-level 10

    set services security-intelligence profile ih_profile rule ih_rule then action block drop

    set services security-intelligence profile ih_profile rule ih_rule then log

    set services security-intelligence policy secintel_policy Infected-Hosts ih_profile

    set services security-intelligence policy secintel_policy CC secintel_profile

  5. 보안 정책을 구성하고 보안 정책에 보안 인텔리전스 정책을 할당합니다.

    set security policies from-zone trust to-zone untrust policy 1 then permit application-services security-intelligence-policy secintel_policy

    commit

보안 인텔리전스 상태를 확인하려면 명령을 사용합니다.show services security-intelligence update status

보안 인텔리전스 통계를 확인하려면 명령을 show services security-intelligence statistics 사용합니다.

vSRX 가상 방화벽이 ATP 클라우드와 통합되면 vSRX 가상 방화벽이 ATP 클라우드 웹 포털에서 추가 구성이 필요하지 않습니다. SecIntel 구성을 포함한 모든 설정은 ATP 클라우드에 vSRX 가상 방화벽을 등록하는 동안 자동으로 생성됩니다.

AWS GuardDuty 사용 사례

이 예에서는 위협 피드를 다운로드하도록 vSRX 가상 방화벽을 구성해 보겠습니다.

  1. vSRX 가상 방화벽에 로그인합니다.

    login as: root@user-vsrx

    % cli

  2. show configuration 명령을 실행하여 기존 SecIntel 세부 정보를 확인합니다.
    root@user-vsrx> show configuration | display set | match security-intel
  3. 구성 모드로 진입합니다.
    root@user-vsrx> configure
  4. SRX 시리즈 방화벽에서 SecIntel URL을 구성합니다.

    root@user-vsrx> set services security-intelligence url guardduty-url

  5. 구성을 커밋합니다.
    root@user-vsrx> commit
  6. from 셸을 실행 cat /var/db/secinteld/tmp/manifest.xml 하고 매니페스트 파일이 성공적으로 다운로드되었는지 확인합니다.
  7. 그렇지 않은 경우 다음 명령을 실행합니다
    root@user-vsrx> request services security-intelligence download
  8. 매니페스트 파일이 성공적으로 다운로드되었는지 확인합니다.
  9. 매니페스트 파일이 다운로드되면 다음 명령을 실행합니다.

    root@user-vsrx> show services security-intelligence category detail category-name CC feed-name feed_name_gd

  10. CLI에서 다음 명령을 실행하여 피드가 동적 주소 아래에 있는지 확인합니다.

    root@user-vsrx> show security dynamic-address category-name CC

  11. 목록에서 IP 주소(예: 1.0.210.98)를 선택하고 클라이언트에서 ping 테스트를 실행하고 secintel CC 블록 드롭 카운터가 증가하는지 확인합니다.

    핑에 대한 응답을 받을 수 있어야 합니다. 클라이언트에서 전달되는 트래픽이 SRX 시리즈 방화벽의 SecIntel 정책에 부합하는지 확인합니다.

    참고:

    트래픽이 SecIntel 정책에 도달하려면 IDP 서명 패키지가 필요합니다. 아직 서명 패키지가 없는 경우 명령을 실행 request security idp security-package download 하십시오.

    명령을 실행합니다.root@user-vsrx> show security flow session source-prefix Client_IP