brunch

매거진 Security

You can make anything
by writing

C.S.Lewis

by sokoban Jul 13. 2019

DarkWeb 이란 #1..

#DeepNet, #DeepWeb (다크넷, 다크웹)

  인터넷을 통해 원하는 정보는 대부분 찾아 볼수 있는 세상이 되었고 구글이라는 막강한 검색 엔진에는 세상의 모든 지식을 검색해 주는듯 하다. 하지만 이렇게 검색되는 웹은 표층웹(Surface Web)이라고 말하고 있고 검색이 되지 않고 특별한 방법을 사용해서만 접속이 가능한 웹이 따로 존재한다. 이를 DarkNet 혹은 DarkWeb 이라고 지칭 한다.


  공개적으로 쉽게 접근할 수 없고 익명성이 보장되어 있다 보니 불법적인 마약이나 해킹툴, 해킹된 계정등이 주로 통용되고 있다. 실제 일반적으로 다크웹에 접속하기 위해서 사용되는 Tor Browser를 사용할 경우 일반적인 모든 트래픽이 암호화 되어 있고 접속 경로 또한 여러 경유지를 통해서 가기 때문에 실질적으로 익명성이 보장된다고 할 수 있다.

  이를 이용하여 합법적이지 않은 불법적인 일들이 많이 벌어지고 있다.


마약을 판매하고 있는 onion의 마켓 사이트


항상 다양한 인터넷 서비스 기업의 관리자들을 괴롭히는 도용된 계정들 또한 판매하고 있다. 


  본 글의 최종 목표는 탐지 하기 힘든 방법을 사용하여 접속하는 다크웹의 접속을 탐지하는 방법에 대해서 한번 알아보고자 하며 먼저 탐지하기 전에 다크웹이 어떠한 것인지를 자세히 알아볼 필요가 있다.


  용어 정의

Tor : 온라인 상에서의 익명을 보장하고 검열을 피할 수 있게 해주는 자유 소프트웨어로 미국 해군 연구소에서 최초로 시작하여 현재는 EFF 프로젝트에서 관리되고 있다. EFF는 2005년 11월까지 Tor를 재정적으로 지원하였고, 현재도 웹 호스팅을 지원하고 있다.(From Wikipedia)


DarkNet (DarkWeb) : 다크넷(darknet) 또는 다크 넷(dark net)은 자주 비표준적인 통신 규약과 포트를 사용하는 특정 소프트웨어, 설정, 또는 허가가 있어야 접속할 수 있는 오버레이 네트워크(overlay network)이다. 두 개의 일반적인 다크넷 형태는 일반적으로 peer-to-peer 접속[1]으로 파일 공유에 사용하는 친구 간 네트워크(friend-to-friend network)[2]와 토르(Tor)와 같은 사생활 보호 네트워크(privacy network)이다. (From Wikipedia)


DeepNet : 일반적인 검색 엔진으로는 드러나지 않는, 표층 웹(surface web)에 속하지 않는 월드 와이드 웹 컨텐츠를 말한다.


Overlay Network : 물리 네트워크 위에 성립되는 가상의 컴퓨터 네트워크이다. 이 오버레이 네트워크 안의 노드는 가상, 논리 링크로 연결될 수 있으며, 각 링크는 네트워크 안에서 많은 물리적 링크를 통하지만 물리적 링크를 고려하지는 않는다. 이를테면, P2P 네트워크는 오버레이 네트워크라고 할 수 있다. 이는 물리적으로 전달망을 고려하지 않고 peer와 peer 간의 연결만을 고려하기 때문이다. 전화 접속 인터넷은 전화망 위의 오버레이이다. (From Wikipedia)


다크웹의 이해

  딥웹 혹은 딥넷에서 서비스 되는 웹사이트인 다크웹은 실제적인 DNS 주소를 가지고 있지 않으며 검색 엔진등 공개된 인터넷에서는 접근이 불가능하다. 다크웹에 접근하는데 .onion 접미사를 사용해야 한다. .onion 사이트는 토르에서 접속 가능한 16개의 영숫자와 .onion 형식으로 이루어진 도메인으로 아래와 같은 형식이다.

