이 참조를 사용하여 보안 조사 중에 사용할 도구, 각 도구가 대답할 수 있는 질문 및 볼 수 있는 데이터에 영향을 줄 수 있는 요소를 결정 GitHub 합니다.
참고
각 도구(및 제공하는 데이터)의 가용성은 계획, 역할 및 권한, 기능 사용 및 사전 인시던트 구성에 따라 GitHub 달라집니다(예: 감사 로그 스트리밍 및 IP 주소 공개에는 사전 설정 필요).
활동 보기
사용하세요
- 정의된 기간 동안 특정 행위자에 기인하는 병합, 푸시, 강제 푸시, 분기 만들기 및 삭제를 비롯한 특정 리포지토리의 활동에 대한 개요 를 가져옵니다.
- 의심스러운 코드 모양과 관련 푸시 또는 병합의 상관 관계를 지정합니다.
- 변경된 시기, 변경한 사람, 어느 브랜치에서 이루어졌는지에 대한 질문에 답하고, diff 또는 커밋 기록을 탐색합니다.
Permissions
리포지토리에 대한 읽기 권한입니다.
주요 리소스
참고 사항 및 제한 사항
- 활동 보기는 초기 탐색 및 상관 관계 화면으로 가장 적합합니다. 원시 감사 로그 내보내기와 동일한 완전성 또는 쿼리 성능이 없습니다.
- 일부 인시던트에는 리포지토리 또는 조직 간에 상관 관계가 필요하므로 감사 로그에서 더 쉬울 수 있습니다.
감사 로그
사용하세요
- 기업 또는 조직에서 무엇이 변경되었는지, 언제, 그리고 누가 변경했는지에 대한 질문에 답변합니다.
- 손상이 가능할 수 있는 이벤트를 조사하거나 멤버 자격, 역할, 권한 또는 액세스 토큰 생성 또는 사용과 같은 변경 내용과 같이 이를 나타냅니다.
- 행위자(사용자 또는 통합)에 대한 보안 관련 작업을 특성화하고 조사 타임라인을 작성합니다.
- 행위자, 작업, IP 주소(활성화된 경우) 또는 토큰을 필터링하여 의심스러운 활동 또는 추적 토큰 사용량을 식별합니다.
- 여러 리포지토리 또는 조직 간에 활동을 상호 연결합니다.
Permissions
- 조직 감사 로그를 보려면 조직 소유자여야 합니다.
- 엔터프라이즈 감사 로그를 보려면 엔터프라이즈 관리자여야 합니다.
- 보안 로그(개인 계정)를 보려면 계정 소유자여야 합니다.
- 외부 SIEM(보안 정보 및 이벤트 관리) 시스템, 로그 관리 시스템 또는 기타 도구 및 서비스로 내보낸 감사 로그 데이터를 보려면 해당 시스템에 액세스해야 합니다.
주요 리소스
참고 사항 및 제한 사항
- GitHub 에서는 엔터프라이즈, 조직 및 사용자 보안 로그의 세 가지 감사 로그를 제공합니다.
- GitHub 감사 로그 UI에는 제한된 필터링 및 검색 기능이 있습니다. 이러한 이유로 엔터프라이즈는 고급 쿼리를 위해 엔터프라이즈 감사 로그를 외부 SIEM 또는 로그 관리 시스템으로 스트리밍 하는 것이 좋습니다.
- 외부 SIEM 또는 로그 관리 시스템으로 로그 스트리밍을 감사하려면 사전 구성이 필요합니다. 엔터프라이즈에 대한 감사 로그 스트리밍을(를) 참조하세요.
- 감사 로그 스트리밍이 없으면 조직 또는 리포지토리 간에 이벤트 상관 관계를 지정하거나 특정 토큰에서 모든 관련 이벤트로 피벗하는 등 더 복잡한 쿼리를 실행할 수 없습니다.
- Git 이벤트 데이터는 스트림에 포함됩니다.
- API 요청 이벤트를 스트리밍하는 것이 좋습니다. 이렇게 하려면 이전 구성이 필요합니다. 엔터프라이즈에 대한 감사 로그 스트리밍을(를) 참조하세요.
- 엔터프라이즈의 경우 감사 로그에 GitHub Enterprise CloudIP 주소를 표시하는 것이 좋습니다. 이를 위해서는 사전 구성이 필요합니다. 엔터프라이즈의 감사 로그에 IP 주소 표시을(를) 참조하세요.
- GitHub 플랜에 따라 데이터 가용성 및 데이터 보존 제품이 다릅니다.
- GitHub Free 및 GitHub Team 계획에서는 API 활동이나 Git 이벤트를 전혀 볼 수 없습니다.
- 독립 실행형 조직(엔터프라이즈에 속하지 않은 조직)은 감사 로그를 스트리밍할 수 없고, API 요청 이벤트를 볼 수 없으며, Git 이벤트 데이터의 경우 7일로 제한됩니다.
- GitHub Enterprise Cloud 엔터프라이즈의 경우:
- 기업에서 사용하는 Enterprise Managed Users 경우 감사 로그에는 사용자 보안 로그 (로그인 활동 및 토큰 사용량과 같은 사용자 계정과 관련된 이벤트)도 포함됩니다.
- 엔터프라이즈에서 _사용하지_Enterprise Managed UsersGitHub 않는 경우 감사 로그에는 엔터프라이즈 계정 및 해당 내의 조직과 관련된 이벤트만 포함됩니다.
- 감사 로그에는 페이지 보기 또는 리포지토리 검색 원격 분석이 포함되지 않습니다 .
종속성 그래프
사용하세요
- 리포지토리가 취약하거나 손상된 패키지(또는 버전)에 따라 달라지는지 확인합니다.
- 인시던트 중에 도입되었을 수 있는 새 종속성 또는 의심스러운 종속성을 검토합니다 .
- 에코시스템 또는 관계(직접 또는 전이적)를 통해 종속성을 필터링하고 탐색합니다.
- 감사 목적으로 또는 증거를 보존하기 위해 SBOM(소프트웨어 청구서)을 내보냅니다.
Permissions
- 리포지토리에 대한 액세스를 작성하거나 유지 관리합니다.
주요 리소스
참고 사항 및 제한 사항
- 종속성 그래프는 지원되는 매니페스트/잠금 파일(및 선택적 빌드 시간 제출)에서 생성되므로 불완전하거나 실제로 빌드 및 배포된 것과 다를 수 있습니다. 특히 CI/빌드 중에 확인된 종속성에 대해 가장 정확한 보기를 얻으려면 빌드 시간 종속성 제출(또는 SBOM과 같은 다른 빌드 출처)을 사용하여 종속성 그래프를 보완해야 합니다.
GitHub 코드 검색
사용하세요
- 알려진 악성 워크플로 또는 패키지 이름과 같은 리포지토리에서 IoC(손상 지표)를 검색합니다.
- 유출된 비밀 또는 악성 코드 조각과 같은 의심스러운 코드 패턴이 조직 또는 엔터프라이즈의 다른 리포지토리에 표시되는지 확인하여 잠재적인 폭발 반경의 범위를 빠르게 지정합니다.
- 인시던트 중에 유용할 수 있는 다양한 한정자별로 검색 범위를 지정합니다. 예를 들면 다음과 같습니다.
- 특정 리포지토리, 조직 또는 엔터프라이즈 내에서 검색합니다(, ,
repo:``org:한정자 사용enterprise:). - 특정 파일 경로(
path:.github/workflows repo:ORG-NAME/REPO-NAME) 내에서 검색합니다.
- 특정 리포지토리, 조직 또는 엔터프라이즈 내에서 검색합니다(, ,
필요한 권한
- 공용 리포지토리에서 검색하려면 계정에 로그인 GitHub 해야 합니다.
- 프라이빗 리포지토리에서 검색하려면 해당 리포지토리에 대한 읽기 권한이 있어야 합니다.
주요 리소스
참고 사항 및 제한 사항
- regex 검색을 지원합니다.
- 리포지토리의 기본 분기에서만 검색합니다. 의심스러운 코드가 기본이 아닌 분기에 도입되었으며 병합되지 않은 경우 코드 검색에서 찾을 수 없습니다.
- 코드 검색을 사용하여 패턴 또는 IoC가 있는지 확인할 수 있지만 코드가 추가된 시기 또는 사용자와 같은 컨텍스트는 제공하지 않습니다. 감사 로그, 활동 보기 또는 비난 보기 확인, 커밋 기록 및 리포지토리의 끌어오기 요청 기록과 같은 다른 도구와 함께 코드 검색을 사용해야 합니다.
보안 개요 및 보안 경고
사용하세요
- 조직 또는 엔터프라이즈의 리포지토리에서 모든 보안 경고(secret scanningcode scanning및 Dependabot 경고)에 대한 개략적인 보기를 참조하세요.
- 이미 감지된 것을 GitHub 분류하고 어떤 리포지토리가 영향을 받았는지 식별합니다.
- 인시던트 중에 생성된 새 경고를 추적합니다(활성 악용 또는 확산을 나타낼 수 있습니다).
필요한 권한
- 엔터프라이즈 수준에서 조직의 데이터를 보려면 엔터프라이즈 관리자에게 관련 조직의 조직 소유자 또는 보안 관리자 역할이 있어야 합니다.
- 조직 수준에서 리포지토리에 대한 데이터를 보려면 조직 소유자 또는 보안 관리자 역할이 필요합니다.
주요 리소스
참고 사항 및 제한 사항
- 유출된 비밀, 취약한 코드, 취약한 종속성 및 맬웨어에 대한 경고는 인시던트 이전에 관련 기능을 사용하도록 설정하고 구성한 경우에만 표시됩니다.
워크플로 실행 및 로그
사용하세요
- 지정된 시간에 CI/CD에서 실행된 내용(예: 실행된 명령 또는 설치된 종속성)을 확인합니다.
- 익숙하지 않은 사용자 또는 비정상적인 시간에 트리거된 것과 같은 의심스러운 워크플로 실행을 조사하여 수행된 작업, 액세스된 비밀 및 실행된 코드를 확인합니다.
- 기본
GITHUB_TOKENpersonal access tokensGitHub App 값, 토큰, 비밀로 저장된 기타 자격 증명 및 워크플로 실행 중에 가져온 액세스 토큰을 포함하여 워크플로 작업에서 액세스할 수 있는 자격 증명을 검토합니다. - 보관, 포렌식 또는 자동화를 위해 REST API를 통해 프로그래밍 방식으로 로그를 검색합니다.
필요한 권한
- 리포지토리에 대한 읽기 권한입니다.
주요 리소스
- 워크플로 실행 기록 보기
- 워크플로 실행 로그 사용
- 워크플로 아티팩트 다운로드
- GITHUB_TOKEN
- GitHub Actions에서 비밀 사용
- 안전 사용 참조
- 워크플로 실행에 대한 REST API 엔드포인트
- 워크플로 작업에 대한 REST API 엔드포인트
- 빌드 시스템 보안의 모범 사례
참고 사항 및 제한 사항
- GitHub 는 워크플로 로그에서 비밀을 자동으로 수정합니다.
- 기본적으로 워크플로 로그는 90일 동안 보존 GitHub 되지만 이 보존 기간을 구성할 수 있습니다. 공용 리포지토리의 경우 최대 보존 기간은 90일입니다. 프라이빗 및 내부 리포지토리의 경우 최대값은 400일입니다. 보존은 엔터프라이즈, 조직 또는 리포지토리 수준에서 구성할 수 있습니다. 구성된 보존 기간 외부에서 워크플로 실행이 발생한 경우 로그를 더 이상 사용할 수 없습니다. 자세한 내용은 리포지토리에 대한 GitHub Actions 설정 관리, 조직의 GitHub Actions 아티팩트 및 로그에 대한 보존 기간 구성, 또는 엔터프라이즈에서 GitHub Actions 대한 정책 적용을 참조하세요.
- 워크플로 실행(로그 포함)은 REST API를 통해 삭제할 수도 있습니다. 실행이 삭제되었는지 확인하려면 감사 로그에서
workflows.delete_workflow_run이벤트를 조회합니다. - 각 작업에 발급되는 기본
GITHUB_TOKEN은 해당 작업 범위로 제한되며, 작업이 완료될 때 또는 유효한 최대 수명에 도달하면 만료됩니다(자체 호스팅 실행기의 경우 최대 24시간). 단계가 토큰을 캡처한 경우에도 작업이 완료된 후에는 다시 사용할 수 없습니다. 자세한 내용은 GITHUB_TOKEN을(를) 참조하세요. - 설치 토큰 또는 비밀로 저장된 타사 API 키와 같은 personal access tokensGitHub App 워크플로에서 참조되는 다른 자격 증명에는 고유한 수명 주기가 있으며 작업이 종료될 때 만료되지 않습니다. 워크플로 단계에서 이러한 자격 증명 중 하나를 노출하는 경우 토큰은 자체 정책에 따라 해지되거나 만료될 때까지 유효한 상태로 유지됩니다. 노출되었을 수 있는 모든 자격 증명은 유출된 것으로 간주하고 즉시 교체하거나 재발급해야 합니다. 워크플로 파일 및 리포지토리, 조직 및 환경 비밀을 검토하여 액세스할 수 있는 자격 증명을 확인합니다. 자세한 내용은 GitHub Actions에서 비밀 사용을(를) 참조하세요.
- REST API를 사용하여 전체 워크플로 실행 또는 프로그래밍 방식으로 특정 작업에 대한 로그를 다운로드할 수 있습니다. 두 엔드포인트 모두 1분 동안 유효한 리디렉션 URL을 반환합니다. 자세한 내용은 워크플로 실행에 대한 REST API 엔드포인트 및 워크플로 작업에 대한 REST API 엔드포인트을(를) 참조하세요.
- 워크플로 실행 로그는 워크플로 단계의 표준 출력만 캡처합니다. 네트워크 호출, 파일 시스템 수정 또는 백그라운드 프로세스와 같은 표준 출력에 쓰지 않는 작업은 로그에 표시되지 않습니다.
- GitHub-호스팅된 러너의 경우, 러너 환경은 일시적이며 작업이 완료된 후 삭제됩니다. GitHub 에서는 이러한 실행기에서 워크플로 실행 로그 이외의 데이터를 유지하지 않습니다. 자체 호스팅 실행기인 경우 자체 인프라에서 추가 호스트 수준 또는 네트워크 원격 분석을 사용할 수 있습니다.
- 보다 포괄적인 조사를 위해 워크플로 실행 로그를 감사 로그 이벤트와 상호 연결합니다. , ,
git.clone``git.fetch``git.push``protected_branch.create등의protected_branch.policy_override이벤트는 추가 컨텍스트를 제공할 수 있습니다. 호스트된 감사 로그의 GitHubGit 이벤트는 현재 기업의 경우 7일 동안만 보존되므로 이러한 유형의 조사에는 스트리밍된 엔터프라이즈 감사 로그를 미리 설정하는 것이 중요합니다. 자세한 내용은 보안 인시던트 준비을(를) 참조하세요.