[CSRC@KAIST 차세대보안R&D리포트] Data-oriented Attack

2021-03-25 13:31
  • 카카오톡
  • 네이버 블로그
  • url
제어 흐름을 변조하지 않으면서 공격할 수 있는 ‘데이터 변조 공격’ 살펴보기

[보안뉴스= 정동재 KAIST 사이버보안연구센터 악성코드 분석팀 팀장] CFI는 제어 흐름의 무결성을 보장하는 기법으로 정상적인 제어 흐름을 벗어나는 공격에 대해 탐지합니다. 하지만 지난 ‘제어 흐름 무결성 CFI의 종착점’ 칼럼에서 살펴본 것처럼, 완벽하게 문맥까지 고려하여 만들어진 CFI라고 하더라도 모든 메모리 손상 공격을 완벽하게 방어하지 못합니다. 이번 칼럼에서는 메모리 손상 공격이 발생했을 때, 제어 흐름을 변조하지 않으면서 공격할 수 있는 데이터 변조 공격에 대해 알아보겠습니다.


[이미지=utoimage]

메모리 손상 공격(memory corruption)은 시스템 보안에서 가장 오래된 문제 중 하나입니다. 메모리 손상 공격은 흔히 프로그램의 개발 실수로 인해 초기화되지 않거나 허가되지 않는 메모리 영역에 접근 시 발생합니다. 해킹이 발생하는 일련의 과정을 보면, 응용 프로그램이나 운영체제에 존재하는 취약점으로 인해 익스플로잇(exploit)이 발생하면, 공격자는 메모리의 특정 영역을 변조할 수 있게 됩니다. 공격자는 특정 영역을 조작함으로써 자신이 원하는 악의적인 행위를 수행하게 됩니다. 이렇게 메모리 손상을 통해 공격자는 특정 데이터를 조작할 수 있게 되고 이를 통해 공격자가 원하는 악의적인 행위를 수행합니다.

여기서 데이터는 제어 데이터(control data)와 비제어 데이터(non-control data) 두 가지로 구분할 수 있습니다. 제어 데이터는 값으로 메모리 주소를 가지고 있어 제어 흐름에 직접적으로 영향을 미치는 데이터입니다. 제어 데이터 변조는 프로그램의 흐름을 변조하여 공격자가 원하는 코드를 실행하며, 제어 흐름 탈취 공격(control flow hijacking attack)이라 합니다.

반면, 비제어 데이터는 제어 데이터와 상반된 개념으로 제어 흐름에 직접적으로 영향을 미치지 않는 데이터 변수나 포인터를 뜻합니다. 비제어 데이터 변조는 프로그램의 흐름을 변조하지 않으면서 공격자가 원하는 행위를 실행하는 방법으로 Data-Oriented Attack이라 합니다.

Data-oriented attack은 앞에서 언급한 것과 같이 프로그램의 비제어 데이터를 조작하여 악의적인 행위를 수행합니다. 이 공격은 간단히 데이터의 변수를 변조하는 것으로도 가능하며, 주로 패스워드나 암호화키를 추출하는 정보 누출(information disclosure), 사용자의 정보를 조작하여 더 높은 권한을 획득하는 권한 상승(privilege escalation), 시스템 자원의 낭비로 인한 성능 하락을 노리는 성능 저하(performance degradation), 시스템에 적용된 여러 가지 보안 기법들을 우회하기 위한 목적으로 사용됩니다.

Data-oriented attack은 공격 방식에 따라 직접 데이터 변조(Direct Data Manipulation)와 DOP(Data-Oriented Programming)로 나뉩니다. 직접 데이터 변조 방식은 말 그대로 데이터를 직접 변조함으로써 공격자가 원하는 악의적인 행위를 하는 것을 뜻합니다. 이를 위해 공격자는 변조할 데이터의 메모리 주소를 알아야 하고, 이 데이터를 조작할 수 있어야 합니다.


