바이러스, 웜, 트로이 목마 등 - 인터넷 보안 위협을 알아볼까요?
인터넷을 사용하다가 일어날지 모를 보안 문제를 생각하다 보면, 여기저기 있는 웹사이트가 꽤 무서운 장소처럼 보이기 시작합니다. 다행히 전체 인터넷 사용자는 날이 갈수록 더욱 대처에 능숙해지고 있고, 온라인 공간에서 위험에 노출될만한 행동이 어떤 것인지 더 잘 이해하고 있죠.
다운로드 버튼이 무더기로 들어간 웹 페이지가 (혹은 원치 않던 걸 다운로드 하게 속이는 미리 체크된 설치 항목이) 한 때 그랬던 것 만큼 위세를 떨치지는 못하고 있지만, 그렇다고 해서 지금 이 순간 우릴 속일 방법을 찾는 해커가 없다는 의미는 아닙니다. 우리 자신을 이런 위협으로부터 지키려면 각 위험이 대체 어떤 것이고, 서로 어떻게 다른지를 이해하는 것이 중요하겠죠.
지금부터 뛰어들어 살펴볼까요.
악성 코드
악성 코드는 악성 프로그램이라 불리기도 합니다. 이 말은 곧 우리들 대부분이 이런 위협을 바이러스라고 부르고 있기는 하지만, 사실 포괄적인 용어는 악성 코드여야 한다는 의미가 됩니다. 악의적인 프로그램은 다양한 형태를 띨 수 있지만, 악성 코드라는 단어 자체는 바이러스, 웜 바이러스, 트로이 목마 바이러스, 스파이웨어 등과 같이 어떤 것이든 설명하는데 사용할 수 있는 종합적인 용어죠. 한마디로 나쁜 의도를 가진 프로그램이나 파일이며, 이런 특성 때문에 어느 것이든 포함할 수 있습니다.
다행히 악성 코드는 거의 모든 인기 백신이 찾는 바로 주요 대상입니다. 악성 코드에 감염되는 일이 발생하더라도 꼭 대재앙이 몰려오는 것은 아니죠. 최신 상태를 유지중인 백신, 강력한 암호, 방화벽, 백업, 파일 암호화 프로그램, 모든 프로그램을 최신 버전으로 업데이트 정도만 해주고 갖춰둬도 문제 해결은 생각보다 쉽겠죠.
바이러스
바이러스는 프로그램 설치 후 기기를 감염시키는 악의적인 코드로 구성돼 있습니다. 감염은 주로 USB 메모리, 인터넷이나 이메일 첨부에서 다운로드 한 파일을 통해 이뤄지지만, 다른 여러 경로를 통해서도 일어날 수 있습니다. 한 가지 언급할만한 중요한 사실은 단순히 감염된 파일을 컴퓨터에 가지고 있다고 해서 실제로 감염이 일어나는 것은 아니라는 점입니다. 감염은 자동 실행, 프로그램 설치, EXE 실행 파일 열기 등을 통해 프로그램을 최초로 실행할 때 발생하죠.
일단 한 번 프로그램을 실행하거나 열면, 감염이 일어납니다. 이 시점부터는 바이러스가 활동하는 방식 때문에 찾아내고 제거하기나 매우 어렵죠. 실제 자세한 내용은 바이러스에 따라 다르지만, 자기 스스로를 복제하고 파일에서 파일로 퍼지며 하드 디스크 내의 다른 부분까지 감염시키는 성질이 있습니다. 결국 (대개 알지 못한 채) 다른 컴퓨터로까지 옮겨집니다.
다른 위협 요인과는 달리, 바이러스는 컴퓨터를 사용 불능으로 만드는 것 말고는 다른 목적을 가지고 있지 않습니다. 일부는 특히 이걸 잘했죠. 나머지 대부분은 꽤나 약했고 발견하기도 쉬웠습니다.
아, 그리고 이것도 꼭 짚고 넘어가야겠군요. 널리 퍼진 생각과는 달리 맥도 바이러스의 영향을 받습니다.
애드웨어
애드웨어는 대부분의 경우 상대적으로 파괴력이 낮지만, 오늘날 사용자 사이에서 이야기가 오갈 가장 성가신 위협입니다.
애드웨어는 정상적인 앱이나 프로그램과 함께 묶여서 설치되기 때문에 초기 발견이 다소 어려운 편입니다. 대표적인 예가 다운로드 링크 아래에 있는 체크 상자죠. "ㅇㅇㅇ 프로그램을 무료로 함께 설치하기"라고 적혀있고 미리 체크돼 있기까지 합니다. 여기서 "ㅇㅇㅇ" 프로그램이 주로 애드웨어를 담고 있습니다. 반드시 꼭 이 형태를 띠고 있다고 볼 수는 없지만, 꽤나 흔하죠. 추가적인 프로그램이 정확히 어떤 것이고, 어떤 기능을 가지고 있는지 잘 모르겠다면 다운로드 하지 않는 게 좋습니다.
애드웨어 감염은 우리 자신의 실수가 아니더라도 일어날 수 있습니다. 최근 주요 컴퓨터 제조사 중 한 곳인 레노버가 애드웨어 (혹은, 애드웨어 성격을 띤 웹 브라우저 탈취 프로그램)를 컴퓨터에 미리 탑재해서 판매해 충격을 몰고 오기도 했죠. 레노버와 슈퍼피쉬가 보여준 사례는 일반적이라기 보단 예외에 가깝지만, 이런 위협이 발생할 경우엔 거의 우리가 할 수 있는 일이 많지 않다는 점도 언급해둬야 할 것 같습니다.
트로이 목마, 백도어
트로이 목마 바이러스는 실제 역사 속의 트로이 목마를 본뜬 이름입니다. 트로이 전쟁에서 그리스 병사가 트로이로 진입하기 위해 몸을 숨기는데 사용한 거대한 목재 말 모형이었죠. 역사적 교훈을 놓고 비교해 보면, 트로이 목마 바이러스도 같은 방식으로 컴퓨터를 손상시킵니다. 사용자의 컴퓨터에 침투하기 위해 겉으로는 무해해 보이는 프로그램이나 파일에 악의적인 코드를 감춰두죠. 일단 침투에 성공하고 나면 자신을 시스템에 설치한 뒤, 사용자 몰래 눈에 보이지 않는 백그라운드에서 서버와 통신합니다. 이렇게 해서 외부에 있는 제삼자가 여러분의 컴퓨터에 들어올 수 있게 되죠. 보통 백도어(뒷문)라고 부릅니다.
제삼자가 컴퓨터에 접근할 수 있게 된다는 것 만으로도 끔찍한데, 이렇게 들어와서 이들이 저지를지 모를 일이 초래할 결과는 훨씬 더 무섭죠. 문제를 한층 복잡하게 만드는 건 이런 백도어가 흔적을 적게 남긴다는 점입니다. 사용자는 개인 정보가 유출되고 있는지 전혀 모른 채로 있게 되죠.
백도어가 열려 있어도 그나마 다행인 점은 근본적인 작동 방식에 있습니다. 해커가 컴퓨터에 원격으로 연결해야만 하기 때문에, 악성 코드를 발견하고 지우는 동안 인터넷 연결을 차단하면 아무런 범죄 행위도 할 수 없게 됩니다.
스파이웨어
스파이웨어는 인터넷에 있는 가장 흔한 나쁜 프로그램입니다. 기본적으로 사용자를 기반하고 속이는 형태를 취하며 성가심도 크지만, 대부분의 스파이웨어는 비교적 해가 없습니다. 보통 스파이웨어는 좀 더 관련성 있는 광고를 보여주기 위해 인터넷 사용 형태를 추적하는데 사용됩니다. 이들이 나쁜 프로그램이 되는 이유는 만든 회사가 사용자의 정보를 수집하는 방식에 있죠. 대다수의 주요 회사가 쿠키를 활용하는 것과는 달리, 스파이웨어는 트로이 목마에 훨씬 더 가깝게 사용자를 기만해 설치되고 나면 컴퓨터에서 서버로 자료를 수집해 전송합니다. 우리들 대부분이 존재 여부 조차 완전히 모르는 상태에서 말이죠.
보다 악의적인 형태의 스파이웨어는 훨씬 더 위험합니다. 평범한 스파이웨어는 광고를 보여주기 위해 주로 사용되는 것과는 달리, 악의적인 스파이웨어는 민감한 개인 정보를 다른 사용자나 서버로 전송합니다. 여기에는 이메일, 사진, 로그 파일, 신용카드 번호, 은행 계좌 정보, (인터넷 웹사이트 등의) 암호가 포함됩니다.
스파이웨어는 거의 합법적인 프로그램에 추가로 붙어 사용자가 다운로드 하게 되거나 (툴바 등), 혹은 무료나 쉐어웨어 프로그램의 일부로 들어가죠.
스케어웨어, 랜섬웨어
스케어웨어(겁을 주는 프로그램)와 랜섬웨어(파일이나 시스템의 몸값을 요구하는 프로그램)는 접근 방식에서 차이를 보이지만 둘 다 최종 목표는 사용자를 조정해 흔히 사실이 아닌 이야기를 믿게 만든 후 돈을 갈취하는 겁니다.
스케어웨어는 알림 창을 띄워 사용중인 컴퓨터가 어떤 종류의 악성 코드에 감염됐다고 말하는 모습을 보입니다. (대부분 하나 이상의) 여럿 발견된 악성 코드를 제거하기 위해 버튼을 클릭하면, 프로그램이 시스템을 정리하고 감염이나 위협을 없애기 전에 풀 버전 구입이 필요하다며 돈을 지불하라고 강요하죠. 물론, 돈을 뜯기 위한 거짓말입니다.
랜섬웨어는 악성 코드가 설치되면 파일을 열 수 없게 암호화하거나 혹은 시스템을 잠가버린다는 점에서 다소 다르게 움직입니다. 납치된 파일이나 시스템의 몸값을 지불해야만 되찾을 수 있죠. 랜섬웨어는 여러 위협 가운데 제거하기 쉬운 편에 속하지만, 기술에 익숙하지 않은 컴퓨터 사용자에게는 상당히 두려울 수 있겠죠. 사실, 컴퓨터를 잠그는 랜섬웨어는 백신 회사에서 제공하는 부팅 디스크로 부팅한 후 치료할 수 있고, 파일 암호화도 맞설 방법은 있습니다. 무엇보다 중요한 건 미리미리 예방하는 것이겠죠.
웜
웜은 단연코 가장 파괴적인 형태의 악성 코드입니다 (웜 바이러스라고도 불림). 평범한 바이러스는 하나의 컴퓨터를 대상으로 공격하고, 퍼지기 위해서는 사용자가 감염된 파일을 공유하는 행위에 의존하죠. 이와는 달리 웜은 네트워크 상에 있는 컴퓨터 운영 체제의 보안 구멍을 악용합니다. 잠재적으로는 구멍이 있는 모든 컴퓨터를 몇 분만에 무력하게 만들 수 있죠. 이 모든 일이 사용자가 아무런 행동을 하지 않아도 일어날 수 있습니다.
혹시 2003년경 국내에서도 악명을 떨쳤던 블래스터(Blaster) 웜을 기억하고 계신가요? 윈도우 XP 컴퓨터에 인터넷 선을 꽂기만 하면 '60초 후 컴퓨터가 종료됩니다'와 같은 메시지 창을 띄운 뒤 컴퓨터를 무한 재시작 시켰죠. 당시를 기억하고 계시다면 웜의 위력을 아실 겁니다.
웜은 특정 IP 대역을 무작위로 검색하는 등의 방식으로 보안 취약점이 있는 시스템을 찾습니다. 그 후 목표물을 발견하면 그 컴퓨터로 (사용자가 눈치 채지 못한 상태에서) 자신을 전송하죠. 이렇게 한 컴퓨터에서 다른 컴퓨터로 전달되며 끝없이 감염이 퍼져나갑니다. 네트워크 상의 모든 기기가 감염되거나 혹은 감염된 컴퓨터를 네트워크에서 떼어내 웜을 격리하기 전까지는 말이죠.
알려지지 않은 보안 결함과 취약점
개발자가 아무리 뛰어나더라도 모든 프로그램은 보안 결함과 취약점을 가지고 있습니다. 해커는 보안 결함을 악용해서 프로그램에 다가간 뒤 특정 방식으로 변형하고, 자신만의 코드 (주로 악성 코드)를 그 안에 주입하기도 하죠.
사용하고 있는 프로그램이 왜 그렇게 많이 보안 업데이트를 하는지 의문스러우셨다면, 개발자와 해커 사이에서 끊임없이 벌어지는 술래잡기 때문이라고 답할 수 있을 것 같습니다. 개발자는 이런 구멍이 악용되기 전에 찾아내서 메우려고 하고, 해커는 개발자가 보안 결함을 발견하고 메우기 전 악용하려고 하죠.
살펴본 악용으로부터 조금이라도 안전을 유지하려면 운영 체제와 각 프로그램에 업데이트가 나올 때마다 바로 설치해서 최신 상태로 만들어줘야 합니다.
인터넷에 연결한 상태에서는 온라인 위협을 모두 피하는 100% 확실한 방법은 없지만, 스스로를 더 안전하게 지키는 법은 분명 있습니다.
아래에 몇 가지를 정리하면,
* 운영 체제나 각 프로그램에 업데이트가 나오면 바로 설치해서 최신 상태를 유지합니다.
* 뛰어난 백신 프로그램을 설치하고, 바이러스 정의를 최신 상태로 유지합니다.
* 안으로 들어오는 연결과 나가는 연결을 모두 감시하는 방화벽을 활용합니다. 이런 연결 흐름을 주시하면 외부 서버와 통신하고 있을지도 모를 위협의 존재를 감지하는데 도움이 됩니다.
* 알 수 없거나 신뢰할 수 없는 출처로부터는 안전하지 않은 파일을 다운로드 하지 않도록 합니다.
* 백신이나 악성 코드 탐지 프로그램을 사용해 의심스러운 링크를 열기 전에 확인합니다.
* 불법 해적판 프로그램 사용을 피합니다.
인터넷에서 조금이라도 시간을 보내신다면 온갖 악성 프로그램으로부터 자신을 완전히 보호할 수는 없을 것입니다. 감염이나 보안 문제는 누구에게나 일어날 수는 있지만 (그리고 누구에게나 실제로 일어나기도 하지만), 인터넷 사용이나 컴퓨터 사용 습관에 작은 변화라도 있다면 좀 더 안전하게 사용할 수 있을 것이라는 점에는 어떤 분도 이견의 여지가 없을 것이라 생각합니다.
온라인 공간에 있는 위협으로부터 자신을 보호하기 위해 여러분은 어떻게 하시나요? 인터넷 보안을 위해 사용하는 특별한 프로그램이나 앱이 있으신가요? 나머지 모든 사람이 온라인에서 더 안전하게 지내는데 도움이 되도록 알고 계신 비결을 아래 댓글에 공유해주세요!