RadarURL
Skip to content
조회 수 2522 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

ISP가 IP공유기를 검출 하는 법

회사 일 관계로 가정용 인터넷 회선을 공급하는 업체들 (KT, SK브로드밴드(구 하나로)) 등이 공유기를 어떻게 차단하는지 알아보다가 어차피 인터넷에서 긁어모은 정보인데 그냥 보고 하는걸로 끝내기 아까워서 블로그에 포스팅 해본다.

주) 실제로 ISP에서는 아래의 방법을 쓰고 있다고 확신할 수 없습니다. 한때 이 방법을 쓰긴 했지만 지금은 다른 방법을 사용할 수도 있습니다. 이 글은 단지 참고만 하십시오.



사실 그동안 KT를 필두로 해서 IP공유기를 막겠다는 경고가 꾸준히 있었는데, 결국 실행에 들어갔는지 몇 달 전부터 공유기 차단이 시작되었다는 얘기가 나오기 시작했다.

하지만 최근의 공유기들은 ISP에서 탐지하기 어렵도록 갖가지 수법들을 쓰고 있는데다가, 내가 알고 있는 지식 한해서는 외부에서 공유기 사용 여부를 완벽하게 검출해내기는 무척 어려울텐데, 과연 어떤 방식으로 검출해내고 있는 것인지 궁금했다.

인터넷을 둘러보면 나말고도 이 점을 궁금해 하는 사람들이 많은 것 같다. 하지만 ISP의 내부관계자가 아닌 다음에야 통신망에서 패킷을 어떻게 다루는 지는 알 수 있는 방법이 없기 때문에 확실하게 이렇다 밝혀진 것은 없다. 다만 현재까지는 네트워크 프로토콜 지식을 배경으로한 추정과 사용자들이 찾아낸 몇 가지 단서만이 있다.

이 포스팅에서는 이러한 점을 정리해 보았다.



현재까지 밝혀진 바로는 ISP에서는 공유기 검출을 위해 다음의 2가지 절차를 거친다.

1. 이상 패턴의 사용자 검출
2. 1에서 걸러진 사용자에게 특정 프로그램을 전송하여 이를 통해 내부에서 사용중인 PC의 대수 확인

이 두 가지 방법을 거쳐서 공유기 사용 여부를 판단하게 되고, 실제로 공유기 사용으로 확인된 사용자에게는 정비기사를 파견 한다든지, 아니면 부가요금을 부과한다든지 하는 식의 조치를 취하게 된다.



그런데 여기서 사용하는 1,2번 과정 모두가 흥미롭다.



1번의 경우 사용자 쪽으로부터 나오는 패킷의 정보를 읽어 판단한다. 여기서 활용하는 것이 IP 데이터그램의 Identification Number 이다. (TCP/IP를 공부한 사람이라면 여기서 이미 짐작 하실 듯...)

간단하게 설명하자면 TCP/IP 프로토콜에서는 네트워크 Layer가 5계층이 존재한다. 복잡한 설명은 생략하고 간단하게 설명하면, 3번째 Layer인 IP Layer는 패킷이 정해진 목표까지 찾아가기 위한 정보를 담고 있는데, 여기에 Identification Number 정보라는 것이 들어있다. 이것은 해당 노드(주로 PC)에서 외부로 나가는 모든 패킷을 각각 구분하기 위한 구분 번호인데 이 번호는 각각의 패킷을 구분하기만 하면 되므로 PC에서는 일반적으로 순서대로 일련번호를 매겨준다. 그러니까 그냥 밖으로 나가는 순서대로 번호가 차례로 매겨진다는 것...

그런데 이 Identification Number는 PC에서 만들어진 것이 목적지에 도착할 때까지 끝까지 바뀌지 않고 전달된다. 그렇기 때문에 ISP입장에서는 사용자로부터 들어오는 패킷에서 IP Layer의 Identification Number가 순차적인지를 확인하면 사용자가 정말 PC를 한 대만 사용하는지를 알 수 있다.

