컴맹을 위한 보안기초정보..

[사회공학] 사회 공학 기법과 악성코드 집중 분석

지리산.. 2007. 10. 16. 17:15
  안철수연구소 [2007/04/24] 목록보기 
[사회공학] 사회 공학 기법과 악성코드 집중 분석 조회수   13144  
[기획 특집]사회 공학 기법과 악성코드 집중 분석

지피지기 백전불패(知彼知己 百戰不敗)! 악성코드의 수법을 알면 이를 막을 수 있는 방법이 보인다. 악성코드, 피싱, 전화사기 등 최근 보안 위협은 사회 공학 기법을 이용한다. 사회 공학이란 신뢰할 수 있는 사람으로 가장하여 다른 사람들로 하여금 자신의 목적을 위해 행동하도록 만드는 기술이라고 정의할 수 있다. 공격자가 사용하는 사회 공학 기법은 무엇이며, 특히 악성코드에서는 어떠한 방식을 사용하는지 살펴보자. 더 나아가 이를 통해 대응과 조치 방법을 알아보자.

Ⅰ. 사회 공학(Social Engineering) 기법
Ⅱ. 사회 공학 기법의 공격 흐름
Ⅲ. 매스 메일러에서의 사회 공학 기법
Ⅳ. 인스턴트 메신저 웜에서의 사회 공학 기법
Ⅴ. P2P 웜에서의 사회 공학 기법
Ⅵ. 사회 공학 기법의 대응 전략


Ⅰ. 사회 공학(Social Engineering) 기법

우리는 최근 뉴스 또는 신문 등의 매체들을 통해서 "전화 사기"라는 신종 사기 수법에 대한 기사들을 심심치 않게 들을 수 있다. 이 "전화 사기"라는 신종 사기로 인해 많은 사람들이 금전적인 피해를 입는 사건들이 증가하고 있어 우리 사회의 커다란 사회 문제로 발전하고 있는 양상이다.


[그림 1] 최근에 발생하고 있는 "전화 사기" 관련 기사들


이와 같이 우리 사회의 심각한 사회 문제로 발전하고 있는 "전화 사기" 사건들의 내용을 자세히 살펴보면 공격자들은 몇 가지 공통된 내용들을 피해자들에게 언급하고 있다는 것을 알 수 있다. 그 첫 번째가 고위 공무원, 금융 관련 기관의 직원과 같이 신뢰할 수 있는 사람임을 사칭한다는 점이다. 그리고 두 번째로는 자신 또는 주위의 가까운 사람들에게 심각한 금전적인 문제가 있다는 것과 같이 쉽게 관심을 가질 수 있는 이야기를 한다는 점이다. 마지막으로 앞서 언급하였던 문제점을 해결하기 위한 거짓 방안을 피해자에게 제시함으로 피해자가 이를 행동으로 옮기도록 만든다는 점이다.

평소 정보 보안(Information Security)에 관심이 있었던 사람이라면 앞서 언급한 이 세 가지 공통점이 정보 보안에서 언급하고 있는 사회 공학(Social Engineering) 기법과 유사한 공격 형태라는 것을 쉽게 파악 할 수가 있다. 그러나 정보 보안에서 언급하는 사회 공학 기법과 조금 다른 점이라면 공격자(Social Engineer)의 최종 목적이 컴퓨터 시스템의 관리자 권한 획득이나 중요한 데이터 유출인 반면에 최근에 발생하고 있는 "전화 사기"의 공격자는 피해자의 금융 정보를 이용한 금전 갈취가 최종 목적인만큼 이에 따른 피해는 훨씬 더 심각하고 직접적이라고 볼 수 있다.

이렇게 심각한 피해를 유발하는 "전화 사기"의 근간을 이루고 있는 사회 공학(Social Engineering) 기법은 어떠한 것이며 이러한 기법의 공격자(Social Engineer)는 어떠한 방식으로 공격을 수행하는지 알아보도록 하자. 그리고 더 나아가 악성 코드(Malicious Code)에서는 사회 공학 기법을 어떠한 방식으로 사용하고 있는지 알아보도록 하자. 마지막으로는 이러한 공격에 대해서 어떠한 방식으로 대응을 하고 조치를 하여야 하는지도 함께 알아보도록 하자.

사회 공학(Social Engineering) 기법

사회 공학 기법에 대해 정보 보안과 관련한 문서와 서적들에서는 대부분이 유사한 형태로 정의를 내리고 있다. 이 중에서도 대부분이 공통적으로 Harl의 "People Hacking"이라는 사회 공학 기법에 관하여 다룬 서적에서 다음과 같은 문구를 가장 많이 인용하고 있다.

"The art and science of getting people to comply with your wishes."

이 문구를 번역하자면 "사람들로 하여금 당신이 원하는 바에 동의하도록 만드는 예술이자 과학." 정도라고 할 수 있다. 사실 이 정의는 조금 추상적인 개념이 적용되어 있는데 여기에다 필자가 생각하는 사회 공학 기법의 특징과 형태를 조금 더 덧붙여 구체화 시킨 정의를 내린다면 다음과 같다고 할 수 있다.

"신뢰할 수 있는 사람으로 가장하여 다른 사람들로 하여금 자신의
목적을 위해 행동하도록 만드는 기술."


이렇게 정의를 내릴 수 있는 사회 공학 기법은 공격자(Social Engineer)가 공격 대상이 되는 개인에게 어떠한 수단으로 접근하는가에 따라서 인간 기반(Human Based)과 컴퓨터 기반(Computer Based)으로 다시 나누어지게 된다.
인간 기반(Human Based)은 공격자 스스로가 공격 대상에게 직접적인 접근이나 전화 등을 이용하여 접근하는 경우를 말한다. 그리고 컴퓨터 기반(Computer Based)은 인간 기반(Human Based)과는 조금 다르게 공격자가 공격 대상에게 악성코드, 일반적인 컴퓨터 프로그램 그리고 웹 사이트 등을 수단으로 이용하여 접근하는 경우를 이야기하게 된다. 이렇게 사회 공학 기법은 2가지 형태로 나누어 볼 수 있지만 일반적으로 사회 공학 기법을 이야기할 경우에는 대부분이 인간 기반(Human Based)의 수단을 이용하는 공격 형태를 지칭하는 경우가 일반적이다.

다음에서는 이러한 정의와 분류를 가지는 사회 공학 기법의 공격이 공격자와 공격 대상 사이에서 어떠한 흐름으로 진행되는지 살펴보도록 하자. [계속]

[저자] 안철수연구소 ASEC 장영준 주임연구원

[안철수연구소 2007-04-24]