| 암호화 기술 적용된 장비 무력화시키는 ‘덕’ 공격 발견 | 2017.10.26 |
DUHK : Don’t Use Hard-coded Keys...하드코드된 키에서 오류 발생
취약점 익스플로잇 하면 중간자 공격 통해 민감한 정보 취득 가능 [보안뉴스 문가용 기자] 일부 포티넷(Fortinet) 기기들에서 비밀 키를 노출시키는 취약점이 발견됐다. “ANSI X9.31 난수발생기와 하드코드 된 시드 키를 함께 사용하는 기기들이 취약한 상태”라고 존스홉킨스 대학의 연구원들이 발표했다. 이 연구원들은 나디아 헤닌저(Nadia Heninger), 섀넌 코헨(Shaanan Cohen), 매튜 그린(Matthew Green)이며, 이 취약점을 활용한 공격을 덕(DUHK)이라고 이름 붙였다. ![]() [이미지 = iclickart] “덕은 ‘하드코드된 키를 사용하지 마세요’의 준말입니다(Don’t Use Hard-coded Keys). 공격자들이 비밀 암호화 키를 탈취해 VPN 통신이나 암호화된 웹 세션을 복호화시킬 수 있도록 해줍니다. 즉 민감한 사업 운영용 데이터나 로그인 크리덴셜, 신용카드 정보 등이 이 취약점 때문에 새나갈 수 있게 된다는 뜻입니다.” 현재까지 밝혀진 바 FortiOS 4.3.0부터 FortiOS 4.3.18 버전을 사용하는 VPN 트래픽은, 암호화된 핸드셰이크 트래픽을 관찰할 수 있는 자에 의해 복호화되는 게 가능하다. 약 2만 5천여 대의 포티넷 기기들이 덕 공격에 취약한 상태라고 한다. “X9.31 난수발생기와 하드코드 된 시드 키를 같이 사용하고, 거기서 나온 결과물을 암호화 키를 생성하는 데에 사용하면 일부 키들이 암호화되지 않은 채로 전송됩니다. SSL/TLS와 IPsec에서도 나타나는 현상입니다.” ANSI X9.31 난수발생기는 의사 난수(pseudorandom)를 생성하는 알고리즘으로 다양한 암호화 표준들에 도입되어 있다. 하지만 의사 난수 발생기가 가진 취약점은 이미 1998년부터 알려져 왔다. “난수발생기는 블록 사이퍼 암호화(block cipher encryption) 기술을 시드 키와 함께 사용해 타임스탬프의 상태 값을 업데이트 합니다. 하지만 이 시드 키가 공격자의 손에 들어가면 과거와 미래의 모든 결과물이 유출된다는 취약점이 있습니다.” 그러므로 덕 공격은 X9.31 난수발생기를 구현했을 때 나타날 수 있는 ‘상태 복구 공격(state recovery attack)’이라고 볼 수 있다. “공격자가 AES나 DES 키를 알고 있다면, 결과물을 어느 정도 분석한 후 난수발생기의 내부 상태를 복구시킬 수 있게 됩니다. 이로써 과거에 발생했던 난수들은 물론 미래에 생성될 것까지도 알 수 있게 되는 겁니다.” 보안 업체 비트디펜더(Bitdefender)의 수석 위협 분석가인 리비우 아르센(Liviu Arsene)은 “하드코드 된 키들을 익스플로잇하는 가장 흔한 방법은 트래픽 엿보기 즉, 중간자 공격”이라고 설명한다. “키 정보를 갖게 되니 ‘비밀 통신을 하고 있다’고 생각하는 당사자들 중 한 명을 사칭할 수 있게 됩니다. 그래서 비밀 정보를 술술 말하게끔 유도할 수 있죠.” 위 세 연구원들은 “암호화 소프트웨어를 개발하는 사람들이라면 X9.31 난수발생기를 사용하지 말아야 한다”고 말한다. “이미 FIPS(미국 연방 정보처리 규격)에서 작년 초에 사라진 알고리즘입니다. 블록 사이퍼에 기반을 둔 난수발생기를 꼭 써야만 한다면 하드코드된 키를 사용하지 마세요. 그리고 키를 자주 새로 생성하셔야 합니다.” 최종 사용자라면 어떨까? “소프트웨어 업데이트를 자주 해야 합니다. 포티넷이나 다른 소프트웨어 개발 업체들은 취약점에 대한 보고를 받고 나면 업데이트를 배포하는데요, 이를 최대한 빨리 설치해야 합니다. 리스크를 줄이는 효과적인 방법입니다.” 보안 업체 시놉시스(Synopsys)의 솔루션 책임자인 아담 브라운(Adam Brown)은 해외 매체와의 인터뷰를 통해 “사용자 기업이나 장비 제조사나 모두 펌웨어 스캔과 업데이트를 해야 한다”고 설명한다. “사용자 기업은 자신이 소유한 장비가 어떤 상태에 있는지, 어떤 펌웨어를 사용하는지, 그 펌웨어나 장비에 알려진 취약점이 있는지 파악할 필요가 있습니다. 취약점 스캐닝이 그리 어려운 작업도 아니고요. 마찬가지로 제조사들 역시 자신들의 기본 코드를 다시 한 번 검토하면서 X9.31 난수발생기가 사용됐는지 확인해봐야겠죠.” 보안 업체 센티넬원(SentinelOne)의 수석 컨설턴트인 토니 로완(Tony Rowan)의 경우, “크리덴셜, 마스터 키, 시드 값 등 암호화와 관련된 데이터가 하드코드 된 경우가 종종 발생한다”며 “보안을 상품성으로 내건 제품들이라면 이런 일이 발생하지 않도록 사전 감사를 받을 필요도 있어 보인다”는 의견이다. “결국 ‘예전에 표준이었던 방식’을 그대로 사용하다가 문제가 된 경우입니다. 발생하지 않아도 될 만한 문제였죠. 결국 상품 개발 과정 중에 최종 검사 및 실험 단계가 아직 취약하다고도 볼 수 있습니다.” 덕 공격에 대한 최초 블로그 포스팅은 여기서 확인이 가능하다. 본문 중간에 상세 기술 내용이 따로 링크 걸려 있기도 하다. [국제부 문가용 기자(globoan@boannews.com)] <저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지> |
|
|
|