콘텐츠로 이동

01-개념

가장 잘 알려진 사고 한 건을 봅시다.

“The permission system passed the command — but the shell then expanded ~ into the literal home path, and the command annihilated the entire project plus years of files.” — 권한 시스템은 명령을 통과시켰다. 그런데 셸이 ~를 실제 홈 경로로 확장해 버렸고, 그 명령은 프로젝트와 수년치 파일을 통째로 지웠다. (Mike Wolak, sources/23-case-studies-raw/failures/mike-wolak-rm-rf-home-directory.md)

핵심 교훈:

  • 샌드박스가 옵트인이면 의미가 약하다 — 기본값으로 박혀 있어야 한다
  • 검증은 셸 확장 이후에 해야 한다
  • rm -rf ~, rm -rf / 같은 패턴은 하드코딩 차단
  • 작업이 필요한 만큼만. 운영 DB, 결제, 발송 권한은 별도 토큰으로 격리.
  • 기본은 읽기 전용, 쓰기는 작업별로 명시 추가.
  • 비가역 동작 직전 사람이 한 번 본다.
  • 게이트는 “보고 OK”가 1초 이상 걸리도록 만들 것 (자동 클릭 방지).
  • 사용자 데스크톱이 아닌 별도 환경에서 위험 작업.
  • 디스포저블 VM, 컨테이너, 클라우드 데스크톱.
  • 한 번에 모든 입력을 멈추는 큰 정지 버튼.
  • 정지 후 머신 잠금까지 30초 안에.
  • 누가, 언제, 무엇을, 어디서 — 네 가지 모두 남겨야 의미.
  • 주간 단위 사람 검토 + 이상 패턴 알림.

가드레일이 없는 자리에 사고가 자란다

섹션 제목: “가드레일이 없는 자리에 사고가 자란다”

각 사고 사례는 위 다섯 중 하나 이상이 비어 있었습니다. 사고는 새로운 것이 아니라 빠진 가드레일의 그림자입니다.