피드로 돌아가기
Dev.toSecurity
원문 읽기
정책적 약속 대신 Architectural Constraint로 구현한 뱅킹 데이터 보안 설계
Is it safe to connect my bank account to AI?
AI 요약
Context
AI 어시스턴트에 민감한 은행 데이터를 연결할 때 발생하는 신뢰성 및 보안 취약점 해결이 필요함. 단순한 보안 정책 선언이 아닌, 시스템 구조적으로 공격 벡터를 원천 차단하는 하드웨어적 제약 수준의 아키텍처 설계가 요구되는 상황임.
Technical Solution
- Plaid OAuth flow 기반의 Scoped Access Token 체계 도입을 통한 뱅킹 자격 증명(Credentials)의 서버 비저장 구조 설계
- Money-movement 관련 코드 경로를 완전히 배제한 Read-only MCP server 구현으로 Prompt Injection을 통한 무단 송금 가능성을 원천 차단
- Postgres Row-Level Security(RLS) 적용을 통한 애플리케이션 레이어의 필터링 버그와 무관한 데이터 격리 보장
- Fernet(AES-128-CBC + HMAC-SHA256) 기반의 At-rest Encryption 및 Google Cloud Secret Manager를 통한 런타임 키 주입 방식 채택
- MCP(Model Context Protocol) 표준 기반의 좁은 Tool Surface 설계를 통해 AI의 네트워크 자원 접근 및 외부 데이터 유출 경로 제거
실천 포인트
1. 권한 제어가 필요한 데이터 테이블에 DB 레벨의 RLS(Row-Level Security)가 적용되어 있는가
2. 비즈니스 로직상 불필요한 API 엔드포인트나 코드 경로가 잔존하여 잠재적 공격 벡터가 되고 있지는 않은가
3. 외부 연동 시 자격 증명을 직접 관리하지 않고 Scoped Token 방식의 위임 인증을 사용하고 있는가
4. AI Tool 설계 시 Action Surface를 최소화하여 Prompt Injection 시의 피해 범위를 제한했는가