Juniper Junos 로그 수집

다음에서 지원:

이 문서에서는 Google Security Operations 전달자를 사용하여 Juniper Junos 로그를 수집하는 방법을 설명합니다.

자세한 내용은 Google Security Operations에 데이터 수집을 참조하세요.

수집 라벨은 원시 로그 데이터를 구조화된 UDM 형식으로 정규화하는 파서를 식별합니다. 이 문서의 정보는 JUNIPER_JUNOS 수집 라벨이 있는 파서에 적용됩니다.

Juniper Networks SRX 기기의 구조화된 로깅 구성

구조화된 로그 형식은 로그 메시지에서 정보를 추출합니다. 로그 형식은 Syslog 프로토콜을 준수합니다.

  1. 관리 IP 주소에 SSH를 사용하여 Juniper SRX CLI에 로그인합니다.
  2. 셸 프롬프트에 CLI를 입력하고 Enter 키를 누릅니다.
  3. configure를 입력하고 Enter를 눌러 기기의 구성 모드로 들어갑니다.
  4. 연락처 세부정보 또는 고객 참조 포인트를 입력합니다.
  5. 필드를 사용자 계정에 매핑하려면 다음 명령어를 실행하세요.

       set system syslog host FORWARDER_IP_ADDRESS any info
    
       set system syslog host FORWARDER_IP_ADDRESS structured-data
    
    

    FORWARDER_IP_ADDRESS를 Google Security Operations 전달자의 IP 주소로 바꿉니다.

  6. 보안 로그에 구조화된 로깅을 사용 설정하려면 다음 명령어를 사용하세요.

       set security log mode stream
    
       set security log source-address SRC_IP_ADDRESS
    
       set security log stream SYSLOG_STREAM_NAME host FORWARDER_IP_ADDRESS
    
       set security log stream SYSLOG_STREAM_NAME format sd-syslog
    
    

    다음을 바꿉니다.

    • SRC_IP_ADDRESS: Juniper SRX 기기의 IP 주소입니다.

    • SYSLOG_STREAM_NAME: syslog 서버에 할당된 이름입니다.

    • FORWARDER_IP_ADDRESS: Google Security Operations 전달자의 IP 주소입니다.

  7. 모든 보안 정책에서 로깅이 사용 설정되어 있는지 확인합니다. 로깅을 사용 설정하려면 다음 명령어를 실행하세요.

       set security policies from-zone <zone-name1> to-zone <zone-name2> policy <policy-name> then log session-close
    
       set security policies from-zone <zone-name1> to-zone <zone-name2> policy <policy-name> then log session-init
    
    
  8. 다음 명령어를 사용하여 기기에서 호스트 이름을 구성합니다.

       set system host-name HOSTNAME
    
    

    HOSTNAME을 할당된 Juniper Networks SRX 기기로 바꿉니다.

  9. commit를 입력하여 실행된 명령어를 구성에 저장합니다.

Juniper Junos 로그를 수집하도록 Google Security Operations 전달자 및 syslog 구성

  1. SIEM 설정 > 포워더를 선택합니다.
  2. 새 전달자 추가를 클릭합니다.
  3. 전달자 이름 필드에 고유한 이름을 입력합니다.
  4. 제출을 클릭한 다음 확인을 클릭합니다. 전달자가 추가되고 수집기 구성 추가 창이 표시됩니다.
  5. 수집기 이름 필드에 수집기의 고유한 이름을 입력합니다.
  6. 로그 유형으로 Juniper Junos를 선택합니다.
  7. 수집기 유형으로 Syslog를 선택합니다.
  8. 다음 입력 매개변수를 구성합니다.
    • 프로토콜: 프로토콜을 UDP로 지정합니다.
    • 주소: 수집기가 상주하고 syslog 데이터를 리슨하는 대상 IP 주소 또는 호스트 이름을 지정합니다.
    • 포트: 수집기가 상주하고 syslog 데이터를 리슨하는 대상 포트를 지정합니다.
  9. 제출을 클릭합니다.

Google Security Operations 전달자에 대한 자세한 내용은 Google Security Operations 전달자 문서를 참고하세요. 각 전달자 유형의 요구사항은 유형별 전달자 구성을 참고하세요. 전달자를 만들 때 문제가 발생하면 Google Security Operations 지원팀에 문의하세요.

필드 매핑 참조

