Post

[주간 이슈] - 10월 1주차 IT이슈 및 분석(인터넷 익명의 실명화 - 타이밍 분석(Timing Attack))

0. 금주의 IT이슈


이번주 IT이슈는 독일의 토르네트워크 수사 방법으로 추측되고있는 타이밍 분석에 관련된 소식을 전해드리고자합니다. 해당이슈는 9월 중반 발표되었으며 독일 수사국에서 공식적으로 발표한 자료는 없습니다. 독일 언론에서 BKA(독일연방범죄수사청) 수사자료에서 Boystown이라는 범죄자의 체포과정에서 타이밍 분석이 활용되었음이 확인되었다고 보도하였으며 탐사 저널리즘과 기술 전문가들의 분석을 기반으로 토르 네트워크를 타이밍 분석으로 사용자 분석에 성공하였음을 추측하고있습니다. 즉, 공식적으로 토르 네트워크가 타이밍 분석을 통해 밝혀진게 아닌 많은 전문가들의 분석과 수사 자료를 바탕으로 타이밍 분석을 이용하였을것이다. 라고 추측하고 있는것입니다. 하지만 저희는 타이밍 분석이라는 기술 자체에 궁금증이 생기므로 타이밍 분석에대해서 이번 포스팅에서 설명드리도록 하겠습니다.


1. 타이밍 분석


1.1 공격기법

타이밍 분석 수행하거나 사용자의 익명성을 해제하려는 공격을 다음과 같이 부릅니다.

Sybil 공격(Sybil Attack) 혹은 트래픽 상관 공격(Traffic Correlation Attack) 혹은 타이밍 분석 공격(Timing Analysis Attack)

  1. Sybil 공격 (Sybil Attack)
    • 다수의 악성노드를 추가하여 네트워크를 장악하고 사용자가 해당 노드로 접근하면 이를 분석하고 통제하여 특정 사용자 추적
  2. 트래픽 상관 공격 (Traffic Correlation Attack)
    • 트래픽의 시간적 패턴을 비교하여 송신자와 수신자의 관계를 찾는 공격
  3. 타이밍 분석 공격 (Timing Analysis Attack)
    • 네트워크 트래픽의 시간적 패턴을 분석하여 트래픽의 흐름이나 사용자의 활동을 추론
공격 기법주요 목적공격 방식주요 특징타겟
Sybil Attack• 네트워크에 다수의 가짜 신원(노드/ID)을 생성하여 트래픽을 통제하거나 왜곡
• 특정 경로를 장악하여 트래픽을 유도하고, 사용자의 IP나 활동을 감시 및 추적
• 다수의 가짜 노드 생성 후, 트래픽을 통제하고 네트워크 상태를 왜곡• 가짜 신원을 통해 네트워크의 특정 구간을 장악하고, 트래픽을 모니터링하거나 조작 가능• 네트워크의 특정 구간(예: Entry/Exit 노드)을 장악하여 트래픽 흐름을 조작
Traffic Correlation Attack• 트래픽의 전송 패턴을 비교하여 송신자와 수신자 간의 관계를 추적 및 특정
• 네트워크의 두 지점에서 수집된 트래픽 패턴을 비교하여 상관 관계를 확인
• 네트워크의 여러 지점에서 트래픽을 감시하여 시간적 패턴을 비교• 네트워크의 두 지점에서 동일한 트래픽 패턴을 찾아 송신자-수신자 관계를 추적• 송신자와 수신자 간의 관계를 추적하여 네트워크 상의 익명성 무력화
Timing Analysis Attack• 트래픽의 시간적 특성을 분석하여 송신자와 수신자 간의 관계를 추적 및 특정
• 송신자가 보낸 패킷과 수신자가 받은 패킷 간의 시간적 패턴을 분석특정
• 트래픽의 전송 시간, 지연 시간, 패킷 간 시간 차이 등을 측정 및 분석• 네트워크의 시간적 특성(전송 시간, 지연 시간 등)을 분석하여 관계 추적• 타겟 노드 간의 시간적 관계 및 사용자의 트래픽 패턴을 분석하여 익명성 무력화

