레이블이 ActiveX인 게시물을 표시합니다. 모든 게시물 표시
레이블이 ActiveX인 게시물을 표시합니다. 모든 게시물 표시

2013년 5월 30일 목요일

대한민국 국내 인터넷 뱅킹에 대한 해킹 시뮬레이션 - 개인정보+공인인증서+보안카드


 2013년 5월 28일 매일경제 신문 1면에 올라온 기사 - '뻥 뚫린' 공인 인증서 - 에 대한 분석 차원에서 작성한 것이다.

- 해당 내용은 2006년 및 2011년 이전 에 금융감독위원회 및 경찰청, 다수 금융기관에 그 가능성에 대해서 알린 바가 있으므로, 이를 모방한 범죄가 발생하는 모든 상황의 책임은 이를 예방하기 위한 활동을 해야 하는 정부 기관 및 수사기관에 있다고 할 것이다. -


 특정 사건에 대해서 해킹을 시뮬레이션 하는 목적은 해당 사건을 방지할 수 있는 기술을 만들고 제도를 보완해서 동일한 수법을 이용한 사건이나 유사한 사건을 막자는 것이 가장 큰 목적임을 미리 밝힌다. 그러므로, 해당 방법을 이용해서 범죄를 계획하거나 실행하는 경우에 법에 저촉될 수 있음을 미리 밝힌다.

  1. 타겟 선정 기준
    • 가장 큰 전제는 대한민국 국민 대다수의 개인 정보는 유출되어 있다는 점이다.
    • 쇼핑몰 거래 내용 및 안전 거래 등의 정보를 통해서 계좌 정보를 확보할 수 있다는 점이다.
    • 개인 간의 이메일을 감시하거나 문자 메시지를 감시함으로써 간단하게 계좌 정보를 확보할 수 있다.
    • 거래가 지속적으로 있는 계좌는 쉽게 닫히지 않으며, 항상 여유 잔고가 충분하게 존재할 가능성이 있다. 
    • 인터넷 뱅킹 및 텔레뱅킹을 주로 사용하고 있음을 확인한다. 
    • 다른 접근 방식으로 이미 설치되어 있는 좀비 프로그램을 이용해서 수집된 정보를 기반으로 해서 접근하는 방법이다.
  2. 접근 방법 설계
    • 사용자 컴퓨터 및 스마트폰에서 사용 기록을 확보해 줄 좀비 프로그램의 삽입이다.
    • 좀비 프로그램의 삽입을 위해서 가장 많이 사용하는 방법이 지인을 사칭해서 좀비 프로그램이 설치되는 코드가 포함된 플래시 파일 또는  ActiveX 설치를 유도하는 사이트 접근이다.
    • 최소한 1년 이상(공인 인증서 갱신을 포착해야 함으로)의 시간을 투입해서 해당 사용자의 정보를 걸러낼 필요성이 있다.
    • 공인인증서 암호는 키보드 입력을 통해서 확보가 가능하다. 대부분의 공인인증서 접근은 ActiveX를 이용한 프로그램을 통하는데, 보안이 아무리 잘되어 있어도 키입력을 전달하는 파이프라인 메모리를 직접 감시하면 현재 환경에서 구별하는 것이 거의 힘들다. (키보드 I/O를 가로채는 키로거는 대부분 안티바이러스 프로그램이 찾아 내지만, ActiveX에 직접 파이프 라인 메모리를 확인하는 것을 감지하는 안티바이러스 프로그램은 매우 드물다. 일단 Microsoft사가 이에 대한 감지 및 보안 방법이 없음을 이미 공표한 바 있다.)
    • 공인인증서 암호 확보에 실패 했다면 공인인증서 재발급 프로세스를 위해서 접근하게 된다. 재발급하게 되면 암호를 임의대로 입력할 수 있다.
    • 최근에는 국내 안티바이러스 프로그램 들이 공인인증서 파일에 대한 접근을 감시하기 때문에 쉽지 않지만, 안티바이러스 프로그램이 설치되어 있지 않거나, 무력화가 가능한 경우에 공인인증서 파일을 유출해서 전송한다. (공인 인증 시스템을 위한 전송이 아니어도 파일 자체만으로 공인인증서 효력이 나타나게 되는 은행 시스템도 있다.)
  3. 보안카드 작성
    • 은행 거래 시에 요구되는 보안카드의  번호 위치는 빈번하게 일치하기 때문에 하나의 번호 위치키인 4자리를 확보하는데 오래 걸리지 않는다.
    • 좀비 프로그램이 설치되어 있는 경우에  은행 거래 시마다 이를 기록해서 해당 사용자의 보안카드를 작성하게 된다. (주로 URL을 감시해서 기록 정보를 확보하는 형태가 이용된다.)
    •  보안카드의 완성도가 75% 이상이 되면, 거래 시에 보안카드 번호 입력 제한 횟수 이내에 완료를 할 수 있다.
    • 가상키보드나 스마트폰을 사용하는 경우에는 화면 캡쳐와 입력 좌표를 대조해서 해당 위치의 이미지를 활용한다.
    • 보안카드 작성과 관련해서는 이전에 텔레뱅킹과 관련된 사건도 있다. 아파트 건물의 전화단자함에 일종의 도청 장치를 해놓고 텔레뱅킹을 사용하는 신호만 걸러내서 계좌번호와 비밀번호, 보안카드 번호를 확보한 사건이었다.)
  4. 공인 인증서 재발급
    • 공인인증서를 확보했으나, 암호를 확보하지 못한 경우에 선택을 하게 된다.
    • 공인인증서 재발급을 위해서는 이름, 주민등록번호와 해당 명의의 계좌번호, 보안카드 발행번호, 보안카드 키값이 필요하다.
    • 1년 정도 시간 동안에 감시를 했다면 충분히 확보할 수 있는 정보 들이다.
    • 이 정보를 이용해서 공인인증서를 발급 받는다.
  5. 계좌 인출 시도
    • 개인 계좌의 1회 인출 한도 금액은 천차 만별이다.
    • 그러므로, 최대한 적은 횟수에 가능한 많은 금액을 빼내야 한다.
    •  차명 계좌(대포 통장)나 가상 계좌 등을 이용해서 인출 시도 후 성공하면 즉시 현금 인출하는 방식을 사용한다.

 위의 방법을 현재 100% 막을 수 있는 방법이나 시스템을 갖추고 있는 은행은 현재로서는 없다.

 여기에 추후 쓸 스미싱 기법을 합쳐 놓으면, 과연 막을 수 있을까 싶다.