▲정동재 KAIST 사이버보안연구센터 악성코드 분석팀 팀장[사진=KAIST]
DOP는 좀 더 고도화된 비제어 데이터 공격 방식입니다. 직접 데이터 변조가 비제어 데이터를 직접적으로 단순하게 변조하는 것이라면, DOP는 튜링 완전(turing-complete)한 비제어 데이터 공격을 목표로 합니다. 즉, 단순히 데이터의 값을 변조하는 것에서 그치는 것이 아니라, 값을 읽고, 쓰고, 연산하는 것을 포함하여 모든 조작이 가능하게 하여 풍부하게 표현하는 것을 목표로 합니다.

DOP 공격은 ROP 공격과 유사하게 기존에 존재하는 코드를 활용하여 공격 코드를 구성합니다. 이때 사용하는 DOP 가젯은 산술, 논리, 할당, 읽기, 쓰기 기능을 하는 명령어로 구분하고, 제어 흐름을 벗어나지 않는 코드를 대상으로 탐색합니다. 이렇게 구분된 가젯을 조합하여 공격 코드를 구성하여 원하는 데이터에 접근하여 값을 읽거나 변조합니다.

Data-oriented attack은 제어 흐름을 벗어나지 않는 정상적인 흐름 내에서 공격하기 때문에 제어 흐름 방어 기법으로는 보호할 수 없습니다. Data-oriented attack을 방어하는 방법은 ASLR과 유사하게 데이터 공간 무작위화(data space randomization) 방식과 DFI(Data Flow Integrity)가 존재합니다. 이 두 방식은 아직까지 Data-oriented attack에 대해 완벽한 보안을 제공하지 못하고 있습니다. 다음 칼럼에서는 Data-oriented attack에 대한 방어 기법에 대해 살펴보고, 각 기법의 문제점에 대해 알아보겠습니다.
[글_ 정동재 KAIST 사이버보안연구센터 악성코드 분석팀 팀장]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>

연관 뉴스

헤드라인 뉴스

TOP 뉴스

이전 스크랩하기


과월호 eBook List 정기구독 신청하기

    • 지인테크

    • 인콘

    • 엔텍디바이스코리아

    • 핀텔

    • KCL

    • 아이디스

    • 씨프로

    • 웹게이트

    • 엔토스정보통신

    • 하이크비전

    • 한화비전

    • ZKTeco

    • 비엔에스테크

    • 지오멕스소프트

    • 원우이엔지

    • HS효성인포메이션시스템

    • TVT코리아

    • 이화트론

    • 다누시스

    • 테크스피어

    • 홍석

    • 슈프리마

    • 인텔리빅스

    • 시큐인포

    • 미래정보기술(주)

    • 유니뷰

    • 비전정보통신

    • 아이원코리아

    • 인터엠

    • 위트콘

    • 성현시스템

    • 한국씨텍

    • 투윈스컴

    • 스피어AX

    • 다후아테크놀로지코리아

    • 한결피아이에프

    • 경인씨엔에스

    • 디비시스

    • 트루엔

    • 세연테크

    • 프로브디지털

    • 동양유니텍

    • 포엠아이텍

    • 넥스트림

    • 핀텔

    • 위즈코리아

    • 삼오씨엔에스

    • 벨로크

    • 피앤피시큐어

    • 신우테크
      팬틸드 / 하우징

    • 에프에스네트워크

    • 네이즈

    • 케이제이테크

    • 셀링스시스템

    • (주)일산정밀

    • 아이엔아이

    • 새눈

    • 미래시그널

    • 인빅

    • 유투에스알

    • 에이티앤넷

    • 케비스전자

    • 한국아이티에스

    • 엣지디엑스

    • 네티마시스템

    • 에이앤티글로벌

    • 이엘피케이뉴

    • 와이즈콘

    • 현대틸스
      팬틸트 / 카메라

    • 제네텍

    • 구네보코리아주식회사

    • 창성에이스산업

    • 에이앤티코리아

    • 지에스티엔지니어링
      게이트 / 스피드게이트

    • 티에스아이솔루션

    • 엔에스티정보통신

    • 엔시드

    • 포커스에이아이

    • 넥스텝

    • 엘림광통신

    • 메트로게이트
      시큐리티 게이트

    • 레이어스

    • 주식회사 에스카

    • 엠스톤

    • 글로넥스

    • 유진시스템코리아

    • 카티스

    • 세환엠에스(주)

Copyright thebn Co., Ltd. All Rights Reserved.

MENU

회원가입

Passwordless 설정

PC버전

닫기