[CSRC@KAIST 차세대보안R&D리포트] 데이터 공격 방어기법

2021-04-22 10:06
  • 카카오톡
  • 네이버 블로그
  • url
데이터 공격은 메모리 손상으로부터 시작되어 ‘Non-Control Data’의 변조가 일어나면서 시작
메모리 손상을 막기 위한 Memory Safety 기법, 데이터의 위치를 알 수 없게 만드는 방법, 데이터 흐름 무결성 등


[보안뉴스= 정동재 KAIST 사이버보안연구센터 악성코드분석팀장] 이번 기고에서는 지난 기고(Data-oriented Attack)에서 살펴본 데이터 공격(Data-oriented attack)에 대한 방어기법들에 대해서 공격이 발생되는 과정에 따라 단계별로 보호할 수 있는 어떤 방법들이 존재하는지 알아보고, 이들 각각의 보안 방법들이 지닌 한계점에 대해서도 간략히 살펴보도록 하겠습니다.


[이미지=utoimage]

데이터 공격은 메모리 손상으로부터 시작되어 ‘Non-Control Data’의 변조가 일어나면서 시작됩니다. 메모리 손상부터 데이터 변조까지의 공격 흐름에 따라 각 단계에 대한 방어 기법을 생각해보면, 가장 처음 할 수 있는 방법은 메모리 손상을 막는 것입니다. 메모리 손상은 흔히 취약점을 통해 익스플로잇(Exploit)되면서 발생하며, 방어기법으로는 Memory Safety 기법이 존재합니다.

Memory Safety 기법은 비제어 데이터뿐만 아니라 제어 데이터까지도 보호하는 방식으로 모든 메모리 손상을 막는 것을 목표로 합니다. 메모리 오류를 탐지해 유효한 포인터와 오브젝트의 주소를 검사하는 방식으로 메모리 공간의 안정성을 보장합니다. 하지만 이 방식은 바이너리 내의 포인터들을 메타데이터와 구분하기 위해 별개의 메모리 공간에 보관하고, 데이터의 접근이 발생할 때, 포인터 여부에 대한 검사와 포인터들이 역참조될 때마다 유효한 범위 내에 있는지 검사를 진행하는 오버헤드로 인해 아직까지는 실생활에 적용할 수 없을 정도의 엄청난 오버헤드가 발생한다는 단점이 존재합니다.

메모리 손상으로부터 보호하기 위한 또 다른 방식으로는 중요한 데이터들을 따로 격리시키는 방법이 있습니다. 이러한 메모리 격리 방식은 권한이 높은 리소스에 대한 무단 액세스를 방지하기 위해 널리 사용됩니다. 합법적인 코드 영역에서만 사용자 ID와 권한 같은 보안에 중요한 데이터에 접근할 수 있게 함으로써 의도치 않은 접근으로 인한 직접적인 데이터 손상을 방지합니다. 이 방식은 메모리를 격리할 수 있는 추가적인 하드웨어나 소프트웨어적인 방법이 필요하다는 것과 적은 양의 중요한 데이터를 보호하는 경우에만 효과적이라는 단점이 존재합니다.

다음으로 Non-Control Data가 변조되는 것을 막기 위한 방법으로는 데이터의 위치를 알 수 없게 만드는 방법이 있습니다. 이 방식은 데이터 오브젝트 내의 위치를 랜덤하게 변화하는 방식과 데이터 표현을 수정하는 방식이 있습니다. DSR(Data Space Randomization)이라고 하는 방식은 메모리의 각 데이터 개체를 임의의 키값으로 암호화하고, 사용하기 전에 해독하는 방식으로 데이터를 보호합니다. 하지만, ASLR과 유사하게 무작위화의 한계로 인해 완벽한 보안을 제공하지는 못합니다. 또한, 메모리 레이아웃을 파악해 공격이 가능하며, DOP(Data-Oriented Programming) 공격에 취약하다는 한계점이 있습니다. 또한, 모든 데이터의 위치를 무작위화 하는 것은 높은 오버헤드를 발생시킬 수 있다는 단점도 존재합니다.

