본문 바로가기

Infosecinstitute 번역

[번역문서배포-infosecinstitue] Social Engineering: A Hacking Story

반응형

해당 문서는 보안프로젝트(www.boanproject.com) 박지수님(신나라박)이 번역하신 문서입니다. 학습하는데 도움 되시기 바랍니다.

원본URL: http://resources.infosecinstitute.com/social-engineering-a-hacking-story/

 

 

이번 글에는 "사회 공학이란 무엇이고 어떤 종류의 공격이 있을까?"라는 질문과 함께 사회 공학 해킹에 대해 얘기해 보려 한다. 이 외에도, Social Engineering Toolkit 같은 도구들을 사용하지 않은 매우 다른 접근 방식을 사용한 실시간 해커(real-time hacker)들이 사용한 흥미로운 사회 공학 공격 기술에 대해 얘기하고자 한다.


나의 목표는 그들의 목표 대상에 맞선 잠재적인 해커들의 기술들과 여러가지 많은 방법들로 공격자가 그들의 목표 대상을 위협 할 수 있는지 보여주는 것이다.

 

정보 보안의 맥락에서 사회 공학은 사람들이 비밀 정보를 포기하도록 조종하는 예술과 같다. 이것은 중요한 정보를 모으기 위한 신용 사기의 한 종류이며 인간의 상호 작용과 일반적인 보안 절차를 깨버리도록 속이는 것에 의존하는 비 기술적인 공격을 표현하는 용어다. 범죄자들은 비교적 다른 공격 보다 쉽기 때문에 사회 공학 전략을 사용한다. 피해자들이 본능적으로 다른 사람을 신뢰하려고 하고 자연스럽게 도움이 되려고 하기 때문에 사회 공학 전략은 가장 성공적인 공격 중 하나 이다. 사회 공학 공격의 피해자들은 그들이 깨닫지 못한 체 정보가 유출되어 컴퓨터 네트워크를 공격하는데 쓰이도록 속게 된다. 사회 공학자들은 사람들이 그들이 소유한 정보들의 가치를 모르고 그것들을 보호하는 것에 부주의 하다는 사실을 믿는다.

누구와 무엇을 신뢰할지 아는것: 사람의 말을 곧이곧대로 믿어야 할때인지 아닌지, 당신이 얘기하고 있는 사람이 정말 당신이 생각하는 그 사람이라고 신뢰할 때인지, 웹사이트가 적당한지 아닌지 신뢰할 수 있을때, 전화상으로 얘기하는 사람에 대해 적절한 사람인지 아닌지 신뢰할 때 인지, 당신의 정보를 제공하는것이 좋은 생각인지 아닌지 등을 아는것과 같은 이 모든 것이 보안이다.

 

사회공학 공격의 종류:

사회공학은 일반적인 두가지 유형으로 나눌 수 있다.


1. 사람을 기반으로한 사회공학 공격 - 사람을 기반으로한 사회공학은 사람들 사이의 상호작용이 필요하다.

사람 대 사람으로 접급하고 원하는 정보를 찾는것을 의미한다. 사람들은 사람 기반의 사회공학 기술을 다른 방법으로 사용 하는데 몇가지 가장 인기있는 방법을 공유하고자 한다.

a) 연기하기- 이런 종류의 사회공학 공격은 해커가 직원이 되거나 해당 시스템의 허가된 사용자인척 행동한다. 해커는 관리인, 직원, 계약 직원인 척을 하면서 물리적인 접근 허가를 받을 수 있다.

b) 중요한 사람인체 하기- 이 공격에서 해커는 VIP나 컴퓨터 시스템 또는 파일을 사용할 권한이 있는 고위 관리자 인척 한다. 대부분 말단 사원들은 이런 직급의 사람들이 나타날 경우 아무런 질문도 하지 않는다.

c) 제 3자가 되기- 이 공격에서 해커는 허가된 사람으로부터 해당 컴퓨터 시스템을 사용할 수 있도록 허가 받은척 한다. 허가된 사람이 가끔 일 할 수 없을때 사용하는 기술이다.

