MCP가 요새 굉장히 큰 화두이다. 난 gpt, copilot만 간간히 썼는데, mcp를 보고서 눈이 번쩍 뜨였다. blender mcp나 mcp-atlassian를 보면서 “와 이렇게까지 편해질 수 있구나” 싶었는데, 막상 실제로 사용하려니 “보안” 이라는 큰 벽을 마주했다.
MCP 사용 전 보안에 대해 먼저 생각하기
회사 팀 내에 Atlassian MCP를 공유했다가 팀원이 보안에 대해 짚어주셔서 중요성을 한 번 더 생각해볼 수 있게 되었다. 요새 MCP 보안 위험에 대해서도 많이 이야기되고 있는 상황에서 나조차 보안에 대해 깊게 생각치 못했다는 부분을 반성하게 됐다. 보안팀에게 문의 후에 간단한 POC를 진행하고 사용할 수 있을지 검증해보기로 했는데, POC를 진행하며 사용하면 안되겠다는 생각이 들었다.
그래서 이 글은 좀 더 보수적인 관점에서 MCP를 바라보며, 어떤 부분에서 보안을 더 고려할 수 있을지 정리해보는 시간을 가지기 위해 작성했다.
회사에서 Jira MCP 사용할 수 있을까?
회사 내부 시스템, 특히 지라(Jira)나 컨플루언스(Confluence) 같이 회사의 핵심 정보가 담겨있는 시스템에 MCP를 연결한다는 건, 그냥 내가 편하게 쓰기 위해서 도구 하나 연결하는 것 이상의 의미다. 특히 MCP 구조상 요청을 AI 모델에게 위임하는 형태인데, 이 말은 곧, 내가 평소 회사 네트워크 망 안에서만 처리하던 요청들이 외부로 흘러나갈 수 있다는 걸 의미한다.
POC를 진행하며 나의 결론은 도입하기에는 아직은 시기상조 이다. 라고 정리했다.
위험 요소 살펴보기
1. AI 모델의 결정을 신뢰할 수 있는가?
POC를 진행하며, 내가 진행중인 티켓을 조회했지만, 다른 사람의 티켓을 조회하는 경우가 몇 번 있었다. 이런 상황으로 짐작해볼 때, 내가 작업중인 티켓이 아닌 다른 티켓을 수정하는 상황이 발생할 수 있다.
Confluence의 경우 수정 이력을 확인할 수 있지만 지라 티켓에는 그런 기능이 없다. 티켓이 수정이 된 것인지 확인할 수 없고, 수정된 경우 되돌리기 쉽지 않다. POC를 진행하며 신뢰도가 떨어진다고 느꼈고, 이런 상황이 발생할 수 있다는 점에서 보안적으로도 위험하다고 생각했다.
프롬프트 명령어를 더 정확하게 작성하면 문제가 해결될 수 있지만, 그렇다고 하더라도 hallucination이 발생하지 않으리라는 보장은 없다.
2. AI 모델이 Jira 데이터를 학습해도 되는가?
내 데이터가 AI 모델 학습에 이용될 수 있다는 점을 유의해야 한다. 현재 MCP를 사용할 수 있는 클라이언트 중 많은 클라이언트에서 AI 모델을 선택할 수 있다. 이 중에서 개인 데이터가 학습되지 않는 모델을 선택할 수 있지만, 그럼에도 불구하고 개인 데이터가 학습되는 모델을 선택할 가능성도 존재한다.
어떻게 보안적으로 접근할 수 있을까?
이 Jira mcp를 사용하기 위해 어떻게 할 수 있을까? 보통 회사에서는 회사 네트워크 망 또는 식별할 수 있는 망에서만 요청을 처리할 수 있도록 하는 기본적인 보안 처리를 하는데, 요청 자체를 AI model들에게 위임해버리는 MCP라면? 어떻게 처리가 필요할까?에 대해 생각했을 때 얕은 생각밖에 떠오르지 않았고..🥲 그래도 정리해본다.
- 필요한 기능만 포함한 Jira MCP 자체 제작하기
- 위험한 기능(삭제, 대량 조회 등)은 애초에 제외하고, 정말 필요한 기능만 주입하기 위해서 직접 만드는 게 더 나을 것 같다.
- 직접 MCP를 구현한 후, Jira 태스크의 정보와 환경변수 정보가 동일한 경우에만 수정, 생성이 가능하도록 하도록 설정하기
- MCP Client 직접 만들기
- 클라이언트에서 선택할 수 있는 모델을 제어하여 보안적으로 살펴야할 범주를 좁히기
- 신뢰할 수 있는 MCP 사용하기
- 지속적으로 유지 보수가 가능할 공식 버전 MCP 사용하기
- OAuth 2.1 지원하는 MCP 서버 사용하기
- 25.03.26 MCP 사양이 업데이트 되어 OAuth 2.1 사양을 추가했다. Model Context Protocol - specification - Authorization
- 새로운 사양을 통해 MCP 클라이언트와 서버는 OAuth 2.1을 활용하여 권한을 위임할 수 있다. auth0 - An Introduction to MCP and Authorization
마무리하며
회사에 다니고 있는 개발자로서 업무와 관련된 부분의 편의성을 높이는 게 제일 와닿을 수 밖에 없다. 하지만 그 만큼 실이 클 수 있다는 것을 유념하며, 편의성 보다도 “보안”을 더 중요하게 생각해야할 때인 것 같다. 일단은 개인적으로만 MCP를 사용해보면서 추이를 좀 더 살펴보아야겠다.
결국, 편리함은 결과적으로 보안을 담보할 때 더 가치 있다는 걸 배웠다. AI 도구들이 빠르게 발전하는 만큼, 이런 고민과 준비가 선행돼야 조직 전체가 안전하게 성장할 수 있을 거라고 생각한다.