Photo by Markus Spiske on Unsplash



7-Zip に重大な脆弱性 – 更新をお忘れなく

https://nakedsecurity.sophos.com/ja/2018/05/09/critical-bug-in-7-zip-make-sure-youre-up-to-date/



2개월 전 LANDAVE(또는 Dave)라는 자칭 사이버보안 연구자가 인기있는 무료유틸리티 7-Zip에 보안 취약점이 존재하는 것을 발견했습니다.

7-Zip은 많은 사용자가 Windows의 주요 응용프로그램의 하나로 설치하는 파일압축 소프트웨어입니다.

이 소프트웨어는 독자적 메가압축 아카이브파일(확장자 .7z)을 지원할뿐만 아니라 대부분의 압축형식에서 데이터를 추출할 수 있습니다.

예를 들어 ZIP, gzip, bzip2의 파일, UNIX의 tar와 cpio 아카이브, Windows CAB 및 MSI 파일, Macintosh DMG파일, CD이미지(ISO) 등의 취급이 가능합니다. 또한 파일관리자 'Midnight Commander' 사용자에게 친숙한 2창 파일관리 인터페이스를 옵션으로 탑재하고 있습니다.

7-Zip은 RAR파일의 지원도 포함되어 있는데, 이번에 발견된 취약점은 여기에 존재하고 있었습니다. 이 취약점은 독립형 UnRAR 유틸리티의 오픈소스 코드에서 계승된 것으로 보입니다.

7-Zip이 취약점(CVE-2018-10115)을 수정하는 업데이트를 이미 공개하고 있기 때문에, LANDAVE 씨는 발견의 자세한 경위와 심각한 취약점이라고 판단한 이유를 공개했습니다.


LANDAVE 씨에 따르면, 이 문제는 빈번히 발생하는 복잡성과 보안의 충돌이 원인입니다.

UnRAR 코드는 다양한 압축수준 및 형식(파일을 개별적으로 압축하는 것보다 크기가 작게 될 가능성이 높다는 이유로 여러 파일을 연결하여 압축하는 특수한 압축시스템 등)을 지원하고 있기 때문에 복잡합니다.

RAR 파일형식에는 '솔리드'라는 위에서 설명한 옵션이 포함되어 있습니다. 이것은 반복되는 모든 데이터 조각을 하나의 파일로 제한하는 것이 아니라, 반복되는 문자열이 2개 이상의 서로 다른 파일에 있다고해도 일치시킴으로써 압축비율을 개선하고 있습니다. 예를 들어, 아카이브에 유사한 작은 파일이 다수 존재하는 경우, 반복 문자열의 일치가 다수 발견되므로 압축률이 향상됩니다.


LANDAVE 씨는 7-Zip에서 사용되는 UnRAR 추출코드가 사용개시 시점에 적절하게 설정되어 있지 않은 것을 발견했습니다. 즉 사용하는 소프트웨어가 RAR코드에서 치명적인 오류를 발생시킬 가능성이 있습니다.

이것은 마치 렌터카 회사가 상태를 전혀 모르는 자동차를 대여하여 드라이버가 본인이 차를 점검하고 문제가 있으면 수정하고 출발해야하는 상황과 같습니다.

즉, UnRAR 코드에 초기화되지 않은 많은 변수로 인해, 부정한 아카이브 파일의 데이터에 숨겨진 코드를 UnRAR 코드에게 실행시킬 수 있습니다.


데이터로 위장하여 잠입해 오는 코드를 '쉘코드'라고 합니다.

쉘코드의 실행을 허용하는 취약점은 공격자가 악성파일을 외부에서 보내, 사용자가 파일을 열어보기만 하여도 컴퓨터에서 악성코드를 실행할 수 있는데 이를 '원격 코드실행의 취약성(RCE)'이라고 합니다.

다운로드창과 팝업 경고 메시지도 표시되지 않습니다.


LANDAVE 씨는 이론적으로 악용이 가능한 취약점을 발견했을뿐 아니라, 가동시 계산기 응용프로그램을 자유자재로 실행시키는 RAR파일을 만드는 방법을 선보이는 PoC(개념증명) 취약점 공격을 만들었습니다.

일반적으로 PoC가 CALC.EXE의 팝업을 할 수 있다면 그 PoC를 변경하는 것만으로 사용자에게 들키지 않고 임의의 명령(악성코드 포함)을 수행시킬 수 있습니다.


활성화되어 있지않은 ASLR


LANDAVE 씨가 공격을 쉽게 만들 수 있었던 이유는 7-Zip 소프트웨어와 함께 제공되는 응용프로그램이 주소공간배치의 랜덤화(ASLR)을 지원하지 않은 채 생성되어 있었기 때문입니다.

7-Zip는 항상 같은 메모리주소에 로드되므로 사용자가 7-Zip을 실행할 때마다 공격자는 실행코드의 특정 부분이 로드되었는지 여부와 어디에 로드된 것인지를 사전에 예측할 수 있습니다.


LANDAVE 씨는 7-Zip의 제작자에게 초기화되지 않은 변수의 취약점(CVE-2018-10115)의 수정과 더불어 ASLR를 활성화한 업데이트 버전도 만들도록 설득하였다고 합니다.


◆ 대책

  • 7-Zip을 사용하는 경우는 최신 버전이 설치되어 있는지 확인하십시오.
  • Windows 프로그래머는 ASLR을 지원하지 않는 소프트웨어를 출하하지 마십시오. (Visual Studio를 사용하여 /DYNAMICBASE옵션을 사용하여 컴파일 하십시오.).
  • 모든 프로그래머는 모든 데이터 필드를 안전하고 적정한 값으로 초기화하고 오브젝트의 신규작성을 신중하게 해야합니다.


Posted by 말총머리
,