Offcanvas

How To / 보안 / 인문학|교양

똑똑한 해커들이 애용하는 '첨단 공격 기법 7선'

2013.10.02 Roger A. Grimes  |  InfoWorld


요즘은 심지어 SSL/TLS 접속을 통한 쿠키조차도 훔칠 수 있게 되었다. 2011년 9월 ‘BEAST’라는 이름의 해킹 공격을 통해 SSL/TLS 접속 쿠키 절도에 성공한 사례가 있었다. 올 해는 그 유명한 ‘CRIME’을 비롯해 기술이 더 발달되고 정교해져서 암호화 된 쿠키 절도 및 재사용도 더욱 쉬워졌다.

새로운 쿠키 공격이 생겨날 때마다 웹사이트 및 애플리케이션 개발자들은 어떻게 이에 대비할 지에 대한 지침을 받는다. 최신 크립토 사이퍼(crypto cipher)를 사용해야 하는 경우도 있고, 사람들이 거의 사용하지 않는 애매한 기능을 없애기도 한다. 어쨌거나 요점은 웹 개발자들이 안전한 개발 테크닉을 사용해 쿠키 절도를 줄여야 한다는 것이다. 만일 당신이 자주 방문하는 웹사이트가 몇 년째 암호화 보안 장치를 업데이트 하지 않고 있다면, 당신도 위험할 수 있다.

교훈: 암호화 된 쿠키도 훔쳐갈 수 있다. 안전한 개발 테크닉과 최신 크립토를 갖춘 웹사이트에 접속해야 안전하다. HTTPS 웹사이트는 TLS 버전 1.2를 포함, 최신 크립토를 사용하고 있어야 한다.

3. 파일명 조작하기
파일명 조작을 통해 악성 코드를 실행시키도록 하는 방식은 맬웨어가 처음 생겨날 때부터 해커들이 써먹어 오던 방법이다. 초창기에는 뭘 모르는 사용자가 눌러보고 싶어지는 파일명(‘애나 쿠르니코바 누드사진.jpg’같은)을 짓거나 여러 개의 파일 확장자명을 사용했다. ‘애나 쿠르니코바 누드사진.Zip.exe 식이다.

지금까지도 마이크로소프트 윈도우나 다른 운영 체제들은 이처럼 자주 사용하는 파일 확장자명을 임의로 숨기기 때문에 ‘애나 쿠르니코바 누드사진.Gif.Exe’라는 파일이 ‘애나쿠르니코바 누드사진.Gif.’ 등으로 잘려서 보일 수 있다.

수 년 전, ‘트윈스(twins),’ ‘스퍼너스(Spawners),’ ‘컴패니언 바이러스(companion viruses)’ 등으로 불린 맬웨어 바이러스 프로그램들은 마이크로소프트 윈도우/도스의 잘 알려지지 않은 기능들을 이용했다. 파일명을 Start.exe 등으로 입력해도 윈도우에서 저절로 Start.com을 찾아 실행하게 되는 기능이었다.

컴패니언 바이러스의 경우 하드 드라이브에 있는 모든 .exe 파일을 찾아 같은 이름으로 된 바이러스를. com이라는 확장자명을 달아서 만들었다. 이 문제는 오래 전에 마이크로소프트에서 시정했지만, 초창기 해커들이 기반을 잘 닦아 놓은 덕에 오늘날까지도 바이러스를 숨기는 방법이 진화하고 있다.

가장 정교한 파일명 조작 방식 중에서도 요즘에는 ‘유니코드 문자’를 많이 사용한다. 이렇게 하면 사용자에게 보여지는 파일명 아웃풋을 바꿀 수 있다. 예를 들어, RLO(Right to Left Override)라고 하는 유니코드(U+202E)는 시스템을 속여 실제로는 애나쿠르니코바누드avi.exe라는 파일명을 애나쿠르니코바누드exe.avi.로 바꿔서 표기하도록 만든다.

교훈: 가능하면 파일을 실행하기 전 진짜 이름을 확인하고 실행하자.

4. 파일 위치를 이용한 속임수
또 다른 흥미로운 해킹 수법 중 하나는 “relative versus absolute”라 물리는 파일 위치를 이용한 속임수다. 윈도우 예전 버전들(윈도우 xp, 2003 혹은 그 이전 버전)과 다른 초창기 운영체제의 경우 파일명을 치고 엔터를 누르거나 운영체제가 파일을 검색하게 되면 다른 폴더를 확인하기 이전에 최근 열었던 폴더나 디렉토리를 먼저 확인하도록 제작되었다. 언뜻 보기에는 효율적이고 무해한 방법 같지만, 해커들은 이런 특징 역시 교묘하게 해킹에 이용했다.

예를 들어, 윈도우에 내장된 계산기를 사용하려 했다고 치자. 파일명은 calc.exe다. 명령(command) 창을 띄운 후 calc.exe를 타이핑하고 엔터를 누르는 것이 클릭을 여러 번 하는 것보다 빠르고 간편하다. 그렇지만 맬웨어가 calc.exe라는 이름의 악성 파일을 만들어 최근 디렉토리나 홈 폴더에 이를 저장해 놓게 되면, calc.exe를 실행시켰을 때 실제 계산기 대신 악성 파일을 실행하게 되는 것이다.

필자는 이 허점을 주로 침투 시험(penetration test)에 즐겨 사용했다. 방법은 이렇다.

컴퓨터에 침입한 후 ‘관리자’로 내 지위를 변경하려면 패치가 되지 않은 취약한 예전 버전 소프트웨어를 임시 파일 폴더에 옮겨 놓는다. 대개 취약한 파일 하나, 또는 DLL만 옮겨 놓고 이전에 설치한 패치 된 프로그램은 그대로 둔 채 임시 파일 폴더에서 파일명을 검색하면 윈도우는 대부분의 경우 최근에 패치가 된 버전 대신 내가 임시 폴더에 설치해놓은 패치 되지 않은 버전의, 트로잔 바이러스가 깔린 파일을 실행하곤 했다.

완전히 패치가 된 시스템조차도 단 하나의 취약점만 있으면 얼마든지 공격할 수 있는 것이다.
리눅스, 유닉스, BSD 시스템 등은 10년도 더 전에 이 문제를 고쳤다. 마이크로소프트는 2006년 이후에 해결했다. 옛날 버전에서는 하위 호환성 문제 때문에 파일 위치로 인한 문제가 여전히 발생하지만, 2006년 윈도우 비스타/2008 버전을 출시한 이후 이 문제를 완전히 고쳤다.

마이크로소프트는 또 개발자들에게 프로그램 개발 시 (상대적 파일명 보다는) 절대 파일명/경로를 사용하라고 수 년간 교육 및 당부해왔다. 그럼에도 수만 개의 오래된 프로그램들은 아직도 이런 공격에 취약한 상태다. 해커들은 이 사실을 누구보다도 더 잘 알고 악용하고 있다.

교훈: 절대적 디렉토리 및 폴더 경로를 사용하는 운영 체제를 사용하고 다른 곳보다 먼저 디폴트 시스템에서 파일을 찾아라.
 

CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.