무슨 말인고 하니, 하나의 PC에서 Identification Number는 외부로 전송하는 순서대로 차례로 증가시키기 때문에, 만약 한 가정에서 하나의 PC만을 사용한다면 외부로 나가는 IP Layer의 Identification Number 역시 순서대로 와야 정상이다. 하지만 한 가정에서 2대 이상의 PC를 사용한다면, 각각의 PC에서 발생시키는 패킷들이 섞여버려 Identification Number 역시 뒤죽박죽이 된다.

ISP 입장에서는 고맙게도 Identification Number가 순서대로 오는지 아닌지만 보면, 가정 내에 PC가 1대인지 그 이상인지를 알아낼 수 있는거다.

하지만 이 방법만으로는 절대 공유기 사용을 확신할 수가 없다.

왜냐하면 최근 보안상의 문제로 인해 Identification Number를 순차적으로 발생시키지 않는 것이 권고되고 있고, 리눅스의 경우 그 권고를 받아들여 Identification Number로 랜덤수를 사용하는데, 이때문에 가정에서 리눅스 PC를 사용한다면 애초에 1대인지 여러대인지 구분을 할 수가 없게 된다.

또한 가정에서 윈도우만 사용을 한다고 하더라도 이 방법으로는 PC가 1대 이상이라는 것만 알 수 있고 정확히 몇 대인지 알아내기는 힘들다.



따라서 첫번째 방법은 공유기 사용 후보자를 필터링 해내는 방법 정도로 활용되고, 실제로 공유기 사용을 적발해내는 방법이 2번째 방법이다.

이 방법은 얍삽하다면 얍삽한 방법인데, 무언고 하니 사용자PC에서 특정 프로그램을 실행시키는 것이다.

하지만 아무리 ISP라도 사용자의 PC에서 프로그램을 실행시킬 방법은 없다. 법적인 문제도 걸릴테고, 현실적으로도 PC의 기본적인 보안 수준을 뚧는 다는 것도 무리이고... 이걸 억지로 뚫고 들어간다면 해킹+스파이웨어 유포 등등......

그런데 ISP에서도 비교적 수월하게 이용할 수 있는 침투 경로가 있으니 바로 웹이다.

사용자의 PC에서 나가고 들어오는 모든 패킷이 거쳐가게 되어있는 ISP의 입장에서 사용자의 브라우저로 전송되는 웹페이지의 HTML 코드를 일부 변조하여 소프트웨어를 실행하게 하는 것은 그리 어려운 일이 아니다. 게다가 가정에서 인터넷을 사용한다면 필연적으로 웹을 사용하게 되어 있다. ISP에서는 이점을 이용하여 사용자가 호출하는 웹페이지에 히든 프레임을 삽입하여 자신들이 만든 애플릿을 심어 보낸다. 단 모든 사용자에게 이 방법을 적용하는 것은 오버헤드가 크니 첫번째 방법으로 걸러진 사용자에 대해서만 실시한다.

이 애플릿의 역할은 사용자의 로컬IP를 추출하여 특정 서버로 전송하는 것이다.

가정에서 IP 공유기를 사용하고 있다면 공유기 아래에 구성된 로컬 네트워크의 노드는 대부분 192.168로 시작하는 로컬 IP를 갖게 된다. ISP에서는 사용자 PC에서 애플릿을 실행시켜 가정에서 사용되는 PC가 192.168.x.x 대역의 로컬 IP를 사용하는지, 사용한다면 몇개나 동시에 사용하는지 이것을 확인할 수 있는 것이다.



이렇게 확인된 노드에 대해서는 아시다시피 요금을 부과하든지, 기사를 집으로 보낸다든지 등등...

그런데 이 방법도 역시 문제는 있는데, 일단 Internet Explorer를 사용해야만 검출할 수 있다는 것이다.

자바 애플릿을 사용하는 방식이라 사용자 환경에 JRE가 설치되어 있어야 한다는 얘긴데, 개발자가 아닌 다음에야 일반 사용자가 그런것을 쓸 리는 만무하기 때문에 Internet Explorer에 내장된 MS VM을 사용할 수 밖에 없다는 것이다. (그렇기 때문에 이 애플릿은 Java 1.2에서도 실행되도록 제작되었을 것으로 짐작된다.)

