[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 정기구독 신청하기

    • 가시

    • 인콘

    • 엔텍디바이스코리아

    • 이노뎁

    • 다봄씨엔에스

    • 아이디스

    • 씨프로

    • 웹게이트

    • 엔토스정보통신

    • 하이크비전

    • 한화비전

    • ZKTeco

    • 비엔에스테크

    • 비엔비상사

    • 원우이엔지
      줌카메라

    • 지인테크

    • 그린아이티코리아

    • 이화트론

    • 다누시스

    • 테크스피어

    • 렉스젠

    • 슈프리마

    • 혜성테크윈

    • 시큐인포

    • 미래정보기술(주)

    • 효성인포메이션시스템

    • 비전정보통신

    • 경인씨엔에스

    • 지오멕스소프트

    • 성현시스템

    • 디비시스

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

    • 동양유니텍

    • 이앤엠솔루션

    • 세연테크

    • 트루엔

    • 위트콘

    • 투윈스컴

    • 이에스티씨

    • (주)우경정보기술

    • 주식회사 에스카

    • 이오씨

    • 넥스트림

    • 넷앤드

    • 에스지앤

    • 베스핀글로벌

    • 체크막스

    • 프렌트리

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

    • 에프에스네트워크

    • 앤디코

    • 케이제이테크

    • 알에프코리아

    • 사라다

    • 아이엔아이

    • 포엠아이텍

    • 새눈

    • 창성에이스산업

    • 한국씨텍

    • 태정이엔지

    • 네티마시스템

    • 에이앤티코리아

    • 유투에스알

    • 구네보코리아주식회사

    • (주)일산정밀

    • 이스트컨트롤

    • 에스에스티랩

    • 에이앤티글로벌

    • 주식회사 알씨

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

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

    • 유에치디프로

    • 두레옵트로닉스

    • 엘림광통신

    • 티에스아이솔루션

    • 포커스에이치앤에스

    • 보문테크닉스

    • 휴젠

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

    • 글로넥스

    • 신화시스템

    • 세환엠에스(주)

    • 유진시스템코리아

    • 카티스

    • 유니온커뮤니티

Copyright thebn Co., Ltd. All Rights Reserved.

MENU

회원가입

PC버전

닫기