http://darkfaill1nkf4vf.onion/


  다크웹 onion의 서비스 단계

  아래는 Onion 서비스가 구성되어 서비스 되는 단계를 설명한다.


 다크웹에서 서비스 되고 있는 각종 서비스들은 자신들의 위치를 숨길수 있고 이렇게 숨겨진 서비스에 접근하기 위해서 tor는 RP (rendezvous point)라는 방식을 이용하여 접근할 수 있도록 해준다. 이 방식을 사용하면 접근하고자 하는 상대방의 네크워크 정보가 없이도 접속이 가능하게 해준다. 그럼 이제 하나씩 알아 보도록 하자.

Step 1: 먼저 tor 사용자들이 서비스에 접근하기 전에 서비스들은 자신들의 존재를 광고해야 한다. 그러기 위해서 onion 서비스들은 먼저 tor 릴레이에 circuits을 만들고 자신의 공개키를 전달함으로서 IP ( introduction points) 의 역활을 요청한다. IP ( introduction points)는 onion 서비스의 공개키를 전달하지만 접속 IP는 알려 주지 않는다.


Step 2: onion 서비스는 공객키와 의 IP ( introduction points)요약을 자신의 개인키로 서명한 service descriptor를 생성한 다음 DB에 저장 합니다. 그러면 접속을 원하는 클라이언트가 만약 ABC.onion을 요청 할 경우 해당 onion 서비스의 공개키에서 파생된 16자리의 ABC~를 이용하여 접속이 가능하게 해준다.

Step 3 : 먼저 onion 서비스에 접속할려고 하는 앨리스는 먼저 접속하고자 하는 onion 주소를 알고 있어야 합니다. 그리고 앨리스는 분산 해시 테이블로부터 디스크립터를 다운로드 하여 접속을 설정 한다. 이 과정을 거치면 앨리스는 밥에게 가기 위한 IP ( introduction points)와 공개키를 알고 있다. 그러면 앨리스는 랜덤으로 릴레를 통해서 circuit을 생성하고 릴레이에 일회성 비번과 함께 RP (rendezvous point) 역활을 요청 한다.


Step 4 : service descriptor와 RP (rendezvous point)가 준비되면 RP의 주소와 일회용 비번을 포함하는 메시지를 어셈블 한다. 이제 앨리스는 이 메시지를 밥에게 전달하기 위해서 알고 있는 IP ( introduction points) 한곳에 요청한다. 여기서 중요한 부분은 메시지 상에 앨리스의 주소 정보를 알려 주지 않기 때문에 밥은 앨리스의 주소를 알 수 없다.


Step 5 : onion 서비스인 밥은 앨리스의 소개 메시지를 해독하고 RP 주소와 일회성 비번을 찾는다. 이 다음 밥은  RP에 circuit을 생성하고 랑데뷰 메시지로서 일회성 비번을 RP에 보낸다.


  이 부분에서 circuit을 만들때 동일한 진입 Guard에게 접근하는것이 중요하다. 만약 동일하지 않다면 중간에 공격자가 자신의 릴레이를 실행하고 손상된 릴레이를 노드로 선택하여 분석을 통해서 onion 서버의 주소를 알수 있게 circuit을 강제 실행 할 수 있다. 이러한 공격에 대한 자료는 아래에서 찾을 수 있다.

https://www.blackhat.com/presentations/bh-federal-06/BH-Fed-06-Syverson-Overlier.pdf


Step 6 : 마지막으로 RP는 앨리스에게 밥과의 성공적인 연결이 된것을 알리고 서로간의 통신을 위해서 RP까지 circuit을 구성합니다. 이제 RP는 앨리스와 밥과의 통신을 중계 합니다.


  간단하게 onion 서비스에 접속하는 방법에 대해서 알아 보았고 이제 이를 직접 구축해 보도록 하겠다.



% 본 글은 특정 기업 혹은 이익집단의 의견과 무관한 개인적인 글입니다.




참고 자료


https://unit42.paloaltonetworks.com/unit42-exploring-cybercrime-underground-part-4-darknet-markets/


https://www.freehaven.net/anonbib/cache/onion-discex00.pdf


https://www.onion-router.net/Publications/SSP-1997.pdf





브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari