2019-11-13 23:11 (수)
우분투 리눅스의 치명적 보안취약점 분석 그리고 버그바운티
상태바
우분투 리눅스의 치명적 보안취약점 분석 그리고 버그바운티
  • 페소아 기자
  • 승인 2016.12.19 18:38
이 기사를 공유합니다

공격자, 시스템 크래쉬 유발하거나 루트 권한 획득 및 멀웨어 실행 가능

만약 당신이 우분투 데스크탑을 사용하고 있다면 신속히 패치를 적용 해야만 한다.

보안 연구원 Donncha O'Cearbhaill는 우분투 리눅스에서 원격 코드 실행 취약점을 찾아냈다. 우분트 12.10에서 처음 나타나는 이 취약점은 조작된 파일을 열 때 악성코드가 시스템에서 실행되게 한다. 이를 이용해 공격자는 시스템 크래쉬를 유발하거나 루트 권한을 획득하고 멀웨어를 실행할 수 있다.

O'Cearbhaill는 파일이 "Problem:"으로 시작하면 우분투의 Apport가 알려지지 않은 파일을 오픈하는 것을 발견했다. Apport는 우분트의 기본 크래쉬 핸들러이면서 크래쉬 보고 프로그램이다. Apport는 비정상적인 .crash 확장자와 파일 식별을 위한 매직 바이트 시퀀스를 지닌 크래쉬 파일을 만들어낸다. 예를 들어 PDF 확장자가 없는 PDF문서는 16진수 매직바이트 "25 50 44 46"으로 PDF임을 식별할 수 있다.

우분투에서 알 수 없는 파일이 주어지면 먼저 MIME(Multipurpose Internet Mail Extensions) 확장자 명과 일치시키려고 시도한다. 이때 실패하면 매직 바이트와 일치하는 것으로 대체된다. 공격자는 Apport 매직바이트 식별을 사용해 파일을 만들어 낼 수 있다. 이제 확장자가 .crash인 파일은 공식적으로는 열리지 않지만, 확장자가 없는 파일로 열릴 수 있다. 그러면 Apport가 동작해 충돌 보고서 대화창을 표시한다. 만약 당신이 "Show Details"를 눌렀다면 당신은 스스로 공격에 노출된 것이다.

이것은 가짜 Apport 크래쉬 파일 내에 해커가 Apport 크래쉬 보고서 포맷을 이용하여 CrashDB필드에 나열된 파이썬 프로그램들을 실행하라는 요구를 숨기는데 사용할 수 있기 때문이다. 이 명령은 파싱되어 더 이상 사용자와의 상호작용 없이 실행된다. 다시 말해서 Apport는 처리하기 전에 크래쉬 파일의 Package 및 SourcePackage 대한 무결성 체크를 하지 않는다. Path Traversal류의 또다른 취약점을 이용하여 공격자는 더 많은 문제를 일으킬 수 있는 파이썬 파일을 실행할 수 있다. 공격자는 악의적인 .py파일과 크래쉬 파일을 사용자 다운로드 디렉토리에 두어 코드 실행을 할 수 있다.

더욱이 사용자가 500 이하의 사용자 ID(UID)를 갖고 있을 경우, Apport는 Polkit(이전 PolicyKit)를 사용해 데스크탑 유저에게 ‘시스템 프로그램 문제 발견’이라는 메시지와 함께 루트 권한을 요청한다. 만약 당신이 요청에 응한다면 공격자가 루트권한으로 명령을 실행할 수 있는 권한을 얻게된다.

이 취약점은 현재 패치가 되었다. 그러나 O'Cearbhaill은 "컴퓨터 보안업계는 현재 심각한 이해상충 상황을 낳고 있다. 연구원들이 취약점을 찾고 익스플로잇하는 것은 재정적인 요인으로 많은 브로커들이 취약점들이 수정되지 않기를 원하고 있다. 코드 실행 취약점은 값어치가 있다. 이 점에서 Apport 취약점에 대해 익스플로잇 밴더에게 10,000USD 이상의 제안을 받았다"라고 상황을 설명하고 있다.

이에 대한 답으로 O'Cearbhaill는 인터넷 버그바운티와 같은 프로젝트를 기업들이 운영해야 한다고 설명하고 있다.

★정보보안 대표 미디어 데일리시큐!★