2013 CodeEngn Conference 09
컴퓨터로 문서 작성 시 주로 사용되는 프로그램 중 MS Office가 문서에 암호를 설정 할 때 동작하는 과정을 발표하고자 한다. 알고리즘 분석은 IDA와 ollydbg를 활용하여 분석하였으며, 결과적으로 Brute force 공격 가능성 여부에 대한 생각 또한 공유하고자 한다..
http://codeengn.com/conference/09
http://codeengn.com/conference/archive
[2013 CodeEngn Conference 08] pwn3r - Pwning multiplayer game - case Starcraf...GangSeok Lee
2013 CodeEngn Conference 08
최근 국내/외에서는 멀티플레이어 게임이 유명세를 타고 있다. 이에 맞게 멀티플레이어 게임에 대한 보안 기술 역시 발전하고 있지만, 일반적으로 게임 보안은 게임의 룰을 깨버릴 수 있는 어뷰징(Abusing) 버그를 막는 데 주력하고 있다. 많은 멀티플레이어 게임들이 어뷰징 버그를 막는데 주력하느라, 게임 클라이언트의 취약성에 대한 보안을 놓치고 있다. 게임 클라이언트의 보안의 중요성을 강조하기 위해 BoB 1기에서 진행한 '멀티플레이어 게임 취약점 점검' 프로젝트의 결과물인 Starcraft-Broodwar remote code execution취약점을 설명하고, 취약점을 발견하기 위해 진행한 과정과 Exploit 과정들을 소개한다.
http://codeengn.com/conference/08
Office 365 와 Office 2013으로 스마트한 팀 협업 시스템 만들기 - 1.기본 컨셉 및 도구 소개Kyoungsoo Jeon
오피스튜터가 창립 14주년을 기념하기 위해 3회에 걸쳐 작년에 이어 워크스마트를 주제로 한 웹캐스트를 준비했습니다. 총 3부 중 첫번째 교안 공유합니다.
[주요 내용]
스마트한 팀 협업을 위한 기본 컨셉 및 도구 소개
- 뉴노멀(New Normal) 시대의 업무 환경
- Office 365란?
- 오피스튜터의 일하는 방식
- SharePoint 팀 사이트 개설하기
- 팀 서식 문서 작성
본 교안에 대한 질의 응답 및 교류, 동영상 다시 보기는 아래 페이스북 그룹을 통해 이뤄지고 있습니다.
https://www.facebook.com/groups/officetutor14/
[2008 CodeEngn Conference 02] graylynx - 정적 링크된 Stripped ELF 바이너리 상에서의 함수 탐지 기법GangSeok Lee
2008 CodeEngn Conference 02
Strip된 정적 링크된 ELF 바이너리에서 원래의 함수정보를 얻어내는 방법과 IDA SDK를 이용한 플러그인 제작을 설명한다. grayResolve 플러그인의 실행순서로는 1. 함수 이름을 복구하고자 하는 ELF 파일을 IDA로 로드한 뒤, Edit > Plugin 메뉴 또는 단축키 Alt + 1 을 통해 grayResolve 실행 2. 대상 파일이 컴파일될때 링크된 라이브러리 파일을 (예: libc.a) 지정해준다. 3. 찾고자 하는 함수 이름이 발견되지 않으면, 다른 라이브러리 파일을 대상으로 시도해보고 로그 파일을 분석한다.
http://codeengn.com/conference/02
[2013 CodeEngn Conference 08] pwn3r - Pwning multiplayer game - case Starcraf...GangSeok Lee
2013 CodeEngn Conference 08
최근 국내/외에서는 멀티플레이어 게임이 유명세를 타고 있다. 이에 맞게 멀티플레이어 게임에 대한 보안 기술 역시 발전하고 있지만, 일반적으로 게임 보안은 게임의 룰을 깨버릴 수 있는 어뷰징(Abusing) 버그를 막는 데 주력하고 있다. 많은 멀티플레이어 게임들이 어뷰징 버그를 막는데 주력하느라, 게임 클라이언트의 취약성에 대한 보안을 놓치고 있다. 게임 클라이언트의 보안의 중요성을 강조하기 위해 BoB 1기에서 진행한 '멀티플레이어 게임 취약점 점검' 프로젝트의 결과물인 Starcraft-Broodwar remote code execution취약점을 설명하고, 취약점을 발견하기 위해 진행한 과정과 Exploit 과정들을 소개한다.
http://codeengn.com/conference/08
Office 365 와 Office 2013으로 스마트한 팀 협업 시스템 만들기 - 1.기본 컨셉 및 도구 소개Kyoungsoo Jeon
오피스튜터가 창립 14주년을 기념하기 위해 3회에 걸쳐 작년에 이어 워크스마트를 주제로 한 웹캐스트를 준비했습니다. 총 3부 중 첫번째 교안 공유합니다.
[주요 내용]
스마트한 팀 협업을 위한 기본 컨셉 및 도구 소개
- 뉴노멀(New Normal) 시대의 업무 환경
- Office 365란?
- 오피스튜터의 일하는 방식
- SharePoint 팀 사이트 개설하기
- 팀 서식 문서 작성
본 교안에 대한 질의 응답 및 교류, 동영상 다시 보기는 아래 페이스북 그룹을 통해 이뤄지고 있습니다.
https://www.facebook.com/groups/officetutor14/
[2008 CodeEngn Conference 02] graylynx - 정적 링크된 Stripped ELF 바이너리 상에서의 함수 탐지 기법GangSeok Lee
2008 CodeEngn Conference 02
Strip된 정적 링크된 ELF 바이너리에서 원래의 함수정보를 얻어내는 방법과 IDA SDK를 이용한 플러그인 제작을 설명한다. grayResolve 플러그인의 실행순서로는 1. 함수 이름을 복구하고자 하는 ELF 파일을 IDA로 로드한 뒤, Edit > Plugin 메뉴 또는 단축키 Alt + 1 을 통해 grayResolve 실행 2. 대상 파일이 컴파일될때 링크된 라이브러리 파일을 (예: libc.a) 지정해준다. 3. 찾고자 하는 함수 이름이 발견되지 않으면, 다른 라이브러리 파일을 대상으로 시도해보고 로그 파일을 분석한다.
http://codeengn.com/conference/02
본문 링크
용과 같이 – 유신 : http://www.slideshare.net/agebreak/141004-cedec-2014-1
MSDN : http://msdn.microsoft.com/en-us/library/ms686749.aspx
WIKI : http://en.wikipedia.org/wiki/Thread-local_storage
Optimizing software in C++ : http://www.agner.org/optimize/optimizing_cpp.pdf
Deep Dive on Amazon EBS Elastic Volumes - March 2017 AWS Online Tech TalksAmazon Web Services
Amazon Elastic Block Store (Amazon EBS) provides persistent block level storage for use with Amazon EC2 instances. In this technical session, we will present and demonstrate how you can increase capacity, tune performance, and modify volume types on the fly with the latest Amazon EBS innovation, Elastic Volumes. You will learn how Elastic Volumes can significantly reduce both operational complexity and downtime enabling you to right-size your deployment and dynamically adapt as your business needs change. We will describe best practices and share tips for success throughout.
Learning Objectives:
- Learn how to increase capacity, tune performance, and modify volume types
- Learn how you can automate modifications to align with changing business needs.
- Review the different Amazon EBS volume types and receive best practices for each.
Apple's next press event happens on Monday, March 21 at the company's campus in Cupertino, California.
We've already talked about what to expect, in our PPT but to recap: Apple is expected to announce a new 4-inch iPhone that combines the size of the iPhone 5S with features from the iPhone 6 and 6S. It will also supposedly be upgrading the 9.7-inch iPad, giving it updated internals, a Smart Connector, and Apple Pencil support imported from the iPad Pro. The Apple Watch may get some love in the form of new band colors and combinations, but rumors say not to expect a full hardware refresh just yet.
Mobile-First SEO - The Marketers Edition #3XEDigitalAleyda Solís
How to target your SEO process to a reality of more people searching on mobile devices than desktop and an upcoming mobile first Google index? Check it out.
Bill Aulet's keynote speech at 2016 Global Entrepreneurship Conference in Medellin Colombia. Focus on the past, present and future of entrepreneurship educaiton and what needs to be done.
PyCon 2014 발표 http://pycon.kr/2014/program/8 자료 입니다. 파이썬을 기반으로 금융데이터(주식시장 데이터)에 대한 이해와 수집/분석을 위한 구체적인 방법들 소개합니다.
- 마켓 데이터 수집과 저장
- 거래소 상장 종목 분석
- 금융 데이터의 측정과 분포
- 야후 파이낸스 활용
- 이동평균, 기술적 분석, 상관분석
- 데이터 시각화
본문 링크
용과 같이 – 유신 : http://www.slideshare.net/agebreak/141004-cedec-2014-1
MSDN : http://msdn.microsoft.com/en-us/library/ms686749.aspx
WIKI : http://en.wikipedia.org/wiki/Thread-local_storage
Optimizing software in C++ : http://www.agner.org/optimize/optimizing_cpp.pdf
Deep Dive on Amazon EBS Elastic Volumes - March 2017 AWS Online Tech TalksAmazon Web Services
Amazon Elastic Block Store (Amazon EBS) provides persistent block level storage for use with Amazon EC2 instances. In this technical session, we will present and demonstrate how you can increase capacity, tune performance, and modify volume types on the fly with the latest Amazon EBS innovation, Elastic Volumes. You will learn how Elastic Volumes can significantly reduce both operational complexity and downtime enabling you to right-size your deployment and dynamically adapt as your business needs change. We will describe best practices and share tips for success throughout.
Learning Objectives:
- Learn how to increase capacity, tune performance, and modify volume types
- Learn how you can automate modifications to align with changing business needs.
- Review the different Amazon EBS volume types and receive best practices for each.
Apple's next press event happens on Monday, March 21 at the company's campus in Cupertino, California.
We've already talked about what to expect, in our PPT but to recap: Apple is expected to announce a new 4-inch iPhone that combines the size of the iPhone 5S with features from the iPhone 6 and 6S. It will also supposedly be upgrading the 9.7-inch iPad, giving it updated internals, a Smart Connector, and Apple Pencil support imported from the iPad Pro. The Apple Watch may get some love in the form of new band colors and combinations, but rumors say not to expect a full hardware refresh just yet.
Mobile-First SEO - The Marketers Edition #3XEDigitalAleyda Solís
How to target your SEO process to a reality of more people searching on mobile devices than desktop and an upcoming mobile first Google index? Check it out.
Bill Aulet's keynote speech at 2016 Global Entrepreneurship Conference in Medellin Colombia. Focus on the past, present and future of entrepreneurship educaiton and what needs to be done.
PyCon 2014 발표 http://pycon.kr/2014/program/8 자료 입니다. 파이썬을 기반으로 금융데이터(주식시장 데이터)에 대한 이해와 수집/분석을 위한 구체적인 방법들 소개합니다.
- 마켓 데이터 수집과 저장
- 거래소 상장 종목 분석
- 금융 데이터의 측정과 분포
- 야후 파이낸스 활용
- 이동평균, 기술적 분석, 상관분석
- 데이터 시각화
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기Chris Ohk
C++11을 시작으로 모던 C++이 도입된 지도 어느새 6년이라는 시간이 흘렀습니다. 올해는 C++17 표준이 도입될 예정입니다. 그만큼 많이 개선되고 새로운 기능들이 많이 도입되었기에 실무에서 사용해보고 싶은 경우도 많습니다. 하지만 이미 서비스 중이라 기존 프로젝트를 새 버전의 VS로 마이그레이션하기 어려운 프로젝트가 많습니다. 그렇다고 아예 불가능한 일도 아닙니다. 이번 세미나에서는 기존 프로젝트를 새 버전의 VS로 마이그레이션하면서 발생했던 문제와 마이그레이션 이후 모던 C++을 사용하면서 발생했던 문제, 그리고 해결법을 설명하고자 합니다. 또한 새 버전의 VS에 생긴 유용한 기능들도 함께 알려드립니다.
2010 CodeEngn Conference 04
2010년 5월 22~24일, 세계 최대의 해커들의 축제인 DEFCON 18의 CTF 예선이 열렸습니다. Kaist 보안동아리 GoN 팀으로 참여하면서 느낀 이번 DEFCON CTF 예선에 대한 전반적인 리뷰와 함께, 여러 문제 분야들 중 Binary l33tness, Pwtent pwnables 분야의 문제들의 풀이를 해보고자 한다. (Defcon 18 CTF 예선전 전체 529팀에서 6위로 본선진출)
http://codeengn.com/conference/04
인프라 모니터링을 위한 시스템을 구축하고 운영하는 데 있어, 다이내믹한 인프라 변화는 어려움으로 다가오고 있습니다.
본 세션에서는 인프라를 운영하는 팀 혹은 운영자 관점에서 바라본 미래 지향적 인프라 모니터링 시스템의 방향성과 이를 구현하기 위해 필요한 구성들을 공유하고자 합니다.
목차
1. NHN 모니터링의 현재
2. 모니터링의 변화
3. 모니터링 방법론
4. 모니터링 절차
5. NHN 모니터링의 미래
대상
- 인프라를 운영하는 시스템 엔지니어
- 인프라 모니터링 시스템에 관심이 있는 분
Similar to [2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과 (20)
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안GangSeok Lee
2014 CodeEngn Conference 11
가상화와 보안의 합작
가상화 기술은 대상체를 추상화된 리소스로 가상화하여 활용할 수 있는 기술이다. 가상화 기술이 하드웨어 차원에서 지원되기 시작한 이후로 CPU가 제어하는 자원을 하드웨어 레벨에서 가상화 할 수 있게 되었다. CPU가 하드웨어 수준에서 가상화를 지원하기 위해 설계된 구조와 인터페이스가 존재하는 계층이 기존에 운영체제에서 사용하던 Ring 0~3 계층 상위에 추가되면서 이를 보안에서 활용하는 시도들이 있어왔으며 대표적으로 ARM TrustZone 아키텍처가 있다. TrustZone과 같은 아키텍처는 운영체제와는 다르게 오직 보안에 관련된 서비스와 기능만을 탑재한 보안전용운영체제를 먼저 상주시킨다. 운영체제가 특권/사용자 계층을 나누어 사용자 계층에서 하드웨어 자원에 접근하는 것을 막고 대신 요청을 받아 처리함으로서 하드웨어 자원을 보호했던 것과 유사하게 보안/일반 계층으로 나눠 보안이 필요한 동작시에 보안전용운영체제가 요청을 받아 처리하는 구조를 갖고, 일반 계층은 격리되어 보안 계층에 접근할 수 없으므로 보안성을 한층 높힌 구조이다. 본 발표는 가상화 기술에 대한 개괄적 설명과 이를 활용한 PS/2 키로거를 제작 I/O를 가로채는 과정을 살펴보고 운영체제 상위 권한이 어떤 의미를 갖는지 그리고 CPU하드웨어 레벨의 강력한 권한을 체험하는 것을 통해 가상화 기술의 특성을 파악해보자 한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[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
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 FuzzingGangSeok Lee
2014 CodeEngn Conference 11
모바일환경에서 Borwser Fuzzing을 하고 싶었고, 나만의 Fuzzing시스템을 만들고 싶었다.
iOS(Jailbreak환경)에서 MobileSafari를 대상으로 24시간/7일, Fuzzing 도중 Crash가 발생하여 MobileSafari가 종료되더라도 MobileSafari를 재시작시켜서 Fuzzing을 시도하는 시스템을 제작하였다. 어떻게 구성했고, ASLR을 어떻게 극복하였는지 공유하고자 한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼GangSeok Lee
2014 CodeEngn Conference 11
악성코드도 모으면 돈이 된다!
일반적으로 하나의 악성코드를 분석하기 위해서는 정적 분석, 동적 분석, 디스어셈블 등의 여러 가지 분석 방법이 동원된다. 하지만 수십, 수백만의 악성코드를 분석하기 위해서는 우리가 할 수 있는 방법은 어떤 것들이 있을까? 또한 하나의 악성코드에 연관된 여러가지 팩트들을 어떻게 연결시켜서 분석 할 수 있을까? 하나가 아닌 수십만의 악성코드를 분석했을 때 추가적으로 추출 할 수 있는 정보는 없을까? 이러한 질문들을 해결 하기 위해서 요즘 빅데이터 기반의 악성코드 분석 기법이 많이 사용된다. 빅데이터 기반의 악성코드를 분석하기 위한 방법과 주요 팩트 들은 어떤 것들이 있을지 알아보고 이를 자동화 하기 위한 플랫폼 개발에 대한 이야기를 해볼 수 있도록 한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
2014 CodeEngn Conference 11
웹브라우저 구조에 따른 자바스크립트 난독화 알아보기
이제는 인터넷 없이 생활조차 하기 힘든 세상으로 킬러 어플리케이션로 자리잡았다. 이러한 인터넷 환경에서 웹 사이트 방문만으로 악성코드에 감염 될 수 있다. 이 공격을 드라이브-바이 다운로드 (Drive-By Download)로 불리며, 웹 해킹, 소프트웨어 취약점, 악성코드를 같이 사용하는 공격 기술이다. 그리고 공격에 사용되는 별개의 기술들을 하나로 묶어 주는 것이 자바스크립트로 탐지와 분석을 어렵게 하기위해 난독화를 사용한다. 그러면, 왜 자바스크립트 난독화가 생길 수 있는지 브라우저 컴포넌트 구조를 통해 알아보고, 종류에 대해 알아본다. 그리고 자바스크립트 난독화를 해제하기 위한 방법론에 대해서도 알아본다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KOGangSeok Lee
2014 CodeEngn Conference 11
IE 원데이로 시작하는 실전 익스플로잇!
BOF, FSB, UAF 등의 메모리 커럽션 취약점을 워게임, CTF 통해서 배우게 되지만 비교적 더 낮은 난이도에도 불구하고 실제 상용 프로그램에 대해서는 막연한 느낌뿐인 학생들이 많은 것 같다. 웹브라우저에서 발견되는 취약점 중 가장 흔한 UAF에 대해 설명하고 비교적 최신에 발견된 CVE-2014-0322, CVE-2014-1776 두가지 전형적인 IE 브라우저 UAF 취약점을 익스플로잇하는 방법을 설명하려고 한다. 추후 사례로 소개되는 두 가지 취약점에 대해 직접 학습이 가능하도록 단계별 튜토리얼을 별도 제공하고자한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study ENGangSeok Lee
2014 CodeEngn Conference 11
IE 원데이로 시작하는 실전 익스플로잇!
BOF, FSB, UAF 등의 메모리 커럽션 취약점을 워게임, CTF 통해서 배우게 되지만 비교적 더 낮은 난이도에도 불구하고 실제 상용 프로그램에 대해서는 막연한 느낌뿐인 학생들이 많은 것 같다. 웹브라우저에서 발견되는 취약점 중 가장 흔한 UAF에 대해 설명하고 비교적 최신에 발견된 CVE-2014-0322, CVE-2014-1776 두가지 전형적인 IE 브라우저 UAF 취약점을 익스플로잇하는 방법을 설명하려고 한다. 추후 사례로 소개되는 두 가지 취약점에 대해 직접 학습이 가능하도록 단계별 튜토리얼을 별도 제공하고자한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
2014 CodeEngn Conference 11
안드로이드에서의 부트킷 동작방식 알아보기
부트킷 악성코드는 부팅 과정에서 악성코드를 감염시켜 악성코드가 실행 시 자신의 존재를 숨겨 백신에서 악성코드의 탐지와 치료를 어렵게 하기위해 사용되는 방식이다. 이러한 Oldboot 부트킷 악성코드가 올해초 2014년 1월에 안드로이드에서 발견되었다. 따라서 본 발표에서는 이 안드로이드 상에서 사용된 부트킷의 동작 방식과 특이점에 대해서 다룰 예정이다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
2014 CodeEngn Conference 11
안드로이드에서의 부트킷 동작방식 알아보기
부트킷 악성코드는 부팅 과정에서 악성코드를 감염시켜 악성코드가 실행 시 자신의 존재를 숨겨 백신에서 악성코드의 탐지와 치료를 어렵게 하기위해 사용되는 방식이다. 이러한 Oldboot 부트킷 악성코드가 올해초 2014년 1월에 안드로이드에서 발견되었다. 따라서 본 발표에서는 이 안드로이드 상에서 사용된 부트킷의 동작 방식과 특이점에 대해서 다룰 예정이다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드GangSeok Lee
2014 CodeEngn Conference 11
웹페이지를 조작한다면 무엇을 해보시겠습니까 ?
우리는 매일 인터넷을 사용하지만 접속하는 웹페이지마다 변조되었다는 의심을 해보는 경우는 거의 없다. 웹브라우저가 웹페이지를 읽어오는 과정과 이를 이용해서 조작되는 과정을 알아보고 악성코드 제작자 입장이 되어 무엇을 할 수 있는지 알아보자
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)GangSeok Lee
2014 CodeEngn Conference 10
앱의 라이브러리를 내맘대로~
후킹은 이미 분석이나 개발등 다양한 목적으로 많이 사용되고 있다. 기존의 함수 후킹을 ARM 아키텍처 환경인 안드로이드에서 어떻게 구현했는지에 대해 알아보고 구현된 도구를 통해 안드로이드 환경에서 후킹을 어떻게 활용할 수 있는지에 대해 알아본다.
http://codeengn.com/conference/10
http://codeengn.com/conference/archive
[2014 CodeEngn Conference 10] 노용환 - 디버거 개발, 삽질기GangSeok Lee
2014 CodeEngn Conference 10
MS 에게 속았어요
Windows 운영체제가 지원하는 디버거 지원 기능들과 브랜치 트레이서를 구현하기 위한 몇 가지 방법들을 소개하고, Windows 커널에 이미 구현되어있는 하드웨어 기반 브랜치 트레이서 코드 분석과 여기에 존재하는 의도된(?) 버그를 살펴본다.
http://codeengn.com/conference/10
http://codeengn.com/conference/archive
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다GangSeok Lee
2014 CodeEngn Conference 10
열혈 취약점 헌터들의 고분군투기!
취약점을 찾게되면 어떤 일이 벌어질까? 급전이 필요한 외롭고 찌질한 대한민국 해커들의 급전을 위한 취약점 찾기 여행기. 과연 우리는 취약점을 찾고 급전을 만들어 외롭고 찌질한 이 상황을 타개할 수 있을 것인가?
http://codeengn.com/conference/10
http://codeengn.com/conference/archive
[2013 CodeEngn Conference 09] proneer - Malware TrackerGangSeok Lee
2013 CodeEngn Conference 09
최근 조직의 침해는 조직의 보안 환경이 강화되면서 장기간에 걸쳐 일어난다. 목적을 달성할때까지 지속 매커니즘을 사용하여 시스템에 잠복하거나 다른 시스템으로 이동해간다. 이런 상황에서 악성코드가 사용하는 지속 매커니즘은 무엇이 있는지, 그리고 침해사고를 조기에 인지하여 악성코드의 유입 경로를 찾을 수 있는 방안을 살펴본다.
http://codeengn.com/conference/09
http://codeengn.com/conference/archive
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualizationGangSeok Lee
2013 CodeEngn Conference 09
리버서들이나 어플리케이션 분석가 들에게 hooking이란 뗄레야 뗄수가 없는 존재이다. 이러한 후킹을 위해 detours 등 매우 많은 라이브러리도 나와 있지만, 많은 수의 어플리케이션을 분석하거나, 심플하게 내부 플로우만 살펴보기에는 생각보다 손이 많이가는게 사실이다. 이를 좀 더 손쉽고 심플하도록 구현해 보고, visualization 을 도입하여 좀더 직관적으로 분석할 수 있도록 해 볼 것이다.
http://codeengn.com/conference/09
http://codeengn.com/conference/archive
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploitsGangSeok Lee
2013 CodeEngn Conference 09
시간이 지나면 지날수록 리눅스에서는 보안 기술에 의해 원격 공격이 힘들어지고 있다. 원격 버퍼 오버플로우 공격을 위한 몇가지 트릭을 공개할 것이다. 지금까지 공격은 주로 취약점 코드에 의존성이 높거나 brute force를 사용한 방식이였다. 이번 발표에서의 공격 기술은 NULL 을 우회하여 exploit을 1바이트씩 분할하고 취약한 서버에 파일을 생성한뒤 공격하며, 단순 brute force방식에 벗어나 ASLR를 어떻게 빨리 찾아내는지 보여줄 것이다.
http://codeengn.com/conference/09
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
[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석GangSeok Lee
2013 CodeEngn Conference 09
게임 보안 제품의 보안성이 강화됨에 따라 해킹툴의 공격 기법 또한 다양해 지고 있다. 몇 몇 해킹툴은 게임에 접근하기 위해 OS의 디버깅 메커니즘 악용한다거나 시스템 프로세스로 위장하게 되는데 이와 같은 몇가지 변칙적인 기법에 대해 알아보고자 한다.
http://codeengn.com/conference/09
http://codeengn.com/conference/archive
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽GangSeok Lee
2013 CodeEngn Conference 09
기업의 보안 취약점을 분석하고 이에 대한 대응 방안을 제시하는 보안 컨설팅에 대해 알아본다. 아울러, 보안컨설턴트 양성을 위해 BoB에서 진행하고 있는 보안컨설팅 인턴쉽과정에 대해 소개한다.
http://codeengn.com/conference/09
http://codeengn.com/conference/archive
[2010 CodeEngn Conference 04] Max - Fighting against BotnetGangSeok Lee
2010 CodeEngn Conference 04
사이버 전쟁의 대표적 공격 무기가 되어버린 봇넷은 네트워크가 점점 초고속화되고, 복잡해진 상황속에서 7.7 DDoS와 같은 DDoS 공격, 인터넷 계정이나 금융 정보등과 같은 개인 정보 유출 등이 봇넷을 통해 이루어지고 있는 상황이다. 이에 해당 주제 발표에서는 실제 사이버상에서 운영되고 있는 봇넷들을 분석해 보며, 그들의 추구하는 봇넷 비즈니스 모델을 찾아보려 한다. 또한, 봇넷의 설계, 운영, 관리, 대응에 관한 시연 그리고 봇넷들간의 전쟁에 대해 이야기하고자 한다.
http://codeengn.com/conference/04
4. 개 요
u 개 요
§ MS Office 2010 프로그램을 MS 社에서 공개한 내용에 기반하여 리버싱으로 실제
암호 처리 과정을 분석한 내용임.
u 주요내용
§ 분석대상 : MS Office 2010(32bit)
§ 분석인원 : 전준희 외 1명
§ 분석기간 : 2013. 1. 1. ~ 3. 1.(3개월)
§ 분석도구 : Ollydbg, IDA, Hxd 등.
§ 분석환경 : MS Windows XP Home Edition sp3
u 분석결과
§ 발표 내용 참조
2013-11-30
40 - 4
6. MS Office 관련 기본 내용
u MS 社 암호화 방식 공개 내용
.
.
.
2013-11-30
40 - 6
7. MS Office 관련 기본 내용
u 일반 오피스 파일과 암호화된 오피스 파일의 저장 방식 차이
§
일반 오피스 파일 : Office Open XML 형식
§
암호화된 오피스 파일 : Compound Document File 포멧
※ also called Microsoft OLE2, Structured Storage, Compound File Binary Format
u Office Open XML 파일 헤더
u Office Open XML 파일의 구성
.ZIP
2013-11-30
40 - 7
8. MS Office 관련 기본 내용
u 일반 오피스 파일과 암호화된 오피스 파일의 저장 방식 차이
§
일반 오피스 파일 : Office Open XML 형식
§
암호화된 오피스 파일 : Compound Document File 포멧
※ also called Microsoft OLE2, Structured Storage, Compound File Binary Format
u CDF 파일 헤더
u CDF 파일 포멧 內 XML 블럭
...
2013-11-30
40 - 8
9. MS Office 관련 기본 내용
u Python 기반의 OleFileIO_PL 및 oletools 라이브러리를 활용한 CDF 포멧 확인
2013-11-30
40 - 9
10. MS Office 관련 기본 내용
u XML 블럭 내용
Data
key
Data
Integrity
Key
Encryptors
2013-11-30
40 - 10
12. 암호키 암호화
Random 1
Key Encrypt Salt
Random 2
Verifier
Random 3
Encryption Key
SHA1(
Random 1
+
Password
)
SHA1(0)
20byte
I = 0, N = 1
16byte
SHA1(
I
4byte
SHA1( N1)
10byte
+
I
< 100,000
N
Start
Header
)
N=N+
1
I=I+1
Y
HFinal
20byt
e
SHA1(
HFinal
20byt
e
+
20byte
FE A7 D2
76
3B 4B 9E
79
Random 1
Key
16byte
IV
16byte
AES128 CBC Encrypt (16byte)
Random 2
Encrypted Verifier Hash Input
2013-11-30
)
SHA1(
HFinal
20byt
e
+
20byte
D7 AA 0F
6D
30 61 34 4E
Random 1
Key
16byte
IV
16byte
AES128 CBC Encrypt(32byte)
SHA1(
Random 2
)+
00 X
12
Encrypted Verifier Hash Value
)
HFinal
20byt
e
SHA1(
+
14 6E 0B E7
AB AC D0
D6
20byte
)
Random 1
Key
16byte
IV
16byte
AES128 CBC Encrypt (16byte)
Random 3
Encrypted Key Value
40 - 12
14. 데이터 암호화
Random 3
Encryption Key
Random 4
Data Salt
N=0
16byte
SHA1(
Random 4
N
4byte
+
)
OpenXML Data
20byte
Random 3
IV
16byte
Key
16byte
N=N+1
Data 4096 byte copy
AES128 CBC Encrypt (4096byte)
Data 4096 byte
DataSize / 4096 + 1
<N
END
Data Encryption
2013-11-30
40 - 14
16. 무결성 정보 암호화
Random 3
Encryption Key
Random 4
Data Salt
16byte
Random 5
HMAC Key
20byte
Random 5
SHA1(
Random 4
+
5F B2 AD
01
0C B9 E1
F6
)
Key
20byte
SHA1(
Random 4
+
A0 67 7F 02
B2 2C 84 33
)
HMAC (20byte)
20byte
Random 3
IV
16byte
Key
16byte
AES128 CBC Encrypt (32byte)
Random 5
+
00 X
12
Encrypted Hmac Key
2013-11-30
20byte
Random 3
IV
16byte
Key
16byte
Encrypted Data
AES128 CBC Encrypt(32byte)
HMAC (20byte)
+
00 X
12
Encrypted Hmac Value
40 - 16
18. 분석과정
Ø 분석 과정 시작
Ø IDA Python 기반 분석
Ø 리버싱 결과 증명
2013-11-30
19. 분석과정
u 분석 목표
§
암호 대상
: 무엇을 암호화 하는가?
§
암호 알고리즘 : 어떤 알고리즘을 사용하는가?
§
암호 키
: 어떤 암호 키를 사용하는가?
§
암호 결과
: 암호 결과가 어떻게 저장되는가?
암호키
암호 대상
암호 결과
Encryptor
암호 알고리즘
2013-11-30
40 - 19
20. 분석과정
u 일반적인 CryptAPI 함수 호출 순서
CSP(Cryptography Service Provider) 핸들 생성
1
CryptAcquireContext( &hCryptProv, 0, MS_ENHANCED_PROV, PROV_RSA_FULL, 0)
Hash Object 생성
2
CryptCreateHash( hCryptProv, CALG_MD5, 0, 0, &hHash )
Password Hash
3
CryptHashData( hHash, (BYTE *)szPassword, strlen(szPassword), 0)
Hash 값으로 세션 키 생성
4
CryptDeriveKey( hCryptProv, ENCRYPT_ALGORITHM, hHash, KEYLENGTH, &hKey )
pbBuffer의 내용 암호화
5
2013-11-30
CryptEncrypt( hKey, 0, feof(hSource), 0, pbBuffer, &dwCount, dwBufferLen )
40 - 20
21. 분석과정
u 암호 알고리즘 확인
§
확인 결과 : AES128
CryptImportKey
CALG_AES_128
2013-11-30
40 - 21
22. 분석과정
u 암호화 대상 데이터 확인
§
확인 결과 : Office Open XML 형식
CryptEncrypt
Office Open XML
2013-11-30
40 - 22
23. 분석과정
u Ollydbg 동적 분석의 한계
동적으로 맵핑 되는 함수주소
CryptCreateHash
CryptDestroyHash
매번 변경되는 Random 값…
F8과 F9의 거리…
CryptHashData
1회 분석 시 약 2시간 소요
여긴 어디… 나는 누구…?
CryptHashData
CryptGetHashPram
If ecx < 100000
2013-11-30
실
패
40 - 23
25. 분석과정 – IDA Python
u IDA Python 중 Break Point Hook 기능의 기본 구존
1. MyDbgHook 설정
Event 처리 코드 작성 부분
2. Break Point 설정
3. Event 처리 코드 작성
-끝-
2013-11-30
40 - 25
26. 분석과정 – IDA Python
u 2가지 함수 종류
§
§
u
입력 값 확인이 필요한 함수 [ ex : func( a, b, c) ]
결과 값 확인이 필요한 함수 [ ex : func( a, &b, c) ]
입력 값 확인이 필요한 함수
u
§
함수 시작 점에 브레이크 포인트 설정
§
입력 값 확인이 필요한 함수
esp를 기준으로 입력 값에 접근하여 확인 후 재실행
eip
Push ebp
Mov ebp, esp
.
.
.
.
.
.
.
.
TOP
break
esp
Arg3
Arg2
Arg1
Ret
.
.
.
.
.
.
Mov esp, ebp
ret
Code
2013-11-30
BOTTOM
Stack
40 - 26
27. 분석과정 – IDA Python
u 2가지 함수 종류
§
§
u
입력 값 확인이 필요한 함수 [ ex : func( a, b, c) ]
결과 값 확인이 필요한 함수 [ ex : func( a, &b, c) ]
결과 값이 필요한 함수
u
§
함수 시작 점에 브레이크 포인트 설정
§
esp를 기준으로 결과 값이 저장될 메모리 주소 확인
§
Ret에 브레이크 포인트 설정 후 재실행
§
결과 값이 필요한 함수
결과 값 확인 후 브레이크 포인트 해제 후 재실행
eip
Call Func
break
.
.
.
Push ebp
break
Mov ebp, esp
.
.
.
.
.
Mov esp, ebp
ret
Code
2013-11-30
TOP
Arg3
Arg2
Arg1
esp
Ret
.
.
.
.
.
.
BOTTOM
Stack
40 - 27
28. 분석과정 – IDA Python
u IDA Python 스크립트를 활용한 디버깅
2013-11-30
40 - 28
29. 분석과정 – IDA Python
u IDA Python 로그 결과 확인
2013-11-30
40 - 29
34. MS Office 2010 vs MS Office 2013
u MS Office 2013 XML 블록 내용
2013-11-30
40 - 34
35. MS Office 2010 vs MS Office 2013
u MS Office 2010과 MS Office 2013의 키 길이 및 해쉬 알고리즘 차이
구
saltSize
16
128
256
20
64
cipherAlgoritm
AES
AES
cipherChaining
ChainingModeCBC
ChainingModeCBC
hashAlgoritm
SHA1
SHA512
saltValue
16byte
16byte
encryptedHmacKey
32byte
64byte
encryptedHmacValue
32byte
64byte
spinCount
100000
100000
saltSize
16
16
blockSize
16
16
keyBits
128
256
hashSize
20
64
cipherAlgorithm
AES
AES
cipherChaining
ChainingModeCBC
ChainingModeCBC
hashAlgorithm
SHA1
SHA512
SaltValue
16byte
16byte
encryptedVerifierHashInput
16byte
16byte
encryptedVerifierHashValue
32byte
64byte
encryptedKeyValue
2013-11-30
16
hashSize
KeyEncryptors
MS Office 2013
16
KeyBits
dataIntegrity
MS Office 2010
16
bloackSize
KeyData
분
16byte
32byte
40 - 35
36. 암호키 암호화(MS Office 2013)
Random 1
Key Encrypt Salt
Random 2
Verifier
SHA512(
Random 1
+
Password
)
SHA512(0) 64byte
I = 0, N = 1
16byte
Random 3
Encryption Key
I
4byte
SHA512(
SHA512( N1)
64byte
+
32byte
I
< 100,000
N
Start
Header
)
N=N+
1
I=I+1
Y
HFinal
64byt
e
SHA512(
HFinal
64byt
e
+
64byte
FE A7 D2
76
3B 4B 9E
79
Random 1
Key
32byte
IV
16byte
AES256 CBC Encrypt (16byte)
Random 2
Encrypted Verifier Hash Input
2013-11-30
)
SHA512(
HFinal
64byt
e
64byte
Key
32byte
+
D7 AA 0F
6D
30 61 34 4E
Random 1
IV
16byte
AES256 CBC Encrypt(64byte)
SHA512(
Random 2
)
Encrypted Verifier Hash Value
)
SHA512(
HFinal
64byt
e
+
14 6E 0B E7
AB AC D0
D6
64byte
)
Random 1
Key
32byte
IV
16byte
AES256 CBC Encrypt (32byte)
Random 3
Encrypted Key Value
40 - 36
37. 암호키 암호화(MS Office 2010 ⇒ 2013)
Random 1
Key Encrypt Salt
Random 2
Verifier
SHA512(
Random 1
+
Password
)
SHA512(0) 64byte
I = 0, N = 1
16byte
Random 3
Encryption Key
I
4byte
SHA512(
SHA512( N1)
64byte
+
32byte
I
< 100,000
N
Start
Header
)
N=N+
1
I=I+1
Y
HFinal
64byt
e
SHA512(
HFinal
64byt
e
+
64byte
FE A7 D2
76
3B 4B 9E
79
Random 1
Key
32byte
IV
16byte
AES256 CBC Encrypt (16byte)
Random 2
Encrypted Verifier Hash Input
)
SHA512(
HFinal
64byt
e
64byte
Key
32byte
+
D7 AA 0F
6D
30 61 34 4E
)
Random 1
IV
16byte
AES256 CBC Encrypt(64byte)
SHA512(
Random 2
)
Encrypted Verifier Hash Value
SHA512(
HFinal
64byt
e
+
14 6E 0B E7
AB AC D0
D6
64byte
)
Random 1
Key
32byte
IV
16byte
AES256 CBC Encrypt (32byte)
Random 3
Encrypted Key Value
MS Office 2013 관련 내용 이하 생략
2013-11-30
40 - 37
39. 결론2-2
u 이번에 발표된 내용을 기반으로 MS Office 관련 연구에 도움이 되길 바랍니다.
§
Ex) 향상된 Bruteforce Tool 개발 등.
u IDA Python을 활용하여 진행하시는 리버싱에 도움이 되길 바랍니다.
u 관련 연구 진행 시 내용 공유 부탁 드립니다.
2013-11-30
40 - 39