2016 IGRUS Hack Festival
대회일자 : 5월 21일 ~ 5월 22일
공동제작자 : 임준수, 김정현, 연준모, 곽진우, 조은희, 최정무
템플릿 출처 : http://blog.naver.com/PostThumbnailView.nhn?blogId=metalpan13&logNo=40209691660&categoryNo=46&parentCategoryNo=&from=postList
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석GangSeok Lee
2014 CodeEngn Conference 11
DTrace를 보안 관점에서 활용해보자!
DTrace 프레임워크는 솔라리스 기반으로 개발된 동적 추적 프레임워크로 현재 Solaris, Mac OS X, BSD 등에 적용되고 있다. 프레임워크는 운영체제 개발 시점에 커널에 통합된 프레임워크로 사용자 및 커널 레벨의 다양한 정보(메모리나 CPU, 파일시스템, 네트워크 자원의 모니터링이나 특정 함수의 인자 추적 등)를 동적으로 분석할 수 있게 하여 애플리케이션 테스팅에 주로 활용되고 있다. 이러한 장점을 활용하여 최근에는 보안 관점에서 프레임워크를 사용하는 경우가 늘어나고 있다. 퍼징 모니터링이나, 바이너리 동적 분석과 같은 취약점 분석, 악성코드 동적 분석, 루트킷 개발이 한 예이다. 본 발표에서는 DTrace가 무엇인지 살펴보고, 윈도우의 filemon의 기능을 구현해보도록 한다. 이 발표를 통해 분석가에게 생소할 수 있는 Mac OS X의 바이너리 분석에 도움이 될 것이라 생각한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
2016 IGRUS Hack Festival
대회일자 : 5월 21일 ~ 5월 22일
공동제작자 : 임준수, 김정현, 연준모, 곽진우, 조은희, 최정무
템플릿 출처 : http://blog.naver.com/PostThumbnailView.nhn?blogId=metalpan13&logNo=40209691660&categoryNo=46&parentCategoryNo=&from=postList
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석GangSeok Lee
2014 CodeEngn Conference 11
DTrace를 보안 관점에서 활용해보자!
DTrace 프레임워크는 솔라리스 기반으로 개발된 동적 추적 프레임워크로 현재 Solaris, Mac OS X, BSD 등에 적용되고 있다. 프레임워크는 운영체제 개발 시점에 커널에 통합된 프레임워크로 사용자 및 커널 레벨의 다양한 정보(메모리나 CPU, 파일시스템, 네트워크 자원의 모니터링이나 특정 함수의 인자 추적 등)를 동적으로 분석할 수 있게 하여 애플리케이션 테스팅에 주로 활용되고 있다. 이러한 장점을 활용하여 최근에는 보안 관점에서 프레임워크를 사용하는 경우가 늘어나고 있다. 퍼징 모니터링이나, 바이너리 동적 분석과 같은 취약점 분석, 악성코드 동적 분석, 루트킷 개발이 한 예이다. 본 발표에서는 DTrace가 무엇인지 살펴보고, 윈도우의 filemon의 기능을 구현해보도록 한다. 이 발표를 통해 분석가에게 생소할 수 있는 Mac OS X의 바이너리 분석에 도움이 될 것이라 생각한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론GangSeok Lee
2013 CodeEngn Conference 09
MS 윈도우의 원데이 패치에 대해서 분석 및 접근 방법을 살펴본다. 또한, 최근에 나온 원데이 취약점 패치 분석을 진행하며 필요한 팁에 대해서 알아보고자 한다.
http://codeengn.com/conference/09
http://codeengn.com/conference/archive
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법복연 이
『이펙티브 디버깅』 디버깅 지옥에서 탈출하는 66가지 전략과 기법
디오미디스 스피넬리스 지음 | 남기혁 옮김 | 한빛미디어 | 24,000원
★ 소프트웨어의 완성은 디버깅!
이 책은 경험이 풍부한 개발자를 대상으로 소프트웨어를 완성하는 마지막 기술을 가르친다. 저자는 35년 경험에서 깨우친 일반 원칙, 높은 수준의 전략, 구체적인 기술에 관한 조언, 효율 높은 도구, 창의적인 기법, 효과적인 디버깅과 관련된 행동 특성을 제시한다. 저자가 제안하는 66개의 전문 기법을 통해 디버깅 역량을 확장하고, 각 문제 상황에 맞는 최상의 접근법을 선택할 수 있을 것이다.
★ 주요 내용
다양한 소프트웨어 장애를 해결하는 높은 수준의 전략과 방법
프로그래밍, 컴파일, 실행 시 적용할 구체적인 기법
디버거를 최대한 활용하는 방법
믿고 투자해도 좋은 범용 기술과 도구
막다른 길과 복잡한 미궁에서 탈출하는 첨단 아이디어와 기법
디버깅하기 쉬운 프로그램을 만들기 위한 조언
멀티스레딩, 비동기, 임베디드 코드 디버깅에 특화된 접근법
향상된 소프트웨어 설계, 구축, 관리를 통한 버그 회피법
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론GangSeok Lee
2013 CodeEngn Conference 09
MS 윈도우의 원데이 패치에 대해서 분석 및 접근 방법을 살펴본다. 또한, 최근에 나온 원데이 취약점 패치 분석을 진행하며 필요한 팁에 대해서 알아보고자 한다.
http://codeengn.com/conference/09
http://codeengn.com/conference/archive
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법복연 이
『이펙티브 디버깅』 디버깅 지옥에서 탈출하는 66가지 전략과 기법
디오미디스 스피넬리스 지음 | 남기혁 옮김 | 한빛미디어 | 24,000원
★ 소프트웨어의 완성은 디버깅!
이 책은 경험이 풍부한 개발자를 대상으로 소프트웨어를 완성하는 마지막 기술을 가르친다. 저자는 35년 경험에서 깨우친 일반 원칙, 높은 수준의 전략, 구체적인 기술에 관한 조언, 효율 높은 도구, 창의적인 기법, 효과적인 디버깅과 관련된 행동 특성을 제시한다. 저자가 제안하는 66개의 전문 기법을 통해 디버깅 역량을 확장하고, 각 문제 상황에 맞는 최상의 접근법을 선택할 수 있을 것이다.
★ 주요 내용
다양한 소프트웨어 장애를 해결하는 높은 수준의 전략과 방법
프로그래밍, 컴파일, 실행 시 적용할 구체적인 기법
디버거를 최대한 활용하는 방법
믿고 투자해도 좋은 범용 기술과 도구
막다른 길과 복잡한 미궁에서 탈출하는 첨단 아이디어와 기법
디버깅하기 쉬운 프로그램을 만들기 위한 조언
멀티스레딩, 비동기, 임베디드 코드 디버깅에 특화된 접근법
향상된 소프트웨어 설계, 구축, 관리를 통한 버그 회피법
Obfuscation 101
: 난독화, 프로가드, R8, 트랜스포머 API
김용욱
카카오뱅크
영화와 커피를 좋아하는 은행원. 반지 원정대는 극장에서만 15번을 보았다. 데이터베이스를 전공했지만 급변하는 모바일 환경에 반해 안드로이드에 승선했고 Realm을 통해 모바일과 데이터베이스를 융합했다. 그후 새로운 가능성을 찾아 금융으로 왔다.
3. 자주 등장하는 코드
• 함수 호출1 – 프로그래머가 만든 함수
• 함수 호출2 – 미리 만들어진 Library 함수
• 반복문
• 조건 분기문
4. 함수 호출 1 – 프로그래머 제작 함수
위의 함수의 경우 Func1(arg1) 와 같은 형태 인 것을 알 수 있다.
함수 명이 보이지 않는 경우 해당 심볼이 없거나 프로그래머가 제작한 함수이다.
분석 시에 그냥 넘어가면 안 되는 함수 이기도 하다.
※ 정적으로 컴파일 된 라이브러리 일 수도 있다.
( IDA 와 같은 디버거로 보게 되면 보이는 경우도 있다. )
5. 함수 호출 2 – 미리 만들어진 Libraray
위의 함수의 경우는
CreateFileA(FileName,0x120089,0,NULL,OPEN_EXISTING,0,NULL)
와 같이 번역 할 수 있다. 함수호출 시에 함수 이름이 보이며
Kernel32 라는 모듈내부에 이미 만들어진 함수 임을 알 수 있다.
이런 함수는 내부로 들어가서 분석 할 필요 없다.
6. 반복문
위의 함수에서 JMP (Address) 와 같이 JMP하여 도착하는 코드의 위치가
위쪽을 향하는 것을 볼 수 있다. 이런 것은 반복적으로 사용하는 반복문에서
많이 볼 수 있다.
7. 조건 분기문
위와 같이 TEST 혹은 CMP와 같은 명령어 연산 이후에 조건을 보고
JE 명령어로 분기하는 것을 볼 수 있다.
특히 TEST EAX, EAX는 자주 등장하는 명령어 이며
If eax == 0 조건이면 JE 다음 주소로 점프하는 경우이다.
해당 값이 0인지 아닌지 검사할 때 자주 등장한다.
16. 악성코드 자동시작을 위한
레지스트리 생성
RegCreateKeyExA 함수로 SoftwareMicrosoftWindowsCurrentVersionRun
17. 실행파일에 포함된 악성파일 Drop
자신의 실행파일 영역 중 Resource 영역에 Drop 할 실행파일을 숨기고
해당 실행 파일을 찾아서 Drop 하기 위해 FindResource 함수를 호출하는 것을
볼 수 있다.
18. 공격자가 설정한 서버에 접속하여
악성코드 행위 결정
패킷의 내용을 보면 GET /~ 으로 시작하는 내용이 있는 것을 볼 수 있다.
이것은 해당 공격자 서버에 접속하여 악성코드가 어떤 행위를 할 것인지
혹은 어느 쪽으로 접속을 할 것인지에 대한 정보를 얻어 행동할 수 있다.