보안 2026년 4월 2일

2026 런북: 전용 Mac mini M4에서 셀프호스팅 러너 등록 토큰, PAT 범위, 비상 철회

NodeMac Team

보안·플랫폼 편집

Mac mini M4가 스케줄 가능한 빌드 노드로 올라가면, 유출된 등록 토큰이나 과도한 권한의 PAT—SSH 비밀번호가 아니라—공격자가 대시보드는 초록인 채로 풀에 몰래 합류하게 만드는 경로가 됩니다. 이 2026년 체크리스트는 회전 주기, 시크릿 저장 경계, 유출 분류 매트릭스, 여덟 단계 대응 절차, 분기별 가짜 유출 탁상훈련 지침, OIDC 전환 메모, CMDB 최소 필드를 다룹니다. 형태가 다른 표 두 개와 숫자 임계값을 명시해 온콜 바인더에 그대로 붙여 넣을 수 있게 했습니다.

러너가 아직 온라인이 아니라면 먼저 Mac mini M4에서 셀프호스팅 GitHub Actions부터 읽으십시오. 유지보수는 러너 드레인과 인수인계와 맞추고, CI가 에이전트와 하드웨어를 나눠 쓰면 CI·에이전트 용량 대여를 참고하십시오. 원격 콘솔·연결 절차는 도움말, 그래픽 세션은 VNC 안내, 리전·요금은 요금 페이지에서 확인할 수 있습니다.

비밀번호보다 토큰이 공격 경로로 유리한 이유

  • 일회 등록의 오용: Slack이나 티켓에 붙여 넣은 토큰은 대략 60분 안에 누구나 악성 러너를 등록할 수 있게 하며, 그동안 큐는 건강해 보일 수 있습니다.
  • 과도한 PAT: 저장소 쓰기와 워크플로 편집이 함께 있는 빌드용 PAT는 한 번 유출로 수많은 시크릿 맥락에 간접 접근을 열어 줍니다.
  • 디스크 위 시크릿: 백업·동기화되는 .env나 plist 안 토큰은 상류에서 회전했어도 골든 이미지를 잊으면 헛된 안심을 줍니다.

회전 주기와 저장 패턴

자격 증명 권장 최대 수명 저장
조직·저장소 등록 토큰 일회용, 1시간 이내 소비 일시적 시크릿 관리자 주입, 이미지에 굽지 말 것
세분화 PAT(러너 등록 전용) 90일마다 검토, 30일 전 경고 macOS 키체인, 최소 범위
디버깅용 광범위 PAT 7일 또는 빌더에서 금지 노트북만, 러너 사용자 프로필에는 두지 말 것

유출 분류 매트릭스

러너를 먼저 지울지 토큰을 먼저 철회할지로 흔히 벌이는 논쟁을 끝내기 위해 매트릭스를 쓰십시오—두 번째 열을 실행한 뒤 세 번째 열을 실행하고, 네 번째 열로 검증한 다음 여덟 단계 체크리스트를 엽니다.

노출 첫 조치 둘째 조치 증명
공개 채널의 등록 토큰 무효화 후 조직 플로 재생성 최근 24시간 내 등록된 러너 감사 알 수 없는 호스트 제거됨
저장소·워크플로 편집 가능 PAT 즉시 철회 이상 워크플로 커밋 스캔 기본 브랜치 보호 규칙 유지
러너 세션 탈취 의심 호스트 오프라인, 머신 시크릿 회전 예기치 않은 아웃바운드 호출 조사 새 세션은 새 토큰에서만

CMDB 최소 항목: 빌드용 Mac마다 runner_id, 활성 PAT 지문 해시, 마지막 회전 시각(UTC), 소유 엔지니어링 그룹을 기록하십시오. 이 네 필드가 비어 있으면 사건 중앙값 대응 시간이 25분에서 시간 단위로 늘어납니다.

OIDC 작업 정체성과 PAT

2026년에는 많은 macOS 플릿이 OIDC 토큰을 단기 클라우드 자격으로 바꿔 장기 PAT가 디스크에 닿지 않게 합니다. GITHUB_TOKEN만 필요한 "클론·테스트" 작업과 OIDC나 배포 키를 쓰는 "배포" 작업을 나누십시오. 그러면 도난된 디스크 이미지가 주는 건 일시적 맥락뿐입니다. 전환 중 워크플로 스니펫을 3~5곳 손볼 수 있지만, 대부분 경로에서 PAT 회전은 분기별에서 비상 시에만으로 줄어듭니다.

감사 로그를 SIEM으로 보내 repo.*와 러너 등록 이벤트에 알람을 걸십시오. SIEM이 없어도 지난 한 시간 API 변경을 당기는 cron만으로도 악성 등록의 대략 80%는 잡을 수 있습니다.

분기별 가짜 유출 탁상훈련

