리눅스 블루투스 프로토콜에서 심각한 ‘블리딩투스’ 취약점 나와
리눅스 커널 5.9 이전 버전에서 발견된 심각한 취약점…권한 상승과 코드 실행
인텔에서는 이와 관련되어 있지만 위험도 조금 낮은 취약점 2개 패치 발표하기도
구글과 인텔이 리눅스 블루투스 프로토콜인 블루지(BlueZ)에서 고위험군에 속하는 취약점을 발견했다.
블루지는 리눅스 기반 사물인터넷 장비들에 탑재된 블루투스 기능을 구현하는 데 있어 핵심적인 요소 중 하나다.
구글은 여기에 블리딩투스(BleedingTooth)라는 이름을 붙였다.
구글에 의하면 리눅스 커널 5.9 이전 버전의 경우 블리딩투스 취약점에 노출되어 있다고 한다. 블루지는 공식 리눅스 커널 2.4.6부터 도입되었다. 블리딩투스 취약점의 가장 큰 특징은 ‘제로 클릭 공격’을 가능하게 한다는 것이다. 즉 피해자가 특정 링크를 누르거나 파일을 열지 않아도 공격이 성립된다는 뜻이다. 블리딩투스 취약점을 공략하는 데 성공할 경우 공격자의 권한이 상승된다.
구글은 깃허브 게시글을 통해 “블루투스 전파가 닿을 만 한 거리에 있는 공격자가 피해자의 블루투스 주소를 알아낼 경우 악성 l2cap 패킷을 보냄으로써 디도스 공격을 하거나 커널 권한을 가지고 임의 코드 실행 공격을 할 수 있게 된다”고 설명했다. 악성 블루투스 칩을 통해서도 블리딩투스 취약점을 발동시키는 게 가능하다고도 썼다.
블리딩투스 취약점의 공식 관리 번호는 CVE-2020-12351이다. CVSS를 기준으로 8.3점을 받아 고위험군으로 분류된다. 일종의 타입 컨퓨전(type confusion) 취약점이며, net/bluetooth/l2cap_core.c에서 발견된다고 한다. 타입 컨퓨전을 일으키면 영역 외 메모리에 접근할 수 있고, 이를 통해 코드를 실행하거나 일부 요소를 마비시킬 수 있게 된다. 이렇게 되는 건, 블루지를 커널 내에서 구현했을 때 사용자가 제공하는 입력값을 검증하는 과정이 불충분하기 때문이다.
구글은 이 취약점에 대한 개념증명 익스플로잇 영상을 함께 공개했다. 영상은 다음 주소(https://www.youtube.com/watch?v=qPYrLRausSw&feature=emb_logo)에서 열람이 가능하다. 앞으로 블루지 취약점에 대한 추가 정보는 여기(https://security.googleblog.com/)서 공개될 예정이다. 구글이 깃허브에 공개한 내용은 여기(https://github.com/google/security-research/security/advisories/GHSA-h637-c88j-47wq)서 열람할 수 있다.
인텔 측도 리눅스 커널 사용자들에게 5.10 이상 버전으로 업데이트 할 것을 권고하는 내용의 발표문을 공개했다. 그러면서 “권한 상승 및 정보 노출을 일으킬 수 있는 취약점이 블루지에서 발견되었다”고 설명했다. 동시에 불충분한 접근 제어 때문에 발생하는 중간급 위험군 오류 두 개에 대한 픽스를 발표했다. 두 가지 전부 블루지에 영향을 준다고 한다.
이 두 가지 취약점은 다음과 같다.
1) CVE-2020-12352 : 인증 과정을 통과하지 않은 사용자가 장비 근처에서 정보에 접근할 수 있게 해준다. 사용자의 블루투스 주소를 알고 있으면 커널 스택 정보를 취득할 수 있게 된다.
2) CVE-2020-24490 : 인증 과정을 통과하지 않은 사용자가 장비 근처에서 디도스 공격을 할 수 있게 해준다. 경우에 따라 임의 코드 실행 공격도 가능하게 된다.
위 포스팅에 문제가 있을 시, 삭제하겠습니다.
댓글 없음:
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.