본문으로 건너뛰기

8.2. 런타임 보안

Tetragon 이 기록한 프로세스 실행·종료·정책 이벤트를 조회하고 차단된 동작을 확인하는 화면입니다.

런타임 보안 화면

개요​

런타임 보안 화면은 Kubernetes 클러스터의 컨테이너 안에서 실행된 프로세스의 이벤트를 보여 줍니다. 어느 파드에서 어떤 프로세스가 실행됐는지, 어떤 정책에 걸렸는지, 그 동작이 차단됐는지를 확인할 수 있습니다.

이벤트는 Tetragon 이 만듭니다. Tetragon 은 eBPF 로 커널에서 프로세스 실행과 시스템 호출을 관찰하는 오픈 소스 런타임 보안 도구입니다. 정책(TracingPolicy)에 맞는 동작을 기록합니다. 정책이 차단을 지정하면 그 프로세스를 강제로 종료해 동작을 막습니다.

이 화면은 이벤트를 조회만 합니다. 정책을 만들거나 바꾸는 작업은 COP Console 에서 합니다.

좌측 사이드바에서 런타임 보안 메뉴를 클릭하면 진입할 수 있습니다. 메뉴는 보안공격 탐지 바로 아래에 있습니다.

참고: 런타임 보안 메뉴는 다음 두 조건을 모두 만족할 때만 표시됩니다.

  • 모니터링 대상이 Kubernetes 클러스터입니다. 호스트(비 Kubernetes) 환경에서는 메뉴가 숨겨집니다.
  • 클러스터에 tetragon 이라는 이름의 DaemonSet 이 실행 중입니다. Tetragon 이 없으면 이 화면에 표시할 이벤트가 없으므로 메뉴가 숨겨집니다.

로그인 직후에는 상태 정보를 읽기 전이라 메뉴가 잠깐 보였다가 숨겨질 수 있습니다.

이벤트 종류​

이 화면은 Tetragon 이벤트 중 다음 세 종류를 다룹니다. 표와 상세 창에는 짧은 이름이 표시됩니다. 필터, 이벤트 추세 차트의 범례, 원문 이벤트에는 원래 이름이 표시됩니다.

표 표시원래 이름설명
실행process_exec컨테이너 안에서 프로세스가 시작되었습니다.
종료process_exit프로세스가 끝났습니다.
정책process_kprobe프로세스가 정책(TracingPolicy)에 지정된 커널 함수를 호출했습니다. 정책이 차단으로 설정되어 있으면 이 이벤트에 차단 결과가 함께 기록됩니다.

화면 구성​

런타임 보안 화면은 위에서 아래로 이벤트 추세 차트, 필터 패널과 이벤트 표, 이벤트 상세 순서로 구성됩니다.

영역설명
이벤트 추세선택한 시간 범위에서 조건에 맞는 이벤트 수를 시간대별·종류별 막대로 표시합니다. 이벤트가 없으면 "이 구간에 이벤트가 없습니다" 가 표시됩니다.
필터 (왼쪽)표시할 이벤트의 조건을 고릅니다. 차단된 것만 스위치와 항목별 선택 목록이 있습니다.
이벤트 표 (오른쪽)조건에 맞는 이벤트를 최신 순서로 표시합니다. 위에 이벤트 본문에서 검색 입력란과 새로 고침 버튼이 있습니다.
상세표의 행을 클릭하면 열리는 창입니다. 프로세스 계보, 상세 필드, 원문 이벤트를 표시합니다.

이벤트 추세​

이벤트 추세 차트

차트는 이벤트 수를 종류별로 나누어 시간대별 막대로 표시합니다. 이벤트 수가 갑자기 늘거나 줄어든 시간대를 찾을 때 사용합니다. 차트에서 구간을 고르는 방법은 구간 선택 조회를 참고하세요.

필터 패널​

필터 패널
항목설명
차단된 것만켜면 정책이 차단한 이벤트만 표시합니다.
이벤트 종류process_exec, process_exit, process_kprobe 중에서 고릅니다.
네임스페이스이벤트가 발생한 파드의 네임스페이스
파드이벤트가 발생한 파드
정책이벤트를 만든 정책(TracingPolicy) 이름
실행 파일프로세스의 실행 파일 경로 (예: /usr/bin/head)
노드이벤트가 발생한 노드

각 선택 목록에서는 값을 여러 개 고를 수 있습니다. 값을 고르면 목록에 고른 개수가 "2 개 선택" 처럼 표시됩니다. 아무것도 고르지 않으면 전체 입니다.

이벤트 표​

