GitHub Actions 워크플로우 실행 제어 기능 미리보기 출시

by DD
13시간 전
조회수 0

GitHub Actions 워크플로우 실행 보호 기능이 GitHub Enterprise, 조직, 리포지토리 대상 공개 미리보기로 출시됨

워크플로우 실행 제어를 통해 누가 워크플로우를 트리거하고 어떤 이벤트가 허용되는지 정의 가능

악의적인 코드 실행 방지를 목표로 하며, 기존 워크플로우 파일 기반 실행 방식의 보안 취약점 보완

워크플로우 실행 보호의 작동 원리

본 기능은 GitHub Rulesets 프레임워크를 기반으로 작동하며, 엔터프라이즈 관리자가 정의한 허용 목록(Allow List) 정책을 워크플로우 실행 전에 평가한다.

평가 모드(Evaluate Mode): 실제 정책 적용 전에 규칙이 차단할 내용을 미리 확인하여 기존 워크플로우의 예기치 않은 중단을 방지함.

중앙 집중식 정책 관리: 개별 YAML 파일이 아닌, 조직 전체 또는 특정 리포지토리 단위로 보안 정책을 일관되게 적용하고 관리할 수 있음.

이를 통해 무단 액터(Unauthorized Actor)나 이벤트에 의한 원치 않는 워크플로우 실행을 원천적으로 차단한다.

액터(Actor) 및 이벤트(Event) 규칙 유형

초기에는 액터(Actor) 규칙이벤트(Event) 규칙 두 가지 유형을 제공한다. 액터 규칙은 워크플로우를 트리거할 수 있는 개인 사용자, 리포지토리 역할, GitHub 앱, Copilot, Dependabot 등을 제어한다.

액터 규칙 활용: 코드 기여자(Contributor)와 워크플로우 실행 권한을 분리하여, 코드 작성 권한이 있더라도 워크플로우 실행 권한은 별도로 부여하지 않는 최소 권한 원칙(Principle of Least Privilege) 적용 가능.

이벤트 규칙 활용: `push`, `pull_request`, `pull_request_target`, `workflow_dispatch` 등 허용되는 이벤트를 명시적으로 지정하여 수동 트리거 남용(Manual Trigger Abuse)이나 특정 이벤트 악용 방지.

실제 공격 기법 차단 효과

워크플로우 실행 보호 기능은 실제 공격 패턴(Attack Patterns)을 효과적으로 차단한다. 특히 `pull_request_target` 이벤트는 공개 리포지토리에서 악용될 소지가 높아, 이를 제한하거나 금지함으로써 오염된 파이프라인 실행(Poisoned Pipeline Execution)을 막는다.

또한, 낮은 신뢰도의 액터(Low-Trust Identity)가 워크플로우를 트리거하는 것을 차단하고, 개별 워크플로우 파일의 잘못된 구성(Misconfiguration) 악용을 중앙 정책으로 방지한다.

이는 예측 가능하고 안전한 워크플로우 실행 환경을 구축하는 데 기여한다.

기존 워크플로우와의 호환성 및 도입 고려사항

새로운 워크플로우 실행 보호 기능은 GitHub Rulesets 프레임워크 내에서 관리되므로, 기존에 Rulesets를 사용하던 조직이라면 익숙한 방식으로 정책을 적용할 수 있다. 리포지토리 사용자 정의 속성(Repository Custom Properties)을 활용하여 특정 리포지토리에 대한 정책 범위를 세밀하게 조정하는 것도 가능하다.

도입 시에는 평가 모드(Evaluate Mode)를 활용하여 실제 정책 적용 전에 잠재적인 영향을 파악하는 것이 중요하다. 이를 통해 기존 워크플로우를 의도치 않게 중단시키는 상황을 방지하고, 점진적인 정책 rollout을 수행할 수 있다.

Control who and what triggers GitHub Actions workflows

댓글 0

첫 번째 댓글을 남겨보세요!