하네스를 안전하게 쓰는 아홉 가지 방법
안녕하세요! 재니미입니다.
지난 글 「하네스는 지키는 곳이자 뚫리는 곳이다」에서 권한·설계구성·행동·구조·책임소재, 다섯 가지 보안 리스크를 봤습니다. 리스크를 안다고 저절로 안전해지지는 않으니, 이번 글에서는 ASD·ACSC 가이드가 제시한 실제 대응 방법 아홉 가지를 봤습니다.
아홉 가지 방법
| 방법 | 요지 |
|---|---|
| 통제된 환경에서 돌리기 | 작업에 필요한 도구·권한만 담고, 프로덕션·민감 데이터 접근을 제한 |
| 보안 코딩·검증 규칙 적용 | 위험한 행동 금지, 도구 입출력 검증, 민감한 작업은 사람 승인 필수 |
| 결과물은 쓰기 전에 검증 | 그럴듯하게 읽힌다고 맞는 게 아님. 책임은 결국 사람에게 있음 |
| 비용 통제·모니터링 | 이상 소비를 감지하면 오남용·폭주·공격의 신호일 수 있음 |
| 빠짐없는 감사 로그 | 프롬프트·응답·도구 호출·승인·설정 변경까지 전부 기록 |
| 신뢰할 수 있는 모델 선택 | 모델 자체의 안전장치를 하네스 통제의 대체재로 쓰지 않음 |
| 최소한의 컨텍스트만 유지 | 낡은 내용은 요약 대신 삭제. 중요한 사실은 별도로 저장 |
| 탐색은 서브 에이전트로 격리 | 범위를 좁힌 서브 에이전트에만 권한을 줘서 노출을 제한 |
| 상시 규칙 파일 유지 | 표준·금지 사항·빌드 명령을 매 세션 읽는 파일로 고정 |
하나씩 보면 이렇습니다.
- 통제된 환경에서 돌리기: 작업에 필요한 도구와 권한만 담고, 프로덕션 시스템·민감 데이터·네트워크 서비스 접근을 제한합니다. 3편에서 본 실행 환경과 권한 시스템을 처음부터 좁게 잡아두라는 뜻입니다. 예를 들어 프로덕션 데이터베이스에 에이전트를 직접 붙이는 대신, 복제본이나 별도로 격리된 환경에서 먼저 돌리는 식입니다.
- 보안 코딩·검증 규칙 적용: 하네스가 조직의 보안 코딩 기준을 따르게 하고, 위험한 행동을 금지하고, 도구의 입력값과 출력값을 검증합니다. 민감하거나 영향이 큰 작업은 사람 승인을 요구합니다.
- 결과물은 쓰기 전에 검증: 에이전트의 결과물과 행동은 실제로 쓰기 전에 검토·테스트·정식 승인을 거쳐야 합니다. 그럴듯하게 읽힌다고 맞는 걸로 취급하면 안 됩니다. 하네스가 초안을 쓰고 행동까지 할 수는 있지만, 결과에 대한 책임은 여전히 사람에게 있습니다.
- 비용 통제와 모니터링: API에 비용 한도를 걸어두고 소비량을 지켜봅니다. 에이전트 세션은 챗봇 한 번 주고받는 것보다 훨씬 비용이 많이 드는데, 이 소비량을 모니터링하면 오남용, 침해, 폭주하는 루프, 디나이얼오브월렛(비용 소진 공격) 같은 이상 신호를 미리 잡아낼 수 있습니다. “폭주하는 루프”는 2편에서 “언제 끝날지도 모델이 정한다”고 했던 부분이 잘못됐을 때 생깁니다. 모델이 끝났다는 판단을 못 내리고 같은 도구를 계속 반복 호출하면, 그 세션 하나가 순식간에 큰 비용을 태울 수 있습니다.
- 빠짐없는 감사 로그: 프롬프트, 응답, 도구 호출, 승인, 행동, 보안 이벤트, 설정 변경까지 전부 기록합니다. 4편에서 본 책임소재 리스크를 줄이는 방법이 결국 이것입니다.
- 신뢰할 수 있는 모델 선택: 작업에 맞는, 출처와 한계와 보안 특성을 파악한 모델을 씁니다. 모델 자체의 안전장치를 하네스가 강제하는 통제의 대체재로 쓰면 안 됩니다. 예를 들어 “이 모델은 위험한 요청을 스스로 거부하니까”라는 이유로 3편의 권한 시스템을 느슨하게 짜도 된다는 뜻이 아닙니다.
- 최소한의 컨텍스트만 유지: 작업과 관련 없어진 정보는 정리합니다. 여기서 흥미로운 지점이 하나 있는데, 컨텍스트를 줄여야 할 때 요약이 아니라 삭제를 권장합니다. 요약은 기록을 다시 쓰는 과정이라 새로운 오류가 섞여 들어갈 위험이 있기 때문입니다. 오래 남아있던 대화는 통째로 지우고, 꼭 필요한 사실이나 결정은 미리 별도 메모리나 파일에 저장해뒀다가, 짧은 요약 하나로 새 세션을 시작하는 쪽을 권장합니다.
- 탐색은 서브 에이전트로 격리: 범위를 좁힌 작업은 별도의 서브 에이전트를 만들어서 처리하고, 이걸 적극 활용합니다. 최소 권한 원칙에 따라 서브 에이전트에는 그 작업에 필요한 도구·권한·컨텍스트만 줍니다. 4편에서 “멀티 에이전트는 한 몸으로 취급하라”고 했던 것과 배치되는 게 아니라, 오히려 그 신뢰 범위 자체를 작게 유지하는 방법에 가깝습니다. 신뢰할 수 없는 내용에 노출되는 범위를 줄이면서, 메인 세션은 작게 유지해 보안 리스크·운영 비용·컨텍스트 저하를 함께 줄일 수 있습니다.
- 상시 규칙 파일 유지: 하네스가 지켜야 할 표준, 하면 안 되는 것, 빌드·테스트 명령 같은 걸 조직 차원에서 하나의 파일에 적어두고 매 세션 읽게 합니다. 매번 같은 정보를 다시 알아내지 않아도 되고, 하네스의 행동이 더 일관되고 검토하기 쉬워집니다. 여러분이 쓰는 저장소의
AGENTS.md가 정확히 이 역할을 하는 파일입니다.
이 가이드에는 실제로 손을 대는 사람을 위한 이 아홉 가지 말고도, 그걸 승인하고 책임지는 의사결정자를 위한 질문 목록이 따로 있습니다. 그건 번외편으로 이어가겠습니다.
감사합니다.