블로그

프로토콜, 보안 사건, 그리고 인터넷이 실제로 작동하는 방식. 147편.

Flame은 마이크로소프트 서명을 위조했다

2012년, 한 첩보 툴킷이 자신을 '서명된 윈도우 업데이트'로 위장해 감염 대상 PC에 설치됐다. 서명하려고 그들은 학계가 아직 발표하지 않은 MD5 충돌로 마이크로소프트 인증서를 위조했다 — 줄줄이 늘어선 제도적 실수의 마지막 고리로.

Terrapin: SSH 시작 부분에서 메시지를 잘라내다

2023년 연구자들은 SSH 세션 시작 부분에서 메시지 하나를 조용히 삭제할 수 있음을 보였다 — 그리고 그게 가장 깔끔하게 통한 암호가 바로 모든 하드닝 가이드가 권하던 chacha20-poly1305였다. 버그는 어느 서버에도 없었다. 프로토콜이 한 번도 확인하지 않은 이음매에 있었다.

POODLE, 그리고 SSLv3의 긴 죽음

2014년 구글 팀이 SSL 3.0을 깼다. 1996년에 나온, 아무도 더는 고르지 않던 프로토콜을. POODLE이 공격한 건 쓰이던 암호가 아니라, 18년 전 암호로 슬쩍 되돌아가게 만든 브라우저의 '친절한 반사작용'이었다.

8분간 이어진 1.35Tbps 공격

2018년 2월 28일, GitHub은 당시 사상 최대인 1.35Tbps DDoS를 견뎠다. 이 무기를 만든 봇넷은 없었다. 열린 채 방치된 memcached 서버와, 인터넷이 2000년부터 고치기를 거부해 온 라우팅 결함으로 조립된 것이었다.

SYN 쿠키: 당신 서버를 지키는 1996년의 트릭

1996년 9월, SYN flood 하나가 뉴욕의 한 ISP를 멈춰 세웠다. 몇 주 만에 두 사람이 상태를 아예 저장하지 않는 방어법을 만들어냈다 — 커넥션을 공격자가 위조할 수 없는 숫자 안에 숨기는 방식이다. 리눅스는 2009년부터 이걸 기본으로 켜 두고 있고, 지금도 일부러 조금 손해를 보게 설계돼 있다.

JA3, JA4: 당신의 TLS 핸드셰이크는 지문이다

TLS가 무엇을 암호화하기도 전에, 클라이언트는 자기가 무엇인지 정확히 밝힌다. 인사하는 그 특유의 방식이 곧 지문이다 — JA3와 JA4의 이야기는, 아무도 감출 생각을 하지 않았던 프로토콜의 부위에서 신원이 어떻게 새어 나오는지에 관한 이야기다.

Slowloris: 속삭이는 DoS

Slowloris 공격은 2009년 것이다. 작은 스크립트 하나, 컴퓨터 한 대, 대역폭은 거의 필요 없다. 그런데 요청 시간 제한 없이 연결마다 스레드를 붙이는 서버는 지금도 멈춰 세운다. 느리게 감으로써 이긴다 — 그리고 그 해법은 HTTP/2의 기록적 홍수 공격에 필요했던 바로 그것이다.

패시브 DNS: 방어자들은 어떻게 DNS에 기억을 심었나

DNS에는 기억이 없다 — 도메인이 무엇을 가리키는지 물으면 오늘의 답만 나오고, 작년의 답은 절대 나오지 않는다. 패시브 DNS는 누가 물었는지는 결코 기록하지 않으면서, 인터넷이 내놓은 모든 답을 기억하는 우연한 감시 데이터베이스다.

NAT: 인터넷을 삼켜버린 임시방편

1994년 NAT는 IPv6가 나올 때까지 시간을 버는 단기 패치로 제안됐다. 30년 뒤 그것은 없으면 안 되는 인프라가 됐고, 인터넷의 설계 원칙을 조용히 지웠으며, 너무 잘 작동한 나머지 자신의 대체제까지 지연시켰다.

regreSSHion: 되살아난 버그

2006년 OpenSSH는 시그널 핸들러에 있던 원격 루트 취약점을 잡았다. 2020년 말 로깅 코드를 고치는 과정에서 그 수정이 조용히 사라졌고, 같은 버그가 3년간 수백만 대 서버로 배포됐다 — 그게 죽은 채로 있는지 아무도 시험하지 않았기 때문이다.

수출용 암호: 2015년에 TLS를 깬 1990년대 법

1990년대 미국 정부는 기업들이 일부러 깨지는 암호를 해외에 팔게 만들었다. 그 약한 암호는 법보다 15년을 더 살아남았고 — 2015년, FREAK과 Logjam이 그것을 웹의 3분의 1에서 다시 켰다.

SHA-1은 산산조각 났다

2017년 구글과 CWI는 SHA-1 해시가 같은, 내용이 다른 두 PDF를 공개했다. 흥미로운 건 그걸 해냈다는 사실이 아니다 — 다들 12년 전부터 이걸 예견했는데도 업계는 여전히 '증거'가 나올 때까지 기다렸다는 것이다.