본문 바로가기
system_fundamentals/security_cryptography

Clickjacking

by 죄니안죄니 2026. 5. 19.
반응형
 
ClickjackingClickjackingClickjacking
 
 

Clickjacking(Clickjacking)은 한 줄로 말하면:

사용자가 클릭하는 위치를 속여서,
원하지 않는 버튼을 누르게 만드는 공격
 

이다.

다른 이름으로:

UI Redressing
 

라고도 부른다.


핵심 아이디어

공격자는:

진짜 사이트를 iframe으로 숨겨놓고
그 위에 가짜 UI를 덮는다
 

가장 쉬운 예시

예를 들어:

"무료 쿠폰 받기"
 

버튼처럼 보이게 만들어놓고,

실제로는 뒤에:

은행 송금 버튼
 

이 iframe으로 숨어 있는 것.


사용자는 모르고 클릭

결과:

실제 은행 버튼 클릭
 

이 발생.


왜 가능한가?

브라우저는 기본적으로:

다른 사이트를 iframe으로 포함 가능
 

했기 때문.


실제 공격 구조


공격 페이지

 
<div class="fake-button">
  무료 쿠폰 받기
</div>

<iframe
  src="https://bank.com/transfer"
  style="opacity:0">
</iframe>
 

사용자 입장

보이는 건 쿠폰 버튼
 

실제 클릭 대상

숨겨진 bank.com 버튼
 

특히 위험한 것

송금, 권한승인, 관리자 삭제, OAuth 동의


OAuth에서도 가능

예:

"Google 권한 허용"
 

버튼을 속여 클릭 유도 가능.


그래서 방어 매우 중요.


핵심 방어 1 — X-Frame-Options

가장 전통적.

HTTP Header:

 
X-Frame-Options: DENY
 

의미

iframe 포함 금지
 

옵션 종류

의미
DENY 완전 금지
SAMEORIGIN 같은 사이트만 허용

SAMEORIGIN 예시

 
X-Frame-Options: SAMEORIGIN
 

의미

우리 사이트 내부 iframe만 허용
 

핵심 방어 2 — CSP frame-ancestors

현대 방식.

CSP(Content Security Policy) 사용.


예:

 
Content-Security-Policy:
frame-ancestors 'none';
 

의미

어떤 사이트도 iframe 포함 불가
 

특정 사이트만 허용 가능

 
frame-ancestors
https://admin.example.com
 

현재는 CSP 방식 권장

왜냐면:

X-Frame-Options보다 유연
 

하기 때문.


iframe 자체가 나쁜 건 아님

중요.

정상 사용도 많다.

예:

  • YouTube embed
  • 결제창
  • 지도
  • 사내 포털

따라서 정책적으로 결정 필요.


실무에서 자주 놓치는 곳

관리자 페이지

특히 위험.


예:

회원 삭제 버튼
 

등 Clickjacking 위험.


그래서 관리자 페이지는 보통

 
X-Frame-Options: DENY
 

강하게 설정.


모바일 앱 WebView도 주의

WebView iframe 구조에서:

UI 혼동 공격
 

가능.


Clickjacking vs CSRF 차이

헷갈리기 쉬움.


Clickjacking

사용자 클릭을 속임
 

CSRF

브라우저 자동 쿠키 전송 악용
 

Clickjacking은 실제 클릭 필요

즉:

사용자 UI 조작
 

에 가깝다.


실무 추천 설정

대부분 서비스는:

 
X-Frame-Options: DENY
 

또는:

 
Content-Security-Policy:
frame-ancestors 'none';
 

사용.


Spring Security 설정

예:

 
http.headers(headers ->
    headers.frameOptions(
        frame -> frame.sameOrigin()
    )
);
 

iframe 정말 필요한 경우만 예외 허용.


핵심 한 줄

Clickjacking은:

iframe 등을 이용해 사용자가 실제로 클릭하는 대상 UI를 숨기거나 덮어서,
원하지 않는 버튼이나 기능을 클릭하게 만드는 공격
 

이며,

대표 방어는:

X-Frame-Options
또는
CSP frame-ancestors
 

설정이다.

반응형

'system_fundamentals > security_cryptography' 카테고리의 다른 글

Vault  (0) 2026.05.20
Secret 관리  (0) 2026.05.20
SSRF  (0) 2026.05.19
CORS  (0) 2026.05.19
SameSite Cookie  (0) 2026.05.19

댓글