−25%

Windows 연간 결제, 10월 31일까지. 요금제 보기

EQVPS

VPS에서 셀프 호스팅 AI 에이전트 보안 강화하기

2026년 9월 26일 · 3 분 읽기 · EQVPS Team

전통적인 웹 앱은 코드에 쓰인 대로 동작합니다. AI 에이전트는 코드에 쓰인 것에 더해 자신이 읽은 글이 설득하는 모든 것을 합니다. 셸과 API 키와 예산을 주고 열린 인터넷에 풀어 놓으면, 새로운 것을 만든 셈입니다. 사회 공학으로 조종할 수 있는 프로세스 말입니다. 해법은 편집증이 아니라, 최소 권한이라는 오래된 시스템 관리자의 습관을 아주 말 많은 프로그램에 적용하는 것입니다.

실제 위협을 알아 두세요

아래의 모든 것은 이런 일이 일어날 가능성을 줄이거나, 일어났을 때의 대가를 줄입니다.

1. 에이전트에게 전용 서버와 전용 사용자를

코드를 실행하거나 웹을 탐색하는 에이전트는 운영 데이터베이스 옆이 아니라 별도의 VPS에서 돌리세요. 그 서버에서도 절대 root로 실행하지 마세요.

adduser --disabled-password --gecos "" agent
mkdir -p /home/agent/work && chown agent:agent /home/agent/work

sudo 없음, 다른 서버로의 SSH 키 없음, 필요 없는 것에 대한 접근 없음.

2. systemd로 샌드박스에 가두기

systemd는 컨테이너 없이도 프로세스에 울타리를 칠 수 있습니다. 에이전트는 시스템을 읽을 수 있지만 작업 디렉터리에만 쓸 수 있습니다.

# /etc/systemd/system/agent.service
[Unit]
Description=AI agent
After=network-online.target

[Service]
User=agent
WorkingDirectory=/home/agent/work
EnvironmentFile=/home/agent/.agent.env
ExecStart=/home/agent/venv/bin/python run_agent.py
Restart=on-failure
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=read-only
ReadWritePaths=/home/agent/work
PrivateTmp=yes
PrivateDevices=yes
MemoryMax=2G

[Install]
WantedBy=multi-user.target

ProtectSystem=strict는 ReadWritePaths를 제외한 파일 시스템 전체를 읽기 전용으로 만듭니다. MemoryMax는 폭주한 작업 하나가 서버를 쓰러뜨리지 못하게 합니다. systemd-analyze security agent로 결과를 확인하세요. 유닛에 점수를 매기고 아직 열려 있는 부분을 나열해 줍니다.

3. 키는 유출될 것이라고 가정하세요

4. 살 수 있는 것을 제한하기

에이전트가 돈을 쓸 수 있다면 한도는 에이전트 바깥에 있어야 합니다. EQVPS에서는 에이전트가 MCP 서버 또는 REST API를 통해 계정의 선불 잔액으로 서버를 주문하고 연장하므로, 잔액이 엄격한 한도가 됩니다. 전체 예산이 아니라 잃어도 괜찮은 금액만 충전하세요. 다른 서버를 볼 필요가 없다면 에이전트에게 별도 계정을 주세요.

5. 되돌릴 수 없는 작업 앞에 사람을 두기

데이터 삭제, 송금, main으로의 push, 고객에게 이메일 보내기. 이런 작업은 확인 단계를 거치게 하세요. 승인 버튼이 달린 Telegram 메시지면 충분합니다. 읽기 전용 도구는 자유롭게 돌리고, 쓰기 도구는 천천히 신뢰를 쌓게 하세요.

6. 나가는 길을 좁히기(감당할 수 있다면)

나가는 트래픽의 허용 목록은 비밀을 빼내는 일을 훨씬 어렵게 만듭니다.

