# 보안 인시던트에 대한 조사 도구

보안 인시던트, 각 도구가 가장 잘 사용되는 항목 및 사용 가능한 데이터에 영향을 주는 일반적인 고려 사항을 조사하는 데 사용할 수 있는 핵심 GitHub 도구입니다.

이 참조를 사용하여 보안 조사 중에 사용할 도구, 각 도구가 대답할 수 있는 질문 및 볼 수 있는 데이터에 영향을 줄 수 있는 요소를 결정 GitHub 합니다.

> \[!NOTE]
> 각 도구(및 제공하는 데이터)의 가용성은 계획, 역할 및 권한, 기능 사용 및 사전 인시던트 구성에 따라 GitHub 달라집니다(예: 감사 로그 스트리밍 및 IP 주소 공개에는 사전 설정 필요).

## 활동 보기

### 사용하세요

* 정의된 기간 동안 특정 행위자에 기인하는 병합, 푸시, 강제 푸시, 분기 만들기 및 삭제를 비롯한 특정 리포지토리의 **활동에 대한 개요** 를 가져옵니다.
* 의심스러운 코드 모양과 **관련 푸시 또는 병합**의 상관 관계를 지정합니다.
* 변경된 **시기**, **변경한 사람**, **어느 브랜치에서** 이루어졌는지에 대한 질문에 답하고, diff 또는 커밋 기록을 탐색합니다.

#### Permissions

리포지토리에 대한 읽기 권한입니다.

### 주요 리소스

* [활동 보기를 사용하여 리포지토리 변경 내용 보기](/ko/repositories/viewing-activity-and-data-for-your-repository/using-the-activity-view-to-see-changes-to-a-repository)

### 참고 사항 및 제한 사항

* 활동 보기는 초기 탐색 및 상관 관계 화면으로 가장 적합합니다. 원시 감사 로그 내보내기와 동일한 완전성 또는 쿼리 성능이 없습니다.
* 일부 인시던트에는 리포지토리 또는 조직 간에 상관 관계가 필요하므로 감사 로그에서 더 쉬울 수 있습니다.

## 감사 로그

### 사용하세요

* 기업 또는 조직에서 **무엇이 변경되었는지**, **언제**, 그리고 **누가** 변경했는지에 대한 질문에 답변합니다.
* 손상이 가능할 수 있는 이벤트를 조사하거나 멤버 자격, 역할, 권한 또는 액세스 토큰 생성 또는 사용과 같은 변경 내용과 같이 이를 나타냅니다.
* 행위자(사용자 또는 통합)에 대한 보안 관련 작업을 특성화하고 조사 타임라인을 작성합니다.
* 행위자, 작업, IP 주소(활성화된 경우) 또는 토큰을 필터링하여 의심스러운 활동 또는 추적 토큰 사용량을 식별합니다.
* 여러 리포지토리 또는 조직 간에 활동을 상호 연결합니다.

#### Permissions

* 조직 감사 로그를 보려면 조직 소유자여야 합니다.
* 엔터프라이즈 감사 로그를 보려면 엔터프라이즈 관리자여야 합니다.
* 보안 로그(개인 계정)를 보려면 계정 소유자여야 합니다.
* 외부 SIEM(보안 정보 및 이벤트 관리) 시스템, 로그 관리 시스템 또는 기타 도구 및 서비스로 내보낸 감사 로그 데이터를 보려면 해당 시스템에 액세스해야 합니다.

### 주요 리소스

* [귀하의 엔터프라이즈를 위한 감사 로그 이벤트](/ko/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise)
* [조직의 감사 로그 이벤트](/ko/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/audit-log-events-for-your-organization)
* [보안 로그 이벤트](/ko/authentication/keeping-your-account-and-data-secure/security-log-events)

### 참고 사항 및 제한 사항

* GitHub 에서는 **엔터프라이즈**, **조직** 및 사용자 보안 로그의 세 가지 감사 **로그를 제공합니다**.
* GitHub 감사 로그 UI에는 **제한된 필터링 및 검색** 기능이 있습니다. 이러한 이유로 엔터프라이즈는 고급 쿼리를 위해 엔터프라이즈 감사 로그를 외부 SIEM 또는 로그 관리 시스템으로 **스트리밍** 하는 것이 좋습니다.
  * 외부 SIEM 또는 로그 관리 시스템으로 로그 스트리밍을 감사하려면 사전 구성이 필요합니다.
    [엔터프라이즈에 대한 감사 로그 스트리밍](/ko/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise)을(를) 참조하세요.
  * 감사 로그 스트리밍이 없으면 조직 또는 리포지토리 간에 이벤트 상관 관계를 지정하거나 특정 토큰에서 모든 관련 이벤트로 피벗하는 등 더 복잡한 쿼리를 실행할 수 없습니다.
  * Git 이벤트 데이터는 스트림에 포함됩니다.
