악성코드란 사용자와 시스템이 의도하지 않은 악성 행위를 하는 프로그램, 혹은 특정 프로그램에 삽입되어 사용자와 시스템에 악영향을 끼치는 코드입니다. 영어로는 악성 소프트웨어라는 뜻의 Malicious Software를 줄여 멀웨어(Malware)라고 합니다.
악성코드는 운영체제(OS)에서 파일을 더블클릭하는 등의 실행(Execution)행위가 발생할 때 동작하는데, 우리가 사용하는 PC와 스마트폰 모두 운영체제가 존재하는 시스템이기 때문에 악성코드와 바이러스에 노출되어 있습니다.
PC 악성 프로그램은 대부분 인터넷 브라우저를 통해 감염됩니다. 웹서핑 시 사용자는 이메일 확인이나 파일 다운로드, Active X 프로그램 설치 등, 로컬 시스템에 영향을 끼치는 활동을 합니다. 이 과정을 악용하여 해커가 의도한, 그러나 사용자는 의도치 않은 동작을 하는 것이 악성코드입니다.
악성코드는 사용자의 클릭을 통해 실행되기 때문에, 클릭하고 싶어지는 매력적인 형태를 하고 있을 때가 많습니다.
예를 들어 “이번 주의 로또번호 예측”, “최신 영화 무료 다운” 같은 제목의 이메일이나 링크가 있다면 사용자는 무심코 클릭을 하게 될지도 모릅니다. 이 때 악성 프로그램이 PC에 다운로드 되거나 사용자 브라우저의 Active X 자동 실행 취약점을 이용하는 등 감염이 일어나게 됩니다. (최신 익스플로러 및 크롬을 이용하면 대부분 방지할 수 있습니다)
이렇게 1차적으로 악성코드를 공격 대상의 PC에 이동시키고 생성까지 하는 툴을 exploit kit 또는 dropper라고 합니다.
다운로드 된 악성 exploit kit는 2차적으로 공격 대상에 랜섬웨어, 트로이목마, RAT(Remote Access Terminal)등의 악성 소프트웨어를 설치합니다.
이런 exploit kit, dropper과 악성 소프트웨어는 사용자가 모르게 시작 프로그램, 스케쥴링 프로세스, 자동 실행 레지스터에 추가되어, PC종료 후 재부팅 시에도 자동으로 실행됩니다.
감염 사실을 인지하고 악성코드를 백신을 이용해 삭제해도 악성코드가 완전히 제거되지 않거나, 다시 실행되는 이유는 exploit kit나 dropper가 지속적으로 프로세스 존재 여부를 확인하고 다시 악성코드를 생성 및 실행하기 때문입니다. 때문에 악성코드를 완전히 제거하기 위해서는 exploit kit와 dropper까지 모두 삭제해야 합니다.
스마트폰과 태블릿 같은 모바일 운영체제는 PC보다 프로그램 실행 환경에 제약이 있기 때문에 일반적으로 보안이 더 쉽습니다. 그러나 악성코드가 감염되는 과정이 단순해 모바일은 악성코드가 접근하기 더 좋은 환경입니다.
모바일도 PC와 마찬가지로 각종 문자, SNS, 메시지앱, 웹서핑의 링크를 클릭하거나, 악성사이트에서 다운로드된 각종 파일(flv, swf, avi등)을 실행함으로써 악성 apk가 설치될 수 있습니다. 링크를 클릭하면 “출처를 알 수 없는/있는 앱”이 다운로드 되며, 해당 파일 실행 시 악성 앱이 자동으로 설치됩니다. 이렇게 설치된 악성 앱은 사용자의 정보를 유출하거나 파괴하기도 합니다.
악성 앱 설치를 방지하기 위해서는 알 수 없는 출처의 앱 설치를 비활성화 상태로 유지하는 것이 좋습니다. (이 설정은 안드로이드에서 기본적으로 제공되는 옵션입니다) 또한 모든 앱은 제조업체의 공식 앱스토어에서 다운로드하는 것을 권장합니다.
모바일에서는 운영체제의 시스템 권한이 사용자에게 열려있지 않기 때문에 시스템 권한으로 악성 앱이 작동하기는 어렵습니다. 그래서 IOS의 경우 “탈옥”, 안드로이드의 경우 “루팅”과 같이 사용자의 시스템 권한 상승을 하지 않는 것이 보안에는 안전합니다.