훈련 채널에 합성 토큰 조각을 올리고 누군가 15분 안에 매트릭스를 적용하는지 재보십시오. 첫 시도는 조직 수준 자격을 누가 철회할 수 있는지 아무도 모른다는 이유로 실패하는 경우가 많습니다—프로덕션 고통 전에 고치십시오. 의사결정 지연과 잘못된 클릭을 추적하고, 연속 두 번 10% 개선이 나오기 전에는 훈련 빈도를 낮추지 마십시오. 훈련은 스테이징·프로덕션 러너 풀과 짝을 이루면 프로덕션은 알람이 새어 나오는지만 보면 됩니다.

유출 대응 여덟 단계 체크리스트

랙 옆이나 리전 런북에 인쇄 한 장을 두십시오: 철회 소유자, 러너 인벤토리 URL, 에스컬레이션 전화망. 사고 때 인지 부하는 치솟습니다—Notion에서 "지난번에 어떻게 철회했더라"를 찾는 동안 깨끗한 제거와 지속 공격자 접근을 가르는 15분 창이 사라집니다.

  1. 보안 티켓 개설: 유출 매체(Slack·티켓·로그)와 대략적인 노출 기간을 적습니다.
  2. 매트릭스 첫·둘째 조치 실행: 우선순위를 병렬로 다투지 마십시오.
  3. 신규 러너 등록 동결: 새 토큰 체인이 생길 때까지 조직 정책을 조입니다.
  4. 의심 호스트 드레인: 드레인 SLO를 따릅니다—종종 자연 대기 60~90분.
  5. 깨끗한 러너 재등록: 새 토큰, 호스트명 접미사 -rot-YYYYMMDD로 감사 추적을 남깁니다.
  6. 최소 권한 검증: 읽기 전용 클론과 노옵 빌드로 남은 쓰기 범위가 없음을 증명합니다.
  7. 사후 분석: 채팅 도구에 자격이 왜 있었는지, 어떤 자동화 공백이 남았는지 문서화합니다.
  8. 72시간 내 2차 스캔: OAuth 앱별 잔여 PAT 사용을 찾습니다.
  9. 마무리: CMDB 지문을 갱신하고, 명시적 검증과 로그 검토 뒤에만 새 자격으로 초록 빌드가 돌아왔다고 이해관계자에게 알립니다.

러너 서비스 계정과 FileVault 잠금 해제 순서

전용 Mac 빌더는 PAT 회전 정책과 맞는 비관리자 서비스 계정으로 돌려야 합니다. 대화형 관리자 로그인은 러너 프로필이 아니라 별도 노트북에 두십시오—관리자는 브라우저 세션과 광범위 PAT 덤프를 남기기 쉽습니다. macOS 업데이트 뒤에는 FileVault가 사용자 홈을 완전히 풀기 전에 LaunchAgent가 여전히 로드되는지 확인하십시오. 그렇지 않으면 "토큰은 유효한데 러너는 오프라인" 같은 불안정 증상이 나와 GitHub 대신 launchd 순서를 몇 시간 헤맵니다.

등록 토큰을 채팅에 붙여 넣어도 되는 팀(이상적으로는 아무도 없음)을 문서화하십시오. 마케팅이 스크린샷을 고집하면 가려진 자리 표시자를 쓰고 촬영 직후 토큰을 회전하십시오. 검색 가능한 아카이브에 토큰이 얼마나 자주 등장하는지 측정하십시오—그 지표를 내리는 것이 아무도 읽지 않는 비밀번호 복잡도 규칙을 세는 것보다 나은 KPI입니다.

클라우드 Mac 공급자 경계

벤더는 베어 메탈과 네트워크 가장자리를 격리합니다. GitHub PAT를 대신 철회해 주지는 않습니다. 조달 문서에 토큰 회전을 애플리케이션 책임으로 적으십시오. 리전별 요금으로 용량을 버스트할 때도 "빨리 가려고" 범위를 잠깐 넓히지 말고 같은 최소 권한 PAT를 유지하십시오.

Mac mini M4 Apple Silicon 호스트는 머신별 러너 정체성과 디스크 격리를 실용적으로 만들고, 통합 메모리는 동시에 시크릿 파싱과 컴파일이 겹칠 때 의심스러운 스왑을 줄입니다. NodeMac은 홍콩·일본·한국·싱가포르·미국에서 SSH와 VNC를 제공해 철회 뒤 깨끗한 노드를 빨리 올릴 수 있습니다. 종량제 임대는 하드웨어 리드 타임을 자격 증명 회전 속도에 맞추며, 노드를 가축처럼 다룰 때 둘 다 MTTR을 정합니다.

토큰 철회 뒤 깨끗한 Mac이 필요하신가요?

HK·JP·KR·SG·US M4 베어 메탈, SSH/VNC—의심 호스트를 빠르게 교체하십시오.

NM
NodeMac 클라우드 Mac
5분 배포

클라우드에서 전용 Apple Silicon Mac을 임대하세요. SSH/VNC, HK·JP·KR·SG·US 노드.

시작하기