물론 이론상으로는 JRE가 깔려있다면 OS나 브라우저에 관계 없이 다 잡혀야 하겠지만, ISP에서는 브라우저에서 발송되는 패킷의 HTTP Header까지 읽어 User-Agent가 IE일 경우에만 히든 프레임을 숨겨서 보낸다고 한다. (이 점은 ISP에서는 상상하는 것보다 훨씬 높은 수준의 검출 방법도 구현 가능하다는 것을 암시한다.) 그렇기 때문에 현재까지는 Internet Explorer를 사용하는 윈도우 PC만이 검출된다고 보아도 무방하다.

그리고 한가지 문제가 더 있는데, VMWare라든가 VirtualPC 등의 가상PC 역시 하나의 PC로 인식한다는 점이다. 이 역시 당연한 것이, 가상PC를 구성할 경우 각각의 OS에 대해 가상 IP가 사용되므로 가상PC에서 웹브라우저를 사용할 경우 역시 하나의 PC로 잡히게 된다. 때문에 집안에서 PC를 2대 사용했을 뿐인데 5대 분의 요금이 청구되어 전화로 따졌다는 사람도 있다.



이런 저런 문제에도 불구하고 현재까지는 KT 와 SK브로드밴드에서는 이 방법으로 IP공유기를 검출하고 있다고 한다. 특히 KT의 경우는 이렇게 적발하고는 확인 절차 없이 요금부터 부가하는지라 이래저래 욕을 많이 먹고 있다.



아래는 기타 사항들을 Q&A 형식으로 정리...

1. MAC Address로 탐지하는 방법도 있다던데...

지금도 실제로 그 방법을 사용하고 있다. 처음 접속할 때 IP와 패스워드를 물은 다음 그때 인증된 MAC Address를 기억해두었다가 중간에 연결된 네트워크 카드가 바뀌거나 하면 그 다음부터는 접속이 제대로 되지 않는다. 하지만 최근 나오는 대부분의 IP 공유기는 자신의 MAC Address를 바꾸는 기능을 갖고 있다. 그리고 바꾸는 방법도 정말 쉽다. 관리 페이지에서 버튼 한번만 클릭하면 현재 내가 접속한 PC의 MAC Address를 가져와 IP 공유기의 MAC Address로 복제해버린다. 그러면 ISP에서는 어떻게 할 도리가 없다.

정말 구모델의 공유기라면 모르겠지만 최근 나오는 공유기는 거의 모두 MAC 변경 기능이 있다. 몇 달 전에 최근 가장 잘 나가는 공유기 25종을 구매해서 테스트 해보았는데 모두 다 있었으니 거의 다 있다고 봐도 될거다. -.-v



2. 실제 이 방법이 전부인가.

그건 아닌 것 같다. 일단 ISP에서 IP Layer까지만 활용한다면 이 방법 이외에는 방법이 없겠지만, 지금 현재 방법에서도 브라우저에 따라 선택적으로 애플릿을 전송하는 것을 보면 Application Layer까지 모두 활용 가능하다고 보는 것이 정확할 것이다. 그리고 만약 Application Layer의 데이터까지 활용한다면 좀 더 세련된 검출 방법이 많을 것이다. 다만 현재까지 적용하고 있는 방법은 이 이상은 없는 것 같다.



3. 패킷을 읽고, 페이지를 변조까지 한다면 불법 아닌가?

그건 나도 잘 모르겠다. 하지만 KT나 SKB에서 어련히 법률 검토를 하지 않았을까 싶기도 하고... 뭐 이런건 모름... ㅡ.ㅡ;



내 의견을 첨언하자면 사실 나 역시 KT나 SKB의 이와 같은 정책에 대해서는 불만이 많다. 집에서 PC를 한대 쓰든 두대 쓰든 고객의 의사에 달린 것인데 왜 이걸 가지고 트집인가. 하지만 반대로 생각해보면 그네들 입장이 이해가 안되는 것은 아니다. 사실 원칙대로라면 사용량에 따라 요금을 부가하거나, 헤비유저에 대해서 일시적으로 대역폭을 제한하는 등의 조치가 상식적이겠지만, 이 부분에 대해서는 사용자들이 종량제 자체에 대해 완전히 부정적인 인식이 틀어박혀 있는 상황에서는 어떠한 유사한 시도조차 어려울 것이다. 그래서 고육지책으로 나온 것이 사용 PC 대수 제한이 아닐까 생각한다. (그럼에도 불구하고 IP공유기 사용 제한을 받아들일 수 없는건 마찬가지이지만...)