d) 컴퓨터 기술 지원- 도움을 위한 기술지원으로 불리는 것은 전형적인 사회공학 기술이다. 업무 지원실과 기술 지원 직원은 사용자가 사회공학 공격의 좋은 희생냥이 되는것을 도와주도록 훈련 받았다.

e) 어깨너머로 슬쩍보기- 어깨너머로 슬쩍 본다는 것(Shoulder surfing)은 어떤 사람이 시스템에 로그인 할 때 그 사람 뒤에서 어깨너머로 슬쩍 보면서 비밀번호를 알아내는 기술이다. 해커는 허가된 사용자가 로그인 하는 것을 지켜 보고 해당 시스템에 접근하기 위한 비밀번호를 얻을 수 있다.

f) 쓰레기통 뒤지기- 쓰레기통 뒤지기는 종이 조각에 적히거나 컴퓨터로 프린트된 정보들을 찾기 위해 쓰레기통을 뒤지는것이다. 해커는 종종 비밀번호, 파일 이름 또는 다른 기밀 정보 부분들을 찾는다.


2. 컴퓨터 기반 컴퓨터 기반 사회공학 공격은 원하는 정보에 대해 검색을 시도하는 컴퓨터 소프트웨어를 사용한다.

a) 피싱(Phising) - 피싱은 민감한 데이터를 획득할 목적으로 실제 시스템인 척 가장한 가짜 이메일, 채팅 또는 웹 사이트를 의미한다. 은행이나 잘 알려진 기관에서 로그인 정보를 확인해야 한다며 메세지가 올지도 모른다. 보통 합법적으로 보이기 위해 모두 제대로 된 로고로 구성한 모조 로그인 페이지일 것이다.

b) 유인하기- 유인하기 방법(Baiting)은 당신을 유도하여 범인이 원하는 행동을 취하게 하는 것을 기다리는 것을 의미한다. Peer-to-Peer 사이트의 음악이나 영화를 다운로드 하도록 하거나 "2013년 1분기 경영진 급여 정리"라고 써진 회사 로고가 있는 USB 메모리를 당신이 찾길 바라면서 열어두는 방법이 있을 수 있다. 기기가 사용되거나 파일을 다운받기만 한다면 그 사람 또는 기업의 컴퓨터는 악성 소프트웨어가 범죄자가 시스템에 접근할 수 있도록 감염시킨다.

c) 온라인 사기- 사기꾼이 보낸 이메일에는 악성 코드가 포함된 파일이 첨부 되어 있을 수 있다. 첨부 파일은 사용자의 패스워드 획득을 위한 키 로거, 바이러스, Trojans 또는 worms를 보유하고 있을 수 있는데 때로는 팝업 창이 사회 공학 공격에서 쓰일 수 있다. 특별한 제품을 광고하는 팝업 창이 사용자들에게 무심코 악성 소프트웨어를 설치하게 끔 유도한다.

지금부터 실제 상황으로 이동해보자. 나의 목표 대상의 이름을 '피해자 김 씨'(실명이 아닌)이라 가정하고 간단한 방법을 사용하여 이 사람에 대해 검색하며 시작하겠다. 가장 간단한 방법은 목표 대상의 이름을 구글에서 검색한 후 결과를 찾아보는 것 이다.

위결과를 보면, 우리는 단순 구글 검색으로 많은 정보를 볼 수 있다. 목표 대상의 facebook 프로필 링크, Linkedin 프로필, Twitter 핸들, 그 이름과 관련된 웹사이트나 이미지 또한 볼 수 있다.

