ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 소셜엔지니어링 2.0: 패치 불가능한 취약점
    IT 정보/IT, 보안 소식&팁 2015. 11. 25. 16:56
    반응형


     

    소셜엔지니어는 인류의 기원, 적어도 인류가 서로 소통하기 시작한 이래 존재했다고 할 수 있으며 다만 이를 소셜엔지니어라는 명칭으로 표현한 게 최근일 뿐이다. 그래도 사기꾼보다는 고상한 표현이 아닌가.

     

    디지털시대에 소셜엔지니어링이란 상당기간 네트워크침입과 데이터침탈의 주된 원인으로 지목됐다. 다른 기술과 마찬가지로 소셜엔지니어링 역시 급속히 진화했으며 과거 청소년들이 해킹을 시도하던 시절과 달리 오늘날의 소셜엔지니어들은 훨씬 정교하고 다양한 수법을 구사한다. 이 글에서는 소셜엔지니어링의 현주소를 돌아보고 이를 실행하는 주체가 누구인지 살펴보고자 한다. 소셜엔지니어 중에는 기업 컴퓨터사용자를 상대로 보안의식과 규제준수(컴플라이언스)를 시험하기 위해 정식 요청에 따라 거액을 받으며 소셜엔지니어링을 실행하는 전문가들도 있다.

     

    해커, 크래커, 공격자의 핵심 목표는 그들의 방문이 허용되지 않는 디지털의 장소에 침입하는 데 있다. 그 목적은 바이러스나 맬웨어 주입, 비밀번호나 개인정보 또는 데이터 탈취에서부터 시스템 또는 네트워크 과부하를 통한 작동정지에 이르기까지 다양하다. 하지만 의도하는 결과가 무엇이든 그 본질은 무허가 접근을 실행하는 데 있다. 타인의 네트워크에 들어가는 방법은 두 가지가 있으며 하나는 기술적 방법(코드 해킹)이고 다른 하나가 바로 소셜엔지니어링(인간 해킹)이다.

     

    위 두 방법 중 어느 하나가 쉽고 다른 하나가 어렵다고 단정짓는 건 섣부른 판단이며 이는 개별 해커의 능력에 따라 이들의 상대적 난이도가 달라질 수 있기 때문이다. 코딩에 능해 키보드만 가지고도 침투를 실행할 수 있으나 현실의 살아있는 사람과 소통하고 이들에게서 어떤 행동을 유도하는 재능은 전혀 없는 사람들도 많다. 한편 에스키모를 상대로도 에어컨이 필요하다는 사기를 치면서도 가장 기초적인 프로그래밍 작업조차 할 줄 모르는 사람들도 있다. 하지만 이 경우 전자보다는 후자가 좀더 경계의 대상이라고 하겠다.

     

    소셜엔지니어링이 정점에 달하면(그게 최고인지 최악인지는 각자의 시각에 달렸다) 기예와 기술의 측면을 모두 가지고 있다. 소셜엔지니어는 역사를 통틀어 범죄자들이 사기극을 벌이게 되는 경우와 동일한 이유로 동기부여를 받는다. 이는 본래 자기 것이 아닌 돈이나 무엇인가에 대한 욕심, 피해자보다 지적으로 뛰어남을 증명, 다른 사람에 대해 통제와 권력을 행사하려는 욕구 등이 될 수도 있고 어쩌면 단순한 유흥 때문일수도 있다. 몇몇 소셜엔지니어의 경우 생계유지를 위해 능력을 발휘하지만 순전히 재미를 위해 소셜엔지니어링을 구사하는 사람도 없지 않다. 소셜엔지니어링이란 본질적으로 사람을 속여 돈, 사랑/우정, 컴퓨터 비밀번호 등 무엇인가를 넘기도록 하는 데 있다.

     

    관리자를 비롯한 컴퓨터사용자는 인간에 불과하며 소셜엔지니어는 바로 이러한 인간의 약점을 이용한다. 구체적인 목표가 무엇이든 오늘날 소셜엔지니어가 사용하는 방식은 고전적으로 검증된 방식과 창의적인 신종 사기수법을 조합하여 피해자로 하여금 유익한 무엇인가를 넘기게 하며 컴퓨터사용자를 상대로 할 경우 이는 전자적 자산을 열람, 탈취, 조작하는 데 쓰일 수 있는 정보를 의미한다. 첫걸음을 우선 신뢰를 확보하는 데 있다.

     

    유능한 소셜엔지니어는 여러 방법으로 이 첫걸음을 시작할 수 있다. 소셜엔지니어는 피해자와 공감대를 형성함으로써 친밀감을 쌓을 수 있으며(이 경우 대체로 사람들은 모르는 사람이라면 남성보다는 여성을 덜 의심하기 때문에 여성이 최고의 소셜엔지니어인 경우가 많다) 피해자의 온갖 문제 그리고/또는 성과를 이해하고 공감할 수 있는 소울메이트가 된다. 소셜엔지니어는 피해자에게 자신의 고민거리를 털어놓거나 혹은 혼자서만 간직하기엔 너무 큰 자부심이나 행복의 순간을 공유하면서 피해자로부터 공감이나 동정을 끌어내게 된다.

     

    오늘날의 소셜엔지니어는 온갖 고전적 거래수법을 동원한다. 여기에는 인위적 시간제한 설정("이걸 2시까지 끝내야 한다."), 도움을 주고자 하는 인간의 본능에 호소("이걸 못하면 엄청 곤란해지는데."), 피해자의 자만심 자극("이건 너가 나보다 훨씬 잘하지."), 주고받기("이번에만 넘어가 주면 상사에게 너 덕분에 이번 일을 시간 내에 끝낼 수 있었다고 알릴게.") 등이 있다.

     

    물론 피해자와의 친밀감 형성은 대부분에 사람들에게 은밀한 정보를 드러내도록 하는 가장 효과적인 방법이며 이는 장기적인 관점에서 특히 두드러지지만 다른 소셜엔지니터링 수법은 정반대의 접근을 취하며 이 경우 실제의 혹은 그럴듯해 보이는 허위 직위에 대한 호소("저는 공무원이며 이 부분을 즉시 조사해야 합니다."), 상사의 대리 행세, 심지어는 물리적 위협의 표현 등을 통해 피해자를 압박하여 원하는 정보를 내놓도록 한다.

     

    그렇다면 오늘날의 소셜엔지니어가 과거와 차별화되는 부분은 무엇인가. 단지 예전보다 지능적으로 변화했다고만 할 수는 없고 과거에 비해 보다 다양하고 좋은 수단이 많다는 점이 큰 차이를 만든다고 할 수 있다. 다만 이러한 수단에 대한 의존이 때에 따라서는 소셜엔지니어링의 본질이라 할 수 있는 사람을 다루는 능력의 연마를 게을리하도록 하는 영향을 끼칠 수도 있음은 다행스러운 점이라 하겠다.

     

    고전적인 사기꾼이라면 피해자라는 목표물을 빠르게 읽어내고 이를 통해 피해자의 성향과 여건에 맞춰갈 수 있어야 했지만 오늘날의 소셜엔지니어는 손끝만으로도 피해자의 전체 인생사를 파악할 수 있으며 이는 사람들이 전혀 만난 적도 없고 거리에서 알아보지도 못할 "친구"와 함께 개인사의 시시콜콜한 부분까지도 공유하는 인터넷과 소셜네트워킹을 통해 쉽게 확보할 수 있는 공개기록에 담긴 개인정보 덕분이다.

     

    소셜엔지니어는 페이스북 게시글이나 트윗을 통해 어떤 사람을 "알게" 됨으로써 그 사람이 긴장을 늦추게 할 만한 페르소나를 구축할 수 있다. 사람이란 본질적으로 자신과 비슷한 그리고/또는 자신을 좋아하는 사람을 신뢰하게 마련이다. 소셜엔지니어는 경험, 가치관, "좋아요(like)" 등에 대한 정보를 바탕으로 공감 및 선호라는 두 가지 항목 모두에 부합하도록 스스로를 꾸밀 수 있다. 이미 관심사와 선호 그리고 가치관을 많이 공유하고 있다면 거기서 약간 더 나아가지 못할 필요도 없지 않은가. 이 경우 믿을 수 있는 친구라 생각한다면 기밀이어야 할 회사정보나 로그인 정보까지 흘리는 지경에 이를 수도 있다.

     

    소셜사이트에 게재하는 내용에 신중을 기하고 상대방과 몇 시간 동안 이야기를 나눈 다음에야 그 상대방의 친구요청을 받아들일 정도로 주의한다 해도 소셜엔지니어의 조사 능력을 통해 위와 같은 방어를 뚫어버릴 수 있다. 소셜엔지니어가 활용할 수 있는 데이터는 개인정보에 국한되지 않는다. 대부분의 회사는 웹사이트를 통해 기업 차트, 고위 임원이 작성한 블로그 게시글 등 놀라울 정도로 많은 양의 "내부자" 정보를 제공하며 소셜엔지니어는 이를 통해 어떤 기관의 "고위급"으로서 피해자에게 정보를 내놓도록 압박할 만한 권위를 갖췄다고 사실적으로 가장할 수 있다.

     

    웹에서 찔리거나 혹은 민감한 개인정보를 삭제함으로써 행적을 지우는 데 충분한 노력을 기울였다고 생각한다면 섣부른 판단이다. 유능한 조사자(그리고 현대의 유능한 소셜엔지니어는 의미 그대로 유능한 조사자다)라면 캐싱엔진, 사이트 아카이브, Wayback Machine과 같은 웹사이트 등을 통해 웹사이트에서 삭제된 데이터를 캐낼 수도 있다. 인터넷에서 일어난 일은 인터넷에 그대로 남아 있게 마련이며 이는 종종 영구적이기까지 하다.

     

    물론 어떤 소셜엔지니어는 지능적인 동시에 기술에 능하다는 점에서 치명적인 능력을 갖추고 있으며 이러한 유형의 소셜엔지니어는 엄청난 영향을 끼칠 수 있다. 예를 들어 기술적 능력을 활용해 발신자 ID 스푸핑하여 발신자가 실제 위치가 아닌 곳에서 전화를 걸고 있는 듯 조작함으로써 수신자 측에서 해당 발신자의 본래 정체를 혼동하도록 할 수 있다. 이러한 소셜엔지니어는 소셜 측면의 활동기반을 위해 다양한 기술적 수단을 활용할 수 있다. 예를 들어 RFID 리더를 사용하여 신분증 등 각종 카드의 정보를 읽어냄으로써 IT분야나 기타 신뢰 가능한 혹은 기관이나 직위에 있다는 허위주장을 뒷받침하도록 할 수 있다.

     

    흔히 소셜엔지니어를 생각할 때 다른 부류의 엔지니어나 해커와 분류되는 점이라는 면에서 "소셜"이라는 부분에 주목하게 되지만 사실 "엔지니어" "기술자"의 진정한 의미에 대해서도 잊지 말아야 한다. 메리앰웹스터 사전에 따르면 기술자(engineer)의 정의에는 "복잡한 시스템을 구축하는 사람" 그리고 "(어떤 기계의) 직접 운용자 혹은 책임자"라는 내용이 포함돼 있다. 이렇게 보면 소셜엔지니어란 그들의 목적대로 인간의 상호작용을 제어하기 위해 정교한 속임수를 구축하는 기술자라고 할 수 있다.

     

    하지만 모든 소셜엔지니어링이 나쁜 건 아니다. 공인된 전문 소셜엔지니어로서 보안업계에 종사하며 기관 네트워크에 대한 인간중심 침투테스트를 실행하는 사람들도 있다. 이들의 역할은 인간 보안망에서 "가장 약한 연결고리"를 식별하여 소셜엔지니어의 사기에 취약한 사람들이 보다 제대로 대응할 수 있게 교육받도록 하는 데 있다. 게다가 개인적 차원에서 본다면 누구나 소셜엔지니어링을 수시로 구사한다. 부모는 자녀에게 소셜엔지니어링 수법을 사용하고 반대로 아이들 역시 엄마와 아빠에게 이를 사용한다. 교사는 학생에게, 의사는 환자에게, 상사는 직원에게(그리고 반대로) 소셜엔지니어링을 실행하고 때로는 배우자 간에도 소셜엔지니어링이 벌어지며 정치인이야 더 말할 필요도 없다.

     

    소셜엔지니어랑이란 본질적으로 자신이 원하는 행동을 하도록 다른 사람을 유도하는 데 있을 뿐이다. 경우에 따라서는 이러한 행동이 선의에 따라 행해질 수도 있겠지만 그렇지 않은 경우도 많다. 컴퓨터사용자가 자신에 대한 소셜엔지니어링이라는 조작의 징후를 인지할 수 있고 그러한 시도에 대처하기 위한 확실한 대응책과 절차를 알고 있도록 교육할 필요가 있다. 사용자들이 이러한 교육에 별 관심을 가지지 않거나 필요성을 느끼지 못할 수도 있으며 바로 이 경우에 전문가가 보유한 "백색" 소셜엔지니어링이 활용될 수 있다.

     

     

     

    Debra Littlejohn Shinder, Social Engineering 2.0: Exploiting the unpatchable vulnerability, 11. 20. 2015.

    http://www.gfi.com/blog/social-engineering-2-0-exploiting-the-unpatchable-vulnerability/

     

    번역: madfox

    반응형

    댓글

Designed by Tistory.