Cloudbleed

2017. 2. 24. 23:44컴퓨터/보안

Cloudbleed

를 누가 요약해달래서.... 아는 대로 요약했으니까 틀릴 수 있다

배경 지식

1. Cloudflare가 하는 일

웹 서버와 사용자의 중간에서 이런저런 일들을 해서 결국 사용자의 로딩 속도 향상에 기여한다. (CDN, content delivery network로 검색하면 정확히 뭘 하는지 나옴)

2. 웹은 암호화된다고 맨날 하지 않나요?

웹 페이지에 로그인하거나 정보를 보낼 때는, 정보가 가는 도중(상자에 포장되어있는 상태)에서는 대부분 암호화된 상태이기 때문에 그 정보를 중간에 가로채더라도 읽어낼 수 없지만, 받는 쪽에서는 암호화를 푸는 과정을 거칠 수밖에 없음. (비밀 편지를 받았더라도 그걸 펼친 다음 내 머리로 한 번 읽어야 할 거 아니냐?)

즉 사용자가 보낸 모든 정보(어디로 언제 어떤 요청을 보냈는지부터 내가 입력한 아이디, 비밀번호, 쓴 글 등등 웹 페이지에 입력한 모든 정보)가 해석되어서 메모리(말 그대로 '기억')에 아주 잠깐 머물 것이고, 쓸모가 없어지면 사라질 것.

3. 안 쓰는 정보는 바로 사라진다고?

그런데 사실 사라지지는 않고, '이 부분은 안 쓸테니까 이제 반납할게요~~' 하면서 운영체제 쪽에 알려주는 것임. 만약에 내가 나중에 어떤 용량만큼 메모리를 새로 할당받고 싶다 하면 운영체제가 메모리의 빈 공간(처음부터 비어있다든지, 반납해서 다시 쓸 수 있게 된 부분)을 적당히 찾아서 '여기 쓰셈, 더러울 수 있으니 싫으면 너가 치우고 쓰셈' 하는 것. 그 위에 새로운 정보를 덮어쓰면서 원래의 정보는 없어지겠지.

4. 덮어씌워서 지워지면 안전하겠네?

착한 프로그램은 치우고 쓸 때는 잘 치우고 쓰고, 할당받지 않은(혹은 반납한) 부분에는 절대 손을 안 댐. 당연하겠지? 근데 가끔 잘못 짠 애들이 있음. 얘네가 할당받지 않은데다가 자기가 쓸 수 있는 구역을 벗어난 곳에 접근하면 운영체제가 걔를 죽이는데 PS를 하다 보면 가끔(자주?) 보는 segmentation fault가 이것.

Cloudflare가 뭘 했다고?

5. 버그의 내용

특정 조건을 갖춘 채로 요청이 들어오면 서버가 아무말을 갑자기 끝도 없이 해대는데, 그 아무말의 내용을 메모리에서 아무렇게나 가져옴. 자기가 쓰고 있는 공간의 내용뿐만 아니라 아까는 반납한다고 했던(=지금은 쓰면 안되는) 자리에 있는 내용도 그대로 읊어버림. (특정 주소를 기준으로 그 주소부터 한 칸 한 칸 읽으며 모든 정보를 쭉 불러버리는 것, 일명 buffer over-read.) 만약 엄청 엉뚱한 곳의 내용도 읽어서 말하려 했다면 운영체제가 즉시 인지해서 적당히 처리할 것임. 그런데 여기서는 참조하는 메모리 공간도 핵심 웹서버의 메모리 공간에 있는 어느 위치였기 때문에 거기서부터 어느 정도 막 읽는다고 해도 그렇게 수상해보이지는 않았을 듯. 또한, 그때문에 핵심 웹서버가 처리하는 개인정보가 유출될 수 있었던 것.

6. 개인정보의 유출 가능성

실시간으로 처리되는 정보가 유출이 된 것인데 이중에는 개인정보 등이 담겨있는 정보가 있을 확률이 높음. 실제로 개인정보가 담긴 아무말이 오는 것이 확인됨. 게다가 이런 내용이 구글같은 검색엔진에 기록도 되어버려, 누구나 볼 수 있게 됨.

사람들의 개인정보가 여기저기에 공공연하게 전시된 채 얼마나 긴 시간이 지났으며 그동안 얼마나 많은 사람들이 그걸 눈치챘을 지, 아무도 모른다는 것.

7. 사태 파악 후

Cloudflare 측의 공지. 해당 버그를 수정하고, 각종 검색 엔진에 '님들 그거좀 지워주세요ㅠㅠ' 요청한 후 완료. 이후 사람들에게 '이런 일이 있었답니다' 공개. (왜냐하면 해결되기 전에 공개해버리면 "헉 나도 노다지 좀 캐볼까!" 하면서 사람들이 각종 검색엔진 등을 엄청 뒤질 것이기 때문.)

8. 결과

Cloudflare의 대응은 빨랐으나, 결과적인 신뢰도의 변화는 뭐... 다들 혹시라도 검색 엔진의 캐시에 남아있는 것은 없을지 아직도 걱정이며, 비밀번호를 바꾸기를 추천하고 있다. Cloudflare를 이용하는 사이트의 목록도 있다.

정리

잠결에 그는 아무도 알아듣지 못하는 말을 중얼거리곤 했어. 그의 잊혀진 기억 속에는 온 세상의 비밀이 담겨있다고 마을 사람들은 말했지. 누가 알아? 잠든 그의 곁에 그 말을 열심히 받아적는 사람이 있었을지...

2016년 9월 22일 - 2017년 2월 24일 사이에, Cloudflare를 사용하는 사이트에 개인정보를 입력(특히 로그인)한 적이 있다면, 비밀번호가 어딘가로 누출되었을 수 있으므로 비밀번호를 바꾸자.

최초 발견자의 내부 스레드 링크

'컴퓨터 > 보안' 카테고리의 다른 글

Cloudbleed  (0) 2017.02.24
로그인 시스템이 갖춰야 할 조건  (0) 2015.10.19
1 2