* **API 요청 이벤트를** 스트리밍하는 것이 좋습니다. 이렇게 하려면 이전 구성이 필요합니다.
  [엔터프라이즈에 대한 감사 로그 스트리밍](/ko/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise#enabling-audit-log-streaming-of-api-requests)을(를) 참조하세요.
* 엔터프라이즈의 경우 감사 로그에 GitHub Enterprise Cloud**IP 주소를** 표시하는 것이 좋습니다. 이를 위해서는 사전 구성이 필요합니다.
  [엔터프라이즈의 감사 로그에 IP 주소 표시](/ko/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/displaying-ip-addresses-in-the-audit-log-for-your-enterprise)을(를) 참조하세요.
* GitHub 플랜에 따라 데이터 가용성 및 데이터 보존 제품이 다릅니다.
  * GitHub Free 및 GitHub Team 계획에서는 API 활동이나 Git 이벤트를 전혀 볼 수 없습니다.
  * 독립 실행형 조직(엔터프라이즈에 속하지 않은 조직)은 감사 로그를 스트리밍할 수 없고, API 요청 이벤트를 볼 수 없으며, Git 이벤트 데이터의 경우 7일로 제한됩니다.
  * GitHub Enterprise Cloud 엔터프라이즈의 경우:
    * 기업에서 사용하는 **Enterprise Managed Users** 경우 감사 로그에는 사용자 **보안 로그** (로그인 활동 및 토큰 사용량과 같은 사용자 계정과 관련된 이벤트)도 포함됩니다.
    * 엔터프라이즈에서 \_사용하지\_Enterprise Managed UsersGitHub 않는 경우 감사 로그에는 엔터프라이즈 계정 및 해당 내의 조직과 관련된 이벤트만 포함됩니다.
* 감사 로그에는 페이지 보기 또는 리포지토리 검색 원격 분석이 포함되지 **않습니다** .

## 종속성 그래프

### 사용하세요

* 리포지토리가 **취약하거나 손상된 패키지(또는** 버전)에 따라 달라지는지 확인합니다.
* 인시던트 중에 도입되었을 수 있는 **새 종속성 또는 의심스러운 종속성을 검토합니다** .
* 에코시스템 또는 관계(직접 또는 전이적)를 통해 종속성을 필터링하고 탐색합니다.
* 감사 목적으로 또는 증거를 보존하기 위해 SBOM(소프트웨어 청구서)을 내보냅니다.

#### Permissions

* 리포지토리에 대한 액세스를 작성하거나 유지 관리합니다.

### 주요 리소스

* [리포지토리의 종속성 탐색](/ko/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/explore-dependencies)
* [종속성 그래프에서 지원되는 패키지 에코시스템](/ko/code-security/reference/supply-chain-security/dependency-graph-supported-package-ecosystems)
* [리포지토리에 대한 소프트웨어 자료 청구서 내보내기](/ko/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/export-dependencies-as-sbom)

### 참고 사항 및 제한 사항

* 종속성 그래프는 지원되는 매니페스트/잠금 파일(및 선택적 빌드 시간 제출)에서 생성되므로 불완전하거나 실제로 빌드 및 배포된 것과 다를 수 있습니다. 특히 CI/빌드 중에 확인된 종속성에 대해 가장 정확한 보기를 얻으려면 빌드 시간 종속성 제출(또는 SBOM과 같은 다른 빌드 출처)을 사용하여 종속성 그래프를 보완해야 합니다.

## GitHub 코드 검색

### 사용하세요

* 알려진 악성 워크플로 또는 패키지 이름과 같은 리포지토리에서 IoC(손상 지표)를 검색합니다.
* 유출된 비밀 또는 악성 코드 조각과 같은 의심스러운 코드 패턴이 조직 또는 엔터프라이즈의 다른 리포지토리에 표시되는지 확인하여 잠재적인 폭발 반경의 범위를 빠르게 지정합니다.
* 인시던트 중에 유용할 수 있는 다양한 한정자별로 검색 범위를 지정합니다. 예를 들면 다음과 같습니다.
  * 특정 리포지토리, 조직 또는 엔터프라이즈 내에서 검색합니다(, , `repo:``org:` 한정자 사용`enterprise:`).
  * 특정 파일 경로(`path:.github/workflows repo:ORG-NAME/REPO-NAME`) 내에서 검색합니다.

#### 필요한 권한

* 공용 리포지토리에서 검색하려면 계정에 로그인 GitHub 해야 합니다.
* 프라이빗 리포지토리에서 검색하려면 해당 리포지토리에 대한 읽기 권한이 있어야 합니다.

### 주요 리소스

* [GitHub 코드 검색 사용](/ko/search-github/github-code-search/using-github-code-search)
* [GitHub Code Search 구문 이해](/ko/search-github/github-code-search/understanding-github-code-search-syntax)

### 참고 사항 및 제한 사항

* regex 검색을 지원합니다.
* 리포지토리의 기본 분기에서만 검색합니다. 의심스러운 코드가 기본이 아닌 분기에 도입되었으며 병합되지 않은 경우 코드 검색에서 찾을 수 없습니다.
* 코드 검색을 사용하여 패턴 또는 IoC가 있는지 확인할 수 있지만 코드가 추가된 시기 또는 사용자와 같은 컨텍스트는 제공하지 않습니다. 감사 로그, 활동 보기 또는 비난 보기 확인, 커밋 기록 및 리포지토리의 끌어오기 요청 기록과 같은 다른 도구와 함께 코드 검색을 사용해야 합니다.

## 보안 개요 및 보안 경고

### 사용하세요

* 조직 또는 엔터프라이즈의 리포지토리에서 모든 보안 경고(secret scanningcode scanning및 Dependabot 경고)에 대한 개략적인 보기를 참조하세요.
* 이미 감지된 것을 GitHub 분류하고 어떤 리포지토리가 영향을 받았는지 식별합니다.
* 인시던트 중에 생성된 새 경고를 추적합니다(활성 악용 또는 확산을 나타낼 수 있습니다).

#### 필요한 권한

* 엔터프라이즈 수준에서 조직의 데이터를 보려면 엔터프라이즈 관리자에게 관련 조직의 조직 소유자 또는 보안 관리자 역할이 있어야 합니다.
* 조직 수준에서 리포지토리에 대한 데이터를 보려면 조직 소유자 또는 보안 관리자 역할이 필요합니다.

### 주요 리소스

* [보안 개요](/ko/code-security/concepts/security-at-scale/security-overview)
* [보안 인사이트 보기](/ko/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-security-insights#viewing-the-security-overview-dashboard-for-your-organization)

### 참고 사항 및 제한 사항

* 유출된 비밀, 취약한 코드, 취약한 종속성 및 맬웨어에 대한 경고는 인시던트 이전에 관련 기능을 사용하도록 설정하고 구성한 경우에만 표시됩니다.

## 워크플로 실행 및 로그

### 사용하세요

* 지정된 시간에 CI/CD에서 실행된 내용(예: 실행된 명령 또는 설치된 종속성)을 확인합니다.
* 익숙하지 않은 사용자 또는 비정상적인 시간에 트리거된 것과 같은 의심스러운 워크플로 실행을 조사하여 수행된 작업, 액세스된 비밀 및 실행된 코드를 확인합니다.
* 기본 `GITHUB_TOKEN`personal access tokensGitHub App 값, 토큰, 비밀로 저장된 기타 자격 증명 및 워크플로 실행 중에 가져온 액세스 토큰을 포함하여 워크플로 작업에서 액세스할 수 있는 자격 증명을 검토합니다.
* 보관, 포렌식 또는 자동화를 위해 REST API를 통해 프로그래밍 방식으로 로그를 검색합니다.

#### 필요한 권한

* 리포지토리에 대한 읽기 권한입니다.

### 주요 리소스

* [워크플로 실행 기록 보기](/ko/actions/how-tos/monitor-workflows/view-workflow-run-history)
* [워크플로 실행 로그 사용](/ko/actions/how-tos/monitor-workflows/use-workflow-run-logs)
* [워크플로 아티팩트 다운로드](/ko/actions/how-tos/manage-workflow-runs/download-workflow-artifacts)
* [GITHUB\_TOKEN](/ko/actions/concepts/security/github_token)
* [GitHub Actions에서 비밀 사용](/ko/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets)
* [안전 사용 참조](/ko/actions/reference/security/secure-use)
* [워크플로 실행에 대한 REST API 엔드포인트](/ko/rest/actions/workflow-runs)
* [워크플로 작업에 대한 REST API 엔드포인트](/ko/rest/actions/workflow-jobs)
* [빌드 시스템 보안의 모범 사례](/ko/code-security/tutorials/implement-supply-chain-best-practices/securing-builds)

### 참고 사항 및 제한 사항

* GitHub 는 워크플로 로그에서 비밀을 자동으로 수정합니다.
* 기본적으로 워크플로 로그는 90일 동안 보존 GitHub 되지만 이 보존 기간을 구성할 수 있습니다.
  공용 리포지토리의 경우 최대 보존 기간은 90일입니다. 프라이빗 리포지토리의 경우 최대값은 400일입니다. 보존은 엔터프라이즈, 조직 또는 리포지토리 수준에서 구성할 수 있습니다. 구성된 보존 기간 외부에서 워크플로 실행이 발생한 경우 로그를 더 이상 사용할 수 없습니다. 자세한 내용은 [리포지토리에 대한 GitHub Actions 설정 관리](/ko/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository), [조직의 GitHub Actions 아티팩트 및 로그에 대한 보존 기간 구성](/ko/organizations/managing-organization-settings/configuring-the-retention-period-for-github-actions-artifacts-and-logs-in-your-organization), 또는 [엔터프라이즈에서 GitHub Actions 대한 정책 적용](/ko/enterprise-cloud@latest/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise)을 참조하세요.
* 워크플로 실행(로그 포함)은 REST API를 통해 삭제할 수도 있습니다. 실행이 삭제되었는지 확인하려면 감사 로그에서 `workflows.delete_workflow_run` 이벤트를 조회합니다.
* 각 작업에 발급되는 기본 `GITHUB_TOKEN`은 해당 작업 범위로 제한되며, 작업이 완료될 때 또는 유효한 최대 수명에 도달하면 만료됩니다(자체 호스팅 실행기의 경우 최대 24시간). 단계가 토큰을 캡처한 경우에도 작업이 완료된 후에는 다시 사용할 수 없습니다. 자세한 내용은 [GITHUB\_TOKEN](/ko/actions/concepts/security/github_token)을(를) 참조하세요.
* 설치 토큰 또는 비밀로 저장된 타사 API 키와 같은 personal access tokensGitHub App 워크플로에서 참조되는 다른 자격 증명에는 고유한 수명 주기가 있으며 작업이 종료될 때 만료되지 않습니다. 워크플로 단계에서 이러한 자격 증명 중 하나를 노출하는 경우 토큰은 자체 정책에 따라 해지되거나 만료될 때까지 유효한 상태로 유지됩니다. 노출되었을 수 있는 모든 자격 증명은 유출된 것으로 간주하고 즉시 교체하거나 재발급해야 합니다. 워크플로 파일 및 리포지토리, 조직 및 환경 비밀을 검토하여 액세스할 수 있는 자격 증명을 확인합니다. 자세한 내용은 [GitHub Actions에서 비밀 사용](/ko/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets)을(를) 참조하세요.
* REST API를 사용하여 전체 워크플로 실행 또는 프로그래밍 방식으로 특정 작업에 대한 로그를 다운로드할 수 있습니다. 두 엔드포인트 모두 1분 동안 유효한 리디렉션 URL을 반환합니다. 자세한 내용은 [워크플로 실행에 대한 REST API 엔드포인트](/ko/rest/actions/workflow-runs) 및 [워크플로 작업에 대한 REST API 엔드포인트](/ko/rest/actions/workflow-jobs)을(를) 참조하세요.
* 워크플로 실행 로그는 워크플로 단계의 표준 출력만 캡처합니다. 네트워크 호출, 파일 시스템 수정 또는 백그라운드 프로세스와 같은 표준 출력에 쓰지 않는 작업은 로그에 표시되지 않습니다.
* GitHub-호스팅된 러너의 경우, 러너 환경은 일시적이며 작업이 완료된 후 삭제됩니다.
  GitHub 에서는 이러한 실행기에서 워크플로 실행 로그 이외의 데이터를 유지하지 않습니다. 자체 호스팅 실행기인 경우 자체 인프라에서 추가 호스트 수준 또는 네트워크 원격 분석을 사용할 수 있습니다.
* 보다 포괄적인 조사를 위해 워크플로 실행 로그를 감사 로그 이벤트와 상호 연결합니다. , , `git.clone``git.fetch``git.push``protected_branch.create`등의 `protected_branch.policy_override`이벤트는 추가 컨텍스트를 제공할 수 있습니다. 호스트된 감사 로그의 GitHubGit 이벤트는 현재 기업의 경우 7일 동안만 보존되므로 이러한 유형의 조사에는 스트리밍된 엔터프라이즈 감사 로그를 미리 설정하는 것이 중요합니다. 자세한 내용은 [보안 인시던트 준비](/ko/code-security/tutorials/secure-your-organization/prepare-for-a-security-incident)을(를) 참조하세요.