YouTube에서 다른 웹사이트에 YouTube 동영상을 재생하는 플레이어를 설치할 수 있는 HTML 태그를 출력하는 기능이 있습니다. 임베디드 플레이어는 동영상 재생이나 정지 등의 조작 외에, 재생목록 등에 액세스할 수 있는 편리한 존재. 그러나 그런 YouTube 임베디드 플레이어에셔 재생기록과 비공개 동영상이 유출되는 취약점이 있었다고 발견자인 David Schütz 씨가 주장합니다.
bugs.xdavidhu.me - xdavidhu's bug bounty writeups.
https://bugs.xdavidhu.me/google/2021/01/18/the-embedded-youtube-player-told-me-what-you-were-watching-and-more/
YouTube 계정에는 '재생기록' 목록, '나중에 보기' 목록, '즐겨찾기' 목록, '업로드' 목록 등이 존재하는데, Schütz 씨는 이 목록의 URL이 '추측 가능한' 상태였음을 발견했습니다. 예를 들어, 업로드한 동영상이 포함된 업로드 목록은 채널을 표시하는 URL 'https://www.youtube.com/channel/채널ID의 '채널ID 부분 처음 세 글자를 'UUB' 또는 'UUD'로 변경하면 액세스할 수 있었다고 합니다.
계정에 미로그인 상태의 경우에는 업로드 목록의 공개된 동영상에만 액세스할 수 있기 때문에 목록의 URL을 추측 가능한 것만으로는 비공개 동영상의 유출 가능성이 없습니다. 그러나 Schütz 씨는 YouTube의 '임베디드 플레이어'에서 플레이어를 재생한 사람의 계정에 로그인한 상태를 만들어 낼 수 있다는 취약점을 발견했습니다.
YouTube의 동영상을 웹사이트에 포함된 플레이어로 설치할 수 있고 설치한 플레이어는 YouTube Player API를 이용한 JavaScript에 의한 제어가 가능합니다. YouTube Player API는 'YouTube'와 '설치한 웹사이트' 사이의 크로스도메인 통신을 postMessage 메소드로 실시하고 있으며, API의 playVideo 메소드와 pauseVideo 메소드, getPlaylist 메소드 등 동영상 재생, 정지, 목록에서 동영상 검색 같은 조작이 가능하게 되어 있습니다.
Schütz 씨가 YouTube 해킹에 착수했던 당시에는 YouTube Player API에는 재생목록의 동영상 정보를 얻을 수 있는 getVideoData 메소드가 존재했다고 합니다. getVideoData 메소드로 취득 할 수 있는 VideoData 오브젝트에는 동영상ID와 작성자, 제목 등의 정보가 포함되어 있었습니다. 또한 플레이어를 재생한 사람이 YouTube에 로그인한 상태라면 임베디드 플레이어도 로그인 상태가 되기 때문에, 임베디드 플레이어는 계정에 대한 모든 권한을 부여받았습니다.
따라서 웹사이트에 YouTube 임베디드 플레이어를 설치하여 YouTube Player API의 메소드로 추측한 URL을 함께 사용하면 비공개 동영상에 액세스 가능한 상태였습니다.
이 취약점이 발견된 시점은 2019년 10월로 현재는 수정되었습니다. Schütz 씨는 취약점의 포상금으로 Google에서 1337달러(약 134만 원)를 받았지만, "지금 생각하면 취약점이 미치는 영향에 비해 보상이 적었다고 생각한다"고 당시의 보상금액을 되돌아보며 "시스템을 이해하면 할수록 파괴방법에 대한 아이디어가 떠오른다"고 말합니다.
'IT' 카테고리의 다른 글
Android에서 휴지통은 어디에 있나? 파일의 삭제 · 복원 방법 (0) | 2021.02.01 |
---|---|
케이블과 스탠드 없이 스마트폰을 원격충전할 수 있는 기술 'Mi Air Charge'를 Xiaomi가 개발 (0) | 2021.02.01 |
세계에서 가장 위험한 악성코드 'Emotet'의 네트워크를 괴멸시키는데 성공 (0) | 2021.01.29 |
집의 Wi-Fi 통신속도를 개선하기 위한 팁 (0) | 2021.01.28 |
스마트폰의 누전? 찌릿찌릿하는 원인과 대책 (0) | 2021.01.23 |
SMS로 송신자를 위장한 메시지 보내기 (0) | 2021.01.18 |
약 15년 전에 출시된 '무선 LAN 라우터'가 지금도 판매가 계속되고 있는 이유 (0) | 2021.01.18 |
단 한 줄로 스토리지를 즉시 손상시킬 수 있는 커맨드를 발견, '보는 것만으로도 스토리지가 손상되는 바로가기'의 존재도 확인 (0) | 2021.01.15 |