어쨌거나 이 부분에 대해 기술적으로 분석해보는 것도 좋을거라 생각해서 이렇게 정리해 보았다. 잘못된 점이나 문제 있는 부분은 언제든지 지적해주시길...



참고



첨 (2008년 11월 27일)
그동안 블로그 관리를 안해서 이렇게 많은 사람들이 읽고 간 줄은 몰랐다. 그래서 내가 참고했던 글의 주소를 첨부하고, 글을 조금 매끄럽게 다듬었다. 그런데 글을 정리하면서 조금 더 찾아보니 위에서 언급한 방법 말고도 또 다른 방법을 실제로 사용하고 있다는 얘기가 있다. 지금은 애플릿을 사용하지 않는다는 얘기도 있고... 내가 KT를 쓴다면 어떻게든 알아보는 시늉이라도 해볼텐데 그냥 인터넷의 글만 보고 판단하려니 정말 감이 안잡히네...

ims.jpg

 

출처 : http://zzpark.egloos.com/10531534

TAG •
?

List of Articles
번호 제목 글쓴이 날짜 조회 수
20 KT 인터넷 접속 PC 대수 제한 해결방법1 - 일반공유기 2 JAESOO 2013.06.17 40580
19 KT 인터넷 접속 PC 대수 제한 해결방법2 - KT 쿡허브 2 JAESOO 2013.06.17 11517
18 KT 인터넷 접속 PC 대수 제한 해결방법3 - 완결 2 JAESOO 2013.06.17 9670
17 KT 메가패스 공유기탐지 차단방법 JAESOO 2013.06.17 4172
16 IPTV 끊김 증상 문의 JaeSoo 2013.01.30 3853
15 SK브로드밴드의 공유기 사용 검사 JAESOO 2013.06.17 3760
14 NETGEAR R7000 (세상에서 제일 빠른 무선공유기) JAESOO 2014.05.14 3677
13 LG IPTV 기본 공유기를 IPTIME 유무선공유기로 바꾸기 or 통합하기 JaeSoo 2013.01.30 3618
12 메가패스 공유기 요금부과의 결과 JAESOO 2013.06.17 3596
11 사설 IP (공유기) 환경에서 파일질라 FTP 설정하기 JAESOO 2014.05.14 3534
10 IPTIME N6004M 으로 LG IPTV 공유기 대체 JaeSoo 2013.01.30 3470
9 iPTiME 같은 일반 공유기로 SK,LG,KT등 iPTV 시청하기 JaeSoo 2012.10.19 2836
8 메가패스의 공유기 검색은 엉터리 JAESOO 2013.06.17 2757
» ISP가 IP공유기를 검출 하는 법 JAESOO 2013.06.17 2522
6 현존 최강 공유기 넷기어 R7000 JAESOO 2014.05.14 2448
5 KT의 편의주의 때문에 인터넷이 느리다. ( xs_btn ) JAESOO 2013.06.17 2271
4 ipTIME 공유기로 WoL 기능 활용하기 JaeSoo 2012.10.19 2150
3 Part I. 5세대 기가 와이파이(802.11ac) 이야기 그리고 공유기 선택가이드 JAESOO 2014.10.19 1358
2 How do I use the VPN service on my Nighthawk R7000 router with my Windows client? JAESOO 2014.05.14 1260
1 Part II. 기가와이파이(802.11ac)를 지원하는 공유기 네티스 WF2780 리뷰 JAESOO 2014.10.19 1250
Board Pagination Prev 1 Next
/ 1

PageViews   Today : 1,109   Yesterday : 2,121   Total : 19,846,600  /  Counter Status   Today : 450   Yesterday : 755   Total : 1,432,756
Site Info   Member : 237  /  Total documents : 1,223   New documents : 0  /  Total comments : 24

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소