반응형

웹 보안에서 유명한 Clickjacking을 정리해줄게.


🔥 1. Clickjacking이란?

정의:
Clickjacking은 공격자가 사용자가 클릭하는 UI를 속여서, 원래 의도와 다르게 행동하게 만드는 공격이야.
즉:

👉 “보이는 화면과 실제 클릭되는 버튼이 다르게 만들어, 사용자를 속여 악성 행동을 하게 하는 기법”

  • 별명: UI redressing, UI 가짜 조작

🔹 2. 공격 원리

  1. 공격자가 투명 또는 가짜 버튼을 만들고, 정상 버튼 위에 덮어 놓음
  2. 사용자가 클릭하면 공격자가 원하는 동작 수행
  3. 사용자는 자신이 뭘 클릭했는지 모름
 
[사용자가 보는 화면] "무료 쿠폰 받기 버튼" [실제로 클릭되는 화면] "계정 설정 삭제" / "관리자 권한 실행"
  • 공격 대상: 버튼, 링크, 체크박스 등 모든 클릭 가능한 요소
  • 주로 iframe, CSS, 투명 레이어 사용

🔹 3. 대표적인 공격 예시

1️⃣ 관리자 권한 탈취

  • 공격자가 iframe으로 관리 페이지를 숨김
  • 일반 사용자가 클릭 → 관리자 기능 실행

2️⃣ ‘좋아요’/‘팔로우’ 조작

  • Facebook/Instagram 페이지에서 사용자 모르게 ‘좋아요’/‘팔로우’ 클릭

3️⃣ 금융/결제 클릭 유도

  • 은행 이체/결제 버튼 위에 공격자 UI 덮음
  • 사용자가 클릭 → 돈이 공격자 계좌로 이체

🔹 4. 공격 구현 방법

 
<style> #victim { opacity:0; /* 보이지 않게 */ position:absolute; z-index:2; } #attacker { position:absolute; z-index:1; } </style> <div id="attacker">무료 쿠폰 버튼</div> <iframe id="victim" src="https://bank.com/transfer"></iframe>
  • 투명 iframe을 공격자가 만든 버튼 위에 겹쳐놓음

🔹 5. 방어 방법

✔ 서버 측

  1. X-Frame-Options 헤더 설정
    • DENY → iframe 완전 차단
    • SAMEORIGIN → 같은 도메인만 허용
    • 예:
    •  
      X-Frame-Options: DENY
  2. Content-Security-Policy(CSP) frame-ancestors 설정
    • iframe 허용 출처 제한
    • 예:
    •  
      Content-Security-Policy: frame-ancestors 'self';

✔ 클라이언트 측

  • 중요 버튼 클릭 전 추가 확인 (2단계 확인)
  • 민감 기능은 iframe에서 실행하지 않음

✔ WAF / 보안관제

  • iframe embedding 관련 응답 헤더 미설정 탐지
  • 외부에서 민감 URL iframe 호출 패턴 모니터링

🎯 한 문장 요약

Clickjacking = 사용자가 클릭하는 UI를 속여, 자신이 의도하지 않은 동작을 수행하게 만드는 공격으로, X-Frame-Options와 CSP로 방어할 수 있다.

반응형

+ Recent posts