네트워크 기초 이론 6편

Owon·2023년 9월 11일
0
post-thumbnail

(Application) Proxy

라우터와 스위치들은 구조가 Inline / Inline이지만 Out of path로 구현한 것, 그리고 Proxy로 부르는 형식이 있다.
PC가 인터넷에 연동이 되어있다고 가정을 했을 때, naver에 접속을 한다면, HTTPS와 TCP/IP로 통신을 했을 것이다. 이때 통신을 위해 Socket이 사용된다. 만약 PC와 인터넷 사이에 PC2가 프록시로 설정됐다면, PC는 PC2에 연결이 되고, PC2가 인터넷에 연결이 된다. Proxy의 사전적 정의는 대리자이기에, 네트워크에서의 역할 또한 대리로(한번 거쳐서) 통신을 할 수 있도록 도와준다.
Proxy의 역할은 Inbound로 들어온 데이터를 Socket#1로 받았을 때, Proxy는 Socket#2에게 똑같은 내용을 전달하여 Outbound되도록 도와준다. 이는 “우회하다”와 흡사한 개념이다.
특정 프로그램이 프록시 역할을 한다라고 한다면, 이를 Usermode Application Proxy라고 부른다.

외울 것
Usermode Application Proxy -> Socket Stream -> Inline + Out of path -> Packet

Proxy의 활용 #1: 우회

프록시 설정을 한다면, PC단에서 특정 주소에 접근을 했을 때 직선적으로 접속하는 것이 아닌, TCP연결이 프록시를 먼저 접속한다음 두번째 TCP를 통해 해당 사이트에 접속하게 된다. 만약 프록시의 주소가 다른 나라가 된다면, 접속한 사이트에선 다른나라에서 HTTP요청을 했다고 인식한다. 이는 VPN으로 우회하는 방식의 기본적인 작동원리와 흡사하다.
프록시를 사용한다면, 프록시에서 모든 통신을 감청할 수 있다. 프록시 서버를 운영하는 측에선 모든 데이터를 읽을 수 있기에 보안적으로 고려를 해야할 수준이 많다.
VPN은 네트워크 수준에서 많이 쓰고, Proxy는 웹 수준에서 많이 쓴다고 한다.

Proxy의 활용 #2: 분석

Web을 사용할 때 HTTP요청을 하게되면 인터넷상에서 모든 요청이 노출되기 마련이다. 이를 보호하기 위해 HTTPS를 이용해 보안처리를 해준다. Wireshark는 필터처럼 TCP/IP와 Driver사이에 위치한다. 하지만 필터링을 해주진 않고 Sensor로서 분석만 한다. 웹 요청을 처리할 때 소켓을 통해 TCP/IP -> Wireshark로 넘어오게 되는데, 이때 https로 암호화처리를 했다면, Wireshark에서 암호화된 HTTP요청을 분석하기엔 애매한 부분이 많다. Packet에선 이미 암호화되어있기에 분석이 힘들어져서, Socket 단계에서 Stream에 Proxy를 설정해주면 된다.
로컬 수준에서 Proxy설정을 해준다면, Socket에서 Stream이 Proxy의 소켓으로 전해지는데, 이때는 데이터는 암호화가 안되어있는 평문이다. 이를 이용해 데이터의 분석을 편하게 할 수 있다. Fiddler와 같은 프로그램을 이용하면 소켓통신 분석을 해볼 수 있다.

Proxy의 활용 #3: 감시와 보호

모든 PC들은 Proxy설정을 하고 있다는 가정을 하고, 동일한 Proxy 서버를 이용한다. 모든 PC들은 HTTPS통신을 했을 때 프록시서버를 거쳐 서버에 연결이 될 수 있다. 모든 HTTPS요청은 프록시서버를 통과하기 때문에, 악성코드의 유입을 차단해줄 수 있다. 또 다른 예시로, 유저가 특정 사이트에 접속했는지에 대해 감시를 할 수도 있다. 감시와 보호기능을 구현할 수 있기에 Proxy를 어떻게 운용하는지에 따라서 유용한 도구들을 만들 수 있다. 구조를 역으로 이용하면 Proxy로 인터넷 접근 보호에 대한 기능도 구현 할 수 있다.

Proxy의 활용 #4:: Reverse

Proxy를 거쳐야 특정 사이트에 접근할 수 있도록 할 수 있다. 이는 접근제어를 할 수 있으며, 동시에 감시를 할 수도 있다. 프록시에서 해커의 공격인지 아닌지를 서버를 위해 확인하는 경우를 WAF(web application firewall)라고 부른다. 통제하는 단위는 소켓 스트림 단위로(L7 HTTP) 치리한다.

profile
공부한 내용들을 정리하는 저장소입니다.

0개의 댓글