2013년 1월 13일 일요일

대한민국의 정부와 보안업체는 왜 화이트 해킹을 무서워 하는가?

 이유는 간단하다. 보안 방법이 단순히 비밀을 유지함으로써 가능한 방법을 선택할 뿐이라는 것이다.

 기술적으로 안전을 확보하는 Secure 의 개념이 아니라,
 시스템을 보호하는 Security 의 개념이기 때문이다.

 그럼 화이트 해킹(White Hacking)은 기술을 선의로 사용하는 것이다. 시스템이 안전한가 검증해 주고 문제가 발견되면 이를 알림으로써 사고를 예방하는 효과를 목적으로 하는 행위이다.

 화이트 해킹에 대해서 정부에 민원을 넣고, 보안 솔루션을 사용하고 있는 기업에 지적을 하면 돌아오는 답변은 간단하다. 법적으로 불법이니까 하지 말라고 한다.

 과연 화이트 해킹이 불법일까?
 정확한 법적 개념으로 이야기하자면, 화이트 해킹 자체는 불법이 아니다. 화이트 해킹을 정부나 기업이 받아 들여서 진행하는 것이냐 아니야에 의해서 불법이냐 아니냐가 결정될 뿐이다. (시스템을 소유한 곳에서 문제를 찾을 생각이 없다고 하는데, 그것에 대해서 문제를 찾겠다고 시스템을 분석하는 작업이 진행되서 만약에 위해-문제를 건드려서 작동 불능 또는 데이터 손실-이 발생했다면 위법으로 간주되기 때문이다.)

 화이트 해킹을 받아 들이지 않는 시스템을 Secure(안전)하다고 평가할 수 있을까?
 솔직히 이 질문에 대해서는 단순 명료하게 이야기할 수 있다. 절대로 안전하지 않기
때문에 받아 들이지 않는다고 말할 수 있으며, 문제가 표면화되기 전까지 안전하게
만들 생각이 없다라고 스스로 자인하는 것과 같다는 것이다.

 화이트 해킹의 기본 기술 중에 리버스 엔지니어링이 있다. 이 리버스 엔지니어링의
