※ 본 자료는 ActiveX의 보안 취약성을 알리기 위한 목적으로 가상의 Hacking 계획을 수립해서 알리는 것이다. 본 자료를 근간으로 해서 Hacking을 할 경우에 발생할 수 있는 모든 책임은 이를 수행한 사람에게 있다는 사실을 주지하시기 바랍니다.
- Hacking 위한 환경 구성
- 현재의 ActiveX를 활용한 보안 System은 Virtualization에 대한 대응이 완벽한 상태는 아니다. 특히 Linux에서 진행되는 Virtualization에 대해서는 속수 무책인 부분이 많다.
- Virtualization을 이용해서 ActiveX가 설치되는 운영체제인 Microsoft사의 Windows XP 이상과 Internet Explorer 8 또는 Internet Explorer 9를 설치한다.
- Virtualization을 통해서 설치된 운영체제가 사용하는 Network 정보를 모두 외부에 인증될만한 정보로 교체할 수 있도록 한다. IP와 MAC Address가 이에 해당한다.
- Network 사용 정보를 수집하기 위한 중간 Gateway 역할을 할 Server를 구축한다. Network 상의 정보를 수집할 수 있는 Snipping이 가능해야 한다.
- Web 보안의 경우에 https에 비해서는 매우 낮은 수준의 보안을 제공하는 경우가 대부분이다. ActiveX를 통해서 통신이 이루어지기 때문에 ActiveX를 분석하면 어떻게 해석하고 바꿀 수 있는 지 확인이 가능하다. 이에 대한 다양한 방법은 공개되어 있다.
- 가장 어려운 부분이 공인인증서 부분으로 알려져 있는데, 공인 인증서의 보안 취약점은 국내가 아닌 해외에서 이미 공개가 되어 있는 상태이다. 공인 인증서 파일을 취할 수 있다면, 행위 분석을 통해서 동일하게 사용하는 것이 가능하다. 공인 인증서에 대한 내용은 Hacking Simulation 부분에서 직접적으로 다룰 수 없음을 인지하기 바란다. (검색하면 다 나온다, 영어로 번역해서 Google에서 검색해 보면 꽤 많은 자료를 구할 수 있다.)
- ActiveX 분석
- ActiveX 분석 방법은 여러 가지가 제공되는 데, 가장 쉬운 방법은 Visual Studio를 이용하는 것이다.
- 해당 DLL이나 OCX를 IDE에서 Loading하면 구조를 파악할 수 있다. 구조 정보는 SPY++를 통해서 얻은 정보를 참조해서 실행에 필요한 관계를 파악할 수 있다.
- Core에 가까운 부분은 De-Assembler를 이용하는 방법이다. 방대한 양의 Code로 나타나게 되겠지만, 참조하는 DLL(Object)이나 Library 등의 정보가 있다면, C/C++을 기반으로 한 Pseudo Code 수준까지 얻을 수 있다.
- 공격 대상 Site 행위 분석
- Network를 중간에 감시할 수 있는 Server가 구축이 되어 있으며, Snipping은 여기서 진행하도록 한다.
- ActiveX 보안의 취약성이 가장 극대화되는 Browser는 Internet Explorer 9이다. ActiveX를 처리하는 부분이 Browser Engine에서 분리되어 별도의 Plug-in으로 개발이 되었다.
- Internet Explorer 8이나 Internet Explorer 9를 이용해서 해당 사이트에 접근해서 핵심이 되는 업무를 진행하면서 Network에서 처리되는 내용과 호출되는 명령에 대해서 시간을 Matching해서 확인한다.
- 행위 분석을 Flow 개념으로 도식화해서 정리한다. 각각의 예외 경우도 테스트를 통해서 확인한다.
- Virtualization에 대한 원격 정보 수집 및 교체
- Virtualization에 설치된 환경에서 진행되는 정보를 중간에서 수집하거나 변경하는 것을 목적으로 한다.
- ActiveX가 주고 받는 정보를 감시해서 원하는 내용을 수집하거나 변경하는 것을 목적으로 한다.
- Virtualization에 대한 API를 분석하면 이 과정을 쉽게 수행하는 것이 가능하다.
- Virtualization을 직접 원격 제어하는 것이 불가한 경우가 있는데, 이 때는 Snipping을 이용한 Network 상의 정보 수집 및 교체를 수행한다. ActiveX 자체를 변화시킬 경우에 보안에 의해서 실행이 중지되는 경우가 있으며, Network를 통해서 진행되는 정보를 수집하고 변경하는 것은 보안이 감지를 못하는 경우가 많다.
- 공격 행위 Modeling
- Site에 대한 공격은 목적에 의해서 다양한 방법을 동원하게 된다. 위에서 준비된 재료를 잘 활용해서 Modeling을 해야 한다.
- 첫째로 고려해야 할 부분은 추적에 대한 대비이다. IP와 MAC 정보를 변경하는 것으로 1차적인 준비는 끝나 있다고 볼 수 있다.
- 국내가 아닌 해외의 VPN을 이용해서 접근함으로써 추적을 피하기 위한 2차적인 준비는 끝난다.
- 접근 Scenario 맞춰서 Data Modeling을 기획한다. Data Modeling은 ActiveX를 통해서 이루어지는 모든 Data를 대상으로 해서 이루어진다.
- 각 과정에서 발생할 수 있는 예외 상황에 대한 처리를 명시한다.
- 목적 달성의 표지를 설정한다. 행위가 종료될 수 있는 표지를 설정하고,흔적 지우기와 결과물 저장 방법을 처리한다.
- Program 개발
- 공격 행위는 2가지 상황으로 나누어져 있으며, 2개는 개별적인 Program 개발을 요구한다.
- 공인 인증서 무력화보다는 정보 변경을 목적으로 한다면, 일반 사용자 System에 침입하고 설치한 후에 작동하는 구조를 선택한다.
- 공인 인증서 무력화가 가능하다면, 외부 Network를 통해서 Dummy System을 이용해서 원하는 목적을 달성하는 것이다.
- Program 개발 과정에서 회피를 위한 Code 기법을 충분히 구성하며, 자동 소멸될 수 있도록 조건 설정은 필수이다.
- 행위의 실행에 관련해서는 기술하지 않는다.
- 주의 사항
- ActiveX를 통해서 구현되는 경우에도 Site 내에 보안 구조가 설치되어 있는 경우가 있다.이것이 Network를 통하지 않는 보안 구조일 경우(예를 들어 OTP)에 공격을 해도 주요한 요소를 변경시킬 수 없다. 대신, 사용자의 입력 정보를 변경시켜서 목적을 달성할 수도 있다.
- 부당한 이익을 위해서 해당 Simulation 방법을 사용하는 일은 없도록 하자.
- 본 내용은 정말로 행위에 필요한 대략적인 내용만 다루고 있다. 이유는 실제적인 Code 단위의 내용을 다루면 그건 엄연히 불법이기 때문이다.
댓글 없음:
댓글 쓰기