뭉크테크
Proxy 본문
목차
- 정의
- 목적
- 종류
- Proxy tool
정의
프록시 서버(영어: proxy server, 문화어: 대리봉사기)는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다.
목적
- 익명으로 컴퓨터를 유지 (주로 보안을 위하여)[1]
- 캐시를 사용하여 리소스로의 접근을 빠르게 하기 위해. 웹 프록시는 웹 서버로부터 웹 페이지를 캐시로 저장하는 데 흔히 쓰인다.[2]
- 네트워크 서비스나 콘텐츠로의 접근 정책을 적용하기 위해. (이를테면 원치 않는 사이트를 차단)
- 사용률을 기록하고 검사하기 위해 (이를테면 회사는 인터넷 이용을 파악)
- 보안 및 통제를 뚫고 나가기 위해
- 바이러스 전파, 악성 루머 전파, 다른 정보들을 빼낼 목적으로
- 역으로 IP추적을 당하지 않을 목적으로
- 전달에 앞서 악성 코드를 목적으로 전달된 콘텐츠를 검사하기 위해
- 밖으로 나가는 콘텐츠를 검사하기 위해 (데이터 유출 보호)
- 지역 제한을 우회하기 위해
종류(Forward Proxy)
[ 클라이언트 <ㅡ> 프록시 서버 ㅡ 서버 ]의 위치에 있고, 클라이언트가 요청을 전달하면 프록시 서버가 목적 사이트의 내용을 받아와서 전달을 '대신' 해주는 것.
- 클라이언트 보안(Security)
- 보통 정부기관, 학교, 기업 등과 같은 곳에서는 속한 사람들의 제한적인 인터넷 사용을 위해 방화벽을 사용한다.
- 포워드 프록시 서버에 룰을 추가하여 특정 사이트에 접속하는 것을 막는다.
- 즉, 포워드 프록시 서버를 방화벽과 같은 개념으로 제한을 위해 사용한다고 보면 된다.
- 캐싱(Caching)
- 클라이언트가 어떤 웹 페이지를 접근하면 포워드 프록시 서버는 해당 페이지의 정보를 캐싱(임시보관)한다.
- 이후 동일한 페이지를 접근하거나, 다른 클라이언트가 해당 페이지를 요청하면 캐시 된 정보를 그대로 반환한다.
- 이는 서버의 부하를 줄이는 데에 효과적이다.
- 암호화(Encryption)
- 클라이언트 요청은 포워드 프록시 서버를 통과할 때 암호화된다.
- 암호화된 요청은 다른 서버를 통과할 때 필요한 최소한의 정보만 갖게 되는데, 이는 클라이언트의 IP를 감춰주는 보안 효과를 낸다.
종류(Reverse Proxy)
[ 클라이언트 ㅡ 프록시 서버 <ㅡ> 서버 ] 의 위치에 있는 개념이 바로 Reverse Proxy
클라이언트가 프록시 서버에 데이터를 요청하면 프록시 서버는 내부망 서버에서 데이터를 받아와 클라이언트에게 전달해 주는 개념
- 로드 밸런싱(Load Balancing)
- 우리가 자주 사용하는 구글, 네이버와 같은 웹 사이트는 하루에도 수백만, 수천만명이 방문한다.
- 이러한 대량의 트래픽을 하나의 싱글 서버로 감당하기는 어렵다.
- 이때, 리버스 프록시 서버를 여러개의 싱글 서버들 앞에 두면 특정 서버가 과부화 되지 않도록 로드 밸런싱하여 관리가 가능하다.
- 서버 보안(Security)
- 리버스 프록시를 사용하면 서버측 보안에 좋다.
- 프록시 서버로 인해 본래 서버의 IP 주소를 노출시키지 않을 수 있어, 해커들의 DDos 공격과 같은 공격을 막는데 용이하다.
- 캐싱(Caching)
- 포워드 프록시의 캐싱과 비슷한 기능을 한다.
- 즉, 서버의 데이터를 캐싱하고 있다가 동일한 요청인 경우 해당 데이터를 전달하여 빠른 성능을 보여준다.
- 암호화(Encryption)
- SSL 암호화에 좋다.
- 서버가 클라이언트와 통신할 때 SSL(or TSL)로 암호화, 복호화를 할 경우 각각의 서버별로 비용이 많이 들게 된다.
- 리버스 프록시 서버를 사용하면 들어오는 요청과 복호화하는 응답을 모두 관리가 가능하여 서버의 부담을 줄여준다.
종류 차이점 정리
Forwad Proxy | Reverse proxy | |
프록시 서버 위치 | 클라이언트 앞 | WEB/WAS 서버 앞 |
프록시 서버 통신 대상 | 클라이언트와 Proxy 서버가 통신 | Proxy 서버와 내부 서버가 통신 |
End Point(서버) | 실제 서버 도메인 | 프록시 서버의 도메인 |
감춰지는 대상 | 클라이언트 정보 | 서버 정보 |
Proxy tool
프록시 툴은 웹 트레픽을 중계, 조작, 분석, 수정할 수 있는 프로그램을 말한다. 주로 웹의 취약점을 발견하는 일에 사용된다. 대표적인 세가지 프록시 툴
- Paros
- BurpSuite
- Fiddler
Paros
- 파로스는 자바 기반으로 작동하는 웹 프록시 소프트웨어이다.
- 시스템 리소스를 가장 적게 먹으며 인터페이스가 간단하기 때문에 기본적인 검사에 많이 활용하던 소프트웨어이다.
- 하지만 현재 개발이 중지된 상태로 방치되었기 때문에 최신 보안사항이 적용되지 않아 실 사용은 어렵다.
- 서버에 해킹 접근 시 사용자 정보가 남는다
- Tree 형태로 사이트 구조를 제공하여 홈페이지의 구조를 쉽게 분석가능하다
- 웹 사이트에 대한 취약성을 분석할 수 있을 뿐만 아니라 웹 해킹도구로도 사용된다.
BurpSuite
- 버프스위트는 웹 취약점을 분석하기 위해 사용하는 가장 포괄적인 툴이다.
- 자동화, 요청 및 응답 인터셉트, 인증 세션 조작 등 고급 기능을 사용할 수 있기에 현재 가장 대중적인 툴이라고 할 수 있다.
- 하지만 고급기능을 온전히 사용하기 위해서는 결제가 필요하다.
- 사용자와 관련된 정보를 남기지 않는다.
- 웹 사이트를 매우 빠르게 스파이더링할 수 있고 웹 사이트를 스파이더링 한 후에는 스캔 중에 발견한 페이지를 부분적으로 공격하지 않도록 설정할 수 있다.
- 소프트웨어의 GUI는 그다지 사용자 친화적이지 못하다.
Fiddler
- 웹 트레픽을 캡쳐하고 모니터링하는 일에 최적화 된 툴이다.
- 컴퓨터와 웹 서버 또는 서버 사이의 HTTP 트래픽을 기록, 검사 및 변경하는데 사용되는 디버깅 프록시 툴이다.
- 인터넷과 테스트 컴퓨터 간의 네트워크 트래픽을 캡쳐하여 웹 응용 프로그램을 디버그하는 데 유용하다
- 수신 및 발신 데이터를 검사하여 브라우저가 요청 및 응답을 수신하기 전에 모니터링하고 수정이 가능하다
- 로깅시 자체 서명된 인증서를 사용하여 인터셉션을 구현함으로써 수행된다.
- 이 프로그램을 시스템 트레픽을 아주 적게 먹는다는 특징이 있다. 하지만 고급 기능이 부족하여 이 프로그램만으로는 많은 것을 할 수는 없다.
'CERT' 카테고리의 다른 글
CSRF 모의해킹 (1) | 2024.06.15 |
---|---|
Command Injection 모의해킹 (3) | 2024.06.15 |
웹 셸 (0) | 2024.05.27 |
Vulnerability Analysis 4 (0) | 2024.05.22 |
Vulnerability Analysis 3 (0) | 2024.04.20 |