가장 쉽게 노출되는 것이 바로 ActiveX 기술이다. 서버와 클라이언트가 통신하는
방법론 자체에 대한 기술을 클라이언트에서 알 수 있게 해 주기 때문이다.
 WWW의 기술적인 내용을 보면 클라이언트는 서버가 어떻게 동작하는 지 알 수 없도록
하는 부분이 중요한 요소를 차지하고 있다.(솔직히 클라이언트 단에서 데이터 처리가
많을 수록 WWW-웹의 보안을 해친다는 것도 알고 있을 것이다. 과도한 JavaScript도
이에 해당한다고 보고 있습니다.)

 재화와 관련해서 가장 많은 정보가 왔다 갔다 하는 것이 바로 금융기관이라고 할 수
있다. 근데 대한민국 금융 기관의 보안 사고는 생각보다 많으며, 그 피해도 매우 크다.
왜 그럴까? 그 원인을 파악하기 위해서 금융기관이나 이에 대한 감독 기관인 금감원에
화이트 해킹 이야기를 꺼내는 순간 매우 불쾌하게 생각할 것이다. (자신들이 추구하는 보안-안전이 아님-이 그렇게 허술해 보이냐고 말이다.) 그럼, 그렇게 자신 있으면 화이트 해킹을
허락해 줄 수 있냐고 물어 보면, 한번도 허락을 한 적이 없다는 사실이 논리적 반증이 된다는것을 그들도 알고 있을 것이다.

 화이트 해킹을 통해서 안전한 시스템을 만들 수 있는 기술을 확보해 나갈 수 있다는
사실을 언제나 인정할 지에 대해서는 알 수가 없다. 대한민국에서 화이트 해킹에 대한
인식과 제도적으로 보장되는 상황이 되어야 한다는 것은 동의하지만, 불법도 아닌데
불법으로 몰아가는 정부나 기관, 기업들의 태도는 고쳐져야 한다는 생각을 전하고
싶을 뿐이다.

2011년 7월 6일 수요일

ActiveX Hacking Simulation

