2024년 10월 부터 새로운 팀으로 발령을 받게 되었다. 새로운 팀에 들어가게 되면 항상 무엇을 하는 팀인지 파악하는데 시간이 걸린다.
내가 어떤 기능을 개발해야하고 왜 필요한지를 알려면 도메인 분석은 필수이다. 업무에 적응하는 시간을 최소화하고, 더 나은 소프트웨어를 만들기 위해 팀이 변경 되기 전에 새로 들어가는 팀의 도메인을 스스로 분석해 보고 내가 회사에 어떻게 기여할 수 있는지에 대해 고민해 보았다. 이 글을 보는 여러 개발자들도 일을 하기 전에 도메인 분석이 필요하다는 것을 알았으면 좋겠다.
Software Defined Perimeter(SDP)는 보안 프레임워크로, 네트워크 자산에 대한 접근을 제한하고 인증된 사용자나 기기만이 접근할 수 있도록 설계된 보안 모델입니다. SDP는 전통적인 네트워크 보안 모델과 달리 네트워크 인프라를 숨기고, 네트워크 경계를 정의하여 미리 인증된 사용자에게만 네트워크에 접속할 수 있는 권한을 부여합니다.
SDP는 주로 제로 트러스트 보안 원칙을 따르며, 다음과 같은 핵심 개념을 포함합니다.
제로 트러스트 : 네트워크 내부와 외부를 구분하지 않고, 모든 사용자와 기기를 신뢰하지 않으며, 지속적인 인증 및 권한 부여를 요구합니다.
인증 후 접근 : 사용자나 기기가 먼저 인증 되어야만 네트워크 자산에 접근할 수 있으며, 접근 권한이 부여된 자산 외에는 숨겨집니다.
동적 터널링 : 사용자가 인증이 되면, 네트워크 자산에 대한 임시적이고 동적인 터널링을 통해 필요한 자원에만 접근할 수 있습니다.
네트워크 숨김 : 네트워크 자산과 서비스가 외부에 노출되지 않으며, 인증되지 않는 사용자는 네트워크 자체를 볼 수 없습니다.
SDP는 주로 원격 근무 환경에서 안전한 접속, 클라우드 보안, 분산 네트워크 보안 등에 사용되며 VPN(가산 사설망)이나 방화벽에 비해 더 정교하고 세분화된 보안 제어를 제공합니다.
SDP 라는 약어가 만들어진 이유는, 이 기술이 네트워크 보안 경계를 전통적인 방식과는 다르게 스포트웨어적으로 정의하고, 관리하는 개념을 표현하기 위해서 입니다. 약어가 만들어진 이유는 아래와 같은 배경에 있습니다.
전통적 네트워크 보안 모델의 한계
기존의 네트워크 보안 모델은 물리적 장치(방화벽, VPN 등)에 의해 네트워크 경계(Perimeter)를 정의했습니다. 이 모델은 네트워크 내부와 외부를 구분하여 내부는 신뢰할 수 있고, 외부는 신뢰할 수 없다는 가정 하에 작동하였습니다. 하지만 오늘날의 분산형 클라우드 환경, 원격 근무 등의 환경에서는 이 가정이 유효하지 않으며, 네트워크 경계 자체가 모호해졌습니다.
소프트웨어 정의 네트워크 발전
SDN(Software Defined Networking)과 같은 기술의 발전으로 네트워크 관리 및 제어가 하드웨어가 아닌 소프트웨어에서 이루어지게 되면서, 보안의 경계를 하드웨어가 아닌 소프트웨어적으로 유연하게 정의할 필요성이 생겼습니다. SDP는 이러한 SDN 개념을 보안에 적용한 것으로, 네트워크 자산에 대한 접근을 소프트웨어적으로 정의하고 관리합니다.
Perimeter의 중요성
Perimeter 라는 단어는 전통적인 네트워크 보안 개념에서 경계를 의미합니다. SDP는 경계가 더 이상 물리적이지 않으며, 소프트웨어를 통해 동적으로 정의되고 관리될 수 있음을 나타내고자 합니다. 즉, 네트워크 자산과 그 접근 경계는 소프트웨어적으로 제어되며, 접근 권한이 없는 사용자에게는 네트워크 자산이 보이지 않거나 숨겨진 상태로 유지됩니다.
소프트웨어에 의한 제어
SDP는 보안을 하드웨어에 의존하지 않고 소프트웨어로 정의하고 관리하기 때문에 Software Defined 라는 이름을 붙였습니다. 소프트웨어는 기존 하드웨어 기반 보안 솔루션보다 유연하고 확장 가능하며, 클라우드 환경에서도 쉽게 적용할 수 있습니다.
이러한 배경에서 “Software Defiend Perimeter(SDP)“라는 이름이 탄생했고, 이는 소프트웨어를 통해 동적으로 보안 경계를 정의하고, 사용자 접근을 통제하는 방식을 정확히 설명하는 용어 입니다.
SDP와 VPN 둘 다 원격지 사용자가 네트워크 리소스에 안전하게 접근할 수 있도록 해주는 기술이지만, 그 접근 방식과 모델에서 큰 차이를 보입니다.
VPN : 전통적인 보안 모델로, 사용자가 한 번 인증되면 네트워크 전체에 대한 접근 권한을 부여하는 방식입니다. 즉 신뢰와 비신뢰 경계를 네트워크 자체에 설정하고, VPN에 접속하면 내부망 리소스에 접근이 가능합니다.
SDP : 제로 트러스트 보안 모델을 따릅니다. 모든 사용자는 처음부터 신뢰하지 않으며, 사용자가 먼저 인증을 받은 후에야 특정 리소스에만 접근 권한이 부여됩니다. 네트워크 자체는 사용자가 인증되기 전까지 숨겨져 있으며, 인증 후에 필요한 자원에만 제한적으로 접근할 수 있습니다.
VPN : 사용자는 VPN 서버에 연결된 후, 전체 네트워크 내부 자원에 접근할 수 있게 됩니다. 이로 인해 불필요한 네트워크 리소스에도 접근할 수 있는 과도한 권한이 부여될 수 있습니다.
SDP : 사용자는 인증 후에 필요한 리소스에만 접근할 수 있습니다. 즉, 필요한 자원에만 연결이 가능하고 다른 리소스는 숨겨져 있어 접근 자체가 불가능합니다.
VPN : 네트워크 경계는 고정적입니다. 즉, 내부 네트워크와 외부 네트워크가 구분되며, VPN 연결을 통해 외부 사용자가 내부 네트워크에 접근하는 구조입니다. VPN은 네트워크를 통째로 노출할 위험이 있습니다.
SDP : 동적 경계를 설정합니다. 네트워크의 경계는 고정되지 않고 사용자의 인증 상태와 필요에 따라 동적으로 변합니다. 인증되지 않은 사용자에게는 네트워크 리소스 자체가 보이지 않게 숨겨지며, 인증 후에만 필요한 자산에 접근할 수 있습니다.
VPN : 한 번 접속되면 사용자는 네트워크의 모든 자산에 대해 가시성을 갖습니다. 즉, 사용자가 내부 네트워크를 탐색할 수 있습니다.
SDP : 네트워크 자산은 사용자가 인증 받기 전에는 완전히 숨겨진 상태에 있습니다. 즉, 인증 받지 않은 사용자는 네트워크의 존재 자체를 인식하지 못합니다.
VPN : 접근 제어가 상대적으로 덜 세분화됩니다. 사용자는 VPN 연결이 허용된 후 네트워크 자산 전체에 접근할 수 있으며, 세밀한 제어가 어렵습니다.
SDP : 세밀한 접근 제어를 지원합니다. 각 사용자는 인증 절차를 통해 개별 리소스에만 접근 권한을 부여받기 때문에, 접근 제어가 더 유연하고 구체적입니다.
VPN : VPN은 전통적으로 내부 네트워크를 신뢰하고 외부 네트워크에만 비신뢰로 간주하는 모델을 사용합니다. 이는 제로트러스트 원칙과는 맞지 않으며, 내부자 위협에 취약할 수 있습니다.
SDP : 제로 트러스트 모델을 기반으로 하여 네트워크 내부와 외부를 구분하지 않고, 모든 접근 요청에 대해 인증과 권한 부여를 요구합니다. 이는 더 안전한 보안 모델로, 내부자 위협에도 대응할 수 있습니다.
VPN : 보안 정책은 주로 VPN 연결 전에 설정되며, 연결 후에는 상대적으로 제한적인 정책 적용만 가능합니다. 사용자의 권한이나 접근을 실시간으로 동적으로 조정하기 어렵습니다.
SDP : 동적 보안 정책을 적용할 수 있습니다. 사용자의 역할, 위치, 장치 상태 등에 따라 실시간으로 정책을 조정할 수 있으며, 접속 중에도 필요에 따라 접근 권한을 변경할 수 있습니다.
VPN : VPN은 물리적 네트워크에 의존하기 때문에 대규모 네트워크나 분산된 환경에서 확장하기 어렵고, 사용자가 많을수록 성능 저하나 관리 복잡성이 커질 수 있습니다.
SDP : 클라우드 친화적이며, 분산된 네트워크 환경에서 확장성이 뛰어납니다. 네트워크 트래픽을 중앙화 하지 않고 사용자와 자원 간 직접적 연결을 설정할 수 있어, 보다 효율적입니다. (정말 그러한가 ?)
VPN : VPN은 모든 트래픽을 본사 네트워크로 라우팅하여 보안 문제를 해결하는 방식인데, 이는 클라우드 기반 애플리케이션에 적합하지 않고, 네트워크 성능을 저하시킬 수 있습니다.
SDP : 클라우드 및 원격 근무 환경에 적합한 방식으로, 사용자는 위치에 상관없이 인증된 자원에만 접근할 수 있고, 클라우드 기반 애플리케이션과의 호환성이 뛰어납니다.
VPN : VPN 설정과 배포에는 고정된 네트워크 인프라와 복잡한 설정이 필요하며, 특히 분산된 환경에서 배포가 번거로울 수 있습니다.
SDP : SDP는 소프트웨어 기반으로 동작하며, 빠른 배포와 설정이 가능하고, 확장성과 유연성이 높습니다.
VPN은 전통적인 네트워크 보안 모델로, 사용자가 네트워크에 한 번 연결되면 전체 네트워크에 대한 접근이 가능하다는 점에서 보안에 취약할 수 있습니다.
SDP는 더 발전된 보안 모델로, 제로 트러스트 원칙을 따르고, 사용자에게 필요한 자원만 접근할 수 있도록 하는 세분화된 제어와 동적 네트워크 경계를 제공합니다.