[튜토리얼] 크롬 사용해 클릭재킹 탐지하기

[튜토리얼] 크롬 사용해 클릭재킹 탐지하기
Photo by Growtika / Unsplash
💡
Editor's Pick
- 클릭재킹 공격, 크롬 브라우저의 개발자 도구로 탐지 가능
- 수상함 느끼는 순간 누구나 해볼 수 있는 일들
- 여러 수상한 징조들 겹친다면 의심해볼 만

클릭재킹(clickjacking)은 이제 사이버 공격자들이 흔하게 구사하는 기법 중 하나로 자리를 잡았다. 그런데 흔하디 흔한 애플리케이션인 ‘크롬 브라우저’를 가지고 이 공격을 어느 정도 차단하는 게 가능하다. 이 방법을 단계별로 살펴보자.

클릭재킹 공격?

먼저 클릭재킹이란 무엇인지부터 확인하고 넘어가자. 마우스 클릭을 하이재킹(납치)하는 것을 클릭재킹이라고 하는데, 피해자가 보기에는 평범한 화면의 평범한 버튼이나 주소, 링크를 클릭하는 것일 뿐인데, 사실은 그 클릭이 전혀 엉뚱한 기능을 하도록 만드는 것을 의미한다. 어떻게 이렇게 하는 걸까? 피해자의 화면에 보이지 않는 얇은 막을 씌우는 것이다. 그래서 눈으로 보기에는 피해자가 원하는 것을 누르는 모양새가 연출되는데, 실제로 그 마우스 커서는 공격자가 깔아둔 얇은 막을 누르게 된다는 의미다.

당연하지만 여기서 말하는 얇은 막은 물리적인 비닐 같은 걸 말하는 건 아니다. 그리고 ‘투명하다는 건’ 보이지 않는다는 것일 뿐, 아무 것도 없다는 의미가 아니다. 따라서 사용자가 클릭하고자 하는 버튼이나 링크 위에는 공격자가 의도한 뭔가 다른 것이 보이지 않는 상태로 존재한다. 그래서 피해자의 ‘클릭’이 공격의 재료로 사용되도록 상황을 만든다. 이 클릭을 활용해 공격자는 원하는 정보를 빼돌리거나, 높은 권한을 가져가거나, 멀웨어를 심는 등의 행위를 할 수 있다.

자, 그럼 본격적으로 이 투명한 막을 어떻게 알아보고 걷어낼 수 있는지 알아보자. 여러 가지 방법이 있겠지만 여기서는 컴퓨터 사용자 거의 대부분이 이미 갖추고 있는 ‘크롬 브라우저’를 활용하도록 한다.

공격 위험 완화법

일반 사용자들이 잘 활용할 일은 없지마니 구글 크롬은 강력한 개발자 도구를 갖추고 있다. 이 도구들을 잘 활용하면 어떤 사이트에서든지 클릭재킹의 교묘한 ‘투명 막’을 탐지하는 게 가능하다. 다음 순서로 작업을 진행하면 된다.

1) 웹 페이지에 방문해 이상 신호가 느껴지면 우클릭한다. 이상 신호란, 버튼을 눌렀을 때 엉뚱한 일이 일어난다든지, 클릭이 안 된다든지, 커서 반응이 평소와 조금 다르다든지 하는 것들이다.

2) 여기서 중요한 건, 페이지 아무 데서나 우클릭하는 게 아니라는 것이다. 반드시 이상을 감지한 바로 그 요소를 우클릭 해야 한다. 버튼이면 버튼, 링크면 링크, 탭이면 탭.

네이버의 로그인 버튼이 어쩐지 수상했다면, 우클릭 해서 맨 아래 '검사'를 클릭한다[출처: 더테크엣지]

3) ‘검사’라는 메뉴를 선택한다. 갑자기 오른쪽에 복잡한 코드로 구성된 창이 뜨는 것을 확인할 수 있다. 지금 페이지를 구성하는 HTML과 CSS다.

본 화면에 살짝 옆으로 밀리면서 코드들이 오른쪽에 나타난다. 오늘 볼 것은 Elements와 Styles로, 빨간 동그라미 표시에 마련돼 있다[출처: 더테크엣지]

4) Elements 탭이 선택되어져 있는 것을 볼 수 있을 것이다. 또한 나열된 코드 중 일부가 흐린 파란 색으로 하이라이트 된 것도 확인할 수 있다. 방금 검사하고자 하는 버튼이나 그림, 링크가 바로 지금 하이라이트 되어 있는 부분이라고 보면 된다.