이 파서는 키-값 형식과 키-값이 아닌 형식을 모두 처리하여 Juniper JUNOS syslog 메시지에서 필드를 추출합니다. grok 패턴을 사용하여 방화벽 로그, SSH 활동, 명령어 실행 등 다양한 메시지 구조를 일치시킨 다음 추출된 필드를 UDM에 매핑합니다. 파서는 include 파일을 사용하여 CEF 형식 로그도 처리하고 메시지 콘텐츠에 따라 적절한 UDM 필드로 IP 주소와 사용자 이름을 병합하는 등의 특정 작업을 실행합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
DPT target.port 네트워크 연결의 대상 포트입니다. 정수로 변환됩니다.
DST target.ip 네트워크 연결의 대상 IP 주소입니다.
FLAG additional.fields{}.key: 'FLAG', additional.fields{}.value.string_value: FLAG의 값 네트워크 연결과 연결된 TCP 플래그입니다.
ID additional.fields{}.key: 'ID', additional.fields{}.value.string_value: ID의 값 IP 식별 필드입니다.
IN additional.fields{}.key: 'IN', additional.fields{}.value.string_value: IN의 값 수신 네트워크 인터페이스입니다.
LEN additional.fields{}.key: 'LEN', additional.fields{}.value.string_value: LEN의 값 IP 패킷의 길이입니다.
MAC principal.mac MAC 필드에서 추출된 MAC 주소입니다.
OUT additional.fields{}.key: 'OUT', additional.fields{}.value.string_value: OUT의 값 발신 네트워크 인터페이스입니다.
PREC additional.fields{}.key: 'PREC', additional.fields{}.value.string_value: PREC의 값 IP 헤더의 우선순위 필드입니다.
PROTO network.ip_protocol 네트워크 연결에 사용된 IP 프로토콜입니다.
RES additional.fields{}.key: 'RES', additional.fields{}.value.string_value: RES TCP 헤더의 예약된 필드입니다.
SPT principal.port 네트워크 연결의 소스 포트입니다(정수로 변환됨).
SRC principal.ip 네트워크 연결의 소스 IP 주소입니다.
TOS additional.fields{}.key: 'TOS', additional.fields{}.value.string_value: TOS IP 헤더의 서비스 유형 필드입니다.
TTL network.dns.additional.ttl TTL(수명) 값으로, 부호 없는 정수로 변환됩니다.
URGP additional.fields{}.key: 'URGP', additional.fields{}.value.string_value: URGP의 값 TCP 헤더의 긴급 포인터 필드입니다.
WINDOW additional.fields{}.key: 'WINDOW_SIZE', additional.fields{}.value.string_value: WINDOW의 값 TCP 창 크기입니다.
action security_result.action CEF 메시지에서 추출된 방화벽에 의해 수행된 작업입니다.
agt observer.ip 상담사의 IP 주소입니다.
amac target.mac 타겟의 MAC 주소로, 소문자로 변환되고 하이픈이 콜론으로 대체됩니다.
app target.application 이벤트와 관련된 애플리케이션입니다.
artz observer.zone 관찰자 시간대입니다.
atz target.location.country_or_region 대상 시간대입니다.
categoryBehavior additional.fields{}.key: '카테고리 행동', additional.fields{}.value.string_value: 슬래시가 삭제된 categoryBehavior 카테고리 동작입니다.
categoryDeviceGroup additional.fields{}.key: '카테고리 기기 그룹', additional.fields{}.value.string_value: 슬래시가 삭제된 categoryDeviceGroup 카테고리 기기 그룹입니다.
categoryObject additional.fields{}.key: '카테고리 객체', additional.fields{}.value.string_value: 슬래시가 삭제된 categoryObject 카테고리 객체입니다.
categoryOutcome additional.fields{}.key: '카테고리 결과', additional.fields{}.value.string_value: 슬래시가 삭제된 categoryOutcome 카테고리 결과입니다.
categorySignificance additional.fields{}.key: '카테고리 중요도', additional.fields{}.value.string_value: categorySignificance 카테고리 중요도입니다.
command target.process.command_line 실행된 명령어입니다.
cs1Label additional.fields{}.key: cs1Label, additional.fields{}.value.string_value: 해당 CEF 필드의 값 CEF 메시지의 맞춤 문자열 필드 1 라벨 및 값입니다.
cs2Label additional.fields{}.key: cs2Label, additional.fields{}.value.string_value: 해당 CEF 필드의 값 CEF 메시지의 맞춤 문자열 필드 2 라벨 및 값입니다.
cs3Label additional.fields{}.key: cs3Label, additional.fields{}.value.string_value: 해당 CEF 필드의 값 CEF 메시지의 맞춤 문자열 필드 3 라벨 및 값입니다.
cs4Label additional.fields{}.key: cs4Label, additional.fields{}.value.string_value: 해당 CEF 필드의 값 CEF 메시지의 맞춤 문자열 필드 4 라벨 및 값입니다.
cs5Label additional.fields{}.key: cs5Label, additional.fields{}.value.string_value: 해당 CEF 필드의 값 CEF 메시지의 맞춤 문자열 필드 5 라벨 및 값입니다.
cs6Label additional.fields{}.key: cs6Label, additional.fields{}.value.string_value: 해당 CEF 필드의 값 CEF 메시지의 맞춤 문자열 필드 6 라벨 및 값입니다.
dhost target.hostname 대상 호스트 이름입니다.
deviceCustomString1 additional.fields{}.key: cs1Label, additional.fields{}.value.string_value: deviceCustomString1 기기 맞춤 문자열 1입니다.
deviceCustomString2 additional.fields{}.key: cs2Label, additional.fields{}.value.string_value: deviceCustomString2 기기 맞춤 문자열 2
deviceCustomString3 additional.fields{}.key: cs3Label, additional.fields{}.value.string_value: deviceCustomString3 기기 맞춤 문자열 3
deviceCustomString4 additional.fields{}.key: cs4Label, additional.fields{}.value.string_value: deviceCustomString4 기기 맞춤 문자열 4입니다.
deviceCustomString5 additional.fields{}.key: cs5Label, additional.fields{}.value.string_value: deviceCustomString5 기기 맞춤 문자열 5입니다.
deviceCustomString6 additional.fields{}.key: cs6Label, additional.fields{}.value.string_value: deviceCustomString6 기기 맞춤 문자열 6
deviceDirection network.direction 네트워크 트래픽의 방향입니다.
deviceEventClassId additional.fields{}.key: 'eventId', additional.fields{}.value.string_value: deviceEventClassId 기기 이벤트 클래스 ID입니다.
deviceFacility observer.product.subproduct 기기 시설입니다.
deviceProcessName about.process.command_line 기기 프로세스 이름입니다.
deviceSeverity security_result.severity 기기 심각도입니다.
deviceTimeZone observer.zone 기기 시간대입니다.
deviceVendor metadata.vendor_name 기기 공급업체입니다.
deviceVersion metadata.product_version 기기 버전입니다.
dpt target.port 대상 포트입니다.
dst target.ip 대상 IP 주소입니다.
duser target.user.user_display_name 대상 사용자입니다.
eventId additional.fields{}.key: 'eventId', additional.fields{}.value.string_value: eventId 이벤트 ID입니다.
event_time metadata.event_timestamp 메시지에서 파싱된 이벤트가 발생한 시간입니다.
firewall_action security_result.action_details 취해진 방화벽 작업입니다.
host principal.hostname, intermediary.hostname 로그를 생성하는 기기의 호스트 이름입니다. 다양한 사례에서 주체와 중개자 모두에 사용됩니다.
msg security_result.summary 이벤트와 연결된 메시지로, 보안 결과의 요약으로 사용됩니다.
name metadata.product_event_type 이벤트 이름입니다.
process_name additional.fields{}.key: 'process_name', additional.fields{}.value.string_value: process_name의 값 프로세스 이름입니다.
p_id target.process.pid 문자열로 변환된 프로세스 ID입니다.
sha256 principal.process.file.sha256 SSH2 키 정보에서 추출한 파일의 SHA256 해시입니다.
shost principal.hostname 소스 호스트 이름입니다.
source_address principal.ip 소스 IP 주소입니다.
source_port principal.port 정수로 변환된 소스 포트입니다.
src principal.ip 소스 IP 주소입니다.
src_ip principal.ip 소스 IP 주소입니다.
src_port principal.port 정수로 변환된 소스 포트입니다.
ssh2 security_result.detection_fields{}.key: 'ssh2', security_result.detection_fields{}.value: ssh2 SSH2 키 정보입니다.
subtype metadata.product_event_type 이벤트의 하위 유형입니다.
task_summary security_result.description 작업 요약으로, 보안 결과의 설명으로 사용됩니다.
timestamp metadata.event_timestamp 이벤트의 타임스탬프입니다.
user target.user.userid 이벤트와 연결된 사용자입니다.
username principal.user.userid 이벤트와 연결된 사용자 이름입니다.
user_name principal.user.userid 사용자 이름입니다.
metadata.vendor_name '주니퍼 방화벽'으로 하드코딩됩니다. '주니퍼 방화벽'으로 하드코딩됩니다. 'JUNIPER_JUNOS'로 하드코딩됩니다. 로그 콘텐츠를 기반으로 파서 로직에 의해 결정됩니다. CEF 메시지가 아니고 다른 특정 이벤트 유형이 식별되지 않는 경우 기본값은 'STATUS_UPDATE'입니다. CEF 메시지의 경우 'NETWORK_HTTP'로 설정합니다. desc 필드가 없으면 이 필드에 원시 로그 메시지에서 추출된 message_description이 입력됩니다.

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.