소셜 네트워크 서비스를 이용한 다른 방법은 우리가 필요한 만큼의 정보를 모으는 것이다. 요즘 많은 사람들이 Facebook, Twitter, Orkut, Linkedin과 같은 소셜 네트워크 서비스를 이용하며 낯선 사람과 온라인 친구를 맺고 그들과 채팅 등을하면서 소셜 네트워크가 그들 사이에서  네트워크를 형성하는데 도움을 준다고 생각한다. 하지만 나의 견해는 다르다. 필자는 소셜 네트워크가 세계에서 가장 거대한 개인 인증 데이터베이스라는것을 깨달았다. 여러분이 특정 인물에 대해 정보를 수집한다고 가정해보자. 즉시 그 사람의 Facebook을 찾고, 사진과 주소, 교육 배경, 가족구성원등과 같은 개인 정보를 수집 할 수 있다. 그 뿐만 아니라 그/그녀의 Facebook 프로필에서 그 대상의 성격에 대해 추측할 수 있고, 어떤 종류의 상태가 업데이트 되었는지와 같은 그 잠재적인 피해자의 사생활을 수집할 수 있다.

목표 대상의 정확한 프로필을 찾은 후 우리는 그의 친구 목록을 찾고 모든 친구 목록을 만들것이다. 이 과정은 사회 공학 공격을 도와 줄 것이다. 여러분은 또한 그의 사진과 프로필에 보여주었던 정보들을 다운받아서 목표 대상의 프로필 전체를 복제할 수 있다. 가짜 프로필을 만든 후 그의 친구목록에 있는 모든 사람들에게 친구 요청을 보내고 그들과 대화를 시작 할 수 있게된다. 그런 방법으로 목표 대상에 대한 흥미로운 정보와 그의 여자 친구에 관한 정보도 얻을 수 있다. 많은 양의 가짜 Facebook프로필이 존재하며 때로는 어느것이 목표 대상의 실제 프로필인지 찾아내기 힘들다. 나는 나만의 고유의 기술을 사용한다. 

Facebook 의 검색 창에 목표 대상의 이름을 입력하는 방법으로 검색할 경우 Facebook의 데이터베이스에서 사용자 프로필 이름에 대해 결과를 보여주지 않는다. Facebook의 프로필 URL http://www.facebook.com/vicitim (여기서 victim은 목표대상의 사용자 이름이다)에 있는 사용자 이름으로 작동한다.

이 사용자 이름은 또한 공격자가 목표 대상의 이메일 주소를 예측 하는것을 도와준다. 어떻게 그게 가능한지 궁금한가? 같이 보도록 하자. 예를 들어서 내가 puja.kothari.796 이라는 사용자 이름을 갖고있다 하자. Facebook 로그인 페이지에 들어간 후 "비밀번호 찾기"를 클릭하면 이와 같은 옵션을 선택한다.


검색 옵션에 사용자 이름을 입력한 뒤 '검색' 버튼을 누른다.

이제 우리는 피해자의 이름과 그가 어떤 이메일 서비스를 이용하는지 알게되었다. 그 이메일은 다음과 같다.

"p******h@gmail.com",  "p" 와 "h" 사이에 6개의 *가 있기 때문에 공격자는 그의 이름 "Puja Kothari"을 추측할 수 있고 그 이메일 주소의 존재 유무를 확인 할 수 있다. http://verify-email.org/와 같이 이메일 아이디 확인해주는 서비스가 몇가지 있다.

LinkedIN 은 다른 종류의 서비스다. 소셜 네트워크 서비스로 고려하지 않는다. 전문적인 네트워크다. 이제 목표 대상의 직업 배경과 자격 또한 찾을 수 있다. 목표 대상이 현재 어느 회사에서 일하는지와 과거에 어느 회사 직원인지도 알 수 있다.


 

이런 서비스 들이 목표 대상의 개인 정보를 얻는데 어떻게 사용되는지 알아보자.

또한 Maltego, Harvester, Creepy 등과 같이 정보 수집에 사용되는 도구들도 있다.

 

이런 일을 다 마치면 목표 대상에 대한 몇가지 정보를 알게된다. 다음 정보를 수집하였다고 가정해보자.

이름 : 피해자 김 씨(가명)

사는곳 : 뉴욕 (가정)

