작은 스타트업부터 큰 대기업까지 경각심을 가지길 바라며
해킹 공격 기법 중에 피싱(Phishing)이라는 게 있습니다.
위의 이미지처럼 유사한 사이트를 만들어 두고 사용자들을 유인해 계정 정보를 빼내는 것입니다.
피싱 사이트를 만드는 건 너무 쉬워서 구글에서 검색만 해봐도 수 없이 많은 가이드(?)가 나옵니다. 제가 문득 생각해봐도 해외 몇 군데를 거쳐서 타깃 사이트의 도메인과 유사한 도메인 구입하고, 호스팅 열어두고, 클론 코딩해서 로그인 페이지나 메인 페이지만 똑같이 만들면 될 것 같습니다. 아마도 대부분의 웹 개발자 분들이 불과 1~2일이면 누구라도 피싱사이트를 만들지 않을까 싶습니다.
피싱의 무서움은 그다음입니다. 만들어진 사이트 링크를 사람들에게 무차별적으로 공유하기 시작합니다. 문자, 이메일, 소셜 링크 등으로 동시 다발적으로 뿌립니다. 한 번 해당 링크가 노출되면 해킹을 할 수 있는 시간이 한정적이기 때문에 한 방에 최대한 많은 사람들에게 접근할 수 있도록 홍보하고, 막히기 전까지 데이터를 훔치는 것입니다. 이미 대한민국의 큰 기업들도 당했습니다. 제가 기억나는 서비스만 해도 네이버, 농협, 코인원 등이 있습니다.
문자 메시지에 있는 링크를 누르게 되면 모습이 똑같기 때문에 의심 없이 로그인을 하는 순간 해커가 정보를 다 빼가게 됩니다. 대부분의 사람들은 여러 사이트의 아이디, 비밀번호를 똑같이 만들다 보니 순식간에 자신의 모든 정보가 다 넘어갑니다. 심지어 피싱 사이트를 구글 광고로 등록해 검색 최상단에 올리는 경우도 있습니다.
코인원이라고 검색을 하고 최상단에 올라온 사이트가 당연히 정상 사이트라고 생각하기 쉽지만, 해커는 이런 틈을 파고듭니다.
영리한 해커는 여기서 멈추지 않습니다. 정보가 들어오는 순간 그전에 세팅된 서버를 통해 2단계 검증이 필요하지 않은 거의 대부분의 사이트에 로그인을 시도하고, 해당 데이터를 자신의 서버에 다 기록하게 됩니다. 이 과정에서 자신의 위치가 추적되면 안 되기 때문에 접속하는 서버를 이곳저곳으로 우회해 감추게 됩니다. 가끔 엉뚱한 국가에서 접속 시도가 발생했다면 해당 국가의 해커가 공격을 한 게 아니라 바로 옆집에 사는 해커가 공격을 한 것일 수 있습니다.
피싱은 대표적인 해킹 방법임에도 불구하고 많은 서비스들이 피싱에 대응하거나 준비하지 않습니다. 대응하는 방법은 생각보다 간단합니다. 먼저 유사한 도메인을 계속 감시하면 됩니다. 큰 회사라면 미니멈 성능의 클라우드 서버를 하나 만들어 24시간 감시를 돌려두면 됩니다. 유사한 도메인 리스트를 계속 탐색하면서 DOM 파싱 작업을 해서 구조상 유사한 점이나 로그인, 패스워드 입력 또는 회사의 페이지와 동일한 텍스트 형태가 있는지 검사하면 됩니다. 만약 감시 서버가 피싱 사이트를 발견하게 된다면 해당 사이트를 공지사항을 통해 경고하거나, 사이버 수사대에 의뢰하거나 방어할 여지는 많습니다.
또한 앞서 구글 광고의 예시처럼 자사 서비스를 주기적으로 검사해 광고를 통한 피싱이 진행되는지 확인해봐야 합니다. 이 역시 모니터링 서버를 만든다면 어렵지 않게 막을 수 있습니다. 코드 작성에 시간은 조금 걸리겠지만 큰 회사의 백엔드 개발자라면 하루도 안 걸려 만드는 수준의 서버입니다.
많은 개발자들이 XSS나 SQL 인젝션과 같은 데이터의 입출력에 대한 방어는 철저히 하면서 소셜 엔지니어링 방식의 해킹에는 큰 대비를 하지 않습니다. 이미 수많은 대기업이 당했던 방식이고, 너무 쉬운 방식이라 악의적인 집단이 있다면 어느 날 대대적으로 여러 사이트에 공격을 진행할 수도 있습니다. 기업의 보안 책임자 분들은 이런 점들을 잘 방어해두시는 게 어떨까 싶습니다.