컬럼설명
시각이벤트가 발생한 시각. 월-일 시:분:초.밀리초 형식입니다. 수집된 시각이 아니라 발생한 시각입니다.
종류이벤트 종류. 실행, 종료, 정책 이 색상 칩으로 표시됩니다.
파드파드 이름. 아래 줄에 네임스페이스가 표시됩니다.
프로세스실행 파일 경로와 인자. 길면 한 줄에서 잘립니다. 전체 인자는 상세에서 확인합니다.
정책정책 이름. 아래 줄에 정책이 감시한 커널 함수(후킹 지점)가 표시됩니다. 정책과 관계없는 이벤트는 - 로 표시됩니다.
결과차단되지 않은 이벤트는 관찰됨 으로 표시됩니다. 차단된 이벤트는 빨간색 칩으로 차단 동작(예: Sigkill)이 표시됩니다. 차단 동작 정보가 없으면 차단됨 으로 표시됩니다.

차단된 이벤트의 행은 왼쪽에 빨간 선이 표시됩니다. 목록에서 차단된 이벤트를 바로 구분할 수 있습니다.

이벤트 상세​

이벤트 상세 창

표의 행을 클릭하면 상세 창이 열립니다. 상세 창은 다음 순서로 정보를 표시합니다.

  1. 머리 영역: 이벤트 종류, 실행 파일 경로, 차단 동작(차단된 이벤트만)을 표시합니다. 아래 줄에 네임스페이스 / 파드 · 노드 를 표시합니다.
  2. 차단한 정책: 차단된 이벤트에서만 표시됩니다. 차단한 정책 이름과 후킹 지점을 표시합니다.
  3. 프로세스 계보: 부모 프로세스와 이 이벤트의 프로세스를 위아래로 표시합니다.
  4. 상세: 시각, 네임스페이스, 파드, 워크로드, 컨테이너, 노드, 사용자 ID 를 표시합니다. 정책 종류의 이벤트에는 정책, 후킹 지점, 동작이 추가로 표시됩니다.
  5. 원문 이벤트: Tetragon 이 보낸 이벤트 JSON 원문입니다. 기본으로 접혀 있습니다.

닫기 버튼을 클릭하면 상세 창이 닫힙니다.

주요 기능​

구간 선택 조회​

차트에서 드래그한 구간으로 다시 조회한 화면

이벤트 추세 차트에서 시간 구간을 골라 그 구간의 이벤트만 조회할 수 있습니다.

  • 드래그: 차트 영역을 가로로 드래그하면 드래그한 구간을 조회합니다.
  • 막대 클릭: 막대를 클릭하면 그 막대가 나타내는 시간 구간을 조회합니다.

구간을 고르면 상단 시간 선택기의 범위도 같은 구간으로 바뀝니다. 이벤트 표와 필터 목록의 값이 그 구간 기준으로 다시 조회됩니다.

참고: 클릭한 막대의 구간이 60초 이하이면, 클릭한 막대를 가운데에 두고 5분 구간을 조회합니다. 60초보다 넓은 막대는 그 구간을 그대로 조회합니다.

참고: 차트에서 예측 또는 이상치 탐지 결과를 표시하고 있으면 구간 선택 조회가 동작하지 않습니다. 이때 드래그하면 차트만 확대되고, 막대를 클릭해도 시간 범위가 바뀌지 않습니다. 구간을 선택하려면 예측과 이상치 탐지 결과를 지웁니다.

원래 시간 범위로 돌아가려면 상단 시간 선택기에서 시간 범위를 다시 선택하세요.

필터와 검색​

  1. 왼쪽 필터 패널의 선택 목록에서 값을 고릅니다. 값을 고르면 바로 다시 조회합니다.
  2. 이벤트 표 위의 이벤트 본문에서 검색 입력란에 단어를 입력하고 Enter 키를 누릅니다. 입력한 단어가 원문에 들어 있는 이벤트만 표시됩니다.
  3. 필터 조건을 모두 없애려면 필터 패널 오른쪽 위의 지우기 버튼을 클릭합니다.

참고: 검색은 단어 단위로 합니다. 입력한 단어가 모두 원문에 들어 있어야 합니다. 단어의 일부만 입력하면 찾지 못합니다. 예를 들어 shad 로는 /etc/shadow 가 들어 있는 이벤트를 찾지 못합니다.

지우기 버튼은 조건이 하나라도 걸려 있을 때만 표시됩니다. 이 버튼은 필터 패널의 조건만 없앱니다. 검색어는 그대로 남습니다.

선택 목록에는 지금 시간 범위에 실제로 있는 값만 표시됩니다. 시간 범위를 바꾸면 선택 목록의 값도 다시 조회됩니다.

각 선택 목록은 이벤트 건수가 많은 값을 500개까지만 표시하고, 이 값들을 이름순으로 정렬합니다. 찾는 값이 목록에 없으면 시간 범위를 좁힙니다.

필터 패널 오른쪽 위의 필터 접기 버튼(<)을 클릭하면 패널을 접어 표를 넓게 볼 수 있습니다. 접힌 띠를 클릭하면 패널이 다시 펼쳐집니다. 조건이 걸린 상태로 패널을 접으면 접힌 띠의 테두리 색이 바뀝니다.