사실 Tor 타이밍 분석 공격에 해당하는 것은 Sybil Attack에 가까우나 타이밍 분석기법을 알면 Sybil Attack을 보다 자세히 알 수 있어서 타이밍 분석 기법을 위주로 설명드리도록 하겠습니다.

1.2 타이밍 분석?

타이밍 분석의 원리를 설명하면 아래와 같습니다.

  • 타이밍 분석 공격(Timing Analysis Attack)은 시스템의 응답 시간의 미묘한 차이를 이용하여 민감정보를 수집할 수 있습니다.

이를 통해 다음과 같은 정보들을 수집할 수 있습니다.

  1. 암호화 키 정보 유추
    • 암호화 알고리즘이 특정 입력을 처리하는 데 걸리는 시간을 분석하여 암호화 키나 비밀 데이터를 유추합니다.
  2. 사용자 식별
    • 웹 애플리 케이션이 특정 사용자 요청을 처리하는 시간 차이를 이용하여 해당 사용자의 로그인 상태나 권한을 식별하거나 사용자를 특정합니다.

분석 방법으로는 정적 타이밍 분석과 동적 타이밍 분석이 있습니다.

  1. 정적 타이밍 분석
    • 사전 설정된 입력값이나 단일 이벤트에 대한 응답 시간을 측정
    • 결과적 분석: 정적 타이밍 분석은 하나의 입력값을 기준으로 분석한 후, 해당 결과를 여러 입력값과 비교하여 특정 조건에서의 내부 상태를 추론합니다
    • 주요 타겟 : 로그인 시스템, 암호화 알고리즘 등.
    • 적용 예시 : 비밀번호 해시 비교 시 시간 차이를 이용한 유추.
  2. 동적 타이밍 분석
    • 시스템의 상태가 실시간으로 변화하거나 조건부 분기가 발생할 때, 이러한 변화에 따라 응답 시간이 달라지는 패턴을 분석
    • 상황 의존적 분석: 시스템의 상태 변화가 발생할 때마다 실시간으로 데이터를 수집하고, 그 변화를 분석하여 사용자 행동이나 입력값을 유추
    • 주요 타겟 : 사용자 인증 시스템, 암호화 모듈.
    • 적용 예시 :네트워크 트래픽의 지연 시간 분석을 통한 특정 사용자의 행동 추적.

우리는 이중 사용자 식별을 중점적으로 보려고합니다.


2. 타이밍 분석 원리


사용자 식별에 사용되는 타이밍 분석공격을 짧게 설명하면 아래와 같습니다

  1. 전제조건 - 네트워크 노드에 대한 접근 권한
  2. 네트워크 환경 분석 및 타겟 선정
  3. 타이밍 차이 분석 및 데이터 유추
  4. 타이밍 분석 기반 데이터 유추
  5. 최종 사용자 식별 및 검증 그러면 위 과정을 좀더 자세히 설명해드리도록 하겠습니다.

2.1 ) 전제조건

Tor에는 네개의 주요노드(가드 노드, 중간 노드, 출구 노드, 브리지 노드)가 있습니다.

  1. 가드 노드
    • Tor 네트워크의 첫 번째 노드로, 사용자가 네트워크에 진입할 때 최초로 연결되는 노드
    • 실제 IP 주소를 볼 수 있는 유일한 노드
    • 특정 사용자의 트래픽이 언제 어디서 발생하는지를 추적할 수 있으며, 다른 노드에서 발생한 트래픽과 비교하여 사용자를 특정
  2. 중간 노드
    • 가드 노드와 출구 노드 사이에서 트래픽을 단순히 전달하는 노드
    • 트래픽이 중간 노드를 어떻게 통과하는지를 추적할 수 있으며, 트래픽의 전송 경로를 유추
  3. 출구 노드
    • Tor 네트워크에서 마지막으로 트래픽이 나가는 노드로, 최종 목적지로 패킷을 전송하는 역할
    • 암호화가 해제된 상태의 트래픽을 볼 수 있기 때문에 민감한 정보를 감시 가능
    • 특정 사용자가 어떤 서비스나 웹사이트에 접속하고 있는지 알 수 있음
  4. 브리지 노드
    • 가드 노드와 비슷한 역할
    • Tor 네트워크에 접근이 차단된 환경(예: 방화벽이나 검열 시스템)에 있는 사용자가 네트워크에 접속할 수 있도록 돕는 노드
    • 사용자의 실제 IP 주소를 알 수 있다.
    • 검열된 지역에서는 브리지 노드를 통해 사용자가 Tor에 접속할 수 있으므로, 브리지 노드의 보안이 매우 중요(따라서 해당 노드는 제어하기 어려움)
    • 해당 노드를 이용하는 사용자의 실제 위치나 접속 상태를 추적가능

