더블하이재킹은 항공기를 납치한 범죄자들을 역으로 기만하여 그들이 원하는 목적지가 아닌 다른 장소로 유도함으로써 사실상 두 번째 납치를 성공시키는 전술적 작전을 의미합니다. 이 용어는 특히 1970년 일본항공 351편 요도호 납치사건에서 한국 김포공항 관제사들이 납치된 비행기를 북한 평양이 아닌 서울 김포공항으로 유도한 역사적 사건을 통해 널리 알려지게 되었습니다.
더블하이재킹의 개념과 정의
더블하이재킹이라는 용어는 두 가지 의미로 사용됩니다. 첫 번째는 항공 보안 분야에서 사용되는 의미로, 이미 납치된 항공기를 관제사나 보안 당국이 교묘한 기만 전술을 통해 납치범들이 의도하지 않은 장소로 유도하는 것을 말합니다. 두 번째는 최근 사이버 보안 분야에서 등장한 의미로, 클릭재킹 공격을 한 단계 진화시킨 '더블클릭재킹'을 의미하기도 합니다.
항공기 납치를 의미하는 하이재킹은 영어로 'Hijacking'이며, 미국 서부 개척시대 강도들이 마부에게 "Hi, Jack"이라고 인사하며 마차를 세우던 것에서 유래되었습니다. 현재는 운항 중인 항공기를 불법으로 납치하는 행위를 일컫는 용어로 사용되고 있습니다. 더블하이재킹은 이러한 하이재킹이 두 번 발생했다는 의미가 아니라, 납치범들이 이미 장악한 항공기를 당국이 다시 납치하는 역설적 상황을 표현한 것입니다.
역사적 배경: 요도호 납치사건
더블하이재킹의 가장 유명한 사례는 1970년 3월 31일 발생한 일본항공 351편 요도호 납치사건입니다. 이 사건은 일본의 극좌 무장단체인 적군파 요원 9명이 도쿄 하네다 국제공항에서 후쿠오카 공항으로 향하던 여객기를 납치해 북한으로 도주하려 한 항공기 공중 납치 사건이었습니다.
사건 당일 오전 7시 10분, 후쿠오카행 일본 국내선 비행기 요도호에는 승객 122명과 승무원 7명이 탑승해 있었습니다. 납치범들은 27살의 리더부터 16살의 고등학생까지 젊은 청년들로 구성되어 있었으며, 칼과 총으로 무장하고 "우리는 적군파, 이 비행기는 우리가 접수한다"라고 소리치며 승객들을 위협했습니다.
납치범들은 사건 전 성명서를 작성했는데, 그들은 "우리들은 내일의 조"라고 말했습니다. '내일의 조'란 포기를 모르는 복서의 이야기를 그린 일본의 인기 만화로, 일본 좌파의 성전처럼 추앙받던 작품이었습니다. 이들의 목적지는 북한이었으며, 이는 당시 일본 경찰이 체포한 적군파 리더 시오미 다카야의 메모에서 발견된 'HJ'가 바로 하이재킹을 의미한다는 것이 밝혀지면서 확인되었습니다.
기만 작전의 전개 과정
베테랑 조종사였던 요도호의 이시다 신지 기장은 1만 시간 이상 비행한 경력을 가지고 있었습니다. 그는 납치범들을 달래며 국내선이라 평양까지는 연료가 부족하니 재급유해야 한다고 설득해 후쿠오카 이타즈케 공항에 착륙했습니다. 이곳에서 여성, 노인, 어린이 등 인질 23명이 풀려났지만, 일본 자위대의 포위는 오히려 납치범들을 더욱 자극시키는 결과를 낳았습니다.
요도호가 재이륙하여 한반도 상공으로 진입하자, 대한민국 당국은 전례 없는 작전을 준비했습니다. 당시 김포공항 레이더 진입 관제소에는 채희석이라는 28세의 관제사가 있었습니다. 그에게 전해진 임무는 명확했습니다. "그 비행기를 무조건 김포공항에 착륙시키게"였습니다.
요도호는 한반도 동쪽을 북상하면서 비행을 계속했고, 오후 2시 40분 진로를 서쪽으로 변경했습니다. 그 직후 갑자기 국적을 숨긴 전투기의 조종사가 이시다 기장을 향해 엄지를 내리고 강하에 들어가라는 지시를 내리고 날아갔습니다. 요도호는 북위 38도선을 넘어갔으나 휴전선과는 일치하지 않아 아직 대한민국 영공에 있는 상태였습니다.
에자키 데이이치 부기장은 지시받은 주파수로 맞춰놓고 영어로 "여기는 JAL 351편"이라고 무전했으나 응답이 없었습니다. 그 후 요도호에 대해 "여기는 평양이며 진입 관제를 실시한다"라고 하는 무선이 들어왔습니다. 이것은 한국 당국에 의한 것으로, 기체를 북한으로 향하지 않게 하기 위한 행동이었습니다.
채희석 관제사는 비행기를 김포공항으로 데려오기 위해 요도호와 평양 관제소 간 교신을 가로채야 했습니다. 전 세계 공통 비상 주파수는 누구나 들을 수 있지만, 먼저 누르는 사람만 교신권을 얻는 시스템이었습니다. 평양이 먼저 누르면 요도호는 평양으로 갈 것이기에, 채희석은 무전을 가로채는 데 성공했습니다.
해당 무선은 주파수를 134.1MC로 바꿀 것을 지시한 다음 왼쪽으로 선회하여 북위 38도선을 넘어 남하하도록 유도했습니다. 범인들은 북한의 공용어인 조선어는 커녕 영어도 잘 몰랐기 때문에 대한민국으로 가는 것을 알지 못했습니다.
김포공항 위장 작전
오후 3시 16분경 서울 김포국제공항에 요도호가 착륙하기 전, 한국 당국은 대규모 위장 공작을 실시했습니다. 김포공항을 평양으로 바꿔야 한다는 긴박한 상황에서, 모든 비행기의 이착륙이 취소되었고, 미군 차량은 전면 철수했습니다.
공수부대는 인민군으로 위장했고, 동네 주민들을 섭외해 북한 여인으로 위장시켰습니다. 태극기는 내리고 인공기가 게양되었으며, "평양 도착 환영"이라고 적힌 현수막이 내걸렸습니다. 작전명은 "북한에 오신 것을 환영합니다"였습니다.
그러나 납치범들 중 한 명이 영어로 여기가 서울이냐고 물어보자 주변에 있던 군인 하나가 'Yes'라고 대답하면서 평양이 아닌 서울임을 알게 되었다는 설이 있습니다. 다른 설로는 이상하게 생각한 범인들이 비행기에 접근해 온 사람에게 이곳이 평양이냐고 묻자 그 사람은 평양이라고 답했지만, 범인들이 재차 북한의 천리마 운동에 대해 묻자 상대는 답하지 못했고, 이를 수상히 여긴 범인들이 김일성의 큼직한 사진을 가져올 것을 요구하여 간파당했다는 설도 있습니다.
납치범들은 창문 너머 먼 언덕에서 흑인인 미군을 발견했고, "김일성 사진을 가져와 보라" 같은 요구를 한 끝에 평양이 아니라 서울임을 알아차렸다고 합니다. 이는 바로 사상 초유의 더블 하이재킹에 성공한 것이었으며, 심지어 비행기에도 타지 않고 이뤄낸 것이었습니다.
사건의 결말과 영향
대한민국 정부와 범인들은 영어로 교섭을 개시했지만 범인들이 대부분 영어에 능숙하지 못했기 때문에 일본어를 통한 교섭으로 변경되었습니다. 일본에서는 야마무라 신지로 운수성 정무 차관 등 일본 정부 관계자와 일본항공 사원이 일본항공 특별기 편으로 4월 1일 서울에 도착해 한국의 정래혁 국방부 장관, 백선엽 교통부 장관 등과 함께 교섭하게 되었습니다.
야마무라 신지로 정무차관은 인질들을 대신해서 스스로 인질이 되어 주었고, 이로 인해 일본에서 영웅이 되었습니다. 요도호의 기장 이시다 신지 역시 침착하게 상황을 대처해 승객들의 안전을 지킨 공로로 자국에서 영웅 대접을 받았습니다.
이후 국방부 문서를 통해 드러난 사실에 따르면, 당시 평양 관제소에서는 요도호를 향해 그곳은 평양이 아닌 김포이니 돌아오라는 송신을 했던 것으로 알려졌습니다. 또한 교신할 방법이 없다는 것을 알자 대공포 500발을 발사하며 돌아오라는 메시지를 보냈으나 이는 요도호에 닿지 못했습니다.
그러나 안타깝게도 요도호를 착륙시키기 위해 지혜를 짜낸 채희석 관제사(당시 28세)는 사건에 대해 입을 열면 죽여버리겠다는 협박을 받았고 직업까지 잃었습니다. 큰일을 했음에도 채희석 관제사에게 돌아온 것은 포상이 아니라 침묵과 두려움이었다는 실화 결말이 있습니다.
김포공항 레이더 진입 관제소는 대통령도 함부로 들어오지 못한다는 곳이었지만, 채희석은 아무런 설명과 정보 없이 요도호 탑승객 138명의 운명을 책임지게 되었습니다. 정부 기밀문서에도 기록되지 않은 그의 정체는 51년간 베일에 싸여있다가 2021년 한국 방송을 통해 최초로 공개되었습니다.
사이버 보안 분야의 더블클릭재킹
더블하이재킹이라는 용어와 유사하게, 최근 사이버 보안 분야에서는 '더블클릭재킹'이라는 새로운 공격 기법이 등장했습니다. 이는 기존의 클릭재킹 공격을 한층 업그레이드시킨 새 기법으로, 첫 번째 클릭과 두 번째 클릭 사이에 악성 요소를 삽입하는 것이 핵심입니다.
클릭재킹은 Click(클릭)과 Hijacking(납치)의 합성어로, 사용자의 마우스 클릭을 공격자가 훔치는 것을 의미합니다. 악성 웹사이트를 만들 때 보이지 않는 버튼을 만든 후, 이를 다른 콘텐츠로 위장시켜 클릭을 유도한다면 공격자는 그 클릭을 통해 악성 프로그램을 설치하거나 다른 웹사이트로 강제 접속시킬 수 있게 됩니다.
더블클릭재킹은 한 순간의 타이밍과 사건이 발생하는 순서 사이의 독특한 특징을 악용하는 공격입니다. 공격의 순서는 다음과 같습니다. 첫째, 공격자는 새 창을 여는 기능을 가진 버튼이 포함된 웹 페이지를 생성합니다. 둘째, 사용자가 이 버튼을 클릭하면 새 창이 열리며 "더블클릭 하시오"라는 안내를 내보냅니다. 동시에 이 새 창은 window.opener.location을 사용해 부모 창의 위치를 다른 곳으로 옮깁니다.
셋째, 위치가 바뀐 부모 창 안에는 인증 페이지 등 실제 공격에 악용될 페이지가 포함됩니다. 넷째, 이러는 동안 제일 위에 있는 "더블클릭 하시오" 창은 여전히 제일 위에 남아있습니다. 다섯째, 사용자가 안내에 따라 더블클릭을 하는데, 첫 번째 클릭이 이뤄지는 순간에 제일 위에 있던 "더블클릭 하시오" 창이 닫힙니다.
여섯째, 창이 닫히면서 부모 창 안의 인증 페이지가 순간적으로 노출되고, 사용자는 더블클릭을 하고 있었으므로 노출된 페이지 위에서 두 번째 클릭을 하게 됩니다. 마지막으로 사용자는 자기도 모르게 공격자를 인증해 주거나 악성 코드를 실행하는 등 두 번째 클릭 때 누른 페이지의 목적에 맞게 범인을 돕게 됩니다.
이 공격 기법이 기존 클릭재킹보다 위험하다고 볼 수 있는 이유는 여러 가지입니다. 일단 클릭재킹에 대한 방어 기술들을 대부분 우회한다는 게 가장 큽니다. X-Frame-Options 헤더나 SameSite: Lax/Strict 쿠키를 포함한 모든 알려진 클릭재킹 보호를 우회하는 새로운 UI 조작 공격으로 이어질 수 있습니다.
그러면서도 사용자의 개입을 최소화하는 공격이기도 합니다. 실제 상황에서 체감하는 한 번 클릭이나 더블클릭에는 큰 차이가 없기 때문입니다. 세 번째로 이는 새로운 공격 기법이기 때문에 여러 공격자들이 창의적으로 연구할 가능성이 높고, 실제 대부분의 웹사이트가 이 공격에 취약한 상태입니다.
더블클릭재킹의 방어 방법
더블클릭재킹에 대응하기 위한 방법으로는 자바스크립트를 활용해 사용자의 제스처가 발생하지 않는 한 중요한 버튼을 기본적으로 비활성화하는 방식이 있습니다. 즉 사용자의 마우스 이동이나 키보드 입력 등 뭔가 의도가 다분한 제스처가 발생하기 전까지 페이지 내 중요한 버튼이 비활성화 된다면 더블클릭재킹의 위험이 상당히 줄어든다는 발상입니다.
그렇게 하면 모든 제출 버튼이 초기에는 비활성화됩니다. 사용자가 마우스를 움직이거나 탭 키를 누르는 등의 동작을 하기 시작하면 버튼이 활성화됩니다. 이렇게만 해두어도 숨겨진 작업을 실행하기 어려워지고, 심지어 사용자들 입장에서의 웹 탐색 경험이 크게 변하지도 않습니다. 사실 사용자 편에서는 뭐가 변했는지도 알아채기 힘듭니다.
하지만 이러한 대처 방안은 단기적 해결책이 될 뿐입니다. 보다 장기적으로 더블클릭재킹의 위험을 완화시키려면 브라우저를 개발하는 회사들이 더블클릭재킹에 대해 이해하고 방어 기술을 브라우저에 탑재시켜야 합니다. 클릭재킹 공격이 처음 문제가 됐던 2008년에도 자바스크립트를 가지고 단기적인 완화 대책을 마련했었고, 그러다가 브라우저 내에 독특한 방어 기술들이 포함되기 시작했습니다.
웹사이트 개발자는 마우스 제스처나 키 누름이 감지되지 않는 한 기본적으로 중요한 버튼을 비활성화하는 클라이언트 측 접근 방식을 사용하여 취약점을 제거할 수 있습니다. Dropbox와 같은 서비스는 이미 이러한 예방 조치를 사용하고 있는 것으로 나타났습니다.
장기적인 솔루션으로, 브라우저 공급업체에서는 더블 클릭 악용을 방지하기 위해 X-Frame-Options와 유사한 새로운 표준을 채택하는 것이 좋습니다. 더블클릭재킹은 잘 알려진 공격 클래스에 대한 변형으로, 클릭 사이의 이벤트 타이밍을 악용하여 공격자는 눈 깜짝할 새에 무해한 UI 요소를 민감한 요소로 원활하게 전환할 수 있습니다.
클릭재킹의 다양한 유형
클릭재킹 공격에는 여러 가지 유형이 있습니다. 인터넷의 개방적 성격과 웹 프레임워크 및 CSS의 지속적인 발전으로 인해 클릭재킹 공격은 상당히 복잡해질 수 있습니다.
라이크재킹은 Facebook과 같은 소셜 미디어 플랫폼을 대상으로 합니다. 여기에는 사용자가 자신이 보증할 의도가 없는 페이지나 콘텐츠를 무의식적으로 "좋아요"하도록 "좋아요" 버튼을 조작하는 것이 포함됩니다. 이 기술은 악의적인 콘텐츠를 퍼뜨리거나 사기적으로 페이지의 인기를 부풀릴 수 있습니다.
커서재킹은 사용자의 커서 위치를 변경하는 것입니다. 공격자는 커서의 모양이나 위치를 변경하여 사용자가 화면에서 실제 클릭한 위치에 대해 오해하게 합니다. 이 방법은 역사적으로 웹 브라우저와 Flash와 같은 플러그인의 취약점을 악용해 왔으며 그 중 다수가 패치되었습니다.
아마도 가장 일반적인 클릭재킹 전략인 콘텐츠 오버레이 방법은 합법적인 웹 페이지를 악성 페이지에 오버레이합니다. 합법적인 페이지가 보이지 않는 iframe에 로드되고 사용자는 악성 페이지가 아래에 있는지 알지 못합니다.
클릭재킹 방어 기법
클릭재킹을 방지하기 위해 다양한 방어 전략을 사용할 수 있습니다. 여기에는 웹페이지가 iframe 내에 표시되는 것을 방지하는 프레임 버스팅 스크립트 구현, 페이지 프레임 지정 방법 및 여부를 제한할 수 있는 X-Frame-Options HTTP 헤더와 같은 보안 기능 활용이 포함됩니다.
X-Frame-Options HTTP 헤더는 보이지 않는 iframe에서 웹사이트를 사용하는 것을 방지합니다. 사용할 수 있는 두 가지 옵션이 있는데, X-Frame-Options: DENY 옵션이 가장 안전합니다. 그러나 프레임에서 페이지 중 하나를 사용하려는 경우 프레임 사용을 도메인으로 제한할 수 있는 X-Frame-Options: SAMEORIGIN 옵션을 사용할 수 있습니다.
Content Security Policy(CSP)를 통해 사이트의 콘텐츠 로딩을 제한하는 헤더 또는 메타 요소 정책을 구현할 수 있습니다. 브라우저가 다른 도메인의 프레임을 허용하지 않도록 frame-ancestor CSP 명령을 사용할 수 있습니다.
프레임 킬러라고도 불리는 프레임 버스팅은 공격자가 허가 없이 프레임에 사이트를 로드하는 것을 방지하는 데 사용할 수 있습니다. 최신 브라우저에서는 프레임 상태를 "숨길" 수 있지만, JavaScript를 사용하여 클릭재킹에 대한 방어 수단으로 웹 페이지에 적용할 수 있습니다.
사용자는 브라우저와 플러그인을 최신 상태로 유지하고 익숙하지 않은 웹사이트에서의 클릭과 상호 작용에 주의하여 보호 기능을 강화할 수 있습니다. 이러한 기만적이고 잠재적으로 유해한 공격으로부터 보호하려면 개발자와 사용자 모두 클릭재킹 전술을 이해하고 인식하는 것이 중요합니다.
세션 하이재킹과의 관계
하이재킹이라는 용어는 사이버 보안 분야에서 다양하게 사용됩니다. 세션 하이재킹은 공격자가 두 컴퓨터 간의 유효한 세션을 장악할 때 발생합니다. 공격자는 시스템에 침입하여 데이터를 스누핑하기 위해 유효한 세션 ID를 훔칩니다.
대부분의 인증은 TCP 세션이 시작될 때만 발생합니다. TCP 세션 하이재킹에서는 공격자가 세션 중간에 두 시스템 간의 TCP 세션을 장악하여 접근 권한을 획득합니다. TCP가 가지는 고유한 취약점을 이용해 정상적인 접속을 빼앗는 방법입니다.
세션 하이재킹은 온라인 쇼핑을 하거나, 청구서를 결제하거나, 은행 잔액을 확인할 때 발생할 수 있습니다. 세션 하이재킹 공격자는 일반적으로 브라우저 또는 웹 애플리케이션을 공격하며, 인터넷 브라우징 세션을 제어하여 사용자의 개인 정보와 비밀번호에 액세스하는 것이 목표입니다.
DLL 하이재킹과 기타 하이재킹 기법
하이재킹이라는 용어는 항공기 납치를 넘어 다양한 컴퓨터 보안 분야에서 사용됩니다. DLL 하이재킹은 공격자가 공격에 사용될 DLL 파일 내부에 악성코드를 삽입한 이후 DLL 파일을 검색하고 로드하는 방식을 악용하여 애플리케이션에 악성코드를 주입하는 방식을 말합니다.
Windows 2000이 출시된 이후 널리 사용된 공격방식으로, DLL 파일이 사용되는 Windows 운영체제에서만 사용할 수 있습니다. DLL Hijacking에서 가장 빈번하게 사용되는 공격은 Search Order Hijacking입니다. 정상적인 실행파일을 이용하는 경우가 많기 때문에 일반적으로 탐지하기 어려울 뿐만 아니라 의심스러운 실행파일을 완전히 차단하는 경우 사용자가 사용 중인 PC에 심각한 문제를 일으킬 수 있기 때문에 Search Order Hijacking을 많이 사용합니다.
DLL Hijacking은 방어 회피, 지속성 및 권한 상승을 목적으로 악성 코드를 로드하는 데 사용되는 기법입니다. 공격자는 실행 파일을 통해 직접 악성 코드를 실행하는 대신 합법적인 애플리케이션을 활용하여 악성 DLL 파일을 로드합니다. 이 기법을 사용하면 악성 코드가 애플리케이션 허용 목록이나 백신 탐지 등을 우회할 수 있습니다.
더블하이재킹의 교훈과 시사점
요도호 납치사건의 더블하이재킹 작전은 위기 상황에서의 창의적 사고와 신속한 대응의 중요성을 보여줍니다. 당시는 하이재킹 매뉴얼조차 없던 시절이었지만, 한국 당국은 국제적 위기 상황에서 기발한 아이디어로 인질들의 생명을 구할 수 있었습니다.
그러나 이 사건은 동시에 관료주의의 문제점도 드러냈습니다. 실제로 큰 공을 세운 채희석 관제사가 정당한 대우를 받지 못하고 오히려 침묵을 강요당했다는 점은 영웅을 제대로 대접하지 못한 시대적 한계를 보여줍니다.
현대의 사이버 보안 분야에서 등장한 더블클릭재킹 역시 유사한 교훈을 줍니다. 기존의 보안 대책이 있다고 해서 안심할 수 없으며, 공격자들은 끊임없이 새로운 방법을 개발한다는 점을 상기시킵니다. 보안은 한 번 구축하면 끝나는 것이 아니라 지속적으로 업데이트하고 강화해야 하는 과정입니다.
더블하이재킹이라는 용어가 항공 보안에서 사이버 보안으로 확장되어 사용되는 것은 우리 시대의 위협이 물리적 공간에서 가상 공간으로 확대되고 있음을 보여줍니다. 1970년대의 항공기 납치 위협이 오늘날에는 디지털 공간에서의 클릭 납치로 진화한 것입니다.
두 가지 모두 공통적으로 '속임수'와 '기만'을 핵심 전술로 사용한다는 점이 흥미롭습니다. 요도호 사건에서는 한국 당국이 납치범들을 속여 김포공항을 평양으로 믿게 만들었고, 더블클릭재킹에서는 공격자가 사용자를 속여 의도하지 않은 클릭을 하게 만듭니다. 기만의 대상과 목적은 다르지만, 인간의 인지적 한계를 이용한다는 점에서 유사한 원리를 공유합니다.
보안 전문가들은 이러한 공격에 대응하기 위해 기술적 방어뿐만 아니라 사용자 교육도 강조합니다. 출처가 불분명한 링크 클릭을 지양하고, 의심스러운 웹사이트에서의 상호작용에 주의하며, 보안 소프트웨어를 최신 상태로 유지하는 등의 기본 보안 수칙을 준수하는 것이 중요합니다.
더블하이재킹의 역사는 우리에게 위기 상황에서의 창의성, 기술의 양면성, 그리고 지속적인 경계의 필요성을 가르쳐줍니다. 1970년의 항공기 납치 사건이 2025년의 사이버 공격으로 이어지는 것을 보면, 위협의 형태는 변해도 본질은 변하지 않는다는 것을 알 수 있습니다. 우리는 과거의 교훈에서 배우고, 현재의 위협에 대응하며, 미래의 보안을 준비해야 합니다.