Facebook 웜은 정확히 어떻게 작동합니까?


27

필자는 처음에 내 FB 친구가 앱을 순진하게 수락하고 권한을 부여했기 때문에 악의적 인 링크를 퍼 뜨리고 있다고 가정했지만 실제로는 그렇지 않습니다. 교환 참조 :

친구 : "나에게서받은 링크를 클릭하지 마십시오! 감염되었습니다! (이름이 수정되었습니다.) !!! 미안합니다. 그만둬******!"
나 : "FB 응용 프로그램을 수락했습니다. 계정-> 개인 정보 설정-> 앱 및 웹 사이트로 이동하여 문제가되는 응용 프로그램을 허용하지 않기 만하면됩니다. FB 응용 프로그램을 사용하지 않는 이유는 무엇입니까?"
친구 : 앱이 아닙니다. 목록에 없습니다 ... 웜입니다

어떻게 작동합니까? 사용자가 링크를 클릭 할 때 JavaScript shenanigans?

답변:


31

예, 정확히 JavaScript입니다. 방금 그런 벌레를 만나서 해독하려고했습니다.

실제 문제는 무엇입니까?

최근 Facebook 웜은 사용자가 페이지를 방문하도록하여 주소 표시 줄에 JavaScript 문자열을 삽입하여 실행시킵니다.

따라서 주소 표시 줄에 JavaScript 코드를 복사 하지 마십시오 . 이것이 주요 문제입니다. 신뢰할 수없는 링크를 클릭하지 마십시오. 또는 개인 정보 보호 모드 (Firefox) 또는 시크릿 모드 (Chrome)를 사용하여 새 창에서 해당 링크를 열면 Facebook 세션에 액세스 할 수 없습니다.


해커들은 사람들이 무엇을하고 있는지 깨닫지 못하도록하기 위해 무엇을 했습니까?

스크립트 탈출

URL 표시 줄에 복사 한 문자열은 대부분 실행되는 다른 JavaScript에 연결됩니다. 이 스크립트는 실제로 엔티티로 디코딩됩니다. 따라서 문자열 문자를 사용하는 대신 전체 스크립트를 문자열에 넣고 이스케이프 처리하여 사람이 처음부터 읽을 수 없도록했습니다.

예를 들어, 매우 악의적 인 기능을 가지고 있다면 이스케이프 처리하고 사용자는 다음 만 볼 수 있습니다.

함수 % 20test % 28 % 29 % 20 % 7B % 20alert % 20 % 28 % 22LOL % 22 % 29 % 3B % 20 % 7D

이스케이프 처리되지 않은

함수 테스트 () {alert ( "LOL"); }

따라서 스크립트는 실행되기 전에 "자체"를 이스케이프 처리합니다.

난독 화

이제 추악 해지고 있습니다. 피하기 전에 함수 이름 _____x과 변수가 같은 사악한 JavaScript 코드가 난독 화 aLDIWEJ됩니다. 이것은 여전히 ​​자바 스크립트에는 의미가 있지만, 인간에게는 전혀 읽을 수 없습니다. 이는 Facebook 해커의 의도를 숨기려고 다시 수행됩니다.

이 시점에서 코드는 다음과 같이 보일 수 있습니다.

여기에 이미지 설명을 입력하십시오

스크립트가하는 일

이 스크립트가하는 일은 현재 Facebook 세션을 취하는 것입니다. 사이트에 로그인했기 때문에 귀하의 이름으로 무엇이든 할 수 있습니다. 예를 들어 Facebook API를 통해 수행 할 수있는 작업은 다음과 같습니다.

  • 같은 이벤트 만들기 "OMG 나는 나를 스토킹 누가 볼 수 있습니다!"
  • 사람들과 채팅
  • 상태 업데이트 게시
  • 기타

이 모든 것은 일부 Facebook API 페이지 (일부 PHP 페이지, 어떤 것을 잊었는지)를 호출하여 발생합니다.


5

간단히 말해서 ... 다른 바이러스와 마찬가지로 바이러스입니다. 자체 복제에 사용되는 방법은 다른 사람의 페이지에서 실행 된 후 계정에 게시물을 작성하는 것입니다. 사용중인 브라우저 및 / 또는 운영 체제 및 취약점에 따라 모든 것이 가능합니다. 기본적으로 스크립트가 브라우저에서 실행되면 (간단한 클릭으로 시작할 수 있음) 캐시 된 자격 증명을 사용하여 페이지에 게시물을 작성합니다. 여기에는 처음에 클릭 한 것과 동일한 / 유사한 링크가 포함됩니다.

자바 스크립트 / 플래시 비활성화 및 기타 많은 것들 (페이스 북에 필요)이 부족하면 이러한 악용으로부터 자신을 보호 할 수 없습니다.

다른 사용자의 게시물에있는 링크를 클릭하기 전에 신속하고 더러운 해결 방법 ... 진행중인 위치를 확인하십시오. 해시 표시 ( "#")로 끝나거나 일종의 자바 스크립트 참조가 있거나 실제 링크가없는 링크는 피하십시오. (즉, URL로 이동하지 않는 것 같습니다)

또는 당신은 항상 내 접근 방식을 취할 수 있고 ... 페이스 북 / 트위터 / 등 ...을 완전히 피할 수 있습니다. 나는 어떤 가치 나 중요한 것을 할당 할 서비스에서 아직 아무것도 찾지 못했습니다. 친구 및 가족은 이메일을 보내는 방법 또는 더 나은 방법으로 전화를받는 방법을 알고 있습니다. (가치가있는 것에 대한 나의 의견)


1
실제로는 정확하지 않습니다 ... 이로부터 자신을 보호 할 수있는 방법이 많이 있습니다. 예를 들어 자바 스크립트를 실행하지 않기 위해 NoScript와 같은 플러그인을 사용할 수 있습니다. 개인 정보 보호 모드 / 시크릿 모드를 사용하여 새 창에서 링크를 열면 새 창에서 페이스 북 세션에 액세스 할 수 없습니다. 보안이 의심스러운 링크를 피하는 데 의존하는 경우 그다지 효과적이지 않습니다. 대신 보안 브라우징 도구를 올바르게 사용하면 모든 링크 클릭을 넘어 숨어있는 것을 두려워 할 필요가 없습니다.
Brian Schroth

@Brian Schroth : 제 게시물에서 말했듯이 "javascript / flash / ....를 비활성화하는 데 부족합니다."NoScript는 정확히 그렇게합니다. 당신은 링크의 목표를 보는 것만으로는 많은 악용으로부터 당신을 구할 수 없다는 것이 맞습니다 ... 시크릿 모드 등은 당신이 바이러스에 걸리는 것을 막지 않을 것입니다. 사실 ... 사람들은 링크 너머에있는 것이 무엇인지 두려워해야합니다. 클릭 한 내용에 대해 잠시 생각해야합니다.
TheCompWiz

1
NoScript는 Javascript를 비활성화하지 않습니다. 자바 스크립트가 수행하는 것과 실행하지 않는 것에 대한 세밀한 제어를 제공합니다. 귀하의 답변은 "Javascript를 비활성화"하면 더 이상 Facebook을 사용할 수 없음을 의미합니다. 그러나 NoScript를 사용하는 경우 facebook.com 스크립트를 허용하면서 임의의 악성 코드 사이트의 Javascript로부터 계속 보호 할 수 있습니다.
브라이언 Schroth
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.