이중 필수로 제어되어야하는 노드는 가드노드출구노드 입니다.

왜 네개의 주요노드들중에 위 두개의 노드만을 제어하면 되는것이냐? 하면, 가장 효율적이기 때문입니다.
사실 네개의 모든 노드를 제어할 수 있으면 좋으나…이를 위해서는 너무 많은 리소스가 필요로합니다.

  • 중간 노드 불필요성
    • 트래픽 전송 경로를 유추할수는 있으나 이는 단순히 트래픽을 모니터링 할 뿐입니다.
    • 접속 시간을 알 수 있다고는 하지만 이는 가드노드와 출구노드의 시간 차이를 분석하는 방법이 더욱 효율적입니다.
  • 브리지 노드 불필요성
    • 가드 노드의 역할을 대체할 수 있기는 하지만 매우 비효율적입니다.
    • 왜냐하면 실제 IP주소는 얻을 수 있지만 트래픽의 흐름에는 관여하지않아 출구 노드에서 발생하는 트래픽 분석에 무의미할뿐만 아니라, Tor에서는 사용자 보호를 위해 브리지 노드의 목록을 공개하지않아 제어가 매우 어렵기 때문입니다.

2.2 ) 네트워크 환경 분석 및 타겟 선정

타겟의 네트워크 특성 및 환경을 이해하고, 분석에 필요한 초기 데이터를 수집하는 단계입니다.

  1. 공격 대상 시스템 분석
    • 타깃의 시스템이나 네트워크에 대해 기본적인 수집
    • 프로토콜, 네트워크 노드의 대략적인 위치, 평균 응답시간 등을 수집해야함
  2. 패킷 및 시간 분석
    • Wireshark, tcpdump 같은 네트워크 분석 도구를 사용하여 트래픽을 분석하고 전송 시간과 수신 시간을 기록
  3. 트래픽 패턴 분류
    • 수집된 데이터를 기반으로 특정 트래픽이 어떤 종류의 요청인지 분류
    • 패킷의 크기, 전송 간격 등을 분석하여 어떤 사용자가 어떤 서비스에 접속하고있는지 파악이 대략적으로 가능함

2.3 ) 타이밍 차이 분석 및 데이터 유추

  1. 시간 차이 측정
    • 입력값에 따라 응답 시간의 차이를 정밀하게 측정
    • 입력값이 맞는지 틀리는지에따라 응답시간이 미묘한 차이가 발생 할 수 있는데 이러한 특성을 이용하여 입력값을 추론
  2. 타이밍 노이즈 제거
    • 랜덤 지연(time jitter)이나 노이즈를 제거하기 위해 여러 번의 샘플링
    • 이를 통해 시간 차이를 정확하게 측정하고, 특정 시간 차이에 대한 패턴을 식별
  3. 통계적 분석
    • 수집된 시간 차이에 대해 평균 및 분산을 계산하여 특정 조건에 대한 응답 시간의 통계적 특성을 확인
  4. 조건부 분기 식별 및 패턴 발견
    • 특정 입력값이나 조건에 따라 응답 시간이 달라지는 분기점(예: 조건부 루프, 분기문 등)을 식별

2.4 ) 타이밍 분석 기반 데이터 유추

  1. 타이밍 차이에 따른 데이터 유추
    • 수집된 데이터와 패턴을 바탕으로 공격자는 민감한 데이터를 유추
  2. 통계적 검증
    • 추론한 결과가 실제와 일치하는지 통계적으로 검증 -오류율을 최소화하기 위해 여러 번의 테스트를 수행하여 일관된 결과를 확인