직업 : 웹 개발자

이메일 아이디 : test@gamil.com (가정)

이제 그가 어디서 무슨 일을 하는지 알았으므로 만약 우리가 그에게 대기업으로 부터 일자리를 제공한다면 그는 이 기회를 놓치지 않을 것이라고 생각한다. 첫 단계로 뉴욕에 있는 웹 디자인과 관련된 회사를 검색하고 그에게 좋은 연봉의 웹 개발자 자리를 제공하겠다는 이메일을 보낼 것이다.


위 검색 결과를 보면 특정 도시에있는 웹 개발 회사들을 볼 수 있고 위치 또한 알 수 있다. 한 회사를 선택 한 후 그 회사의 홈페이지에 들어가 인사팀의 이메일 아이디나 지원자가 지원 할 수 있는 부서의 이메일 주소를 찾아본다. 해당 회사의 인사팀 같이 보이는 가짜 이메일을 보낼 수 있는 가짜 이메일 서비스가 꽤 많다. 내가 선택한 회사의 이름을 XYZ Private Ltd라고 가정하고 예를 들어보자. 인사팀 이메일 주소는 hr@xyz.com가 될 수 있다.

피해자에게 이메일을 보낸 후 피해자의 이메일에서 어떻게 보이는지 확인해보자.


이런 종류의 이메일을 받게 된 후에는 많은 사람들이 이력서를 해당 주소로 이메일을 보낼 것이고 우리는 그것으로 부터 특정 인물의 모든 종류의 민감한 정보를 수집 할 수 있다.

만약 목표대상이 자신의 이력서를 메일을 통해 제출하지 않았을때 이력서를 받을 수 있는 다른 방법은 이메일에 링크를 작성하여 그가 온라인으로 지원서를 작성하게한 후 제출한다면 여러분의 이메일 계정에 모든 정보가 수집 될 것이다. 이 기술은 매우 흥미롭고 여러분의 양식 정보를 공격자의 이메일로 전송하는 온라인 양식이라는 것에 대해 궁금할 수도있으니 어떻게 작동하는지 확인해보자. 온라인 html 양식을 생성해주는 온라인 양식 생성 서비스를 이용한다. 하지만 그 서비스의 이름을 밝히지는 않겠다.

위 그림에서 내가 간단한 양식으로 이름, 주소, 경력, 연락 정보에 대해 요구하는 간단한 양식을 만든 것을 볼 수 있다. 여러분은 그림의 왼쪽에 보이는 도구 메뉴를 사용하여 더 많은 것들을 추가 할 수 도 있다. 결재 도구로는 Paypal 결재 모드를 추가 할 수 있다. 양식 생성 후 공격자는 공격자 이메일 계정과 통합 할 수 있다. "통합" 옵션을 클릭하기만 하면 공격자의 이메일 계정과 해당 양식을 통합하는것에 대한 몇가지 옵션을 볼 수 있다.

나는 나의 구글 드라이브 계정과 통합시켰다. 이제부터 누군가가 양식을 기입할 경우, 모든 정보는 나의 구글 드라이브에 저장될 것이다. 계정을 통합 한 후 "양식 포함" 을 클릭하면 아래 그림과 같이 보이는 것과 같이 양식에 링크를 만들어 준다.

이제 우리의 양식에대한 링크가 생겼으므로 다음으로 해야할 일은 인사팀 이름과 링크를 가짜 이메일로 보내는 것이다. 피해자가 이 링크를 열면 이 양식을 보게 될 것이다.

이 양식을 다 기입한 후 "제출" 버튼을 클릭하면 피해자에게 "감사합니다"라는 페이지를 보여 줄 것이다.

자, 이제 정보가 저장되어 있는지 안되있는지 공격자의 구글 드라이브를 확인해 보자.

스프레드시트 하나가 생성된것이 보일것이다. 시트를 확인해보자.

 

자 봐라! 피해자의 아이피와 함께 모든 정보들이 시트 안에 기록되었다.

