클릭재킹

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기

클릭재킹(Clickjacking, User Interface redress attack, UI redress attack, UI redressing)은 웹 사용자가 자신이 클릭하고 있다고 인지하는 것과 다른 어떤 것을 클릭하게 속이는 악의적인 기법으로써 잠재적으로 공격자는 비밀 정보를 유출시키거나 그들의 컴퓨터에 대한 제어를 획득할 수 있게 된다. [1] [2] [3] [4] 이것은 다양한 웹 브라우저들과 컴퓨팅 플랫폼들에서의 취약점으로서 브라우저 보안 이슈이다. 클릭재킹은 사용자의 인식 없이 실행될 수 있는 임베디드 코드나 스크립트의 형태를 갖는다.[5]

"NoScript" 애드온에서의 "잠재적인 클릭재킹" 경고

설명[편집]

클릭재킹은 보기에 위험하지 않는 특징을 갖는 HTML 웹페이지들이 예상되지 않는 행동을 수행할 수 있음로써 가능해 진다.

클릭재킹 페이지는 감춰진 링크를 사용자가 클릭함으로써 의도되지 않는 행동을 수행하게 속인다. 사용자는 실제로는 감춰진 페이지에서 행동을 수행하지만 자신은 보이는 버튼을 클릭했다고 생각한다. 감춰진 페이지는 인증 페이지일 수 있으며, 공격자는 사용자가 전혀 의도하지 않은 행동을 수행할 수 있다. 사용자가 성실하게 숨겨진 페이지에서 인증을 수행한 경우, 이후 이 행동을 공격자까지 추적하는 방법은 없다.

예시[편집]

사용자는 비디오에 링크된 이메일을 받을 수 있다. 그러나 아마존의 상품 페이지가 유효한 페이지이며 사용자가 "플레이" 버튼을 누를 때 실제로는 상품의 "구매" 버튼을 누르는 것일 수 있다.

다른 예시들

  • 플래시를 통해 사용자가 자신의 웹캠과 마이크를 활성화시키게 속인다.
  • 사용자가 자신의 SNS 프로필 정보를 공개하게 속인다.
  • 다른 사람의 트위터를 팔로우하게 속인다.[6]
  • 페이스북의 링크를 공유하게 한다.[7][8]
  • 페이스북의 "좋아요"를 누르게 한다.
  • 구글 애드센스 프로그램에서 불법적인 수입을 올린다.

브라우저 간의 호환되지 않는 점으로 인해 이런 공격을 기술적으로 구현하는 것은 어렵지만, BeEF메타스플로이트 프로젝트 같은 많은 툴들이 취약한 웹 사이트를 공격하는 거의 완전한 자동화된 익스플로잇을 제공한다. 클릭재킹은 사이트 간 스크립팅 같은 다른 웹 공격에 의해 가능해질 수 있다.[9][10]

라이크재킹[편집]

라이크재킹은 의도와 다르게 페이스북의 좋아요를 누르게 하는 악의적인 기법이다.[11]

커서재킹[편집]

커서재킹은 사용자가 인식하는 위치에서 커서를 바꾸기 위한 UI 리드레싱 기법이다.

패스워드 관리 공격[편집]

만약 현재의 로그인 페이지의 프로토콜이 과거 암호가 저장되었던 프로토콜과 다르다면 브라우저는 자동채우기를 거부하지만, 몇몇 암호 관리자들은 안전하지 못하게 채울 수 있다. 대부분의 브라우저들은 iFrame과 URL 리다이렉션 기반 공격과 여러 디바이스 사이에 사용되는 암호 동기화에 의한 노출된 추가적인 암호를 보호하지 않는다.[12]

예방[편집]

클라이언트 측[편집]

NoScript[편집]

클릭재킹은 파이어폭스의 경우 NoScript 애드온을 설치함으로써 보호할 수 있다.

GuardedID[편집]

GuardedID는 인터넷 익스플로러와 파이어폭스[13]에서 합법적인 iFrame의 동작을 방해하는 것 없이 클릭재킹에서 보호해 준다.

Gazelle[편집]

Gazelle은 마이크로소프트 리서치의 인터넷 익스플로러에 기반한 안전한 웹 브라우저 프로젝트이다. 이것은 운영체제와 비슷한 보안 모델을 사용하며 클릭재킹에 대한 제한된 방어를 해준다.[14]

서버 측[편집]

프레임킬러[편집]

웹 사이트 소유자들은 그들이 사용자를 서버 측에서 프레임킬러 자바스크립트 스니펫을 포함한 UI 리드레싱으로부터 보호할 수 있다.[15]

이런 자바스크립트 기반 보호는 불행하게도 항상 의지할 수 있는 것은 아니다. 이것은 특히 인터넷 익스플로러[15] 에서 그런데, 이러한 종류의 대책은 대상 페이지에 클릭재킹을 포함하는 디자인에 의해 우회할 수 있다.[16]

X-프레임-옵션[편집]

