1. 해킹, 탈옥, 사회공학적 해킹의 이해
넓은 의미의 해킹
해킹(Hacking)이라는 말을 들으면, 한국에서는 굉장히 강한 어감으로 받아들여지곤 합니다. 엄청난 전문가들만 할 수 있는 굉장한 공격 기술을 일컫는 말처럼 받아들여지곤 합니다. 해킹 피해가 일어났다는 표현이 굉장히 큰 일이 일어난 것처럼 받아들여집니다.
넓은 의미에서 해킹이라고 하는 단어는 정당한 권한이 없이 접근하는 행위 전반을 이야기할 때 쓰는 말입니다. 이를테면 같은 공간에서 거주하고 있는 동거인의 스마트폰에 저장돼 있는 내용을, 그 동거인이 자는 동안에 몰래 지문을 찍어서 보는 상황을 생각해 보겠습니다. 이런 것도 넓은 의미로는 허락을 받지 않고 본 것이기 때문에 해킹이라고 볼 수 있습니다.
좁은 의미의 해킹
좁은 의미의 해킹은 악성코드나 보안 취약점을 특수하게 이용해서 권한이 없는 컴퓨터나 디지털 기기의 접근 권한을 확보해 내고 권한이 없는 파일의 내용을 유출하거나 파일을 위조, 변조하는 등의 행위를 일컫습니다.
사회공학적 해킹
악성 코드를 공격 대상의 기기에 설치하기 위해 다양한 수단이 사용됩니다. 이른바 ‘사회공학적 해킹’(Social Engineering Hacking)이란 사람의 심리적 취약점 등 사람의 특성을 노리고 정보를 유출하거나 조작하는 방법을 말합니다.
2. 악성 코드의 유형과 대처법
다른 사람의 컴퓨터에 몰래 들어가거나 악성 코드를 설치하는 것은 더 이상 범죄자 혹은 악의를 가진 해커만의 전유물이 아니게 되었습니다. 정보기관이나 수사기관 또한 스파이웨어 등의 악성 코드를 통해 누군가의 컴퓨터를 몰래 수색하거나 감시하는 것이 확인되고 있습니다.
2015년 7월 6일, 이탈리아의 스파이웨어 개발업체 ‘해킹팀’이 해킹되어 내부 자료가 유출된 바 있습니다. 해킹팀은 전 세계 정보기관에 RCS라 불리는 스파이웨어를 판매해 온 업체였고, 유출된 자료를 통해 한국의 국가정보원도 RCS 구매처에 포함되어 있음이 알려졌습니다. 대통령 선거가 있었던 2012년에 국가정보원이 해킹팀의 스파이웨어를 구매했고, 이후 계속적인 업그레이드를 요청한 정황이 드러난 것입니다.
악성 코드에 어떤 유형들이 있고, 어떤 대처법이 있는지 살펴봅시다.
멀웨어(Malware)
일반적으로 악성 소프트웨어(Malicious Software)를 줄여서 멀웨어(Malware)라고 부릅니다. 디지털 기기에 해를 끼치는 프로그램 전반을 일컫는 말입니다. 멀웨어마다 다종다양한 방식으로 컴퓨터에 해를 끼치거나 디지털 보안 공격을 가할 수 있습니다.
운영 체제(OS)를 망가뜨리거나, 민감한 정보를 수집하거나, 설치된 기기의 소유자를 감시하거나, 설치된 기기의 소유자를 사칭하여 스팸 메시지 혹은 조작된 메시지를 보내거나, 보안을 뚫고 침입하게 하는 등 다양한 유형의 악성 코드가 존재합니다.
이러한 악성 코드를 유포하는 주체가 과거 특수한 해킹 전문 기술을 갖고 있는 사람들이나 범죄자에 국한되었다면, 현대에는 민간인을 사찰하고 감시하고자 하는 정부 기관이나 법 집행기관(수사기관)은 물론 그저 시간이 많은 개인이나 10대 청소년들까지도 확장되고 있는 추세입니다.
스파이웨어(Spyware)
악성 코드를 사용하여 기기의 카메라나 마이크를 사용하여 영상을 촬영하기도 하고, 기기에 입력되는 사용자의 비밀번호를 가로채는 등의 행위를 하는 악성 코드를 스파이웨어라고 부릅니다.
스파이웨어를 비롯한 악성 코드 공격에 대처하는 가장 좋은 방법은 처음부터 감염되지 않는 것입니다. 즉 악성코드를 설치하지 않는 것입니다. 대부분의 현대적인 디지털 기기는 사용자가 특정한 행위를 하지 않는 한 어떤 프로그램도 자동으로 설치하기 어렵기 때문입니다. 따라서 공격자가 여러분이 직접 악성코드를 설치하도록 속이는 방법이 일반적입니다.
공격자가 여러분의 컴퓨터에 악성코드를 설치하도록 속이는 방법은 여러 가지가 있습니다. 악성코드가 포함된 파일을 웹사이트 링크, 문서, PDF 파일 또는 심지어 컴퓨터 보호 프로그램으로 위장할 수 있습니다. 여러분은 이메일이나 문자 메시지, 혹은 메신저 메시지를 통해 표적이 될 수 있으며, 여러분이 받은 메시지는 여러분이 잘 아는 사람으로부터 온 것처럼 보일 수 있습니다. 카카오톡, 텔레그램 등의 메신저, 혹은 페이스북과 같은 SNS 페이지에 게시된 링크를 경유할 수도 있습니다.
제로데이 공격(Zero-day Attack)과 제로클릭 원격 코드 실행(ZeroClick Remote Code Execution)
공격자가 제로데이 취약점을 사용할 수 있다면, 즉 제로데이 공격을 할 수 있다면 이러한 다양한 멀웨어의 감염을 피하기가 어려울 수 있습니다. 제로데이 공격은 해당 공격이 발견된 시점까지 파훼법이 알려지지 않은 취약점을 이용한 공격을 통칭하는 말입니다. 제로데이 공격이 실제로 관찰되어 해당 보안 취약점을 가진 앱, 프로그램, 운영체제 등에 보안 업데이트가 이뤄지면, 사용자는 이러한 보안 업데이트를 자신의 기기에 실제로 적용하고 나면 해당 공격으로부터 안전해질 수 있습니다. 하지만 파훼법 자체가 마련되지 못한 상황이 이어지는 경우, 혹은 사용자가 자신의 기기에 보안 업데이트를 진행하지 않는 경우 등 다양한 이유로 제로데이 공격은 큰 피해를 야기할 수 있습니다.
제로데이 공격이면서 동시에 제로클릭 원격 코드 실행 취약점인 경우에는 더더욱 문제가 심각해집니다. 예를 들어 2023년 발견된 BLASTPASS 사건의 경우, iOS 16.6 및 그 이하 버전을 사용하는 사람들이 특수한 메시지를 ‘받기만 해도’, 즉 기기에 메시지가 수신이 되기만 해도 악성 코드가 자동으로 실행되는 보안 취약점을 이용한 공격이었습니다. 이 공격은 발견된 이후 애플의 iOS 16.6.1 보안 업데이트를 통해 차단되었지만, 보안 업데이트를 실행하지 않고 iOS 16.6 기기를 사용하는 사람들은 여전히 공격 대상으로 남았습니다. 제로클릭 원격 코드 실행 취약점의 특성상 자신이 공격받았는지의 여부를 알기 어렵고, 또한 제로데이 공격이기 때문에 보안 업데이트를 진행하지 않고서는 공격 대상으로 남는 특성 때문에 더욱 큰 피해를 입힐 수 있었습니다.
정부와 법 집행 기관은 표적형 악성코드 공격에 사용할 수 있도록 제로데이 취약점을 비축해 둡니다. 물론, 범죄자나 다른 공격자들도 제로데이 취약점을 사용해 악성코드를 은밀히 설치할 수 있습니다. 그러나 제로데이 취약점은 보통 알아내기까지 드는 비용도 크고 재사용이 어려울 가능성이 큽니다. 한 번이라도 제대로 사용된 취약점은 다른 사람들이 그 취약점을 발견할 가능성이 그만큼 커지고, 이로 인해 해당 취약점 관련 조치가 취해질 것이기 때문입니다.
랜섬웨어(Ransomware)
악성 코드 중 컴퓨터에 저장된 정보를 이상한 방식으로 암호화하고는 데이터를 살리고 싶다면 돈을 내라고 협박하는 유형의 악성 코드를 랜섬웨어(Ransom + ware)라고 합니다.
백신(Antivirus) 사용 및 백신의 한계
불특정 다수를 상대로 한 공격에 사용되는 악성 코드를 방어하기 위해 백신(Antivirus) 프로그램의 사용은 선택이 아닌 필수입니다. 현대의 운영 체제들은 운영체제 공급사의 최신 보안 업데이트를 적용하는 것이 무엇보다 선행되어야 할 일입니다. 윈도우를 사용하는 경우, 다른 백신 프로그램을 설치하지 않았다면 윈도우에 기본 내장된 윈도우 보안(Windows 보안)을 활성화하는 것도 한 가지 방안입니다.
윈도우 보안이 활성화되어 있는지를 알고 싶다면, 윈도우의 [설정]에서 [개인 정보 및 보안]의 [Windows 보안]으로 들어가서 확인할 수 있습니다.
[개인 정보 및 보안] → [Windows 보안] 화면까지 넘어오면, 여기서 [Windows 보안 열기]로 들어갑니다.
이제 [Windows 보안]의 [보안 한 눈에 보기] 화면에서, [바이러스 및 위협 방지]가 꺼져 있다면 여기서 [켜기]를 선택합니다.
리눅스나 맥 사용자의 경우 ClamAV같은 멀웨어 탐색 도구를 사용하는 것도 좋습니다. 시스템을 실시간으로 모니터링하며 멀웨어에 대한 감염 자체를 예방하는 역할을 하지는 못하지만, 최소한 현 시점에 잘 알려진 악성 코드가 설치되어 있는지의 여부를 판단하는 데에는 도움이 됩니다.
백신을 비롯한 악성 코드 감염 차단 모니터링 목적의 보안 도구들의 우열을 가리는 것은 몹시 어려운 일입니다. 개개인이 처한 상황, 새로운 악성 코드의 출현 등 너무나 다양한 변수가 있기 때문입니다. 따라서 특정한 악성 코드 감염 차단 혹은 감염 여부 확인 도구 하나에 의존하기보다는, 큰 수고 없이 활성화할 수 있는 예방책을 활성화하는 것에 의의를 두는 것이 좋습니다.
또한 불특정 다수를 상대로 한 공격이 아닌 맞춤형 공격이 가해지고 있는 경우, 대중적인 백신 프로그램이 이를 방어하는 데 효과적이지 않을 수도 있습니다.
최신 보안 업데이트 유지
윈도우, 리눅스, 맥, 안드로이드, iOS 등 어떤 운영체제를 사용하더라도 운영체제 자체의 최신 보안 업데이트를 유지하는 것이 최선입니다. 사용중인 운영체제의 최신 보안 업데이트가 있는지 주기적으로 살피고, 보안 업데이트를 설치하세요. 운영체제뿐만 아니라 주요 앱의 경우에도 가능한 최신 업데이트 상태를 유지하는 것이 중요합니다.
웹 브라우저 스크립트 실행 차단 고려
웹사이트를 통한 악성 코드 설치를 원천 봉쇄하는 방법은 사용중인 웹 브라우저가 기본적으로 어떤 종류이든 ‘스크립트’를 실행하지 않고 오직 당신이 신뢰하는 웹 사이트에 대해서만 ‘스크립트’를 실행하도록 하는 확장 프로그램을 사용하는 것입니다. NoScript 같은 확장 프로그램을 사용하는 것이 한 가지 방법입니다.
악성 코드 감염 여부 자가진단 및 물리적 보안 조치
웹캠이 내장되어 있는 노트북, 혹은 전면 카메라가 내장되어 있는 스마트폰 대부분은 웹캠이나 전면 카메라가 작동할 때 카메라 우측에 녹색 불이 켜지도록 설계되어 있습니다. 카메라를 활성화한 적이 없는데 이런 상황이 발견될 경우 악성 코드에 감염된 상황을 의심할 수 있습니다.
혹은 이메일 설정이 변경되었는지의 여부를 확인해볼 수 있습니다. ‘보낸 편지함’에 내가 보낸 적이 없는 이메일이 있고, 특히 이러한 이메일을 나의 이메일 주소가 아닌 다른 이메일 주소를 사용하여 보내도록 설정되어 있는 상황이 발견되면 악성 코드 감염 혹은 다른 형태의 디지털 보안 문제가 발생했다는 지표가 될 수 있습니다.
만일 네트워크 트래픽을 모니터링하고 있다면(내 컴퓨터나 스마트폰 등이 어떤 웹사이트나 서버에 언제 접속하여 어느 정도 분량의 데이터를 주고받는지), 평소와 다른 네트워크 트래픽이 발생했는지의 여부를 통해 악성 코드 감염의 징후를 발견할 수도 있습니다.
이미 멀웨어에 감염되었다면
일부러 당신을 노리고 고도로 정교한 공격이 가해지고 있는 상황에서는, 당신이 열어볼 수밖에 없는 문서 형태의 첨부파일로 위장한 악성 코드를 당신이 직접 열어서 당신의 컴퓨터나 스마트폰 등의 디지털 기기가 감염되는 일을 피하기 어려울 수 있습니다. 그렇게 어쩔 수 없이 멀웨어에 감염된 상황을 확인하면 어떤 조치를 취해야 할까요?
가장 급선무는 컴퓨터나 스마트폰 등의 기기와 인터넷의 연결을 끊는 것입니다. 이더넷(랜선), 와이파이 뿐만 아니라 블루투스, 모바일 데이터 등 모든 종류의 네트워크 연결을 끊는 게 최선책입니다. 그리고 믿을 수 있는 디지털 보안 전문가에게 감염된 기기를 맡겨야 합니다. 단순히 멀웨어를 삭제하는 프로그램을 사용하고, 멀웨어가 삭제된 것처럼 느껴지는 것만으로는 안전을 보장할 수 없습니다. 멀웨어가 확산되는 것을 막기 위해 USB 메모리나 외장 하드 드라이브의 연결도 삼가야 합니다.
안전하다고 믿을 수 있는 컴퓨터를 확보하고, 그 컴퓨터에서 각종 계정에 로그인하여 비밀번호를 변경해야 합니다. 비밀번호 관리 도구를 사용중이라면 비밀번호 관리 도구의 마스터 패스워드도 변경해야 합니다.