2.5 ) 최종 사용자 식별 및 검증

  1. 네트워크 노드 연결 정보 분석
    • 공격자는 특정 트래픽이 어떤 노드에 연결되고 있는지를 파악
    • 해당 노드에서 수신된 패킷의 시간 차이를 분석하여 특정 사용자의 연결을 추적
  2. ISP 데이터와의 연계
    • 특정 IP 주소가 해당 노드에 언제 연결되었는지를 확인하고 이 정보를 사용하여 사용자 특정및 익명성을 해제할 수 있음


3. Tor 타이밍 분석


그러면 돌아와서 Tor 분석을 보겠습니다.
과연 타이밍 분석인것인가?
이를 보면 약간 모호할 수 있으며 오히려 처음 설명한 Sybil공격(다수의 가짜 노드를 생성)에 가깝습니다. 전제조건인 노드 장악을 공격자가 직접만든 악성 노드로 대체하였기 때문입니다.
이를 종합적으로 보면 Tor 타이밍 분석이 아닌 Tor 공격은 타이밍 분석이 포함된 Sybil 공격 이라고 할 수 있으며 절차는 아래와 같습니다.

  1. 노드 제어 및 패킷 수집
    • 악성노드를 통하여 Tor 네트워크의 일부 노드를 제어하거나 감시할 수 있었고, 해당 노드를 통과하는 트래픽의 시간 차이를 분석
  2. 타이밍 분석과 ISP 데이터 대조
    • 특정 사용자가 전송한 패킷의 시간과 노드에서 수집한 데이터를 대조하여, 어느 ISP의 고객이 해당 트래픽을 생성했는지를 분석
    • ISP의 협조를 받아 해당 노드에 연결된 사용자들의 정보를 수집하고, 이를 바탕으로 특정 사용자를 특정
  3. +a (보안 취약점 활용)
    • 특히 사용자가 Ricochet라는 오래된 버전의 메시지 애플리케이션을 사용했기 때문에 타이밍 공격에 더 취약
    • 오래된 버전의 소프트웨어를 사용하여 타이밍 보호 기법이 적용되지 않은 것이 주요 원인
  4. Tor의 대응
    • 노드의 신뢰성 평가 및 검증
      • Tor 프로젝트는 악성 노드의 추가를 방지하기 위해 네트워크 내의 각 노드의 신뢰성을 평가하고, 의심스러운 행동을 보이는 노드를 블랙리스트에 추가
      • 특정 노드가 지나치게 많은 트래픽을 수집하거나 다른 노드들과 통신이 비정상적으로 활발할 경우, 이를 탐지하여 네트워크에서 제거할 수 있는 알고리즘을 적용
    • 다양한 경로 선택 기법
      • Tor는 사용자들이 선택할 수 있는 경로를 다양화하고, 여러 노드 간의 트래픽 경로를 무작위화하여 특정 경로에 악성 노드가 개입할 확률을 줄입니다.
      • 사용자들이 동일한 노드를 반복적으로 사용하지 않도록 경로를 임의로 설정하여 악성 노드의 영향을 최소화


4. 모든 사용자 식별이 가능한가?


그건 또 힘듭니다…특정 사용자 정보를 수집하기 위해서는 막대한 양의 리소스가 투입되어야합니다.

  • 최신 브라우저의 보안
    • 다양한 기법이 적용된 보안 브라우저는 이러한 패킷 수집을 제한하는등의 보안요소가 포함되어있습니다.
  • 네트워크 노드 제어 및 모니터링
    • 이러한 노드들중에서 특히 가드 노드와 출구 노드의 제어권이 필수불가결한 요소입니다. 왜냐하면 Tor네트워크 특성상 여러 노드를 거쳐 암호화 되는데 이중 특정 노드의 시작과 끝을알아야 시간을 측정할 수 있기때문입니다.
    • 공격자가 다수의 노드를 제어하면서 여러 경로에대한 트래픽 흐름을 감시할 수 있어야하는데 이를 위해서는 네트워크 트래픽을 광범위하게 모니터링하기위한 여러대의 컴퓨터가 필요합니다.
  • 분산형 트래픽 분석
    • Tor 네트워크 특성상 사용자의 트래픽이 여러 경로로 분산되는데 공격자는 이 트래픽이 흐르는 경로의 노드들을 동시에 감시하여야하며, 각 경로를 담당하는 노드에 연결된 컴퓨터들이 필요합니다.
    • 노드들이 실시간 패킷을 전송하여 이를 기록하고 시간차이를 분석을 위해서 다수의 컴퓨터가 분산된 위치에서 데이터를 수집하고 이를 동시에 분석해야합니다.
  • 다수의 ISP(KT, LGU+, SKT 등)의 협력 및 분석
    • 다수의 ISP로부터 받은 데이터를 타이밍 분석을 통해 얻은 결과와 대조하여야하며 이를 위한 대규모 데이터 분석 시스템이 필요합니다.

