exploit에 해당하는글 3


카스퍼스키가 최근 어도비플래시를 중심으로 한 취약점악용을 막을 수 있는 기술특허를 확보했다. 어도비플래시는 2015년 가장 많이 악용되는 프로그램으로 선정되는 등 사이버보안 측면에서 위험한 프로그램으로 악명이 높다. 자바, 어도비리더, 마이크로소프트 오피스 및 실버라이트 등 다른 프로그램도 취약점악용이 많지만 플래시의 경우 널리 사용되고 취약점의 영향이 중대할 뿐 아니라 사용자의 의한 업데이트가 소극적이라는 점으로 인해 압도적으로 높은 위험성을 가지고 있다.


컴퓨터를 감염시키는 과정은 크게 두 가지가 있다. 먼저 사용자의 직접적인 행동이 개입되는 과정으로 실행파일 다운로드 및 실행, 악성매크로가 포함된 문서 열기, 악성링크 클릭 등이 있다. 한편  범죄자 측에서 운영체제나 프로그램 등의 취약점을 발견하고 악용하는 방식의 경우에는 별도로 사용자의 행동이 요구되지 않는다. 예를 들어 웹브라우저에 취약점이 있다면 악성웹페이지를 열기만 해도 해킹이 가능해진다. 컴퓨터를 감염시키기 가장 쉬운 경로는 인터넷이며 따라서 웹사이트를 통한 취약점악용이 특히 인기를 끌도 있다. 이 경우 취약점악용은 웹브라우저에 국한되지 않으며 웹사이트 멀티미디어 재생에 필요한 자바 또는 어도비플래시 구성요소도 취약점악용의 대상이 되기도 한다.

플래시 영상을 프로그램으로 열리는 파일이 아닌 프로그램 자체로 이해될 수 있다. 플래시 영상은 웹사이트의 다른 컨텐츠와 합께 다운로드되지만 어도비플래시 구성요소를 통해 독자적으로 실행된다. 이 때 어도비플래시는 안전을 위해 자체적인 가상환경에서 이들 프로그램을 실행하며 이를 통해 인터넷에서 받은 코드가 컴퓨터에서 어떤 행동을 개시하려고 해도 파일이나 문서 또는 중요 운영체제 구성요소에 접근할 수 없다.


그러나 이는 이론적으로만 타당하며 실제로는 플래시 취약점악용을 통해 플래시의 가상화 보안대책도 우회될 수 있다. 아울러 플래시 가상환경은 그 속성상 공격자의 의도를 시스템으로부터 숨길 수 있는 수단이 되기도 한다. 특히 해커가 피해자별로 고유한 파일이름을 지정하여 제각기 다른 악성코드 파일을 생성할 수도 있다. 이는 대규모 파일목록에 의존하여 맬웨어를 탐지하는 기존 안티바이러스에게 문제가 된다. 수백만에 달하는 취약점악용은 그 기본적인 방식은 똑같지만 보안솔루션 입장에서는 모두 다르게 인식되기 때문이다. 또한 어도비플래시 프로그램은 프로그래밍 언어 3종으로 제작될 수 있으며 이로 인해 정상적인 플래시 컨텐츠로부터 악성컨텐츠를 탐지해 내는 과정이 더욱 복잡해질 수 있다.


결국 파일이름 표시의 문제도 있고 가상환경을 통해서도 안전을 담보할 수 없기 때문에 보안커뮤니티에서는 근본적 문제해결에 대한 논의가 한동안 정체된 상태였다. 관건은 악성코드를 실행하기 전에 그 속성을 파악하는 방법이다.  이론적으로는 어도비플래시에 코드를 전달하기 전에 별도로 가상환경을 구동할 수도 있으나 이 방법은 상시로 사용하기에는 자원도 많이 소요되고 너무 복잡하다.


카스퍼스키 연구진 Anton Ivanov와 Alexander Liskin이 고안한 신기술은 의심코드에 대한 에뮬레이션을 토대로 하고 있으며 작은 차이점을 가진 유사 오브젝트 다수를 훨씬 빠르게 분석할 수 있다. 연구진은 가상스택머신(virtual stack machine) 접근방식을 채택하여 코드를 직접 실행하지 않고도 그에 대한 정보를 수집할 수 있는 방식을 구현했다.


악성 플래시 오브젝트는 굳이 실행되지 않더라도 본래 속성을 밝혀낼 수 있다. 카스퍼스키 신기술을 적용한다면 맬웨어 제작자가 개별 코드에 변경을 가했다 해도 원래 기획된 악성코드의  속성을 파헤칠 수 있다. 결국 플래시 취약점악용을 파악할 경우 이와 동일한 수법을 사용하는 모든 맬웨어를 자동 차단할 수 있다. 이 신기술을 카스퍼스키 솔루션에 적용한 결과 이들 위협에 대한 탐지율이 두 배 가까이 상승했다. 이 정도의 탐지율 상승은 다른 안티바이러스에서는 목격하기 힘든 수준이다.


<참고: 카스퍼스키 안티바이러스 상세정보>




Marvin the Robot, Disarming Flash exploits, 8. 4. 2016.

https://usblog.kaspersky.com/flash-exploit-patent/7483/


번역⋅요약: madfox




참고링크 


<유료안티바이러스 제품소개>

COMMENT : 0 TRACKBACK : 0

날짜

2016.08.09 14:50


 

취약점악용(exploit) 방지 프로그램은 플래시나 브라우저 취약점 악용 그리고 각종 신종 취약점악용을 활용하는 사이버공격수법을 차단함으로써 추가 보안대책을 제공한다. 여기에서는 취약점악용을 방지할 수 있는 프로그램을 소개한다. 다만 이들 프로그램을 두 종 이상 동시에 사용하는 방법은 권장하지 않는데 불필요할뿐더러 프로그램 간에 충돌이 발생할 수도 있기 때문이다.

 

 

Malwarebytes Anti-Exploit

Malwarebytes Anti-Exploit는 설치만 하면 별도의 설정이 요구되지 않아 간편하게 사용할 수 있는 프로그램이다. 무료로 사용할 수도 있고 돈을 내고 기능이 확장된 유료버전을 사용할 수도 있는데 무료버전이라 해도 기능이 상당히 우수한 편이다. 무료버전은 인터넷익스플로러, 크롬, 파이어폭스, 오페라 등 브라우저 그리고 플래시, 실버라이트, 자바 등 플러그인의 취약점악용을 방지한다. 한편 유료버전은 어도비 PDF리더, 마이크로소프트 오피스 어플리케이션 등 어플리케이션 보호 범위가 더욱 넓다(PDF리더의 경우 브라우저 플러그인으로 작동한다면 무료버전에서도 보호된다).

 

제작사 Malwarebytes에 따르면 Anti-Exploit2015년 초기에 3건의 중요 플래시 제로데이(zero-day) 공격을 성공적으로 막아냈다고 한다. MalwarebytesAnti-Exploit4중 보안대책을 적용했다고 설명한다. 64비트 운영체제에서 구동되는 어플리케이션에 대한 DEP ASLR 외에 운영체제 보안대책을 우회하는 수법과 악성 API 요청도 차단할 수 있다고 한다. 또한 어플리케시연 유형에 따라 해당 유형에서 적절하지 않다고 판단되는 행동을 보일 경우 그 행동을 차단할 수 있다고도 한다. 예를 들어 인터넷익스플로러가 윈도우에서 CreateProcess API 함수를 사용하기 시작한다면 이를 비정상적인 행동으로 보고 차단할 수 있으며 또한 크롬이나 플래시 플러그인이 허용되지 않은 파일에 대한 쓰기를 시도할 경우 이를 즉시 종료시킬 수 있다. 또한 버퍼과부하(buffer overflow) 등 널리 쓰이는 각종 공격수법도 차단할 수 있다고 한다. 안티바이러스처럼 시그내쳐(signagure) 데이터베이스를 사용하는 대신 몇몇 취약한 프로그램을 전담하여 위험한 행동을 막는 식으로 작동하며 이를 통해 신종공격이 발생할 때 시그내쳐가 수집되거나 이에 대한 패치가 생성되기 전이라도 그 공격을 막아낼 수 있다. Anti-Exploit은 보호대상 어플리케이션에 자체 DLL을 주입하는 방식으로 작동하며 이는 해당 어플리케이션에만 작용하고 시스템의 다른부분에는 영향을 주지 않는다.

 

Malwarebytes Anti-Exploit

https://www.malwarebytes.com/business/antiexploit/

 

 

마이크로소프트 EMET

마이크로소프트는 위에서 소개한 Malwarebytes Anti-Exploit 이전부터 자체적으로 EMET(Enhanced Mitigation Experience Toolkit)이라는 무료 취약점악용방지 툴을 제공해 왔다. 이 프로그램은 대규모 네트워크에서 다수 컴퓨터를 관리하는 시스템관리자를 대상으로 제작됐다. 물론 개인용 컴퓨터에서도 EMET를 설정하여 사용할 수도 있다. 기본적인 작동방식은 Malwarebytes Anti-Exploit과 유사하며 웹브라우저나 플러그인 등 위험성이 있는 어플리케이션을 보호하고 메모리악용 공격수법을 차단한다. 웹브라우저와 플러그인 외에 다른 어플리케이션도 보호할 수 있다. 다만 Malwarebytes Anti-Exploit보다는 편의성이 떨어진다는 점이 단점이라고 할 수 있겠다.


마이크로소프트 EMET

https://support.microsoft.com/en-us/kb/2458544

 

 

HitmanPro.Alert

HitmanPro.AlertMalwarebytes Anti-Exploit 그리고 EMET와 유사한 취약점악용방지 기능을 가진 프로그램이며 유료로만 제공된다. 유료제품인 만큼 메모리보호기능 등 측면에서 위에 언급한 Malwarebytes Anti-Exploit 그리고 EMET와 다소 우수할 수 있겠지만 실질적으로 이들 무료 프로그램과 성능차이게 크게 나지는 않으리라 판단된다.

 

HitmanPro.Alert

http://www.surfright.nl/en/alert

 

 

 

Chris Hoffman, Use an Anti-Exploit Program to Help Protect Your PC From Zero-Day Attacks, 7. 27. 2015.

http://www.howtogeek.com/223228/use-an-anti-exploit-program-to-help-protect-your-pc-from-zero-day-attacks/

 

번역요약: madfox




참고링크 


<유료안티바이러스 제품소개>

COMMENT : 0 TRACKBACK : 0

날짜

2016.06.23 15:15


 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

오늘날의 소셜엔지니어는 온갖 고전적 거래수법을 동원한다. 여기에는 인위적 시간제한 설정("이걸 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

COMMENT : 0 TRACKBACK : 0

날짜

2015.11.25 16:56

위로가기