블로그

개발자를 위한 보안 정복: 공유 및 학습 시리즈 - 클릭재킹

February 14, 2019
자프 카란 싱

수지는 이틀 뒤 마감인 골치 아픈 보고서를 피하려고 이메일을 확인합니다. 받은 편지함에 '무료 아이패드' 링크가 보입니다. 링크를 클릭하자 "무료 아이패드를 받으려면 여기를 클릭하세요!"라는 큰 배너가 있는 웹사이트로 이동합니다. 버튼을 클릭했지만 아무 일도 일어나지 않는 것 같습니다. 하지만 사실, 무언가 일어났습니다.

다시 받은 편지함으로 돌아온 수지는 자신의 모든 이메일이 삭제된 것을 발견합니다. '삭제' 버튼을 누른 적도 없는데 말이죠. 도대체 무슨 일이 일어난 걸까요?

이메일 사이트가 클릭재킹을 당한 것입니다. 클릭재킹은 사용자가 의도하지 않은 행동을 하도록 속이는 공격 기법으로, 심각한 문제를 초래할 수 있습니다.

클릭재킹이 어떻게 작동하는지, 왜 위험한지, 그리고 개발자로서 이를 어떻게 방지할 수 있는지 알아보겠습니다:

클릭재킹 이해하기

클릭재킹은 "UI 리드레싱 공격"이라고도 불리며, 공격자가 웹 페이지 위에 여러 개의 투명한 레이어를 겹쳐 사용자가 의도하지 않은 버튼이나 링크를 클릭하도록 유도하는 공격입니다.

차 안에 벌레가 갇힌 적이 있나요? 벌레는 밖으로 나가려고 창문에 필사적으로 부딪힙니다. 벌레는 앞을 가로막는 유리를 인식하지 못한 채, 나무와 탁 트인 공간으로 날아가려 할 뿐입니다.

클릭재킹도 이와 비슷한 원리입니다. 여기서 사용자는 벌레가 되고, 여러분의 웹사이트는 앞을 가로막는 유리가 됩니다. 사용자는 무료 아이폰과 같이 자신이 원하는 것을 봅니다. 공격자는 무료 아이폰 광고 위에 여러분의 사이트를 투명한 프레임으로 덮어씌웁니다. 사용자가 '무료' 경품을 받기 위해 버튼을 클릭하면, 실제로는 여러분 사이트의 버튼을 클릭하게 되어 의도치 않은 동작을 수행하게 됩니다.

클릭재킹이 위험한 이유

공격자는 클릭재킹으로 무엇을 할 수 있을까요? 이는 해당 웹사이트가 어떤 기능을 제공하느냐에 따라 크게 달라집니다.

공격자는 사용자가 공격자의 사이트를 '좋아요'하거나 공유하도록 만들 수 있습니다. 많은 사람이 편의를 위해 소셜 미디어 계정에 로그인 상태를 유지하기 때문에 이는 매우 쉽게 실행될 수 있습니다.

여러분의 사이트를 프레임 안에 배치할 수 있다면, 버튼 클릭 한 번으로 민감한 작업을 완료하게 만들어 공격 벡터로 악용할 수 있습니다. 예를 들어, 사용자는 무료 아이패드를 받으려 클릭했지만, 실제로는 여러분 사이트의 계정 설정을 변경하여 보안을 취약하게 만드는 식입니다. 이러한 유형의 공격은 어도비 플래시 플러그인 설정 페이지를 대상으로 발생한 적이 있습니다. 설정 페이지를 투명한 프레임 안에 배치하여 사용자가 플래시 애니메이션에 마이크와 카메라 접근 권한을 허용하도록 속인 것입니다. 공격자는 이를 통해 피해자를 녹화할 수 있었으며, 이는 심각한 사생활 침해로 이어졌습니다.

이메일 클라이언트를 사이트 내 프레임으로 삽입하면 사용자가 모든 이메일을 삭제하게 하거나, 공격자가 제어하는 이메일 주소로 메일을 전달하도록 만들 수도 있습니다.

결론적으로, 사용자는 자신이 무엇을 클릭하는지 볼 수 없기 때문에 어떤 행동이든 하도록 설득당할 수 있습니다. 소셜 미디어 공유부터 악성 코드 다운로드까지, 그 가능성은 무궁무진합니다.

클릭재킹 방지 방법

