2019년 1월 8일, 구글 플레이 스토어에서 최초의 '클리퍼 악성코드(clipper malware)' 사례가 발견되었습니다. 이 악성코드는 무해한 정상 앱으로 위장해 사용자의 다운로드를 유도한 뒤, 암호화폐 자금을 몰래 해커의 지갑으로 빼돌리는 수법을 사용했습니다.
그렇다면 클리퍼 악성코드는 정확히 무엇이고, 어떤 원리로 작동하며, 어떻게 하면 공격을 피할 수 있을까요?
클리퍼 악성코드란 무엇인가?
클리퍼 악성코드는 암호화폐 거래 과정에서 지갑 주소를 노립니다. 암호화폐 지갑 주소는 쉽게 말해 은행 계좌번호의 암호화폐 버전이라고 할 수 있습니다. 누군가에게 암호화폐를 받으려면 상대방에게 자신의 지갑 주소를 알려주고, 그 상대방은 결제 정보에 해당 주소를 입력하게 됩니다.
클리퍼 악성코드는 바로 이 거래 과정을 가로채어, 원래의 지갑 주소를 악성코드 제작자가 소유한 주소로 바꿔치기합니다. 그 결과 사용자가 자신의 암호화폐 계정에서 송금을 시도하면, 의도했던 수신자가 아닌 악성코드 제작자에게 돈을 보내게 되는 것입니다.
특히 고액의 거래가 가로채질 경우, 심각한 금전적 피해로 이어질 수 있습니다.
클리퍼 악성코드의 작동 원리
클리퍼 악성코드는 감염된 기기의 클립보드, 즉 복사한 데이터가 임시 저장되는 공간을 감시하는 방식으로 작동합니다. 사용자가 무언가를 복사할 때마다 클리퍼는 그 내용에 암호화폐 지갑 주소가 포함되어 있는지 확인하고, 만약 포함되어 있다면 자신의 주소로 조용히 교체해 버립니다.
결국 사용자가 붙여넣기를 하는 순간, 올바른 주소가 아니라 해커의 주소가 입력되는 것이죠.
클리퍼 악성코드는 지갑 주소의 복잡성을 역이용합니다. 지갑 주소는 숫자와 영문자가 무작위로 길게 나열된 형태라서, 같은 주소를 여러 번 사용해 본 경험이 없다면 주소가 바뀌었는지 눈치채기가 매우 어렵습니다.
설상가상으로 이러한 복잡성 때문에 사람들은 주소를 직접 타이핑하기보다는 복사·붙여넣기를 선호하는데, 이것이야말로 클리퍼 악성코드가 바라는 바입니다.
클리퍼 악성코드의 등장 배경과 역사
클리퍼 악성코드 자체는 새로운 개념이 아닙니다. 2017년경부터 등장했으며, 초기에는 주로 윈도우 기반 PC를 표적으로 삼았습니다. 이후 안드로이드용 클리퍼 악성코드가 개발되어 블랙마켓에서 판매되기 시작했고, 비공식 사이트에서 유통되는 앱을 통해서도 감염 사례가 보고되었습니다.
실제로 이런 비공식 사이트들은 2016년 100만 대의 기기를 감염시킨 '굴리건(Gooligan)' 악성코드의 온상이기도 했습니다.
하지만 이번 사례는 공식 구글 플레이 스토어에 올라온 앱에서 클리퍼 악성코드가 발견된 첫 번째 사례라는 점에서 의미가 큽니다. 감염된 앱을 공식 스토어에 성공적으로 올리는 것은 모든 악성코드 유포자가 꿈꾸는 시나리오입니다. 구글 플레이 스토어의 앱은 일종의 신뢰성을 부여받기 때문에, 출처 불명의 웹사이트에서 내려받는 앱보다 훨씬 안심하고 설치하게 됩니다.
즉, 사람들은 검증 없이 스토어에서 앱을 다운로드하고 설치하는데, 이것이 바로 악성코드 제작자들이 노리는 지점입니다.
어떤 앱에 클리퍼 악성코드가 숨어 있었나?
문제의 클리퍼 악성코드는 '메타마스크(MetaMask)'라는 이름의 가짜 앱에 숨어 있었습니다. 메타마스크는 이더리움 기반 분산형 애플리케이션(dApp)을 브라우저에서 사용할 수 있게 해주는 실존하는 서비스입니다. 당시 메타마스크에는 공식 안드로이드 앱이 없었고, 악성코드 제작자들은 바로 이 점을 악용해 마치 공식 앱이 있는 것처럼 위장했습니다.
이 가짜 메타마스크 앱은 단순히 클립보드의 암호화폐 주소를 바꾸는 데 그치지 않았습니다. 가짜 계정 설정 과정의 일부로 사용자에게 이더리움 계정 정보까지 요구했으며, 아무 의심 없이 정보를 입력한 사용자의 계정에 로그인해 자금을 인출할 수 있는 모든 데이터를 손에 넣었습니다.
다행히 보안 업체가 큰 피해가 발생하기 전에 이 악성코드를 발견했습니다. 가짜 메타마스크 앱은 2019년 2월 1일에 업로드되었고, 약 일주일 남짓 지난 뒤 신고를 받아 삭제되었습니다.
늘어나는 암호화폐 관련 공격
이번 공격 벡터는 처음 등장한 방식이지만, 놀랄만한 일은 아닙니다. 요즘 암호화폐 시장은 매우 거대한 산업으로 성장했고, 그만큼 큰 돈을 벌 수 있는 기회도 함께 커졌습니다. 대부분의 사람들은 합법적인 방법으로 수익을 추구하지만, 언제나 타인을 착취하려는 세력이 존재하기 마련입니다.
암호화폐 해커들이 특히 즐겨 쓰는 수법 중 하나가 바로 '크립토재킹(cryptojacking)'입니다. 이는 감염된 기기의 프로세서를 몰래 빌려 악성코드 제작자를 위해 암호화폐 채굴을 시키는 방식으로, 사용자가 전혀 눈치채지 못하도록 은밀하게 진행됩니다.
이번 클리퍼 악성코드 사례와 마찬가지로, 보안 업체들은 이미 구글 플레이 스토어의 앱을 감염시키는 크립토재커들도 발견한 바 있습니다. 따라서 이번 사건은 안드로이드 폰을 노리는 암호화폐 기반 악성코드 공격의 시작에 불과할 수 있습니다.
클리퍼 악성코드 공격을 예방하는 방법
무섭게 들릴 수 있지만, 클리퍼 악성코드의 공격을 피하는 방법은 생각보다 간단합니다. 클리퍼 악성코드는 사용자가 자신의 존재를 모르고 경고 신호를 무시한다는 점에 의존하기 때문입니다. 작동 원리를 이해하는 것만으로도 이미 방어의 90%는 끝낸 셈입니다.
첫째, 반드시 구글 플레이 스토어에서만 앱을 다운로드하세요. 물론 구글 플레이도 완벽하지는 않지만, 인터넷상의 불법 사이트보다는 훨씬 안전합니다. '서드파티 스토어' 역할을 하는 사이트는 악성코드가 포함될 가능성이 훨씬 높으므로 가급적 피하는 것이 좋습니다.
둘째, 구글 플레이에서 앱을 내려받을 때는 설치 전에 총 다운로드 수를 꼭 확인하세요. 출시된 지 얼마 되지 않았거나 다운로드 수가 적은 앱은 위험할 수 있습니다. 또한 어떤 앱이 유명 서비스의 모바일 버전이라고 주장한다면, 개발자 이름을 반드시 다시 한번 확인하세요. 개발자 이름이 공식 명칭과 조금이라도 다르다면 무언가 잘못되었다는 강력한 경고 신호입니다.
셋째, 설령 스마트폰이 클리퍼 악성코드에 감염되었다 해도, 주의를 기울이면 공격을 막을 수 있습니다. 붙여넣은 지갑 주소가 복사한 것과 동일한지 항상 재확인하세요. 복사한 주소와 붙여넣은 주소가 다르다면, 클리퍼 악성코드가 시스템에 숨어 있다는 뜻입니다.
이 경우 전체 바이러스 검사를 실시하고, 최근 설치한 의심스러운 앱은 즉시 삭제해야 합니다.
클리퍼 악성코드, 충분히 막을 수 있습니다
클리퍼 악성코드는 암호화폐를 많이 다루는 사람에게 치명적인 위협이 될 수 있습니다. 지갑 주소의 복잡함과 사용자의 복사·붙여넣기 습관이 결합하면, 악성코드가 공격할 기회의 창이 열리는 셈입니다. 많은 사람들이 피해를 입고 나서야 자신이 무슨 짓을 당했는지 깨닫곤 합니다.
다행히 클리퍼 악성코드를 무력화하는 방법은 단순합니다. 의심스러운 앱은 절대 다운로드하지 말고, 거래를 확정하기 전에 모든 지갑 주소를 반드시 재확인하세요.
모바일 기기의 악성코드가 걱정된다면, 스마트폰 보안을 강화하고 모바일 악성코드를 차단하는 방법도 함께 알아두시기 바랍니다.