시맨틱 레이어 vs MCP: ERP 보안 리스크
많은 아키텍트들이 MCP를 통해 LLM이 엔터프라이즈 시스템에 연결할 수 있는 능력을 높게 평가합니다. 하지만 그들은 중대한 리스크를 간과하고 있습니다. 악의적인 프롬프트가 ERP에서 실제 쓰기(write) 작업을 트리거할 수 있다는 점입니다. 이는 경고나 사람의 검토 없이 발생합니다.
시맨틱 레이어와 MCP의 차이점을 반드시 이해해야 합니다.
시맨틱 레이어는 LLM과 데이터 사이에 위치합니다. 이는 메트릭과 KPI를 노출합니다. 또한 읽기 전용(read-only)입니다. LLM이 실수를 하더라도, 이미 볼 권한이 있는 데이터만 읽게 됩니다. 따라서 피해가 미미합니다.
MCP는 다릅니다. MCP 서버는 실제 작업을 실행합니다. 레코드를 업데이트하거나, 가격을 변경하거나, 주문을 승인할 수 있습니다. 바로 이 지점에 위험이 존재합니다.
사용자가 프롬프트를 주입(inject)하면, LLM은 악의적인 의도를 가진 유효한 MCP 명령을 내릴 수 있습니다.
실패 사례:
- 공격자가 AI 어시스턴트에 프롬프트를 주입합니다.
- 프롬프트가 LLM에게 모든 제품 가격을 0으로 설정하라고 지시합니다.
- MCP 서버는 가격을 업데이트하라는 유효한 명령을 수신합니다.
- ERP가 변경 사항을 실행합니다.
- 누군가 알아차리기도 전에 수천 건의 주문이 0원 가격으로 들어옵니다.
이를 방지하기 위해, 모든 MCP 쓰기 작업에는 세 가지 제어 장치가 필요합니다:
프롬프트 검증 (Prompt Validation) 명령이 MCP 서버에 도달하기 전에 검증하십시오. 작업이 사용자의 목표와 일치하는지 확인하십시오. 값이 안전한 범위 내에 있는지 확인하십시오. 프롬프트를 신뢰할 수 없는 입력값으로 취급하십시오.
스키마 강제 (Schema Enforcement) MCP 서버는 엄격한 계약(contract)을 사용해야 합니다. 허용되는 파라미터를 정확하게 정의하십시오. 한 번에 하나의 가격만 업데이트하는 도구가 대량 업데이트를 수행하는 도구보다 안전합니다.
휴먼 인 더 루프 (Human-in-the-loop, HITL) 가격이나 재고와 같은 중요한 데이터는 사람의 승인이 필요합니다. 에이전트는 요청을 제출하고 대기해야 합니다. MCP 서버가 명령을 실행하기 전에 반드시 사람이 승인해야 합니다. LLM이 이 관문을 우회하게 두지 마십시오.
또한 완전한 관측성(observability)이 필요합니다. 모든 쓰기 작업에는 감사 추적(audit trail)이 있어야 합니다. 누가 시작했는지, 어떤 프롬프트가 사용되었는지, 검증 결과는 어떠했는지, 그리고 누가 승인했는지를 추적해야 합니다.
데이터 읽기에는 시맨틱 레이어를 사용하십시오. 데이터 쓰기에는 MCP를 사용하십시오. 하지만 검증, 엄격한 스키마, 그리고 사람의 승인 없이는 절대로 MCP가 ERP에 접근하게 해서는 안 됩니다.
거버넌스는 엔터프라이즈 AI의 근간입니다.
선택 사항 학습 커뮤니티: https://t.me/GyaanSetuAi