zero-trust

2 posts

네트워크 근접성은 신원이 아니다: 서비스가 주변 권한 없이 인증하는 방법

대부분의 서비스 간 신뢰는 암호학적 증명이 아닌 네트워크 위치에서 비롯된다. 다음은 권능, mTLS, SPIFFE를 통해 서비스가 주변 권한 없이 인증하는 방법과 그것이 예상보다 어려운 이유다.

당신의 마이크로서비스는 VPC를 공유하므로 서로를 신뢰한다. 이 신뢰는 주변 권한이다. 서비스를 호출할 수 있는 권한은 암호학적 증명이 아닌 네트워크 토폴로지에 의해 부여된다. 경계를 침범한 공격자는 이 모든 권한을 그대로 물려받는다. 서비스는 주변 권한 없이도 충분히 인증할 수…

만약 모든 함수가 권한을 가정하지 않고 명시적으로 전달받아야 한다면?

대부분의 코드는 주변 권한(ambient authority) 하에서 실행된다: 모든 함수가 모든 것에 접근할 수 있다. 기능 기반 보안(capability-based security)은 함수가 명시적이고 범위가 제한된 권한을 전달받도록 강제함으로써 이 모델을 뒤집는다.

함수는 같은 프로세스 안에 존재한다는 이유만으로 데이터베이스, 결제 게이트웨이, 감사 로그에 모두 접근할 수 있다. 공격자가 하나의 HTTP 핸들러에서 인젝션 버그를 발견하면, 그 모든 권한을 그대로 물려받는다. 이 함수는 이런 권한을 요청한 적 없다. 단지 배치된 위치 덕분에 마치…