5) 하지만 HTML이나 CSS를 따로 배우지 않았다면 지금 하이라이트 되어 있는 것이 제대로 작성되어 있는 건지, 혹은 투명한 막이 덮여 있는 건지 구분하기 힘들다. 걱정할 것 없다. 지금 당장 코드를 배우라는 게 아니다.

6) 다만 이 HTML 코드가 일정한 순서대로 짜여져 있고, 그 순서가 웹 페이지의 배열에 중요한 영향을 미친다는 것 정도는 이해하면 좋다. 벽돌을 켜켜이 쌓아 집을 짓듯, 웹 페이지라는 것도 코드 한 줄 한 줄을 쌓아 올려야 만들어진다. 

7) 이걸 시각적으로 확인하려면 Elements 탭 내 코드들을 마우스로 한 줄 한 줄 따라 읽다보면 알 수 있다. 마우스가 올라간 곳이 어디에 해당하는지, 웹 페이지에서 눈으로 확인할 수 있기 때문이다. 마우스가 가리키는 코드에 해당하는 부분이 웹 페이지 내에서 파랗게 하이라이트 된다.

로그인 버튼에 해당하는 코드보다 한 줄 위의 내용을 마우스로 가리키면 로그인 버튼 위의 글자 요소가 하이라이트 되는 걸 볼 수 있다[출처: 더테크엣지]
반대로 로그인 버튼 아래의 코드를 마우스로 가리키면 '아이디 찾기', '비밀번호 찾기' 등의 요소가 하이라이트 되는 것을 볼 수 있다[출처: 더테크엣지]

8) 한 줄 한 줄 내려가거나 올라가 보면 페이지 내에서 하이라이트가 어떻게 바뀌는지 알 수 있다. 여기 저기 널뛰기 하듯 하는 게 아니라 순서대로 하이라이트가 옮겨가는 걸 볼 수 있다.

9) 무슨 말인가? 투명 막이 깔려 있다면, 그 투명 막에 해당하는 코드에 마우스를 올렸을 때 엉뚱한 곳이 하이이라이트 된다는 뜻이다. 분명 아무 버튼이나 그림이 없는데 화면 전체가 파랗게 변한다든지, 버튼 위에 작은 투명 사각형이 나타나면 수상한 것이다. 그 영역에 누군가 이상한 짓을 해 놓았을 가능성이 높다.

10) 이렇게 이상 징후 하나가 수집됐다면 이제 iframe이라는 글자가 코드 내에 있는지 살펴보자. Elements 탭 내에서 컨트롤과 F키를 눌러 iframe이라는 글자를 입력한다.

Elements 내에서 ctrl+f를 누르면 원하는 문자열을 찾을 수 있게 해 주는 검색 도구가 나타난다[출처: 더테크엣지]

11) iframe이 사용된 코드 부분을 마우스로 가리킨다. 그리고 화면의 어떤 영역이 하이라이트 되는지 확인한다.

iframe 코드를 가리켰더니 화면 한쪽의 쇼핑 창이 하이라이트 된다[출처: 더테크엣지]

12) 만약 사이트 만든 사람이 iframe을 정상적으로 사용한 거라면 눈에 명확히 보이는 부분이 하이라이트 될 것이다. 아니라면 화면에 아무 것도 나타나지 않거나, 아주 작게, 구석 어딘가에 숨겨져 있을 것이다. 혹은 아예 화면 전체를 덮고 있을 수도 있다. Opacity라는 값이 0으로 설정돼 있을 가능성도 높다.  

13) iframe을 마우스로 가리켰을 때 하이라이트가 잘 보이지 않으면 이상한 것이다. 버튼이나 링크 위에 겹쳐져 있어도 이상한 것이다. 화면 전체를 덮고 있어도 수상한 것이다.

14) 이렇게 수상한 것이 하나 더 수집됐으면 화면 아래에 Styles라는 탭을 선택한다.

Styles 탭은 Elements 내용 아래 쪽에 위치해 있다[출처: 더테크엣지]

15) 여기에 opacity: 0이나 opacity: 0.01 혹은 visibility: hidden이나 display: none과 같은 게 있는지 확인한다. 이런 값이 있다고 모두 수상하거나 이상한 건 아니지만, 투명한 막이 씌워져 있다면 이런 값이 설정됐을 확률이 높으므로 의심할 만하다. 수상함을 느낄 수 있는 세 번째 요소다.

16) 그러면 수상한 세 가지 점 중 몇 가지가 해당하는지를 꼽아본다. 두 개 이상이면 뭔가 이상한 페이지일 가능성이 매우 높다. 그러니 더 이상 해당 페이지에 머물지 말고 나온다.