조건에 맞는 이벤트가 없으면 표 자리에 "조건에 맞는 이벤트가 없습니다." 가 표시됩니다.

차단된 이벤트 확인​

정책이 차단한 동작을 먼저 확인하려면 다음 순서를 따릅니다.

  1. 필터 패널 맨 위의 차단된 것만 스위치를 켭니다.
  2. 표에서 결과 컬럼의 차단 동작과 정책 컬럼의 정책 이름을 확인합니다.
  3. 행을 클릭하여 상세 창을 엽니다.
  4. 차단한 정책 줄에서 차단한 정책과 후킹 지점을 확인합니다.
차단된 것만 스위치를 켠 화면: 결과 컬럼의 Sigkill 칩과 행 왼쪽의 빨간 선

차단된 것만 스위치를 끈 상태에서도 차단된 이벤트는 행 왼쪽의 빨간 선으로 구분됩니다.

프로세스 계보 확인​

이벤트를 조사할 때 먼저 확인할 것은 "어떤 프로세스가 이 프로세스를 실행했는가" 입니다. 상세 창의 프로세스 계보 에서 이를 확인합니다.

  • 위 줄이 부모 프로세스이고, 아래 줄이 이 이벤트의 프로세스입니다.
  • 각 줄에 실행 파일 경로와 인자가 표시됩니다.
  • 인자가 길면 두 줄까지만 표시됩니다. 더 보기 를 클릭하면 전체 인자가 표시되고, 접기 를 클릭하면 다시 두 줄로 줄어듭니다.
  • 이벤트에 부모 프로세스 정보가 없으면 "이 이벤트에는 부모 프로세스가 담겨 있지 않습니다." 가 표시됩니다.

예를 들어 셸 반복문이 /etc/shadow 를 읽으려다 차단되었다면 계보는 다음과 같이 표시됩니다.

/bin/sh -c "while true; do head -c 1 /etc/shadow >/dev/null 2>&1; sleep 2; done"
/usr/bin/head -c 1 /etc/shadow

원문 이벤트 확인​

원문 이벤트를 펼친 상세 창

상세 창 맨 아래의 원문 이벤트 를 클릭하면 Tetragon 이 보낸 이벤트 JSON 원문이 펼쳐집니다. 화면의 표와 상세 필드는 원문 중 일부 필드만 표시합니다. 화면이 해석하지 않은 필드도 원문에는 그대로 들어 있습니다. 상세 필드에 없는 정보가 필요하면 원문을 확인하세요.

표시 건수 제한​

이벤트 표 아래의 200건 안내

이벤트 표는 조건에 맞는 이벤트 중 가장 최근 200건 만 표시합니다. 200건을 채우면 표 아래에 다음 안내가 표시됩니다.

가장 최근 200건만 보여 줍니다. 나머지를 보려면 시간 구간이나 조건을 좁히십시오.

200건보다 오래된 이벤트를 보려면 다음 방법을 사용합니다.

  • 이벤트 추세 차트에서 보려는 구간을 드래그하거나 막대를 클릭합니다.
  • 필터 패널에서 네임스페이스, 파드, 정책 등의 조건을 추가합니다.
  • 이벤트 본문에서 검색 으로 원문에 들어 있는 단어를 지정합니다.

이벤트 추세 차트는 200건 제한과 관계없이 시간 범위 안에서 조건에 맞는 모든 이벤트 수를 표시합니다. 필터와 검색 조건은 차트에도 적용됩니다.

COP Console 에서 조건을 넘겨 열기​

주소 조건(정책·네임스페이스)이 필터에 선택된 화면

COP Console 의 정책 화면에서 런타임 보안 화면으로 이동하면, COP Console 이 조건을 주소에 넣어 넘깁니다. 화면은 그 조건이 필터에 선택된 상태로 열립니다. 예를 들어 특정 정책이 만든 이벤트만 바로 볼 수 있습니다.

주소에 직접 조건을 넣어 열 수도 있습니다.

/p/<프로젝트 ID>/runtime-security?policy=block-shadow-read&enforced=true
주소 조건선택되는 필터값 예
policy정책block-shadow-read
namespace네임스페이스default
pod파드파드 이름
kind이벤트 종류process_kprobe
enforced차단된 것만true

조건은 열린 뒤에 필터 패널에서 바꾸거나 지우기 로 없앨 수 있습니다.

문제 해결​

서버를 업그레이드한 뒤 긴 기간을 조회하면 런타임 보안 화면이 며칠 동안 느릴 수 있습니다. 원인과 조치는 문제 해결의 "업그레이드 뒤 감사 로그·런타임 보안 조회가 며칠 동안 느립니다" 항목을 참고하세요.

관련 문서​