이와같이 대량의 리소스들이 필요하며 막대한 인력과 협력이 필요로 하는 공격기법입니다.


5. 어? 막대한 리소스를 투입하기만 하면 익명성이 없어지는건가?


그것또한 아닙니다. 위에서 Tor 타이밍 기법을 통한 익명성 해제에서 말씀드렸다싶이 최신버전은 대부분의 위에서 말한 타이밍 보호기법외에도 다양한 기법이 적용되어있습니다. 대표적으로는 다음과 같습니다.

  1. 타이밍 불변성 유지 (Constant-Time Operation)
    • 암호화 알고리즘 또는 민감한 데이터를 비교할 때, 입력값에 따라 실행 시간이 달라지지 않도록 코드를 작성
  2. 랜덤 지연 삽입 (Random Delays)
    • 응답 시간에 랜덤한 지연을 추가하여 패턴 분석을 어렵게한다.
  3. 트래픽 패딩 (Traffic Padding)
    • 고정된 크기의 패킷을 일정한 시간 간격으로 전송하여 트래픽 분석이 어려워지도록 한다.
  4. 네트워크 노드의 무작위화 (Node Randomization)
    • 사용자가 연결되는 네트워크 노드를 정기적으로 변경하여 특정 노드에 대한 타이밍 분석을 어렵게 만듭니다.
  5. 기타 등등
    • 노이즈 삽입 (Noise Insertion), 타이밍 마스킹 (Timing Masking) 등 다양한 기법이 적용될 수 있습니다.


6. 결론


타이밍 분석을 통한 공격은 의외로 자연스러운 방식일 수 있습니다.
예를 들어, 동일한 사람이 1kg짜리 물건과 100kg짜리 물건을 들고 뛸 때, 어느 쪽이 더 빨리 도착할까요?
상식적으로는 1kg짜리 물건을 들고 뛰었을 때 더 빠를 것이라고 예상할 수 있습니다.
이와 비슷하게, 인터넷 상에서도 데이터의 크기나 트래픽에 따라 전송 속도가 달라질 수 있습니다.
이를 분석하고 비교하면 특정 사용자를 추적하는 데 활용할 수 있는 것입니다.
물론, 이러한 공격을 방지하는 방법도 위에서 설명드린것과같이 존재합니다.

지금까지 제 글을 꾸준히 읽으셨다면, 어느 정도 감이 오셨을 것이라고 생각합니다.
결국 해킹은 끊임없는 창과 방패의 싸움입니다.
‘이 프로그램은 완벽히 막을 수 있다!’ 혹은 ‘이 방법으로 반드시 뚫을 수 있다!’라고 단언할 수 있는 보안책이나 공격법은 존재하지 않습니다.
현재 철옹성 같은 프로그램도 시간이 지나 기술이 발전하면 결국 뚫릴 가능성이 있습니다.

이러한 IT 기술의 특성 때문에 개발자들이 항상 새로운 이슈에 민감하게 반응해야 하는 것이죠.

다음에 기회가 된다면, 현재의 암호화 기법이 왜 양자 컴퓨터에 취약한지에 대해 이야기해보겠습니다.

오늘은 여기까지 하겠습니다. 혹시 궁금한 점이나 글에 잘못된 부분이 있다면 댓글로 알려주세요! 확인 후 답변드리겠습니다.

그럼, 안녕히 계세요!

출처

Packetlabs
tor_police_germany

This post is licensed under CC BY 4.0 by the author.