지 금까지 다양한 정보 수집 방법에 대해 배웠다. 지금부터는 사회 공학의 악의적인 방법을 알아보자. 우리가 목표 대상의 이메일 계정을 알고있고, 목표는 사용자 계정과 목표 시스템에서 중요한 정보를 해킹하는 것이라 가정해보자. 악의적인 해커는 이메일을 통해 keylogger, RAT(remote administration tool)등과 같은 악성 프로그램을 보내기도 한다. 어떻게 이런 악성 프로그램을 보내는지 알아보자. 예를들어, 아래 그림을 보면 conhosts.exe라고 된 악성 exe 파일과 Microsoft 워드 파일이 존재한다.

Winrar을 사용하여 두개의 파일로  '자체 풀림 압축 파일'을 만드려고한다. 두 파일을 선택한 후 마우스 오른쪽을 클릭하여 "Add to archive" 를 클릭하면 다음과 같은 화면을 볼 수 있다.

위 그림에서, keylogger.exe라는 압축 파일 이름이 보일 텐데 변경 가능하고, "Create SFX archive"를 선택 한 후  확인 버튼을 누른다.

"고급" 탭으로 이동하여 "SFX 옵션"을 클릭한다.

고급 SFX 옵션과 함께 새로운 창이 나타날 텐데, 그 중 일반 탭에서 우리는 압축 풀때의 경로가 C:\ProgramData\Microsoft로 되어있는 것을 볼 수 있다. 우리의 악성 파일이 이 폴더에 저장되는 것이다.

                                 

설정 탭으로 이동하여 "해제 후 실행" 칸에 두개의 파일 이름을 입력한다. 

다음으로 모드 탭의 "모두 숨김" 옵션을 선택한다.

문서&아이콘 탭을 선택하여 SFX 아이콘 불러오기에서 아이콘 파일을 검색한다.  pdf , ppt, Word등의 문서등에 대한 아이콘 파일 모음이 있기때문에 그 중에 Word 아이콘으로 선택했다.

다음으로, 업데이트 탭으로 이동하여 업데이트 모드의 압축해제 및 파일 업데이트를 선택하고 덮어쓰기 모드의  "모든 파일 덮어쓰기"를 선택한 후 확인 버튼을 클릭한다.

모든 SFX 설정이 완료되었으니 확인 탭으로 이동하여 우리가 설정한 모든 내용을 확인해보자.

모두 다 정확하게 반영되었고 마이크로소프트 Word 파일 아이콘으로 SFX 파일을 생성할 준비가 완료되었으므로 확인 버튼을 클릭한다. 이제 악성 파일이 준비된것을 볼 수 있다.

이제 공격자는 악성 워드파일을 이메일을 이용하거나 어떤 채팅 프로그램을 이용하는 등의 여러가지 방법으로 전송할 수 있다.

 

사회 공학 공격의 예방

여러분이 피해자가 되는 것을 예방할 수 있는 가장 중요한 것은 내가 이 글에서 보여준 것과 같은 일반적인 속임수를 잘 알고 있는것이다.

전 화상으로나, 온라인 또는 개인적인 관계에서라도 여러분이 정보를 요청하는 사람이 누군지 알고, 그 사람이 정보를 알 필요가 있는지 판단하기 전까지는 여러분 또는 여러분의 회사에 대한 기밀 정보나 외관상으로는 기밀 정보로 보이지 않는 정보들 까지도 절대 유출하지 말아라. 신용카드 회사로 부터 여러분의 카드가 위험하다는 전화를 받았다? 여러분에게 전화한 사람이 누구던지 그 사람에게 말 하는것 보다 "알았으니 다시 전화하겠다"고 말 하고 신용카드에 있는 번호로 전화해라.

