한국시간, 9월 29일 오전 1시 41분에 최초 게시
가이 로젠(Guy Rosen) 제품 총괄 부사장
9월 25일 오후(미국시간), 페이스북의 엔지니어링 팀은 약 5천만 개의 계정에 영향을 줄 수 있는 보안 이슈를 발견했습니다. 저희는 본 건을 매우 ���중하게 받아들이고 있으며, 어떠한 일이 일어났고 이용자 보호를 위해 어떤 조치들이 즉각 이루어졌는지 모든 분들께 알려드리고자 합니다.
본 건에 대한 저희의 조사가 아직 초기 단계이긴 하지만, 페이스북을 공격한 이들이 페이스북 코드의 취약점을 악용해 “타임라인 미리보기 (페이스북 이용자가 자신의 프로필이 다른 이용자들에게는 어떻게 보이는지 확인할 수 있는 기능)”에 영향을 주었다는 점은 분명합니다. 이것이 페이스북 이용자 계정 취득에 쓸 수 있는 액세스 토큰 확보를 가능하게 했습니다. 액세스 토큰은 이용자가 매번 페이스북 앱을 이용할 때마다 암호를 입력할 필요가 없이 계속 로그인 해 있을 수 있도록 하는 디지털 키와 같은 역할을 합니다.
현재까지 저희가 취한 조치는 아래와 같습니다. 우선, 해당 취약점을 바로 잡고, 법집행기관에 알렸습니다.
둘째, 영향을 받은 것으로 확인된 약 5천만 계정의 보안을 보호하기 위하여 액세스 토큰을 리셋 했습니다. 또한, 지난 1년 동안 ‘타임라인 미리보기’ 기능의 검색 대상이 된 적이 있는 4천만 개의 추가 계정의 액세스 토큰도 예방 차원에서 리셋 했습니다. 이에 따라 약 9천만 이용자들은 페이스북이나 페이스북 로그인을 사용했던 앱에 다시 로그인 해야합니다. 해당 이용자가 페이스북에 다시 로그인 하게 되면, 이용자는 어떤 일이 발생했는지 설명해 주는 알림을 뉴스피드 최상단에서 받게 됩니다.
셋째, 저희의 면밀한 보안 검토가 이뤄지는 동안 “타임라인 미리보기” 기능은 일시적으로 중단됩니다.
이 공격은 저희의 코드에 있었던 여러 이슈를 복합적으로 악용해 이뤄졌으며, 타임라인 미리보기 기능에 영향을 미쳤던 2017년 7월의 비디오 업로드 관련 코드 수정에 따른 것입니다. 이번 공격의 공격자들은 이 취약점을 찾고, 액세스 토큰을 얻기 위해 이를 이용해야 했을 뿐만 아니라, 더 많은 토큰 취득을 위해 해당 계정에서 다른 계정으로 옮겨가야만 했습니다.
조사가 초기 단계이기 때문에 해당 계정들이 악용 되었는지, 혹은 이용자 정보에 대한 접근이 있었는지는 아직 확인이 필요합니다. 또한, 누가 이 공격의 배후에 있는지, 어디서 이루어졌는지도 확인이 필요하며, 이에 대한 내용을 더 자세하고 확실히 파악하기 위해 노력 중에 있습니다. 더 많은 내용이 확인되거나, 사실관계에 변동이 있을 경우 이 게시물을 업데이트 할 예정입니다. 더불어, 혹시라도 영향을 받은 계정이 더 발견되면, 그 계정들의 액세스 토큰도 리셋할 예정입니다.
이용자들의 프라이버시와 보안은 무엇보다도 중요하며, 저희는 이러한 일이 생긴 것에 대하여 유감스럽게 생각합니다. 이것이 저희가 해당 계정의 보안을 확보하기 위해 즉각 조치를 취하고, 이를 이용자들에게 알리는 이유입니다. 페이스북의 암호를 바꾸실 필요는 없습니다. 하지만, 만약 암호를 잊었다든가 하는 이유로 페이스북에 다시 로그인 하시는데 문제가 있다면, 저희의 고객센터를 찾아주시기 바랍니다. 그리고, 페이스북 로그아웃 등의 좀 더 선제적인 예방을 원하시는 경우 페이스북 설정에서 “보안 및 로그인” 메뉴를 이용해주시기 바랍니다. 해당 메뉴에서는 페이스북과 관련된 모든 로그인에서 한 번의 클릭으로 모두 로그아웃 할 수 있습니다.
한국시간 9월 29일 오전 8시 45분 업데이트
기술적인 세부사항에 대한 추가 설명
페드로 카나후아티(Pedro Canahuati), 보안 및 개인정보 보호 엔지니어링 담당 부사장
앞서 설명드린 보안 이슈와 관련한 추가적인 몇 가지 기술 세부 사항을 공유해드립니다.
이번 주 초에 저희는 외부의 누군가가 저희 시스템을 공격했음을 발견했으며, 이는 저희가 “타임라인 미리보기”와 관련된 특정 구성요소를 만들 때 이용자 계정의 페이스북 액세스 토큰이 HTML에 노출되는 취약점을 악용해 이뤄졌음을 확인했습니다. 이 취약점은 세 가지 개별 버그가 상호작용한 결과였습니다.
첫째, 타임라인 미리보기 기능은 이용자가 자신의 타임라인이 다른 사람에게 어떻게 보이는지 확인할 수 있도록 하는 프라이버시 기능입니다. 타임라인 미리보기는 ‘보는 것’만 가능한 기능입니다. 그러나 타임라인 미리보기 기능에서 게시물 게시 도구(페이스북에 여러 분이 글을 쓸 수 있도록 하는 창) 중 한 가지-친구들에게 생일 축하 게시글을 작성할 수 있는 게시도구-에서 동영상 게시가 가능했습니다.
둘째, 2017년 7월에 적용된 새 버전의 동영상 업로더(첫 번째 버그로 나타나는 인터페이스)가 페이스북 모바일 앱에 대한 권한을 가진 액세스 토큰을 잘못 생성했습니다.
셋째, 동영상 업로더가 타임라인 미리보기의 일부로 나타날 때, 미리보기 기능을 사용하는 이용자의 액세스 토큰이 아니라 그 이용자가 검색한 이용자의 액세스 토큰이 생성되었습니다.
이 세 가지 버그가 합쳐져 본 건의 취약점으로 작용했습니다: 타임라인 미리보기 기능으로 이용자가 프로필을 해당 이용자의 페이스북 친구가 보는 것처럼 확인할 때, 해당 코드가 생일 축하 메시지를 남길 수 있는 게시 도구를 제거하지 못했고; 동영상 업로더가 생성하지 않아야 할 액세스 토큰을 생성했으며; 액세스 토큰이 생성될 때 해당 이용자가 아니라 그 이용자가 검색한 이용자를 위한 액세스 토큰이 생성되었습니다. 이렇게 생성된 액세스 토큰이 해당 페이지의 HTML에 존재해 공격자들이 이를 추출해 다른 이용자로 로그인 하는 것이 가능하도록 했습니다.
공격자들은 이 액세스 토큰을 다른 이용자들의 계정에 접근하는데 사용하고, 같은 방식으로 더 많은 액세스 토큰을 수집할 수 있었습니다.
저희는 이용자들의 계정을 보호하기 위해 해당 취약점을 보강하였습니다. 또한 영향 받은 약 5천만 계정의 액세스 토큰을 리셋하고, 예방차원에서 추가로 지난 1년간 ‘타임라인 미리보기’ 기능에서 검색 대상이 된 적이 있는 4천만 계정의 액세스 토큰도 리셋 했습니다. 타임라인 미리보기 기능은 저희가 면밀한 보안 검토를 진행하는 동안 잠정적으로 이용이 불가능합니다.