클릭재킹은 방지할 수 있습니다. 클릭재킹을 막기 위한 권장 방법은 사이트에 콘텐츠 보안 정책(CSP)을 설정하는 것입니다. "frame-ancestors" HTTP 응답 헤더를 사용하면 사이트가 프레임으로 삽입되는 방식을 제어할 수 있습니다.

  • "frame-ancestors none" - 다른 어떤 사이트도 여러분의 사이트를 프레임으로 삽입할 수 없습니다. 가장 권장되는 설정입니다.
  • "frame-ancestors self" - 여러분의 사이트 내 페이지들만 해당 사이트를 프레임으로 삽입할 수 있습니다.
  • "frame-ancestors self <uri list=""> - 지정된 URI 목록에 있는 사이트들만 여러분의 사이트를 프레임으로 삽입할 수 있습니다.</uri>

CSP frame-ancestors는 현재 모든 주요 브라우저에서 지원되지 않습니다. 해당 브라우저를 위해 "X-Frame-Options" HTTP 헤더를 대체 옵션으로 사용하세요.

  • DENY - 누구도 사이트를 프레임에 포함할 수 없습니다. 권장되는 설정입니다.
  • SAMEORIGIN - CSP의 "self"와 동일합니다. 자신의 콘텐츠는 프레임에 포함할 수 있지만, 다른 사람은 불가능합니다.
  • ALLOW-FROM <uri> - 지정된 URI가 콘텐츠를 프레임에 포함하도록 허용합니다.</uri>

클릭재킹을 방지하세요

클릭재킹은 교묘하고 기만적인 공격으로, 공격자가 제품을 조작할 경우 기업의 평판 훼손과 수익 손실로 이어질 수 있습니다. 무료 학습 리소스를 확인하여 클릭재킹에 대해 자세히 알아보세요.

콘텐츠 보안 정책(CSP)과 "X-Frame-Options" 헤더를 사용하여 타인이 사이트를 악의적으로 이용하지 못하도록 차단하세요. 공격자가 사용자를 조작하지 못하게 막고 클릭재킹 피해를 예방하세요.

태그라인

배포 전 AI 기반 개발 거버넌스 확보

AI 기반 위험을 측정하고, 커밋 시점에 보안 코딩 정책을 적용하며, SDLC 전반에 걸쳐 안전한 소프트웨어 제공 속도를 높이세요.

데모 예약하기
리소스 라이브러리

더 많은 블로그 살펴보기

보안 코딩, AI 거버넌스, 소프트웨어 리스크 관리에 관한 전문가 콘텐츠를 확인해 보세요.

전체 보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

더 알아보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

더 알아보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

하나의 보안 문화: Sage는 어떻게 챔피언 프로그램을 구축했는가

Sage가 유연하고 관계 중심적인 접근 방식을 통해 보안을 강화하고, 200명 이상의 보안 챔피언을 양성하며 실질적인 위험 감소를 달성한 사례를 확인해 보세요.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

2026년 사이버 보안 인식의 달: 기업 방어의 핵심, AI 보안 이해하기

주요 AI 기업 대부분이 안전 가이드라인이 마련될 때까지 AI 개발 속도를 전 세계적으로 늦춰야 한다고 공개적으로 촉구하는 시점에 이르렀지만, 사실 심각한 보안 문제는 이미 현실화되었습니다. 이로 인해 AI 도입에 따른 금전적 비용과 위험 부담이 계속 쌓이면서 수많은 보안 책임자와 경영진이 절박한 상황에 놓였습니다.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

인에이블러 8: 프로그램 브랜딩

성공적인 보안 코딩 프로그램을 위해서는 훌륭한 콘텐츠 그 이상의 것이 필요합니다. 인에이블러 8에서는 브랜딩을 통해 참여를 누구나 선망하는 위상 중심의 경험으로 바꾸는 방법을 알아봅니다.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

이제 모든 직원이 AI 사이버 보안의 최전선에 있습니다

엔터프라이즈 기술 환경은 너무 늦기 전까지는 아무도 예상하지 못한 속도로 변화하고 있습니다. 우리는 공식적으로 사람이 직접 작성한 코드와 기본적인 코파일럿 지원의 시대를 지나 '에이전트 기반 개발 수명 주기(ADLC)'의 시대로 진입했습니다. 자율형 AI 에이전트는 여러 기능 전반에 걸쳐 전례 없는 효율성을 약속하지만, 동시에 완전히 새로운 차원의 보안 및 규제 위험을 야기합니다.

더 알아보기

배포 전 AI 기반 개발 보안 확보

소프트웨어 개발 수명 주기 전반에서 개발자 리스크를 파악하고, 정책을 시행하며, 취약점을 예방하세요.

데모 예약하기
항목이 없습니다.