17) 크롬 브라우저의 보안을 강화한다. 팝업 차단 옵션을 켜고, 타사 쿠기를 비활성화 하며, 조금이라도 의심되는 플러그인은 삭제한다. 최신 버전을 항상 유지하는 것도 필수다.🆃🆃🅔

by 문가용 기자(anotherphase@thetechedge.ai)


[튜토리얼] 디지털 리터러시 무료로 높이는 MySQL 설치법
💡Editor’s Pick - 수준 높아지는 ‘디지털 리터러시’ - 데이터는 현대 사회의 새로운 화폐... 다루는 법 익혀야 - 무료 데이터베이스 MySQL, 학습에도 좋은 도구 시대가 요구하는 ‘디지털 리터러시’의 수준이 조금씩 높아지고 있다. 90년대 중후반만 해도 ‘워드프로세서를 다룰 줄 안다’는 게 이력서에 자랑스럽게 기재될 정도였으나, 이제는 초등학생들도 워드로 숙제를 작성하고
[튜토리얼] 인공지능 위험성 평가, 실제로 이렇게 해보세요
💡Editor’s Pick - 인공지능 조심히 써야 한다는데, 어떻게? - 중요한 건 위험성 평가... 5단계 방법 공개돼 - 사내 현황, 서드파티, 사용자 순으로 점검 인공지능의 강력함을 누려보기 위해 만지작거리다 보면 보안 쪽에서 늘 찬물을 끼얹는다. 아직 위험하다, 신뢰하기 힘들다, 아무 정보나 입력해서는 안 된다, 모든 결과를 믿으면 안 된다... 그러면서 기업에

Read more

갑자기 비밀번호 변경하라고? 인스타그램 사용자들 ‘불안’

갑자기 비밀번호 변경하라고? 인스타그램 사용자들 ‘불안’

💡Editor' s Pick - 비밀번호 재설정 요청 메일을 받은 인스타그램 사용자 일부 - 해당 메일은 인스타그램이 보낸 것...피싱 아니었음 - 같은 시기에 다크웹에 올라온 인스타그램 사용자 정보 일부 인스타그램 사용자들이 “비밀번호를 재설정 해달라”는 요청을 인스타그램으로부터 받는 일이 지난 주에 있었다. 해당 메일에 따라 사용자들은 비밀번호를 변경하거나 그대로

By 문가용 기자
토렌트, OSINT로서의 가치 충분

토렌트, OSINT로서의 가치 충분

💡Editor's Pick - 토렌트는 원래 대용량 파일 전송 위한 프로토콜 - 요즘 불법 다운로드의 대명사처럼 쓰이지만, 원래는 합법 기술 - 기업 망에서 토렌트 트래픽 있나 점검할 필요 있어 토렌트 트래픽 혹은 토렌트 메타데이터를 오픈소스 인텔리전스(OSINT)로 활용할 수 있다는 연구 결과가 발표됐다. 네덜란드 틸뷔르흐대학의 연구원 두 명과,

By 문가용 기자
[TE머묾] 이민국에 대항하는 미국 시민들, 한국에도 힌트가 되다

[TE머묾] 이민국에 대항하는 미국 시민들, 한국에도 힌트가 되다

💡Editor's Pick - 각자의 방법으로 ICE의 감시 기술 고발하는 사람들 - 카메라 위치, 단속 요원 움직임 파악해 DB화 후 공유 - 한국의 얼굴 인식 대량 수집 제도에 어떻게 대응할까 이민세관단속국(ICE)이 이민자들만이 아니라 일반 시민들까지도 감시 및 추적한다는 사실이 미국 사회에 급격히 퍼지기 시작하면서 여러 가지 대응책들이

By 문가용 기자
VM웨어 ESXi 제로데이 취약점, 중국 해커들은 오래 전부터 알고 있었다

VM웨어 ESXi 제로데이 취약점, 중국 해커들은 오래 전부터 알고 있었다

💡Editor's Pick - VM웨어 ESXi에서 발견된 세 가지 제로데이 취약점 - 작년 12월에 첫 공격 사례 발표됐으나, 추적해 보니 2024년에도 공격 있어 - 제로데이 미리 알고 있었기에, 피해 점검 더 넓고 깊게 해야 소닉월 VPN을 악용해 VM웨어 ESXi를 노리는 중국 해커들의 악행이 생각보다 오래 전에 시작된 것으로 보인다고

By 문가용 기자