클릭재킹에 대한 부분적인 보호를 제공하는 새로운 HTTP 헤더 X-Frame-Options[17][18] 2009년에 IE8에서 추가되었고 얼마 후 다른 브라우저들에도 채택되었다.[19][20][21][22] 웹사이트 소유자들에 의해 헤더는 선호되는 프레이밍 정책을 갖는다. DENY, SAMEORIGIN, 또는 ALLOW-FROM origin 값들은 각각 프레이밍, 외부 사이트에의한 프레이밍을 금지하고 또는 단지 특별한 사이트에 대한 프레이밍만 허용한다. 게다가 어떤 광고 사이트들은 그들의 페이지들의 컨텐트를 프레이밍하는 것을 허용할 목적으로 비표준 ALLOWALL 값을 리턴한다.

컨텐트 보안 정책[편집]

컨텐트 보안 정책의 frame-ancestors 지시자는 iframe나 객체들을 사용하는 잠재적으로 위험한 페이지에 의한 컨텐트의 삽입을 허용하거나 금지할 수 있다.[23]

예시

# Disallow embedding. All iframes etc. will be blank, or contain a browser specific error page.
Content-Security-Policy: frame-ancestors 'none'
# Allow embedding of [[same-origin policy|own content]] only.
Content-Security-Policy: frame-ancestors 'self'
# Allow specific origins to embed this content
Content-Security-Policy: frame-ancestors example.com wikipedia.org

같이 보기[편집]

각주[편집]

  1. McMillan, Robert (2008년 9월 17일). “At Adobe's request, hackers nix 'clickjacking' talk”. PC World. 2008년 10월 8일에 확인함. 
  2. Dhawan, Megha (2008년 9월 29일). “Beware, clickjackers on the prowl”. India Times. 2008년 10월 8일에 확인함. 
  3. Goodin, Dan (2008년 10월 7일). “Net game turns PC into undercover surveillance zombie”. 《The Register》. 2008년 10월 8일에 확인함. 
  4. Lane, Fredrick (2008년 10월 8일). “Web Surfers Face Dangerous New Threat: 'Clickjacking'. newsfactor.com. 2008년 10월 8일에 확인함. 
  5. Lemon, Sumner (2008년 9월 30일). “Business Center: Clickjacking Vulnerability to Be Revealed Next Month”. 2008년 10월 8일에 확인함. 
  6. Sandler, Daniel (2009년 2월 12일). “Twitter's "Don't Click" prank, explained (dsandler.org)”. 2009년 12월 28일에 확인함. 
  7. Krzysztof Kotowicz (2009년 12월 21일). “New Facebook clickjacking attack in the wild”. 2009년 12월 29일에 확인함. 
  8. “Facebook "clickjacking" spreads across site”. 《BBC News》. 2010년 6월 3일. 2010년 6월 3일에 확인함. 
  9. “The Clickjacking meets XSS: a state of art”. Exploit DB. 2008년 12월 26일. 2015년 3월 31일에 확인함. 
  10. Krzysztof Kotowicz. “Exploiting the unexploitable XSS with clickjacking”. 2015년 3월 31일에 확인함. 
  11. Cohen, Richard (2010년 5월 31일). “Facebook Work - "Likejacking". Sophos. 2010년 6월 5일에 확인함. 
  12. “Password Managers: Attacks and Defenses” (PDF). 2015년 7월 26일에 확인함. 
  13. Robert Hansen (2009년 2월 4일). “Clickjacking and GuardedID ha.ckers.org web application security lab”. 2012년 7월 11일에 원본 문서에서 보존된 문서. 2011년 11월 30일에 확인함. 
  14. Wang, Helen J.; Grier, Chris; Moschchuk, Alexander; King, Samuel T.; Choudhury, Piali; Venter, Herman (August 2009). “The Multi-Principal OS Construction of the Gazelle Web Browser” (PDF). 18th Usenix Security Symposium, Montreal, Canada. 2010년 1월 26일에 확인함. 
  15. Michal Zalevski (2008년 12월 10일). “Browser Security Handbook, Part 2, UI Redressing”. Google Inc. 2008년 10월 27일에 확인함. 
  16. Giorgio Maone (2008년 10월 27일). “Hey IE8, I Can Has Some Clickjacking Protection”. hackademix.net. 2008년 10월 27일에 확인함. 
  17. Eric Lawrence (2009년 1월 27일). “IE8 Security Part VII: ClickJacking Defenses”. 2010년 12월 30일에 확인함. 
  18. Eric Lawrence (2010년 3월 30일). “Combating ClickJacking With X-Frame-Options”. 2010년 12월 30일에 확인함. 
  19. Ryan Naraine (2009년 6월 8일). “Apple Safari jumbo patch: 50+ vulnerabilities fixed”. 2009년 6월 10일에 확인함. 
  20. https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header The X-Frame-Options response header — MDC
  21. Adam Barth (2010년 1월 26일). “Security in Depth: New Security Features”. 2010년 1월 26일에 확인함. 
  22. “Web specifications support in Opera Presto 2.6”. 2010년 10월 12일. 2012년 1월 22일에 확인함. 
  23. “Content Security Policy Level 2”. 《w3.org》. 2014년 7월 2일. 2015년 1월 29일에 확인함. 

외부 링크[편집]