보안

부채널 공격으로부터 메모리 내 키를 보호하는 오픈SSH

Lucian Constantin  | CSO 2019.06.25
오픈SSH 프로젝트는 해커들이 권한이 없는 프로세스의 제한된 메모리 구역에 액세스하게 하는 하드웨어 취약성을 통해 개인 키를 탈취할 수 없게 하는 패치를 받았다. 후 세대 SDRAM 칩과 CPU에서 하드웨어 취약성 문제가 해결되기 전까지는 다른 소프트웨어 애플리케이션에서도 똑같은 방식을 이용해 RAM의 기밀 정보를 보호할 수 있다. 
 
ⓒ Getty Images Bank 
   
이 패치가 나온 것은 최근 램블리드(RAMBleed)라고 명명된 공격을 한 연구팀이 소개한 이후의 일이다. 램블리드 공격은 권한 프로세스와 커널에 할당된 메모리 구역에서 정보를 빼내기 위해 최신 메모리 모듈의 설계를 악용한다.

램블리드는 로우해머(Rowhammer)라는 소프트웨어 기법을 사용해 물리적 메모리 셀 안에서 비트 뒤집기를 촉발시킨 후 부채널(side channel)을 통해 민감한 정보를 빼 낸다. 이 연구팀은 램블리드 공격은 사용자 수준 권한으로 실행되는 코드를 사용하는 오픈SSH 서버로부터 RSA 2048 비트 서명 키를 빼낼 수 있음을 시연했다.
 
최신 운영체제는 커널에 할당된 가상 메모리를 사용자 공간 애플리케이션의 가상 메모리로부터 분리시킨다. 이렇게 하는 이유는 커널 메모리에 암호화 키, 비밀번호 등 권한이 없는 애플리케이션에 직접 액세스되서는 안되는 민감한 정보가 들어 있기 때문이다.

이 기본 원칙이 침해되는 것은 심각한 보안 결함이다. 공격자가 컴퓨터 시스템에 대한 코드 실행 권한을 얻을 수 있는 많은 방식 때문에 그렇다. 다양한 사용자 공간 애플리케이션에서의 취약성이나 악성코드 감염을 통하는 방식도 포함된다. 컴퓨터에서 실행되는 모든 권한이 없는 애플리케이션의 공격 표면은 커널 자체의 것에 비해 훨씬 크다.


오픈SSH 패치로 개인 키를 암호화한다

오픈BSD 개발자 다미엔 밀러가 제출한 새로운 오픈SSH 패치의 목적은 "RAM에 상주하는 개인 키를 스펙터(Spectre), 멜트다운(Meltdown), 로우패머(Rowhammer), 램블리드(Rambleed)와 같은 예측 및 메모리 부채널 공격으로부터 추가로 보호하는 것"이다.

스펙터, 멜트다운, 그리고 최근의 마이크로 아키텍처 데이터 샘플링(Microarchitectural Data Sampling, MDS)는 최신 CPU의 성능 향상을 위한 예측 실행 기능을 이용하는 부채널 공격이다. 이 가운데에는 보호된 커널 메모리 판독에 사용 가능한 것도 있다.

새로운 오픈SSH 패치는 개인 키를 암호화한다. 단, 메모리에 상주하고 있을 때, 그리고 16KB의 무작위 데이터로부터 유도된 다른 대칭 키와 함께 적극적으로 사용되고 있지 않을 때에 그렇다. 

밀러는 패치의 주석에서 다음과 같이 설명했다. "공격자들이 보호된 개인 키를 복호화하려면 먼저 프리키(prekey) 전체를 높은 정확성으로 빼내야 한다. 그러나 현 세대 공격들의 비트 오류율은 프리키 전체에 누적적으로 적용될 경우 그런 일을 불가능하게 한다. 실행 측면에서 보면, 키는 읽어 들일 때 암호화되어 ‘보호’된 후, 서명에 사용되거나 저장/직렬화 될 때 자동으로 그리고 투명하게 보호가 해제된다."


패치는 타 소프트웨어용으로 복사해 널리 사용 가능

오픈SSH는 SSH(시큐어 셸(Secure Shell)) 프로토콜의 가장 인기있는 구현판이다. SSH 프로토콜은 컴퓨터 시스템과 서버에 대한 원격 접근 및 관리 목적으로 사용되며 기계 간의 자동화된 통신에도 사용된다. 원래는 오픈BSD용으로 설계되었지만 오늘날 대부분의 리눅스 배포판에 의해서도 기본적으로 사용되며 윈도우10에서 지원된다.

오픈SSH에서 사용한 방식은 다른 소프트웨어 프로젝트의 메모리 내 기밀정보와 자체 키를 보호하기 위해 복사될 수 있다. 그러나, 패치 노트에서 암시하는 바와 같이, 이 기법은 부채널 공격의 성공 확률을 낮출 뿐 불가능하게 만들지는 못한다.

공격은 늘 개선되고 있기 때문에, 향후에 발견되는 일부 램블리드나 멜트다운/스펙터 변종에는 이러한 완화 조치가 통하지 않을 가능성도 있다. 근본적인 설계 결함은 향후 하드웨어에서 해결되겠지만 오늘날 사용 중인 CPU와 SDRAM 칩을 교체하려면 오랜 기간이 소요될 것이다.
 
이런 하드웨어 공격과 향후의 공격들은 기업 IT에 장기적인 영향을 미칠 것이라고 보는 것이 타당하다. 따라서, 이러한 결함을 부분적으로 완화하고 공격을 성공시키기 어렵게 만들기 위해 개발자들이 소프트웨어에 할 수 있는 것이라면 어느 것이든 매우 유용하다. 밀러는 패치의 마지막 부분에 다음과 같이 덧붙였다. "컴퓨터 아키텍처가 비교적 안전해지는 몇 년 안에 이런 공격을 제거할 수 있기를 바란다." editor@itworld.co.kr 

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.