실제 IT 부서와 여러분의 금융 서비스는 절대로 여러분의 패스워드나 다른 중요 정보를 전화상으로 요청하지 않는다는것을 항상 기억해라. 또한 파쇄기를 잘 사용하고 디지털 데이터를 적절히 삭제해라. 최근에 봤듯이, 몇몇 저수준의 보안 시스템은 피자 배달 영수증에서 찾을 수 있는 정보만으로도 우회될 수 있다.

여러분이 피싱 사기꾼, 일반 사기꾼, 신원 정보 수집하는 도둑들로 부터 여러분 스스로를 보호 할 수는 있지만 당신이 사용하는 서비스가 위태롭거나 누군가가 가까스로 회사를 그들이 여러분이라고 설득한다면  여러분이 할 수 있는 일은 얼마 없다. 하지만 여러분 스스로 몇가지 예방 조치를 취할 수 있다.


  • 각 서비스에 대해 다른 로그인 계정을 사용하고 패스워드를 암호화 한다: 절대로 모든 서비스에 같은 비밀번호를 사용하지 말아라. 그들이 추측하기 어렵도록 강하고 복잡하게 비밀번호를 만들었는지 확인한다.
  • 이중 인증을 사용한다: 이중 인증을 사용할 경우 탈취자가 당신의 아이디와 비밀번호를 위협하더라도 계정을 탈취하기 어렵다.
  • 보안 질문에 창의적으로 작성한다: 웹사이트에서 계정 방어 목적의 다른 방법으로 추가적인 보안 질문을 요구할때가 있지만 종종 질문들이 추측하기 쉽거나 발견되기 쉬운 경우가 있다.(태어난 곳이 어딘가요 등과 같은) 대문자와 소문자를 바꾸거나 숫자를 사용하여 리트(다른 기호를 이용하여 알파벳 처럼 보이게 하는 방법)언어 를 사용해서 여러분만이 보안 질문에 대한 대답을 할 수 있도록 한다.
  • 신용카드를 현명하게 사용한다: 신용카드는 강력한 보호 덕분에 온라인에서 지불하기 가장 안전한 방법이다.(체크카드나 PayPal 같은 온라인 지불 시스템 보다 더 안전하다) 만약 체크카드를 사용하고 해커가 비밀 번호를 알게되었을때, 여러분의 모든 계좌는 고갈될 수 있다. 카드번호를 웹사이트에 저장하지않거나 일회용 번호를 사용하거나 가상 카드 번호를 사용함으로써 여러분의 신용카드를 안전하게 할 수 있다.
  • 자주 계정과 개인 데이터를 확인한다: 신원 탈취나 신용카드 위협에 대한 탐지를 위해 여러분의 잔고와 신용평점을 규칙적으로 확인해라. 몇몇 서비스는 무료 ID 탈취 관제, 신용 탈취 관제, 의심스러운 신용 청구에 대한 관제를 제공한다. 또는 신원 탈취 감시 서비스로 Google 알리미를 사용할 수 도 있다.
  • 공공 정보 데이터베이스에서 당신의 정보를 지운다: Zabasearch와 PeopleFinder와 같은 사이트들은 우리 개인 정보(주소와 생년 월일 같은 정보) 들을 모두가 볼 수 있도록 제작한다. 이러한 목록에서 여러분을 삭제해라.

이런 과정들은 만약 서비스 제공자가 사회 공학 해킹에 속아 공격자에게 여러분의 정보를 넘기게 된다면 여러분의 계정은 보호 받지 못할것이다. 하지만 적어도 가능한 위험들을 최소화 시켜주고 여러분들이 스스로 여러분을 보호하고 있다는 안정감 또한 제공한다.

참고 :

http://www.webopedia.com/TERM/S/social_engineering.html

http://en.wikipedia.org/wiki/Social_engineering_(security)

http://www.webroot.com/us/en/home/resources/tips/online-shopping-banking/secure-what-is-social-engineering

http://blog.backupify.com/2013/06/24/5-types-of-social-engineering-attacks/

http://lifehacker.com/5933296/how-can-i-protect-against-hackers-who-use-sneaky-social-engineering-techniques-to-get-into-my-accounts


반응형