Hongfluenza

[보안뉴스] 애플, 정기 패치 통해 100개 넘는 취약점 해결해 본문

STUDY/____ETC

[보안뉴스] 애플, 정기 패치 통해 100개 넘는 취약점 해결해

Hongfluenza 2019. 5. 20. 03:54

보안뉴스 링크 ▷ https://www.boannews.com/media/view.asp?idx=79540

 

애플, 정기 패치 통해 100개 넘는 취약점 해결해

애플이 이번 주 iOS, 맥OS, 사파리(Safari), tvOS, 왓치OS(watchOS)에 대한 패치를 발표했다. 대단히 많은 수의 취약점들이 해결된 것이라, 사용자들의 업데이트가 필수다.

www.boannews.com


보안뉴스에 따르면, 오픈 소스 웹 브라우저 엔진인 웹킷에서 21개의 취약점이 발견됐는데, 20개는 메모리 변형(memory corruption)과 관련된 것이고, 나머지 1개는 아웃 오브 바운드(out-of-bounds) 관련 취약점이라고 한다.

 

이 기사를 읽고 나서 메모리 변형과 아웃 오브 바운드의 개념에 덧붙여 몰랐던 용어들에 대한 개념을 정립하려 한다.


메모리 변형(Memory Corruption)

이 취약점은 버그로 인한 메모리 오염, 즉 예상되지 않은 메모리 값 변경, 참조 등에 의해서 발생하게 된다. 원인은 다양하나 대부분 안전하지 않은 함수의 사용, 잘못된 함수 사용 등 프로그래밍 실수로 인해 발생하게 된다. 손상된 메모리 내용이 나중에 해당 프로그램에서 사용될 때 프로그램 충돌이나 이상하고 기괴한 프로그램 동작으로 연결된다. Windows 시스템에서 응용 프로그램 충돌의 약 10%가 힙 손상으로 인한 것이다.

 

메모리 손상 오류는 다음과 같이 네 가지의 범주로 분류할 수 있다.

 

1. 초기화되지 않은 메모리 사용

: 초기화되지 않은 메모리의 내용은 가비지 값으로 처리된다. 이러한 값을 사용하면 예기치 않은 프로그램 동작이 발생할 수 있다.

 

2. 소유하지 않은 메모리 사용

: 포인터를 사용하여 메모리에 엑세스하고 수정하는 것이 일반적인데, 그러한 포인터가 널 포인터 또는 현재 스택 또는 힙 경계의 외부의 메모리에 위치한 경우 프로그램에서 소유하지 않은 메모리를 참조한다. 이러한 포인터를 사용하는 것은 심각한 프로그래밍 결함으로, 이러한 메모리에 엑세스하면 일반적으로 운영체제 예외가 발생한다. (일반적으로 프로그램 충돌이 발생)

 

3. 버퍼 오버플로우

: 잘못된 종료 조건으로 루프에서 배열을 사용하면 배열 범위를 벗어난 메모리가 실수로 조작 될 수 있다. 버퍼 오버플로우는 널리 사용되는 프로그램에서 심각한 컴퓨터 보안 문제를 유발하는 가장 일반적인 프로그래밍 결함 중 하나이다. 어떤 경우에는 프로그램이 버퍼를 시작하기 전에 메모리에 잘못 엑세스 할 수도 있다.

 

4. 힙 메모리 관리 오류

 

+ 추가적으로 Memory Corruption에 의해 발생할 수 있는 취약점의 종류는 다음과 같다.

1. Stack Buffer Overflow

2. Heap Buffer Overflow

3. Integer Overflow

4. Format String Bug

5. Use-After-Free

6. Double Free

7. Null Pointer Dereperence

 

모르거나 들어는 봤지만 정확한 개념을 모르는 종류가 많기 때문에 나중에 하나씩 차근차근 정리해보도록 하자.

 


아웃 오브 바운드(out-of-bounds)

공격자들이 악의적으로 조작한 웹 콘텐츠를 처리하는 동안 프로세스 메모리에 저장된 내용을 유출시킬 수 있게 해주는 취약점

 

