상세 컨텐츠

본문 제목

ASUS, GIGABYTE 드라이버에서 코드 실행 취약점 발견, PoC 다수 공개 돼

국내외 보안동향

by 알약(Alyac) 2018. 12. 20. 09:40

본문

ASUS, GIGABYTE Drivers Contain Code Execution Vulnerabilities - PoCs Galore


ASUS 및 GIGABYTE의 드라이버 4개에서 공격자가 악용할 경우 시스템에서 권한을 상승시켜 임의 코드를 실행할 수 있도록 허용하는 취약점 다수가 발견 되었습니다.


5개 소프트웨어 제품에 영향을 미치는 취약점 총 7개가 발견 되었으며, 연구원들은 각각을 위한 익스플로잇 코드를 작성했습니다. 이 취약점들 중 다수가 아직까지 패치 되지 않았습니다.


ASUS의 Aura Sync 소프트웨어 (v1.07.22 및 이전 버전)는 취약한 드라이버들 중 2개를 설치했으며, 포함 된 취약점들은 로컬 코드 실행에 악용될 수 있습니다.


GIGABYTE의 드라이버들은 동일 브랜드 및 자회사인 AORUS의 마더보드 및 그래픽카드와 함께 배포 되었습니다.


이 취약점들은 GIGABYTE App Center (v1.05.21 및 이전 버전), AORUS Graphics Engine (v1.33 및 이전 버전), XTREME Engine 유틸리티 (v1.25 및 이전 버전), OC Guru II (v2.08)와 같은 소프트웨어를 통한 권한 상승으로 이어집니다.


ASUS의 GLCKIo 및 Asusgio 드라이버에서 버그 3개 발견 돼


Aura Sync는 사용자가 게임 플레이를 위한 개인 환경 구축을 위해 마더보드, 그래픽 카드, 주변 기기(키보드 및 마우스)와 같은 호환 되는 제품들의 RGB 스트립 조명을 동기화할 수 있는 유틸리티입니다.


Aura Sync가 시스템에 추가 되면, 이는 GLCKIo 및 Asusgio 드라이버를 설치합니다. 이 드라이버들은 코드 실행을 허용하는 결점인 CVE-2018-18537, CVE-2018-18536, CVE-2018-18535에 취약합니다.


이 취약점은 SecureAuth의 Diego Juarez가 발견 및 연구했습니다. 이 보안 회사는 Aura Sync의 새로운 버전 2개가 출시된 후 취약점을 공개했지만, ASUS는 아직까지 취약점 2개의 패치를 완료하지 못했습니다.


GLCKIo 드라이버에서 임의 주소에 임의 “2배 단어(double word)[DWORD]”를 쓰는 방법으로 취약점 CVE-2018-18537이 악용 가능합니다. 이 결함을 입증하기 위해, 연구원들은 시스템 충돌을 유발시키는 PoC를 만들었습니다.


두 번째 취약점인 CVE-2018-18536는 GLCKIo와 Asusgion 드라이버 양쪽에 모두 존재하며 IO 포트에서, IO 포트로 데이터를 읽고 쓰는 것을 가능하게 합니다.


SecureAuth는 “이는 상승 된 권한으로 코드를 실행하기 위해 여러가지 방법으로 악용될 수 있습니다.”라고 밝혔습니다.


CVE-2018-18535는 Asusgio에서 발견 되었으며, 이 또한 MSR(model-specific registers)용 읽기/쓰기 메소드를 노출시킵니다. 이는 가장 높은 권한(ring-0, OS 커널용으로 예약 됨)으로 임의 코드를 실행시키는데 악용될 수 있습니다.


MSRs는 CPU 아키텍쳐 관련 제어 레지스터이며, 디버깅, 성능 모니터링, 프로그램 실행 추적 등을 위해 CPU 기능에 접근할 수 있도록 합니다. 이는 Ring-0 권한 수준의 코드로만 실행될 수 있는 특권 명령어인 ‘rdmsr’과 ‘wrmsr’을 통해서 접근할 수 있습니다.


