한RSS 구독자수

최근 덧글

Äÿ â, ä êä..
by pylovs at 13:06
В том и де..
by cepBro at 00:58
В том и де..
by cepBro at 00:57
В том и де..
by cepBro at 00:57
В том и де..
by cepBro at 00:57
В том и де..
by cepBro at 00:57
я люблю те..
by gghjjj at 09/02
http://aba..
by embori at 08/29
-_-;;
by xeraph at 06/07
국민의례와 자주자주..
by 페리 at 06/03
그렇죠 뭐.. 전 ..
by xeraph at 03/17
악용된 사례가 있을..
by darkhi at 03/10
http://rgb..
by xeraph at 02/04
공개되고 있습니다...
by aljjam at 02/03
오오 자비로운 MS..
by 고르엡 at 01/16

최근 트랙백

[윈도우 LNK 취약점..
by hemoptys.. at 07/20
많은 보안관련 사이트에..
by Zasfe Note at 01/02
MS 10월 보안 패치
by nchovy's.. at 10/14
제로보드 4.1pl9 ..
by nchovy's.. at 09/25
SMB v2 제로데이 ..
by nchovy's.. at 09/18
MS09-048: TC..
by nchovy's.. at 09/09
MS 9월 보안 패치,..
by nchovy's.. at 09/09
IIS 5/6 FTP ..
by nchovy's.. at 09/01
Pinkren 플래시 ..
by nchovy's.. at 08/26
리눅스 sock_sen..
by nchovy's.. at 08/17

제 15회 정보보호 심포지엄

KISA에서 주최하는 제 15회 정보보호 심포지엄이 6월 10일 잠실 롯데호텔 크리스탈볼룸에서 개최됩니다.

'미래를 향한 도약 - 무선인터넷과 융합 보안'이라는 주제로 진행되는 이번 심포지엄의 발표주제는 아래와 같습니다.

A-1 : 정책(좌장 - 단국대 정준현 교수)

방송통신 미래서비스 전략 (방통위 정경호 PM)
인터넷 정보보호 정책방향 (방통위)
무선인터넷 활성화와 정보보호 (KISA 원유재 단장)

B-1 : 융합(좌장 - 순천향대 염흥렬 교수)

이동통신 발전과 보안 기술 동향 (SKT 정용식 매니저)
무선랜 이용 확산과 보안 이슈 및 대응 (유넷시스템 이상준 부장)
공인인증서와 아이핀 2.0을 활용한 주민번호 최소화 방안 (KISA 안종찬 팀장)

C-1 : 미래(좌장 - 충남대 류재철 교수)

근 미래 네트워크 위협 및 보안 전망 (고려대 김휘강 교수)
스마트그리드 저변 확대와 다가오는 위협 (국보연 이철원 본부장)
클라우드 서비스와 정보보호 (서울여대 박춘식 교수)

A-2 : 트렌드(좌장 - 중앙대 김정덕 교수)

에스토니아 사례로 본 7.7 DDoS 대응 및 향후 대응 방안 (컬럼니스트 전상훈)
통신사별 7.7 DDoS 대란 이후의 DDoS 대응체 계 패러다임 변화
(KT, LGT, SKBB) 사이버 위기 대응체계 고도화 방안 (KISA 신대규 팀장)

B-2 : 스마트폰 보안(좌장 - 서울여대 박춘식 교수)

진화하는 스마트폰 보안 위협 및 대응 방안 (충남대 류재철 교수)
스마트폰 보안 이슈에 따른 금융보안모듈 제공 방안 (금융보안연구원 장재환 팀장)
스마트폰에서의 프라이버시 위협과 대책 (KISA 이강신 단장)

C-2 : 신규서비스(좌장 - 숙명여대 최종원 교수)
소셜 네트워크 시대 도래와 이에 따른 정보보호 이슈 (NHN 이진규 팀장)
가상화 및 증강현실 기술 현황 및 정보보호 이슈 (LG전자 윤훈주 과장)
유비쿼터스 환경에서의 융합보안 서비스 및 정보 윤리 (이글루시큐리티 윤훈모 과장)

by 8con | 2010-06-03 19:04:50 | 미분류 | 트랙백 (0) | 덧글 (2)

트랙백 주소 : http://nchovy.kr/forum/2/article/557/trackback
페리

국민의례와 자주자주송이 눈에 젤 먼저 들어오는군요;;

2010-06-03 22:41 x
xeraph

-_-;;

2010-06-07 20:14
이름 암호

악성코드의 모듈화를 통한 탐지 회피

이 글은 SANS ISC의 Malware modularization and AV detection evasion을 번역한 글입니다.

맬웨어의 모듈화는 오래전부터 이미 알려졌던 부분입니다. 맬웨어 제작자들은 다양한 모듈을 만드는법으로 쉽게 맬웨어의 기능을 확장할 수 있으면서도 분석을 어렵게 만들어 왔습니다. 이렇게 하는 이유는 간단합니다. 가령 온라인 뱅킹을 공격하는 악성코드의 경우 특정 은행을 공격하는데 상관없는 모듈은 다운로드 및 설치를 하지 않습니다. 이렇게 되면 안티바이러스 회사에서 공격자가 보유하고 있는 모든 모듈을 수집하는게 더 어려워집니다. 이렇게 높은 수준으로 모듈화된 악성코드로는 Clampi가 있습니다. 시만텍 웹사이트에서 이미 Clampi와 관련된 글을 연재한 적이 있습니다.

공격자는 모듈화를 이용해서 악성코드의 핑거프린트를 급격하게 바꿀 수도 있습니다. 특정 모듈이 안티바이러스에게 탐지되면 해당 모듈만 변경해버리면 됩니다. 계속 변종이 나오는 것 때문에 안티바이러스 회사가 공격자를 따라잡는게 상당히 버겁습니다.

며칠 전 매우 간단한 악성 파일이 보고된 적이 있습니다. 이 파일은 윈도우 7 운영체제의 /Windows/SysWOW64 디렉터리에서 발견되었는데, netset.exe라는 파일 이름을 가지고 있었고 서명되지 않은 파일이기 때문에 금방 눈에 띄었다고 합니다. 문제는 VirusTotal에 올려봤지만 40개나 되는 엔진 중 어떤 엔진도 이 파일을 악성이라고 진단하지 않았다는 점입니다.

심지어 Anubis를 이용해서 악성 코드를 분석해봤는데도 수상한 점을 하나도 발견해내지 못했습니다. 이제는 눈으로 직접 코드를 분석해보는 방법 밖에 없었죠.

딱히 악성이라고 말하기는 어렵지만 맬웨어의 일부분인 것은 확실했습니다. 이 바이너리의 목적은 사용자가 특정 안티바이러스 프로그램을 돌리고 있는지 여부를 알아내는 것이었습니다. 안티바이러스 존재 여부는 exit 코드 값으로 리턴하게 되어있었습니다. 흥미로운 부분은 이 프로그램의 은폐 기능이었습니다.

먼저 이 맬웨어는 명령줄 매개변수와 함께 실행되어야 합니다. 매개변수는 s나 t로 시작되는 어떤 문자열도 가능합니다. 만약 문자가 발견되지 않으면 관련 파일들(dtnet.exe, plang.enu, dsten.log)을 삭제하고 종료해버립니다.

만약 정확한 매개변수가 들어오면, 이 바이너리는 시스템에 설치된 모든 응용 프로그램에 대한 정보를 담고 있는 HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Uninstall 레지스트리 키를 열게 됩니다. 그 다음 하위 키 중에 avast, avg, avira, nod32, kaspersky, norton, mcafee, trend micro, comodo가 존재하는지 확인합니다. 안티바이러스를 발견할 때마다 카운터가 하나씩 증가하고 리턴 코드 값으로 이를 반환하게 됩니다. 다른 맬웨어는 이 바이너리를 이용해서 안티바이러스의 동작 여부를 알아낼 수 있습니다.

이 파일은 굉장히 단순하지만, 단순한만큼 자동화된 분석으로 이런 파일을 잡아내기가 어렵습니다. Anubis 같은 에뮬레이터를 쓰더라도 매개변수가 안 맞으면 정상적인 파일인 줄 알고 넘어가기 쉽죠. VirusTotal 결과에서 봤던 것처럼 시그니처 기반의 스캐닝에서 벗어나기도 쉽습니다.

by xeraph | 2010-05-30 00:07:44 | 미분류 | 트랙백 (0) | 덧글 (0)

트랙백 주소 : http://nchovy.kr/forum/2/article/556/trackback
이름 암호

리버스 엔지니어링 10년사

이 글은 Zynamics 블로그의 Ten years of innovation in reverse engineering을 번역한 글입니다.

바르셀로나에서 열렸던 블랙햇 유럽 컨퍼런스에서 돌아오면서 토마스와 저는 최근 10년 동안 바이너리 코드 리버스 엔지니어링 분야에서 있었던 가장 중요한 변화들이 어떤 것이었는지 이야기를 나누었습니다. 2000년에는 W32Dasm과 터보 디버거가 좋은 리버스 엔지니어링 도구로 취급되었었죠. 그 시절에는 프로그램이 실행되면서 어디로 점프하는지 로그를 남기는 트레이서를 직접 작성할 수 있었다면 최고가 될 수 있었습니다.

아무튼 2000년 이후 리버스 엔지니어로 일했던 사람들이 만들어낸 커다란 트렌드와 기술 변화로는 아래와 같은 것들이 있었습니다.

어셈블리 코드의 플로우 그래프 시각화

2001년 6월 IDA Pro 4.17 버전에서 처음으로 소개된 기능입니다. 이 기능은 디스어셈블 된 어셈블리 코드를 그래프로 볼 수 있도록 해주면서 리버스 엔지니어들의 작업을 매우 쉽게 만들어줬습니다. 요점만 말하면, 플로우 그래프 시각화는 저수준 코드 분석에 들어가는 시간과 노력을 줄이면서 한 단계 높은 추상화 수준에서 코드를 이해할 수 있도록 만들어줬습니다. 이렇게 그래프로 보기 전에는 리버스 엔지니어링 하면서 직접 루프나 if-else와 같은 컨트롤 플로우 구조를 그려야만 했었죠. 플로우 그래프 시각화를 이용하면 별도의 작업 없이 바로 컨트롤 플로우가 어떻게 되어있는지 볼 수 있습니다.

IDA에서 이 기능이 지원되면서 다른 도구(BinNavi 등)들도 인터랙티브 플로우 그래프라는 아이디어를 구현하기 시작했습니다. 2006년 3월 나온 IDA Pro 5.0 그래프 엔진도 인터랙티브 그래프를 제공하기 시작했구요.

파이썬을 스크립트 언어로 사용

2000년대로 돌아가보면 많은 리버스 엔지니어링 도구들은 상당히 원시적이었고 확장성이라고는 찾아보기 어려웠습니다. 디스어셈블러 중에서는 그나마 IDA Pro 4의 조악한 IDC 구현이 나은 수준이었고, 디버거 쪽은 그야말로 절망이었죠. 이런 상황은 파이썬과 SWIG가 대중적인 인기를 얻게 되면서 반전됩니다. 이 기술은 누구나 쉽게 자신의 프로그램이 파이썬 기반 API를 노출하고 파이썬 인터프리터에서 이를 사용할 수 있도록 했습니다. 제가 기억하는 가장 큰 진보는 파이썬으로 IDA API를 사용할 수 있도록 IDA Pro에서 사용할 수 있는 IDAPython 플러그인이 나온 것입니다. 그 후에 Pedram Amini의 PyDbg나 Ero Carrera의 pefile 프로그램이 나오면서 리버스 엔지니어링 분야에서 파이썬 언어가 주류로 자리잡게 되지요.

지금은 파이썬이 리버스 엔지니어링 분야의 표준 스크립팅 언어나 마찬가지가 되었고, IDA Pro에서 이뮤니티 디버거나 BinNavi에 이르기까지 다들 파이썬 스크립팅을 지원하고 있습니다.

동적 코드 조작 도구 (Dynamic Instrumentation)

이 기술 자체는 정말 새로운 것이라 말할 수는 없지만, DynamoRIOPin 같은 도구들은 확실히 새로운 물건이라 말할 수 있습니다. 이 프레임워크들을 이용하면 명령어 스트림을 모니터링하고 조작하는 강력한 동적 분석 도구를 만들어낼 수 있습니다. 여러분이 이런 도구를 한 번도 사용해 본 적이 없다면, 이 도구를 인스트럭션이 실행될 때마다 C/C++ 프로그램에서 콜백을 받을 수 있도록 만들어주는 도구로 상상하시면 됩니다. 이를 이용하면 적은 오버헤드만으로 대상 프로그램의 모든 면을 완전히 제어할 수 있습니다.

여러분이 연구하는데 사용할 새로운 리버스 엔지니어링 도구를 찾고 있다면 동적 코드 조작이 필요할 겁니다. 정적 분석의 복잡도에 비하면 실제 동작하는 프로그램을 추적하는 것이 훨씬 쉽습니다. 게다가 아직까지 이런 기술이 그렇게 널리 이용되고 있지도 않습니다.

바이너리 디핑 (Diffing)

오래 전 몇몇 똑똑한 사람들이 이런 훌륭한 아이디어를 내놓았죠. 만약 같은 파일의 패치 전 버전과 패치 후 버전을 비교할 수 있다면, 패치로 인해 변경된 부분을 알아내고 패치된 취약점이 무엇인지 쉽고 빠르게 알아낼 수 있습니다. 이게 가능하려면 파일의 서로 다른 버전을 비교할 수 있는 도구가 필요했고, BinDiff 같은 도구가 근래 널리 사용되고 있습니다.

하지만 파일 비교라는 아이디어는 널리 알려진 것이기 때문에 공짜로 사용할 수 있는 도구들도 몇 년 새 많이 늘었습니다. 근본적으로 이 도구들은 모두 같은 방식으로 동작합니다. 두 개의 입력 파일이 디스어셈블 되고 나면, 파일 A의 함수를 파일 B의 함수와 비교하고, 매칭된 함수들 간에 어떤 변경이 있었는지 찾아내서 사용자에게 보여줍니다.

BinDiff 스타일의 도구는 이제 많은 리버스 엔지니어들의 기본 도구가 되었습니다. 취약점 연구자부터 맬웨어 분석가에 이르기까지 안 쓰이는 분야를 찾기가 어렵죠. 2000년 이래 이처럼 극적으로 성장한 기술을 찾기가 어렵습니다.

SoftICE 시대의 종말

되돌아보면 예전에는 SoftICE가 리버스 엔지니어링 분야에서 사용되는 디버거로는 단연 독보적이었습니다. SoftICE는 뉴햄프셔에 소재했던 NuMega라는 회사에서 작성한 디버거였죠. 이 디버거를 사용하면 복잡한 설정 없이도 유저랜드 프로그램 뿐 아니라 커널에 위치한 프로그램까지 디버깅할 수 있었습니다. 이후 Numega는 Compuware에 인수되고 SoftICE는 2006년 4월에 단종되었습니다.

지금은 새로운 디버거들이 SoftICE의 자리를 대체했습니다. 마이크로소프트의 WinDbg는 SoftICE 만큼 멋있지는 않지만 강력한 기능을 자랑하기 때문에 요새 많이 사용되고 있습니다.

헥스레이(Hex-Rays) 디버거의 등장

2000년대 디컴파일러는 아주 욕 나오는 물건이었습니다. 지금은 Hex-Rays가 있습니다. 2007년에 IDA Pro 팀에서 처음으로 디컴파일러를 내놓았는데, 이게 정말 실용적으로 쓸만했습니다. 이 디컴파일러는 개선에 개선을 거듭해서 지금은 ARM 디컴파일까지 지원합니다.

아직 Hex-Rays가 그렇게 많이 사용되는 것 같진 않지만 이 제품은 계속 주시할만한 물건입니다.

공동 리버스 엔지니어링

옛날에는 같은 프로그램에서 나온 산출물이라도 각각 만들어진 두 개의 데이터베이스에 들어있는 리버스 엔지니어링 결과물을 교환하는게 굉장히 어려운 일이었습니다. 최근에 이런 상황은 거의 마지못해 바뀌고 있습니다. 오늘날의 소프트웨어는 10년 전에 비하면 훨씬 더 복잡하기 때문에 여러 리버스 엔지니어링 팀이 공동으로 같은 프로젝트에 매달려야 되는 경우가 늘어났기 때문이지요.

지금은 그렇지 않더라도 공동 작업이 가능하게 해주는 도구들은 이미 시장에 나와있고, 앞으로 점점 더 널리 사용되게 될 것입니다. Chris Eagle이 만든 IDA Pro용 CollabREate이나 우리가 만든 BinCrowd를 이용하면 동료들과 결과물을 공유할 수 있습니다.

학문적 접근

최근 몇 년 간 주요 대학들의 연구 주제는 바이너리 코드 리버스 엔지니어링과 관련이 있었습니다. 그 중에서도 버클리 대학과 카네기 멜론 대학에서 좋은 결과들을 많이 내놨습니다. 업계의 리버서들도 이러한 학계의 접근 방식들을 주목하고 있습니다. 아직까지는 학계의 연구 결과가 업계에서 널리 받아들여지고 있지는 않지만, 리버스 엔지니어링에 정형화된 접근 방식을 적용하려는 시도가 계속 늘어나고 있습니다. 정형화된 리버스 엔지니어링에 대한 정보를 많이 제공하고 있는 Reverse Engineering Reddit의 인기가 이러한 경향을 말하고 있습니다.

by xeraph | 2010-05-23 19:42:14 | 미분류 | 트랙백 (0) | 덧글 (0)

트랙백 주소 : http://nchovy.kr/forum/2/article/555/trackback
이름 암호