ufw default deny outgoing
ufw allow out 53          # DNS
ufw allow out 443/tcp     # HTTPS APIs
ufw allow out 80/tcp      # package mirrors
ufw default deny incoming && ufw allow 22/tcp && ufw enable

솔직히 이것은 대부분의 사람이 포기하는 단계입니다. 웹을 탐색하는 에이전트는 임의의 HTTPS가 필요하고, 그러면 포트 단위의 허용 목록은 별 도움이 되지 않습니다. 고정된 API 몇 개만 호출하는 에이전트라면 해 볼 만합니다.

7. 로그와 되돌아갈 길을 남기기

모든 도구 호출을 인자와 함께 기록하세요. 에이전트를 새로운 일에 풀어 놓기 전에 스냅샷을 찍으세요. Managed Backups는 매일의 복원 지점과 필요할 때 찍는 스냅샷을 제공하므로, 끔찍한 오후를 보내더라도 재구축이 아니라 복원으로 끝납니다.

솔직한 결론

이 중 어떤 것도 에이전트를 맹목적으로 믿어도 될 만큼 안전하게 만들지는 않습니다. 대신 틀려도 비용이 적게 들게 합니다. 전용 서버에서, 전용 사용자로, 한도가 정해진 잔액과 범위를 좁힌 키를 가진 침해된 에이전트는 작고 복구 가능한 피해만 줄 수 있습니다. 그것이 현실적인 목표입니다. 새 VPS 보안 설정의 기본부터 시작하고, 그 위에 위에서 설명한 에이전트 전용 계층을 더하세요.

FAQ

서버에서 AI 에이전트를 돌릴 때 가장 큰 위험은 무엇인가요?

프롬프트 인젝션입니다. 에이전트가 자신이 쓰지 않은 글(웹 페이지, 이메일, 이슈 댓글)을 읽는데, 그 글이 환경 변수를 출력하거나 명령을 실행하는 것처럼 여러분이 시키지 않은 일을 하라고 지시합니다. 이 가이드의 나머지는 모두 그런 일이 생겼을 때 피해를 줄이는 방법입니다.

에이전트를 root로 실행해야 하나요?

절대 안 됩니다. sudo 권한이 없는 비특권 전용 사용자를 주고, systemd 샌드박스로 쓸 수 있는 위치를 제한하세요. 속아서 파괴적인 명령을 실행하더라도 자신의 작업 디렉터리만 망가뜨릴 수 있습니다.

에이전트가 돈을 너무 많이 쓰지 않게 하려면?

에이전트 바깥에 있는 엄격한 한도를 쓰세요. 모델 공급자 키에는 지출 한도를, 에이전트가 살 수 있는 것에는 선불 잔액을 둡니다. EQVPS에서는 에이전트가 계정 잔액에서 결제하므로 잔액 자체가 한도입니다. 잃어도 괜찮은 금액만 충전하고, 그 이상은 넣지 마세요.

프롬프트 인젝션을 완전히 막을 수 있나요?

아니요. 현재로서는 믿을 만한 필터가 없습니다. 효과가 있는 것은 피해 범위를 줄이는 것입니다. 최소 권한 도구, 파괴적이거나 유료인 작업에 대한 사람의 승인, 에이전트 컨텍스트에 비밀을 두지 않기, 그리고 검토할 수 있는 로그.

에이전트용으로 VPS를 따로 둘 가치가 있나요?

에이전트가 코드를 실행하거나 웹을 탐색한다면 있습니다. 작은 전용 서버는 에이전트를 데이터베이스, 다른 프로젝트, 인증 정보로부터 떼어 놓습니다. 침해되더라도 서버 한 대만 다시 만들면 되고, 전체 환경을 다시 만들 필요는 없습니다.

← 블로그로 돌아가기요금제와 가격 보기 →

댓글

아직 댓글이 없습니다. 첫 번째가 되세요.

댓글 남기기

댓글은 표시되기 전에 검토됩니다.