마지막 방법으로 데이터 흐름 무결성(Data Flow Integrity) 기법이 있습니다. 이름에서도 느껴지듯이, 데이터 흐름 무결성 방식은 제어 흐름 무결성 방식과 접근 방식이 비슷합니다. 먼저 프로그램 실행 전에 데이터가 정의되고 사용되는 것에 대한 정적 데이터 흐름 그래프(DFG)를 생성합니다. 그리고 프로그램이 실행되면서 각 데이터의 읽기 작업이 수행될 때, 이 데이터가 합법적인 작업에 의해서 정의되었는지 데이터 변조에 대한 검사를 수행해 데이터를 보호합니다. 이 방식 또한, 모든 메모리 영역에 데이터 흐름 무결성을 완벽하게 적용하면 모든 데이터 변조 공격을 막을 수 있지만, 모든 데이터가 정의될 때 값을 기억하고, 사용될 때 값이 변조되었는지 검사하는 루틴이 추가되어 매우 높은 오버헤드가 존재하며, 아직까지 기술적으로 어려운 부분이 많이 있습니다.


▲정동재 KAIST 사이버보안연구센터 악성코드분석팀 팀장[사진=KAIST]
대부분의 데이터 공격에 대한 방어기법들을 요약하자면, 프로그램 내에 존재하는 수많은 데이터를 모두 보호하기에 아직 기술적으로나 성능적인 측면에서 볼때 상당히 많은 비용이 발생하기 때문에 결국에는 보안적으로 중요한 데이터들을 선별하여 일부 데이터들만 보호하는 방법이 실용적인 접근 방법이라고 할 수 있겠습니다.

지금까지 살펴본 것처럼 메모리 손상에 대한 다양한 공격들과 그에 대한 여러 가지 방어 기법들에 대해 살펴보았습니다. 결국 가장 완벽해 보이는 최신의 방어기법이라도 또 다른 취약점과 여러 우회적인 공격에 의해 공격이 가능하다는 한계점이 있다는 것을 알 수 있었습니다. 따라서 더욱 안전한 시스템을 만들기 위해서는 여러 공격들에 대한 높은 이해와 심도 있는 분석을 바탕으로 한 방어기법 연구, 더욱 철저한 검증과 테스팅이 조화를 이룰 때 가능하며, 더욱 완벽한 보안을 위해서는 자동화가 필수적인 과제가 아닐까 생각해 봅니다.
[글_ KAIST 사이버보안연구센터 악성코드분석팀 정동재 팀장]

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

연관 뉴스

헤드라인 뉴스

TOP 뉴스

이전 스크랩하기


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

    • 가시

    • 인콘

    • 엔텍디바이스코리아

    • 이노뎁

    • 다봄씨엔에스

    • 아이디스

    • 씨프로

    • 웹게이트

    • 엔토스정보통신

    • 하이크비전

    • 한화비전

    • ZKTeco

    • 비엔에스테크

    • 비엔비상사

    • 원우이엔지
      줌카메라

    • 지인테크

    • 그린아이티코리아

    • 이화트론

    • 다누시스

    • 테크스피어

    • 렉스젠

    • 슈프리마

    • 혜성테크윈

    • 시큐인포

    • 미래정보기술(주)

    • 효성인포메이션시스템

    • 비전정보통신

    • 경인씨엔에스

    • 지오멕스소프트

    • 성현시스템

    • 디비시스

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

    • 동양유니텍

    • 이앤엠솔루션

    • 세연테크

    • 트루엔

    • 위트콘

    • 투윈스컴

    • 이에스티씨

    • (주)우경정보기술

    • 주식회사 에스카

    • 이오씨

    • 넥스트림

    • 넷앤드

    • 에스지앤

    • 베스핀글로벌

    • 체크막스

    • 프렌트리

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

    • 에프에스네트워크

    • 앤디코

    • 케이제이테크

    • 알에프코리아

    • 사라다

    • 아이엔아이

    • 포엠아이텍

    • 새눈

    • 창성에이스산업

    • 한국씨텍

    • 태정이엔지

    • 네티마시스템

    • 에이앤티코리아

    • 유투에스알

    • 구네보코리아주식회사

    • (주)일산정밀

    • 이스트컨트롤

    • 에스에스티랩

    • 에이앤티글로벌

    • 주식회사 알씨

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

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

    • 유에치디프로

    • 두레옵트로닉스

    • 엘림광통신

    • 티에스아이솔루션

    • 포커스에이치앤에스

    • 보문테크닉스

    • 휴젠

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

    • 글로넥스

    • 신화시스템

    • 세환엠에스(주)

    • 유진시스템코리아

    • 카티스

    • 유니온커뮤니티

Copyright thebn Co., Ltd. All Rights Reserved.

MENU

회원가입

PC버전

닫기