가끔 뉴스를 보면 유명 기업이 해킹 공격에 의해 수백만명의 개인정보, 주요 기술정보가 털렸다는 소식을 듣곤한다. 해킹당했다라는 근거는 무엇이며 어떤 정보가 유출됐는지는 어떻게 알 수 있을까? 오늘은 이 주제에 대해서 얘기해보고자 한다. 당하는 주체는 개인 PC와 서비스를 위한 서버가 있을 수 있다.
어떻게 해커는 내 PC를 공격할 수 있을까? 내 PC가 공격당하면 어떻게 될까?
정답은 해커의 목적에 따라 달라질 것이다.
해커가 단순 돈을 목적으로 하는 경우에는 특별한 대상을 노리고 공격하는게 아니라 무작위로 공격이 들어가는 것이기 때문에 사용자만 주의한다면 크게 감염될 일은 없다. 개인 PC가 해킹됐다고 하면 랜섬웨어에 의한 파일 암호화, 금융 또는 게임정보 탈취, 디도스 공격을 위한 좀비PC 만들기가 있을 수 있다.
취약점에 의한 감염
우리나라는 한글을 사용하기 때문에 외국 해커 입장에서는 어떠한 파일이 중요한 파일인지 확인하기 어렵다. 그렇다고 안심하면 안 된다. 공짜를 좋아하는 민족이기 때문에 불법 프로그램 사용, 불법 사이트 접속을 자주하고 Windows 운영체제를 주로 사용하며 경제규모가 10위 안에 드는 나라이기 때문이다.
대표적으로 정품이 아닌 운영체제, 지원이 끝난 운영체제를 사용했을 때 발생할 수 있다. 컴퓨터에 관심이 없거나 인터넷만 사용하는 사람, 공공 PC의 경우 Window 7, XP를 아직 사용하고 있다. 이 운영체제는 새로운 취약점이 발견되더라도 더이상의 패치가 없기 때문에 웹 서핑을 하다가 감염될 수 있다. 그래도 flash, IE가 퇴출되면서 웹 서핑 중 취약점에 의한 감염 사례는 많이 줄어든 것 같다. 한 때 exploit kit이 엄청 유행했었다. 취약한 사이트를 해킹해서 악성 스크립트를 심어놓고 취약점을 이용해 랜섬웨어를 감염시키는 일이 빈번했다. 웃긴건 취약점에 사용한 코드가 보안을 위해 공유한 PoC(Proof of Concept) 코드가 대부분이었다. 보안을 위해 취약점을 공유했는데 그 코드가 해커에 의해 악용된 것이다.
예전에는 ActiveX에 의해 자주 감염됐지만 사용을 줄이고 공격패턴이 변하게 됨에 따라 공격이 많이 감소했다. ActiveX에 의한 감염 사례에 대해 잠깐 얘기하자면 악성 ActiveX를 배포하는 것만이 문제가 아니다. 취약한 함수가 ActiveX에 구현된 경우 외부 사이트가 이 ActiveX의 함수를 다른 용도로 실행 할 수 있었다. 또는 패치, 버전정보를 외부 URL 주소를 통해 확인하는 경우 그 사이트를 해킹해 다른 파일을 배포시킨 경우도 있었다. 브라우저는 웹페이지를 보여주는 작업만 할 뿐 컴퓨터에서 다른 행위를 할 수 없다. 웹 서비스는 보안 프로그램 설치 목적으로 ActiveX를 미친듯이 배포했고 사용자는 정상, 악성 경계없이 내 컴퓨터에 알 수 없는 프로그램을 설치해야만 했다.
맥과 리눅스는 다중 사용자를 목적으로 운영체제가 개발되었지만 윈도우는 개인용으로 개발되었다. 적절한 사용자 계정, 권한, 기타 보안 제약사항이 없었기 때문에 XP시절까지만 하더라도 사용자가 관리자 기능을 모두 실행할 수 있었다. 문제의식을 느끼고 MS는 윈도우 디펜더, UAC(사용자 계정 컨트롤)과 같은 기능을 넣어서 보안성을 높이려고 했다. 다만 취약한 버전의, 불법 다운로드된 윈도우 운영체제를 쓰는 사용자가 많고, 악성코드 소스코드가 많이 공유됐고, 새로운 윈도우도 취약점이 계속 발견되기 때문에 문제는 계속 될 것이다. 반면 맥은 컴퓨터를 사는 동시에 운영체제도 같이 설치되고 지속적으로 업데이트를 제공한다. 윈도우 사용자라면 지속적으로 운영체제 업데이트를 해주고 지원이 끝난 프로그램은 사용하지말고 백신을 설치해서 좀 더 보안에 신경쓰고 조심하도록 하자. 또 그렇다고 맥도 안전한 것은 아니므로 항상 보안에 더 신경을 써야한다.
주기적으로 반기마다 어떤 공격이 있었는지에 대해 보고서가 올라온다. 좋은 내용이 많으니 읽으면 분명 도움이 될 것이다.
해커가 사용자를 공격하기 가장 쉬운 방법은 메일, 다운로드, 써드파티 프로그램일 것이다. 예전에는 USB, 취약점에 의해 감염이 많이 됐지만 Windows 10이 출시되고 NSA 해킹도구 유출(엄청난 제로데이 취약점 공개)과 같은 건이 발생하지 않으면서 그 영향이 많이 줄었다. 지난 1년을 돌이켜보면 개인보다는 대기업, 국가, 블록체인, 거래소를 공격하는 건이 많이 발생했다.
메일은 사회공학적으로 공격하기 위해 자주 사용된다. 계정정보 탈취 후 2차 공격을 위한 피싱 메일이 공격일 수도 있고 처음부터 랜섬웨어와 같은 악성코드를 직접 보낼 수도 있다.
다운로드로 인한 감염의 경우 보통 불법다운로드에 의해 감염이 되므로 사용자가 조심하면 그 피해를 많이 줄일 수 있다. 백신 설치, 윈도우 디펜더만 실행해도 감염을 최소화할 수 있다.
써드파티의 경우는 보안담당자의 역할이 매우 중요하다. 공지를 빠르게 해서 해당 프로그램을 삭제, 패치하도록 알려줘야만 한다. 해커 입장에서는 새로운 취약점 찾기, 악성코드 개발, 감염 시키는 수고를 들이는 것보다는 사용자들이 많이 쓰는 프로그램을 만든 회사를 해킹하는게 더 쉽기 때문이다.
생각나는 대표 사례로 씨클리너(CCleaner)가 있다. CCleaner의 경우 Pirform 회사가 만든 PC 최적화 툴로 Avast 백신회사가 인수하여 백신 설치 시 추가로 설치할 수 있는 프로그램이였다. 해커는 2017년 다운로드 서버를 해킹하고 코드를 바꿔치기한 뒤 정상 인증서를 이용해 악성 패키지를 함께 배포했다. CCleaner로 인해 악성코드는 열심히 퍼졌고 약 한 달 뒤 시스코 탈로스에서 새로운 익스플로잇 기술을 테스트 하다가 발견하게 되었다. 어찌보면 사용자 입장에서는 보안을 위해 설치한 파일이 악성코드 감염시키는데 기여하고 있었으니 이 또한 웃긴 사건이었다.
1) 시스템 정보(PC명, 업데이트 목록, 설치된 프로그램, 프로세스, MAC 주소 등)를 C&C에 전송
2) C&C에 접속 실패 시 DGA로 새로운 도메인을 만들고 DNS 요청 및 2개의 IP를 조합해서 새로운 C&C를 생성, 그리고 정보를 전송함
3) C&C로부터 악성코드를 받아 메모리에 저장함. 이 때 특정 도메인의 경우에만 해당함(20개 기업)
4) 깃헙과 워드프레스와 같은 정상 사이트로부터 특정 키워드로 검색해 추가 C&C가 있는지 확인
5) 추가 C&C로부터 2차 악성코드(백도어)를 요청함
6) 받은 2차 악성코드를 레지스트리에 다운로드함
7) 이러한 작업을 C&C 접속 성공/실패 유무에 따라 재시작 실행 시간을 변경해서 설정해 놓음