자료는 ActiveX 보안 취약성을 알리기 위한 목적으로 가상의 Hacking 계획을 수립해서 알리는 것이다. 자료를 근간으로 해서 Hacking 경우에 발생할 있는 모든 책임은 이를 수행한 사람에게 있다는 사실을 주지하시기 바랍니다.



  1. Hacking 위한 환경 구성
    1. 현재의 ActiveX 활용한 보안 System Virtualization 대한 대응이 완벽한 상태는 아니다. 특히 Linux에서 진행되는 Virtualization 대해서는 속수 무책인 부분이 많다.
    1. Virtualization 이용해서 ActiveX 설치되는 운영체제인 Microsoft사의 Windows XP 이상과 Internet Explorer 8 또는 Internet Explorer 9 설치한다.
    2. Virtualization 통해서 설치된 운영체제가 사용하는 Network 정보를 모두 외부에 인증될만한 정보로 교체할 있도록 한다. IP MAC Address 이에 해당한다.
    1. Network 사용 정보를 수집하기 위한 중간 Gateway 역할을 Server 구축한다. Network 상의 정보를 수집할 있는 Snipping 가능해야 한다.
    2. Web 보안의 경우에 https 비해서는 매우 낮은 수준의 보안을 제공하는 경우가 대부분이다. ActiveX 통해서 통신이 이루어지기 때문에 ActiveX 분석하면 어떻게 해석하고 바꿀 있는 확인이 가능하다. 이에 대한 다양한 방법은 공개되어 있다.
    3. 가장 어려운 부분이 공인인증서 부분으로 알려져 있는데, 공인 인증서의 보안 취약점은 국내가 아닌 해외에서 이미 공개가 되어 있는 상태이다. 공인 인증서 파일을 취할 있다면, 행위 분석을 통해서 동일하게 사용하는 것이 가능하다. 공인 인증서에 대한 내용은 Hacking Simulation 부분에서 직접적으로 다룰 없음을 인지하기 바란다. (검색하면 나온다, 영어로 번역해서 Google에서 검색해 보면 많은 자료를 구할 있다.)

  1. ActiveX 분석
    1. ActiveX 분석 방법은 여러 가지가 제공되는 , 가장 쉬운 방법은 Visual Studio 이용하는 것이다.
    1. Visual Studio SPY++ 기능은 해당 실행 파일 ActiveX 어떻게 동작하는지를 있다.

    1. 해당 DLL이나 OCX IDE에서 Loading하면 구조를 파악할 있다. 구조 정보는 SPY++ 통해서 얻은 정보를 참조해서 실행에 필요한 관계를 파악할 있다.

      1. Core 가까운 부분은  De-Assembler 이용하는 방법이다. 방대한 양의 Code 나타나게 되겠지만, 참조하는 DLL(Object)이나 Library 등의 정보가 있다면, C/C++ 기반으로 Pseudo Code 수준까지 얻을 있다.

    1. 공격 대상 Site 행위 분석
      1. Network 중간에 감시할 있는 Server 구축이 되어 있으며, Snipping 여기서 진행하도록 한다.
      2. ActiveX 보안의 취약성이 가장 극대화되는 Browser Internet Explorer 9이다. ActiveX 처리하는 부분이 Browser Engine에서 분리되어 별도의 Plug-in으로 개발이 되었다.
      1. Internet Explorer 8이나 Internet Explorer 9 이용해서 해당 사이트에 접근해서 핵심이 되는 업무를 진행하면서 Network에서 처리되는 내용과 호출되는 명령에 대해서 시간을 Matching해서 확인한다.
      1. 행위 분석을 Flow 개념으로 도식화해서 정리한다. 각각의 예외 경우도 테스트를 통해서 확인한다.

    1. Virtualization 대한 원격 정보 수집 교체
      1. Virtualization 설치된 환경에서 진행되는 정보를 중간에서 수집하거나 변경하는 것을 목적으로 한다.
      2. ActiveX 주고 받는 정보를 감시해서 원하는 내용을 수집하거나 변경하는 것을 목적으로 한다.
      3. Virtualization 대한 API 분석하면 과정을 쉽게 수행하는 것이 가능하다.
      4. Virtualization 직접 원격 제어하는 것이 불가한 경우가 있는데, 때는 Snipping 이용한 Network 상의 정보 수집 교체를 수행한다. ActiveX 자체를 변화시킬 경우에 보안에 의해서 실행이 중지되는 경우가 있으며, Network 통해서 진행되는 정보를 수집하고 변경하는 것은 보안이 감지를 못하는 경우가 많다.

    1. 공격 행위 Modeling
      1. Site 대한 공격은 목적에 의해서 다양한 방법을 동원하게 된다. 위에서 준비된 재료를 활용해서 Modeling 해야 한다.
      2. 첫째로 고려해야 부분은 추적에 대한 대비이다. IP MAC 정보를 변경하는 것으로 1차적인 준비는 끝나 있다고 있다.
      3. 국내가 아닌 해외의 VPN 이용해서 접근함으로써 추적을 피하기 위한 2차적인 준비는 끝난다.
      1. 접근 Scenario 맞춰서 Data Modeling 기획한다. Data Modeling ActiveX 통해서 이루어지는 모든 Data 대상으로 해서 이루어진다.
      1. 과정에서 발생할 있는 예외 상황에 대한 처리를 명시한다.
      2. 목적 달성의 표지를 설정한다. 행위가 종료될 있는 표지를 설정하고,흔적 지우기와 결과물 저장 방법을 처리한다.

    1. Program 개발
      1. 공격 행위는 2가지 상황으로 나누어져 있으며, 2개는 개별적인 Program 개발을 요구한다.
      2. 공인 인증서 무력화보다는 정보 변경을 목적으로 한다면, 일반 사용자 System 침입하고 설치한 후에 작동하는 구조를 선택한다.
      1. 공인 인증서 무력화가 가능하다면, 외부 Network 통해서 Dummy System 이용해서 원하는 목적을 달성하는 것이다.
      1. Program 개발 과정에서 회피를 위한 Code 기법을 충분히 구성하며, 자동 소멸될 있도록 조건 설정은 필수이다.
      2. 행위의 실행에 관련해서는 기술하지 않는다.

    1. 주의 사항
      1. ActiveX 통해서 구현되는 경우에도 Site 내에 보안 구조가 설치되어 있는 경우가 있다.이것이 Network 통하지 않는 보안 구조일 경우(예를 들어 OTP) 공격을 해도 주요한 요소를 변경시킬 없다. 대신, 사용자의 입력 정보를 변경시켜서 목적을 달성할 수도 있다.
      2. 부당한 이익을 위해서 해당 Simulation 방법을 사용하는 일은 없도록 하자.
      1. 내용은 정말로 행위에 필요한 대략적인 내용만 다루고 있다. 이유는 실제적인 Code 단위의 내용을 다루면 그건 엄연히 불법이기 때문이다.