더북(TheBook)

수많은 웹 사이트와 LDAP 서버가 취약하다는 사실은 알고 있지만, 이들이 유일한 heartbleed 데이터의 소스는 아니다. Heartbleed를 이용한 공격에서 볼 수 있는 가장 큰 문제점은 SSL VPN에 영향을 준다는 것이다. 잠시 동안 VPN 서버에서 메모리를 읽을 수 있다고 상상해 보자. 사용자 이름과 패스워드를 볼 수 있다면 무엇을 할 수 있을까? 이론적으로는 같은 시간대에 로그인한 임의의 사용자로 접근할 수 있을 것이다. 시간이 지난 취약점이었다면 어떻게 될까? 어떤 계정을 공격해야 할까? Heartbleed는 IT 관리자가 시스템을 패치하려고 VPN으로 접속했을 때 공격당할 수 있다.

이런 버그 때문에 취약한 Juniper SSL VPN을 살펴보자. 이전과 동일한 명령을 실행해서 SSL VPN 웹 서버에 질의하여 지정된 메모리 영역에 저장한 것을 반환할 수 있는데, 그 결과는 그림 3-11과 같다.

123

▲ 그림 3-11 Heartbleed - SSL VPN

 

이때 클라이언트는 2단계 two-factor 인증을 했는데, SSL VPN으로 이중 인증이 어떻게 작동하는지 기억하자. 일단 사용자 이름, 패스워드와 토큰(두 번째 요소)으로 인증하면 웹 세션 ID를 얻을 수 있다. 웹 세션 ID만 확보하면 이 사용자로 위장해(두 번째 인증 없이) 다른 사용자의 세션 ID를 확보하고 이를 여러분의 웹 브라우저로 내보낼 수 있다. 예를 들어, heartbleed 메모리 덤프에서 DSID 쿠키를 볼 수 있는데, DSID가 무엇일까?

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.