부록 E. 보안 점검 체크리스트 PDF
새벽 세 시에는 이론보다 체크박스가 더 쓸모 있다. 이 부록은 바로 그 순간을 위해 준비한 점검표다. OpenClaw를 켜기 전, 운영하는 동안, 그리고 뭔가 잘못됐다고 느껴지는 직후에 무엇부터 확인해야 하는지 한 장씩 따라갈 수 있게 정리했다. 보안은 멋진 선언이 아니라, 빠뜨리지 않는 습관에서 시작한다.

기본 정보
운영 환경 이름: ______________________________
호스트 장비/VPS: ______________________________
주 사용 채널: ______________________________
점검자: ______________________________
점검일: ______________________________
OpenClaw 버전: ______________________________
마지막 백업 시각: ______________________________
비상 연락처/메신저: ______________________________
판정 기준
통과: 지금 운영해도 된다.
조치 필요: 운영은 가능하지만 오늘 안에 고친다.
즉시 중지: 이 상태로는 운영하지 않는다.
운영 전 체크리스트
처음 설치한 날뿐 아니라, 새 장비로 옮겼을 때와 큰 설정 변경 직후에도 이 표를 다시 보는 편이 안전하다.
버전과 노출면
openclaw --version결과가 2026.2.25 이상이다. 그보다 낮다면 먼저 업데이트했다.1패치 전 버전을 사용한 적이 있다면 등록된 장치를 전부 검토했고, 내가 모르는 장치는 제거했다.1
게이트웨이는
127.0.0.1또는loopback에만 바인딩되어 있다.2공인 IP에서 OpenClaw 포트가 직접 열려 있지 않다. 원격 접속이 필요하면 SSH 터널, Tailscale, 또는 역방향 프록시+TLS로만 접근한다.2
방화벽 규칙을 확인했고, 외부에서 불필요한 포트가 열려 있지 않다.2
인증과 채널 접근
게이트웨이 인증이 켜져 있고, 충분히 긴 랜덤 토큰을 사용한다.2
Telegram, WhatsApp, Discord 같은 DM 채널은 pairing 정책으로만 받는다.3
그룹 채팅에서는 멘션이 있을 때만 반응하도록 설정했다.3
보류 중인 pairing 요청을 검토했고, 출처가 불명확한 요청은 남겨 두지 않았다.3
파괴적 명령, 계정 변경, 대량 발송 같은 고위험 작업은 반드시 사람 승인을 거치게 해 두었다.5
실행 격리와 권한 최소화
OpenClaw는 개인 메인 노트북이나 회사 업무 노트북이 아니라, 별도 VM·전용 노트북·전용 VPS 같은 격리된 환경에서 돌린다.4
전용 OS 사용자로 실행하며,
root나 평소 쓰는 개인 계정으로 돌리지 않는다.4기본 샌드박스가 켜져 있고, 가능하면
non-main또는 그에 준하는 격리 모드로 운영한다.3에이전트마다 필요한 도구만 허용했다. 글쓰기 에이전트에
shell을 주지 않았고, 리서치 에이전트에 파일 쓰기 권한을 함부로 열지 않았다.6파일 접근은 필요한 워크스페이스만 허용했고,
~/.ssh,~/.aws, 자격 증명 디렉터리, 시스템 경로는 막아 두었다.6네트워크는 가능한 한 허용 목록 방식으로 좁혔다. 모델 API, 내가 승인한 MCP 서버, 꼭 필요한 SaaS만 연결된다.6
강한 추론 모델이 필요한 역할에는 최신 상위권 모델을 쓴다. 도구를 많이 쓰는 에이전트일수록 약한 모델에 과한 권한을 주지 않는다.5
비밀정보와 파일 보호
~/.openclaw디렉터리 권한은700, 주요 설정과 자격 증명 파일은600이다.3API 키와 토큰은 가능하면 운영체제 키체인이나 전용 비밀 관리 흐름에 저장했다.4
.env파일은 저장소에 커밋되지 않고, 셸 히스토리에도 직접 남기지 않았다.2SOUL.md,AGENTS.md,USER.md,MEMORY.md, 주요 설정 파일은 백업돼 있다.identity.json또는 핵심 설정 파일의 해시 기준선을 만들어 두었다.7
스킬과 MCP 설치 전 심사
스킬 자동 설치는 꺼 두었고, 새 설치는 반드시 수동 승인으로만 진행한다.2
설치 전
SKILL.md와 실제 코드를 읽었다.exec,spawn, 과도한 파일 읽기, 알 수 없는 외부 호출, 난독화 흔적을 점검했다.6스킬은 신뢰 가능한 출처만 사용하며, 버전을 고정하고 자동 업데이트를 꺼 두었다.6
MCP 서버는 "무엇을 위해 필요한가"를 설명할 수 있고, URL·바이너리 출처와 권한 범위를 검토했다.7
시스템 전체에서
SKILL.md를 검색해 OpenClaw가 알고 있는 경로와 일치하는지 확인했다.7
관측성과 백업
openclaw security audit --deep를 실행했고, 중요한 경고가 남아 있지 않다.3인증 이벤트, 스킬 설치, 에이전트 액션, 네트워크 이벤트를 나중에 확인할 수 있게 로깅이 켜져 있다.2
야간 점검이나 정기 보안 검토가 일정으로 잡혀 있다. 조용히 지나가는 것보다, 정상 상태까지 보고되게 만들어 두었다.5
복구용 백업이 실제로 열리는지 확인했다. 백업은 "있다"보다 "복원된다"가 중요하다.
운영 중 점검 체크리스트
보안은 설치 순간에 끝나지 않는다. 어제 안전했던 구성이 오늘도 안전하다는 보장은 없다.
매일 점검
어제 새로 승인된 장치, pairing, 세션이 모두 내가 아는 것들이다.1
예상하지 않은 스킬 설치 기록이 없다.2
로그에서 이상한 인증 실패, 비정상적인 도구 호출, 예상 밖의 메시지 발송이 보이지 않는다.2
처음 보는 외부 도메인으로의 연결이 없다.7
그날 추가한 스킬이나 MCP는 운영에 넣기 전에 다시 한 번 검토했다.6
매주 점검
OpenClaw 최신 보안 업데이트와 공개된 취약점 공지를 확인했다.1
openclaw security audit --deep를 다시 실행했다.3identity.json또는 핵심 설정 파일 해시가 기준선과 일치한다.7설치된 스킬 목록과 실제 디렉터리를 대조했고, 설명되지 않는
SKILL.md가 없다.7MCP 서버 목록을 다시 보고, 지금도 필요한 것만 남겼다.7
에이전트별 권한을 다시 읽어 봤다. 읽기+네트워크+실행 권한이 한 에이전트에 과하게 몰려 있지 않다.7
크론, 셸 시작 파일, 심볼릭 링크,
authorized_keys, 시스템 서비스에 수상한 변경이 없다.79
매월 점검
불필요해진 스킬, MCP, 채널 연결, 오래된 pairing을 정리했다.
주요 토큰과 OAuth 범위를 검토했고, 가능한 것은 교체·축소했다.6
백업에서 샘플 파일 하나를 실제로 복원해 봤다.
한 번쯤은 "악성 스킬이 들어왔다면?"이라는 가정으로 테이블탑 점검을 해 봤다.5
사고 징후 빠른 판별표
아래 항목 중 하나라도 맞으면, "조금 이상하네" 단계로 넘기지 말고 사고 대응 표로 넘어간다.
내가 승인하지 않은 장치가 등록돼 있다.1
설치한 적 없거나 이름이 비슷한 수상한 스킬이 보인다.6
에이전트가 갑자기 외부 서버로 요청을 보내기 시작했다.7
.bashrc,.zshrc,authorized_keys,crontab, systemd/launchd, Git hooks에 모르는 변경이 생겼다.9모델 API 키, GitHub 토큰, 클라우드 자격 증명이 노출됐을 가능성이 있다.89
평소보다 훨씬 많은 자동 실행, 대량 메시지 발송, 의도하지 않은 파일 수정이 발생했다.
사고 후 체크리스트
여기서는 침착함보다 순서가 더 중요하다. 공격을 먼저 멈추고, 증거는 버리지 말고, 자격 증명은 아끼지 말고 바꾼다.
0~15분: 멈추기
게이트웨이를 중지하거나 외부 접근을 먼저 끊었다.810
dmPolicy를 일시적으로 닫거나, 새 pairing과 자동 실행을 멈췄다.1011의심 스킬은 즉시 비활성화하거나 격리 경로로 옮겼다. 바로 삭제하지는 않았다.9
화면 캡처, 로그, 의심 메시지, 설치 시각을 남겼다.89
사고 시작 추정 시각, 영향을 받은 장비, 채널, 에이전트를 적어 두었다.8
15~60분: 증거와 범위 확인
프로세스 목록, 네트워크 연결, Docker 상태, 최근 로그, 설정 파일, 세션 기록을 수집했다.8
어떤 파일을 읽었는지, 어떤 명령을 실행했는지, 어느 도메인으로 통신했는지 추적했다.9
악성 스킬의
SKILL.md와 관련 파일은 분석용 사본을 남겼다.9지속성 확보 흔적을 확인했다. 대상은
~/.bashrc,~/.zshrc,~/.profile,authorized_keys,crontab, systemd/launchd, Git hooks, 심볼릭 링크다.9네트워크 접근 권한이 있었던 스킬이라면 클라우드 감사 로그, CI/CD, 외부 SaaS 로그도 함께 살폈다.9
1~24시간: 자격 증명 교체와 복구
최우선으로 모델 API 키, 클라우드 키, GitHub/GitLab 토큰, 데이터베이스 비밀번호, SSH 키를 교체했다.9
이어서 CI/CD 비밀값, 패키지 레지스트리 토큰, 서드파티 API 키도 교체했다.9
오래된 토큰은 폐기했고, 새 비밀정보는 더 안전한 저장 방식으로 다시 넣었다.8
악용된 취약점이나 구버전 이슈를 패치한 뒤에만 복구를 진행했다.18
마지막으로 확인된 정상 백업 또는 깨끗한 커밋에서 필요한 파일을 복원했다.10
복구 전
openclaw security audit --deep를 다시 돌려 큰 경고가 없는지 확인했다.11
복구 후 7~30일 추적
최소 7일, 반복 사고였으면 30일 동안 재발 모니터링 일정을 유지한다.10
같은 문제가 3번 이상 반복되면 "주의"가 아니라 규칙과 자동 감시 수준을 올린다.10
이번 사고를 바탕으로 에이전트 규칙, 허용 권한, 검토 절차를 실제로 수정했다.10
사고 기록 양식
아래 빈칸은 실제로 써 두면 좋다. 기억은 흐려지지만, 기록은 다음 사고를 줄인다.
사건 요약
사고 번호: ______________________________
심각도: SEV-1 / SEV-2 / SEV-3 / SEV-4
최초 발견 시각: ______________________________
발견자: ______________________________
관련 스킬/MCP/에이전트: ______________________________
영향 범위: ______________________________
타임라인
________ : ______________________________________
________ : ______________________________________
________ : ______________________________________
________ : ______________________________________
잠재 노출 자산
모델 API 키
클라우드 자격 증명
Git 저장소 토큰
데이터베이스 계정
SSH 키
메신저 세션/채널 자격 증명
고객 데이터/문서
기타: ______________________________
완료 확인
증거 보존 완료
자격 증명 회전 완료
악성 스킬 격리 완료
복구 검증 완료
재발 방지 조치 반영 완료
다음 재점검 일정 등록 완료
절대 넘기면 안 되는 빨간 줄
아래 항목 중 하나라도 해당하면, "일단 써 보자"가 아니라 운영 시작 금지다.
게이트웨이가
0.0.0.0에 바인딩돼 있다.2인증 없이 외부에서 접속된다.2
DM 정책이
open이거나 그룹에서 멘션 없이 반응한다.3스킬 자동 설치가 켜져 있다.2
스킬 코드를 읽지 않고 설치한다.6
샌드박스 없이 고권한 도구를 기본값으로 켠다.35
개인 또는 회사의 메인 작업 환경에서 그대로 돌린다.4
최종 서명란
운영 시작 승인: ______________________________
승인 일시: ______________________________
다음 정기 점검일: ______________________________
사고 시 1차 연락 담당: ______________________________
참고
1BulwarkAI OpenClaw Security Hardening Checklist
2OpenClaw Hardening Checklist: 15 Steps to Secure Your Setup
4The OpenClaw Hardening Checklist - In-Depth Edition
5SlowMist OpenClaw Security Practice Guide
6OpenClaw Hardening Checklist: 15 Steps to Secure Your Setup
7BulwarkAI OpenClaw Security Hardening Checklist
8OpenClaw Incident Response Procedure
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.