Mac에 대한 DEX 검사 정의

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기14분
  • Mac에 대한 검사 정의는 Mac 장치의 성능, 보안 및 적합성을 평가하는 미리 결정된 규칙 및 기준 세트입니다. 이러한 검사는 CPU 사용량, 메모리 사용량, 배터리 세부 정보 및 방화벽 상태와 같은 다양한 측면을 다룰 수 있습니다.

    macOS 시스템의 경우 전체 데이터를 검색하려면 다음 내용을 /etc/sudoers에 포함합니다.

    에이전트 버전 3.4.0 이하의 경우:
    _servicenow ALL=NOPASSWD: SETENV: /Library/Caches/servicenow/agent-client-collector/osquery/bin/osqueryi *, /usr/bin/mdls, /usr/bin/log, /bin/kill, /bin/launchctl
    Defaults:_servicenow !requiretty
    에이전트 버전 3.4.1 이상의 경우:
    _servicenow ALL=NOPASSWD: SETENV: /Library/Application\ Support/servicenow/agent-client-collector/cache/osquery/bin/osqueryi *, /usr/bin/mdls, /usr/bin/log, /bin/kill, /bin/launchctl
     Defaults:_servicenow !requiretty
    주:
    검사 정의 및 관련 검색 가능 데이터를 구성할 수 있습니다. 나열된 검사 정의 중 일부는 개인 정보를 포함하거나 개인 정보로 간주되는 데이터를 검색할 수 있습니다.
    적절한 sudo 구성을 보장하려면 다음 파일을 제거하는 것이 좋습니다
    /private/etc/sudoers.d/_servicenow

    검사 정의 — 애플리케이션(메트릭)

    DEX에서는 애플리케이션이 실행되고 있지 않아도 액세스할 수 있는 os.mac.check-app-version, os.mac.check-app-is-installed, os.mac.check-app-last-access-time 및 os.mac.check-app-last-updated 검사 정의를 제외하고 애플리케이션이 실행될 때만 액세스 가능한 다음과 같은 검사 정의를 제공합니다. 검사 정의 매개변수에는 다음 항목이 있습니다.
    • appName = 애플리케이션 이름. 예: Webex
    • appSysId= 애플리케이션의 시스템 ID입니다.
    • primaryProcess = 파이프 기호( | )로 구분된 애플리케이션의 기본 프로세스 목록입니다. 엔드포인트 장치에 존재하는 첫 번째 프로세스에 우선순위가 부여됩니다. 예 1: Webex.app. 예 2: Microsoft Teams.app | Microsoft Teams Classic.app.
      주:
      Teams 애플리케이션의 기본 프로세스가 한 엔드포인트 장치에서는 Microsoft Teams.app이고, 다른 엔드포인트 장치에서는 Microsoft Teams classic.app인 경우 엔드포인트 장치의 프로세스 가용성에 따라 우선순위를 결정할 때 엔드포인트 장치에 먼저 존재하는 프로세스에 우선순위가 부여됩니다.
    • secondaryProcesses = 파이프 기호( | )로 구분된 애플리케이션의 보조 프로세스 목록입니다. 예: Cisco WebEx Start.app | webexmtaV2.app.
    검사 정의 이름 검사 정의 매개변수 설명
    os.mac.check-app-cpu-usage
    • --appName=<애플리케이션 이름>
    • --primaryProcess=<기본 프로세스 이름>
    • --secondaryProcesses=<파이프 기호로 구분된 보조 프로세스 목록>
    • --appSysId=<애플리케이션의 시스템 ID>
    애플리케이션에서 사용하는 CPU 자원의 양을 확인합니다.
    os.mac.check-app-memory-usage
    • --appName=<애플리케이션 이름>
    • --primaryProcess=<기본 프로세스 이름>
    • --secondaryProcesses=<파이프 기호로 구분된 보조 프로세스 목록>
    • --appSysId=<애플리케이션의 시스템 ID>
    애플리케이션에서 사용하는 메모리 자원의 양을 확인합니다.
    os.mac.check-app-listening-ports
    • --appName=<애플리케이션 이름>
    • --primaryProcess=<기본 프로세스 이름>
    • --secondaryProcesses=<파이프 기호로 구분된 보조 프로세스 목록>
    • --appSysId=<애플리케이션의 시스템 ID>
    열려 있고 들어오는 네트워크 트래픽이 애플리케이션에 도달할 수 있는 포트 번호를 검색합니다.
    os.mac.check-app-last-updated
    • --appName=<애플리케이션 이름>
    • --primaryProcess=<기본 프로세스 이름>
    • --secondaryProcesses=<파이프 기호로 구분된 보조 프로세스 목록>
    • --appSysId=<애플리케이션의 시스템 ID>
    최신 애플리케이션 업데이트 설치의 시간과 날짜를 확인합니다.
    주:
    이 검사 정의는 애플리케이션이 실행 중이지 않아도 사용할 수 있습니다.
    os.mac.check-app-version
    • --appName=<애플리케이션 이름>
    • --primaryProcess=<기본 프로세스 이름>
    • --secondaryProcesses=<파이프 기호로 구분된 보조 프로세스 목록>
    • --appSysId=<애플리케이션의 시스템 ID>
    애플리케이션의 버전 번호를 조회합니다.
    주:
    • 이 검사 정의는 애플리케이션이 실행 중이지 않아도 사용할 수 있습니다.
    • 애플리케이션에 버전이 없는 경우 검사 정의는 해당 애플리케이션에 대해 문자열 'unversioned'를 반환합니다.
    os.mac.check-app-is-installed
    • --appName=<애플리케이션 이름>
    • --primaryProcess=<기본 프로세스 이름>
    • --secondaryProcesses=<파이프 기호로 구분된 보조 프로세스 목록>
    • --appSysId=<애플리케이션의 시스템 ID>
    애플리케이션이 장치에 설치되어 있는지 여부를 확인합니다.
    주:
    이 검사 정의는 애플리케이션이 실행 중이지 않아도 사용할 수 있습니다.
    os.mac.check-app-is-running
    • --appName=<애플리케이션 이름>
    • --primaryProcess=<기본 프로세스 이름>
    • --secondaryProcesses=<파이프 기호로 구분된 보조 프로세스 목록>
    • --appSysId=<애플리케이션의 시스템 ID>
    애플리케이션이 현재 실행 중 상태인지 여부를 확인합니다.
    os.mac.check-app-uptime
    • --appName=<애플리케이션 이름>
    • --primaryProcess=<기본 프로세스 이름>
    • --secondaryProcesses=<파이프 기호로 구분된 보조 프로세스 목록>
    • --appSysId=<애플리케이션의 시스템 ID>
    지정된 애플리케이션의 가동 시간을 확인합니다.
    os.mac.check-app-last-access-time
    • --appName=<애플리케이션 이름>
    • --primaryProcess=<기본 프로세스 이름>
    • --secondaryProcesses=<파이프 기호로 구분된 보조 프로세스 목록>
    • --appSysId=<애플리케이션의 시스템 ID>
    애플리케이션이 실행된 가장 최근 시간을 확인합니다.
    주:
    • 이 검사 정의는 애플리케이션이 실행 중이지 않아도 사용할 수 있습니다.
    • 사용자가 지난 7일 이내에 애플리케이션을 실행하지 않은 경우 마지막 액세스 시간은 비어 있습니다.
    os.mac.check-app-io-usage-read
    • --appName=<애플리케이션 이름>
    • --primaryProcess=<기본 프로세스 이름>
    • --secondaryProcesses=<파이프 기호로 구분된 보조 프로세스 목록>
    • --appSysId=<애플리케이션의 시스템 ID>
    애플리케이션의 읽기 I/O(입력/출력) 작업 사용량을 확인합니다.
    os.mac.check-app-io-usage-write
    • --appName=<애플리케이션 이름>
    • --primaryProcess=<기본 프로세스 이름>
    • --secondaryProcesses=<파이프 기호로 구분된 보조 프로세스 목록>
    • --appSysId=<애플리케이션의 시스템 ID>
    애플리케이션의 쓰기 I/O(입력/출력) 작업 사용량을 확인합니다.
    os.mac.check-app-domain-network-latency
    • --appName=<애플리케이션 이름>
    • --primaryProcess=<기본 프로세스 이름>
    • --secondaryProcesses=<파이프 기호로 구분된 보조 프로세스 목록>
    • --appSysId=<애플리케이션의 시스템 ID>
    • --domain=<애플리케이션의 도메인>
    애플리케이션 도메인의 네트워크 대기 시간을 가져옵니다.
    os.mac.check-app-crashes
    • --appName=<애플리케이션 이름>
    • --primaryProcess=<기본 프로세스 이름>
    • --secondaryProcesses=<파이프 기호로 구분된 보조 프로세스 목록>
    • --appSysId=<애플리케이션의 시스템 ID>
    애플리케이션의 충돌 수 및 충돌 상세 정보를 가져옵니다.

    검사 정의 — 장치(메트릭)

    DEX에서는 장치에 대해 다음과 같은 유형의 검사 정의를 제공합니다.
    검사 정의 이름 설명
    os.mac.check-system-cpu-usage CPU 사용률을 확인합니다.
    os.mac.check-system-cpu-details CPU 이름, 물리적 및 논리적 코어 수, 아키텍처 정보를 검색합니다.
    os.mac.check-system-memory-usage 시스템 메모리 사용률을 확인합니다.
    os.mac.check-system-last-access-time 현재 장치에 마지막으로 액세스한 시간을 확인합니다.
    주:
    이 검사 정의는 잠겨 있거나 잠금 해제된 장치에서 작동합니다.
    os.mac.check-system-uptime 시스템이 마지막으로 부팅된 이후 경과한 시간을 확인합니다.
    os.mac.check-system-time Unix 타임스탬프를 사용하여 UTC(조정된 범용 시간)의 현재 시간을 확인합니다.
    os.mac.check-system-device-crashes 장치에서 발생한 여러 충돌의 상세 정보를 조회합니다.
    주:
    이 검사는 최근 5분 동안 장치 로그에 있는 커널 패닉을 가져옵니다.
    os.mac.check-system-device-details 섀시의 유형, 모델 및 일련 번호를 조회합니다.
    os.mac.check-system-device-events 지정된 시간 간격 동안 장치에서 발생한 이벤트의 상세 정보를 조회합니다. Mac에 대한 이벤트에는 마지막 부팅, 로그인한 사용자, 설치된 소프트웨어, 업데이트된 소프트웨어, 추가된 사용자 및 암호 재설정이 포함됩니다.
    os.mac.check-system-disk-details 총 공간, 사용된 공간 및 여유 공간(바이트 단위)과 같은 디스크 상세 정보를 조회합니다.
    os.mac.check-system-disk-io-usage-read 초당 읽기 디스크 바이트를 조회합니다.
    os.mac.check-system-disk-io-usage-write 초당 쓰기 디스크 바이트를 조회합니다.
    os.mac.check-system-disk-usage 전체 공간의 백분율인 디스크 사용 공간을 검색합니다.
    os.mac.check-system-os-details 운영 체제의 이름, 버전, 플랫폼, 아키텍처 및 설치 날짜를 조회합니다.
    os.mac.check-system-net-bytes-incoming 모든 네트워크 장치에서 초당 수신 네트워크 바이트를 조회합니다.
    os.mac.check-system-net-bytes-outgoing 모든 네트워크 장치에서 초당 발신 네트워크 바이트를 조회합니다.
    os.mac.check-system-logged-in-users 현재 장치에 로그인한 사용자의 상세 정보를 조회합니다.
    os.mac.check-system-session-details 현재 로그인한 사용자의 세션 시간(분 단위)을 조회합니다.
    os.mac.check-system-network-details 이더넷, Wi-Fi 및 기타 관련 정보 등 네트워크 상세 정보를 조회합니다.
    os.mac.check-system-battery-details 배터리 잔량 백분율, 설계된 전압, 예상 실행 시간 및 배터리의 최대 용량을 포함한 배터리 관련 데이터를 조회합니다.
    주:
    • 이 검사 정의는 배터리가 없으므로 VM(가상 머신) 또는 데스크톱에 적용되지 않습니다.
    • 현재 용량이 설계 용량보다 크면 배터리가 100%로 반올림됩니다.
    os.mac.check-system-battery-charge-percentage 장치에 있는 배터리의 충전 백분율을 조회합니다.
    주:
    • 이 검사 정의는 배터리가 없으므로 VM(가상 머신) 또는 데스크톱에 적용되지 않습니다.
    • 현재 용량이 설계 용량보다 크면 배터리가 100%로 반올림됩니다.
    os.mac.check-system-firewall-enabled 운영 체제 방화벽이 활성 상태이고 사용되고 있는지 확인합니다.
    os.mac.check-system-pending-updates 보류 중인 소프트웨어 업데이트의 상태를 확인합니다.
    os.mac.check-system-admin-users 로컬 관리 권한이 있는 모든 사용자 계정을 조회합니다.
    os.mac.check-system-reboot-details 장치의 재부팅 상세 정보를 조회합니다.
    os.mac.check-system-os-setup-details 장치의 대략적인 OS 사용 기간을 조회합니다.

    os.mac.check-system-compliance-details

    시스템의 준수 상세 정보를 검색합니다. 여기에는 구성된 모든 앱 및 미준수 메트릭 값 목록이 포함되며 이를 기반으로 규정 준수 등급을 계산합니다.

    주:
    • 이 검사 정의는 다음과 같은 상세 정보를 제공합니다.
      • 앱이 규정을 준수한다고 말하기 위한 조건: 기본 프로세스에 언급된 모든 프로세스가 실행 중이어야 합니다.
      • 메트릭 값이 규정을 준수한다고 말하기 위한 조건: 값은 구성된 예상 값과 일치해야 합니다.
    • 그런 다음 다음 공식을 사용하여 점수가 계산됩니다. 점수 = (불만 애플리케이션 + 준수 메트릭 값) / (총 애플리케이션 및 메트릭 값 - 실패한 애플리케이션 수) * 100
    os.mac.check-system-vpn-details 장치에 대한 VPN 세부 정보를 가져옵니다.
    os.mac.check-system-energy-consumption 앞으로 5분 안에 Mac 컴퓨터에서 소비하는 에너지를 얻습니다.
    주:
    이 검사 정의의 중요한 상세 정보는 다음과 같습니다.
    • /usr/bin/powermetrics를 sudo 권한에 추가해야 합니다.
    • 앞으로 5분 동안 소비되는 에너지를 계산하는 중이므로 점검이 완료되려면 약 5분이 소요됩니다
    • 에이전트가 M1, M2, M3 머신에 Rosetta를 사용하도록 설정된 경우 이 검사 정의가 작동하지 않습니다.
    os.mac.check-system-power-consumption Mac 장치의 전력 소비량을 가져옵니다.

    검사 정의 — 진단 작업

    DEX에서는 진단 작업에 대해 다음과 같은 유형의 검사 정의를 제공합니다.
    검사 정의 이름 검사 정의 매개변수 설명
    os.mac.check-app-process-ids --process_name=<프로세스 이름> 애플리케이션과 연결된 상위 프로세스와 모든 하위 프로세스의 프로세스 ID(PID)를 조회합니다.
    os.mac.check-process-cpu 해당 사항 없음 실행 중인 모든 프로세스의 목록과 CPU 사용률, CPU 시간, PID(프로세스 ID), 상위 프로세스 ID(PPID) 및 이름을 조회합니다.
    os.mac.check-process-memory 해당 사항 없음 실행 중인 모든 프로세스의 목록과 메모리 사용량(KB), PID(프로세스 ID), 상위 프로세스 ID(PPID) 및 이름을 조회합니다.
    os.mac.check-process-data 해당 사항 없음 현재 실행 중인 모든 프로세스의 CPU 사용량, 메모리 사용량 및 디스크 사용량을 조회합니다.
    os.mac.check-process-disk 해당 사항 없음 실행 중인 모든 프로세스의 목록과 디스크 사용량(바이트), PID(프로세스 ID), 상위 프로세스 ID(PPID) 및 이름을 조회합니다.
    os.mac.check-traceroute

    --url=<url>

    --max_hops = <기본값은 65>

    --timeout = <기본값은 5>

    각 네트워크 홉에 대한 IP 주소, 도메인 이름 및 RTT(왕복 시간)를 조회합니다.
    os.mac.check-ping-test --url=<url> 제공된 URL에 ping 요청을 보내고 URL에 현재 연결할 수 있는지 여부를 나타내는 연결 상태를 반환합니다.
    os.mac.check-services-data service_type =<서비스 유형(사용자, 시스템 또는 모두) PID, 서비스 이름, 상태, 서비스 유형이 있는 모든 서비스의 목록을 조회합니다.

    검사 정의 — 정정 작업

    DEX에서는 정정 작업에 대해 다음과 같은 유형의 검사 정의를 제공합니다.
    검사 정의 이름 검사 정의 매개변수 설명
    os.mac.action-kill-process

    --pid=<프로세스 id>

    또는

    --process_name=<실행 파일 이름>

    주:
    프로세스 ID는 애플리케이션 이름보다 우선합니다.
    실행 중인 프로세스나 PID(프로세스 ID) 또는 실행 파일(.app) 이름에 지정된 여러 프로세스를 종료합니다.
    os.mac.action-restart-service --service_name=<서비스 이름> 시스템에 대한 입력으로 서비스 이름을 사용하는 로깅된 사용자 서비스를 다시 시작합니다.