( 구글링을 통해서 알아보려 했지만 개념이 잘 나와있지 않아 미국의 National Vulnerability Database를 통해 발표된 취약점 중, CVE-2018-9305와 CVE-2018-9306 취약점이 Exiv2 0.26 버전의 iptc.c의 IptcData::printStructure의 아웃오브바운드 취약점으로 시스템 마비를 일으킬 수 있다는 것 정도만 찾을 수 있었다. )

 


추가적으로 궁금했던 개념은 샌드박스였다.

 

샌드박스란 미국에서 어린아이를 보호하기 위해 모래통(Sandbox)에서만 놀도록 하는데서 유래한 보안 모델을 말한다.

즉, 외부 접근 및 영향을 차단하여 제한된 영역 내에서만 프로그램을 동작시키는 것이다. 샌드박스 내에서 어떤 파일이나 프로세스가 안전하지 못하다고 판명되면, 외부로의 접근을 차단하여 시스템에 피해를 입히는 것을 방지한다.

예를 들어 악성 프로그램이나 악성코드의 경우, 본래의 공격행위를 하더라도 실제 시스템 내 파일이나 프로세스를 감염시킬 수 없다. 이러한 특징들로 말미암아 가상화를 통한 보안으로서 악성코드를 감지하고 분석하는데 사용되는 기술이다.

그러나 샌드박스 기술이 기존 시그니처 기반 탐지의 한계를 극복하는 대안으로 각광받자, 해커들은 샌드박스를 탐지 및 우회하는 악성코드를 만들어 냈다. 악성코드가 동작하는 환경이 샌드박스로 감지되면 C&C 주소를 숨기거나 다른 HTTP 리퀘스트를 사용하여 보안업체로 하여금 악성코드를 분석하는 것을 방해한다. 

샌드박스 기술이 APT 공격의 주요 보안 솔루션이지만, 이를 우회하는 악성코드가 존재하는데다가 가상화 공간에서 동작을 수행하는데 시간이 다소 걸린다는 단점도 있다. 이러한 이유로 샌드박스 기술은 기존 보안 솔루션들을 보완하는 차원에서 통합으로 사용되는 경우도 있다.


+) 여담

1. 항상 보안에서 중요한 것이 최신 버전으로 업데이트를 하라는 것이었다. 나는 이 기사를 읽고나서 내 핸드폰 ios 버전을 확인했는데 최신 보안 업데이트를 안 한 상태였다.. 앞으로는 바로바로 업데이트 하기

2. 새로운 개념들을 공부할 때마다 또 새로운 개념들과 용어에 대해서 공부해야 하는 상황이 반복된다.. 


출처

https://en.wikipedia.org/wiki/Memory_corruption

 

Memory corruption - Wikipedia

Memory corruption occurs in a computer program when the contents of a memory location are modified due to programmatic behavior that exceeds the intention of the original programmer or program/language constructs; this is termed violating memory safety. Th

en.wikipedia.org

https://nextline.tistory.com/81

 

[포너블] Memory Corruption 취약점

Memory Corruption 이 취약점은 버그로 인한 메모리오염, 즉 예상되지 않은 메모리 값 변경, 참조등에 의해서 발생하게된다. 원인은 다양하나 대부분 안전하지 않은 함수의 사용, 잘못된 함수 사용 등 프로그래밍..

nextline.tistory.com

https://www.estsecurity.com/securityCenter/commonSense/view/64

 

샌드박스(Sandbox) 기술이란? | 이스트시큐리티

샌드박스란 미국에서 어린아이를 보호하기 위해 모래통(Sandbox)에서만 놀도록 하는데서 유래한 보안 모델을 말합니다. 즉, 외부 접근 및 영향을 차단하여 제한된 영역 내에서만 프로그램을 동작시키는 것입니다. 샌드박스 내에서 어떤 파일이나 프로세스가 안전하지 못하다고 판명되면, 외부로의 접근을 차단하여 시스템에 피해를 입히는 것을 방지합니다. 예를 들어 악성 프로그램이나 악성코드의 경우, 본래의 공격행위를 하더라도 실제 시스템 내 파일이나 프로세스를 감염

www.estsecurity.com