연구원들의 PoC에서는 Asusgio 드라이버에 존재하는 CVE-2018-18535가 KASLR(커널 주소 공간 레이아웃 랜덤화)을 우회하는 커널 함수 포인터를 유출하는 방식으로 MSRs에 대한 불안정한 연결을 허용한다는 것을 보여주었습니다. 그 결과는 블루스크린(BSOD)이었습니다.


GIGABYTE 드라이버들, 권한이 없는 프로세스와의 상호작용 허용해


또한 이 연구원은 GIGABYTE의 GPCIDrv, GDrv 드라이버를 분석결과 이들은 윈도우가 신뢰하지 않는 코드를 실행하는 것으로 간주하는 권한이 없는 사용자 프로세스로부터, 심지어 낮은 무결성 수준에서 실행 될 경우에도 시스템 호출을 받을 수 있다는 것을 발견했습니다.


그가 발견한 첫 번째 취약점은 CVE-2018-19320으로 추적 되며 공격자가 시스템 전체를 제어할 수 있는 가능성을 줍니다.


이 연구원은 권한 없는 읽기/쓰기 접근이 임의 가상 메모리에 부여되는 GDrv용 PoC를 만들었습니다. 이는 시연 목적이기 때문에, 그의 모든 코드는 시스템 충돌을 유발합니다.


두 번째 버그인 CVE-2018-19322는 권한 없는 접근을 통해 인풋/아웃풋 포트에서 데이터를 읽고/쓰도록 허용할 수 있습니다.


이는 GIGABYTE의 드라이버 두 개에 모두 영향을 미치며 공격자가 시스템에서 그의 권한을 상승시킬 수 있도록 허용합니다. 이 연구원의 익스플로잇 코드는 컴퓨터를 재부팅 할 뿐이지만, 더욱 위험한 결과를 초래하도록 변경될 수 있습니다.


GDrv는 권한이 없는 상태에서 MSR 레지스터에 접근하는 방법 또한 노출 시켜 공격자가 ring-0 권한으로 임의 코드를 실행시키도록 허용할 수 있습니다.


CVE-2018-19323로 등록 된 이 취약점은 블루스크린을 유발하는 익스플로잇 코드를 통해 시연되었습니다. 이 익스플로잇은 커널 함수 포인터를 유출시키고 KASLR 보호를 우회해 목적을 달성합니다.


SecureAuth의 연구 결과에 따르면, GPCIDrv와 GDrv 둘 다 CVE-2018-19321에 취약합니다. 이는 공격자가 영향을 받는 시스템을 온전히 제어하도록 허용할 수 있는 메모리 변형 이슈입니다.


BleepingComputer로 전달 된 PoC는 시스템 충돌만을 유발하기 때문에 무해하지만, 더 많은 문제를 일으키도록 변경될 수 있는 가능성이 있습니다.


아무 결과 없이 끝나버린 GIGABYTE와의 연락


SecureAuth에 따르면, GIGABYTE는 충분한 기술적 설명 및 데모 익스플로잇 코드를 받았음에도 위의 취약점 중 어떠한 것도 패치하지 않았습니다.


SecureAuth는 2018년 5월 GIGABYTE의 기술 지원 팀이 “GIGABYTE는 하드웨어 업체이며, 소프트웨어 전문 업체가 아닙니다”라는 답변을 받았으며, 취약점 확인을 위한 기술적 세부사항 및 튜토리얼을 요청했다고 밝혔습니다.


SecureAuth가 GIGABYTE로부터 받은 마지막 답변은 “GIGABYTE의 PM 및 엔지니어들에 따르면, 자사의 제품은 이 취약점에 영향을 받지 않기 때문에” 이 취약점을 인정하지 않겠다는 것이었습니다.



출처 : 

https://www.bleepingcomputer.com/news/security/asus-gigabyte-drivers-contain-code-execution-vulnerabilities-pocs-galore/



관련글 더보기

댓글 영역