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

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% 막을 수 있는 방법이나 시스템을 갖추고 있는 은행은 현재로서는 없다.

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

2011년 7월 8일 금요일

보안 인식 자체가 없는 조직들과 대화는 위험하다.

 최근에 해외 Hacking 정보를 공유하는 Site에 올라온 국내 Web Site를 보면, 소규모부터 대규모까지 다양하다. 그 목표도 일반 기업부터 기관, 단체 심지어 교회까지 포함이 된다. (교회에도 주민등록번호 DB가 있는 경우도 있다.)

 문제는 보안 인식 자체가 없는 조직들이 많다는 것이다. 심각성이 있어서 경고를 하면 바로 반응을 보여야 하는데 말이다. 경고를 하면 그런가 보다 하고 듣거나 협박하거나 거짓말이라고 생각하는 경우도 많다.
 세금이 투입되는 기관이나 단체에 대해서는 알려주는 편인데, 심각하게 받아 들이거나 담당자가 연락이 없는 경우가 많다는 것이다. 이러한 곳에 지원금을 주는 정부 담당자도 책임을 면할 수 없을 것이다.
 예를 들어 2011년 7월 4일 Hacking을 당한 월드 사이버 게임즈 (http://sg.wcg.com/r00t.htm)의 경우에 7월 6일 해당 사실을 알렸지만, 2011년 7월 8일 현재까지 그대로인 상태이다. Web Site 운영을 외주에 맡기고 있다고 해도 Hacking 사실을 알리고 조치를 취했어야 하는 부분이다.



 이러한 사례는 최근에 비용 때문에 관련 인력을 채용하거나 교육하는 것에 관심을 보이지 않는 경우에 더욱 심각하게 나타나는 것으로 나타나고 있다. 월드사이버게임즈의 경우에 문화관광부나 방송통신위원회로부터 지원을 받고 있는 것으로 알고 있는데, 이런 일이 발생하는 것은 문제가 심각하다. (추가로, WCG와 2011년 7월 8일 18시 40분 경 통화한 결과 해당 사실을 방통위와 보안업체에 연락했는데, 위 사실을 확인하지 못했다고 한다. 그래서, 그냥 허위로 판단했다고 한다. 확인이라도 제대로 해보지. 위의 보안업체와 계약한 업체들은 정말로 불쌍하다.)

 보안 인식 자체가 없기 때문에 보안에 관련 어떤 위험을 경고해도 듣지 않는다. 그런 상황의 마지막은 모든 것을 잃는 것인데도 말이다. Unix나 Linux 시스템에서 root 의 권한을 확보했다는 것이 무엇을 의미하는지 아는 사람은 WCG와 같은 상황이 얼마나 위험한지 잘 알 것이다. 근데 오늘(2011년 7월 8일 18시까지)까지 연락이 없다. 아마 정보를 공개해서 외부에서 지적을 심하게 받아야지 아마 정신을 차릴 것이다.
(이러한 정보 공개로 인해서 Hacker가 다른 시도를 할 가능성도 있지만, 난 이미 해 줄 수 있는 일은 다 해줬다. 책임을 묻고 싶다면 연락을 받았던 담당자들에게 물어야 할 것이다.)

 보안 인식 자체가 없는 조직들과 대화가 위험한 이유는 위에서와 같다. 그들에게 위험을 경고하고 조치를 요구해도 대답하지 않는다는 것이 더 큰 위험을 초래할 수 있다는 것이다. 보안에 대한 인식이 Hacking이나 보안 위협에 대해서 방어를 하면 된다는 식의 사고로 점철되어 있기 때문이다. 솔직히 IP 단위의 방화벽은 아무 의미가 없다. Server에 접근할 수 있는 IP 정보를 알아내면 그런 방화벽 따위는 아무 의미가 없기 때문이다.

 System 설계 단계에서부터 보안을 고려하고 담당자를 배정하고, System 자체에서 보안 요소를 관리하는 것은 매우 중요한 부분이기 때문이다. 그런 부분을 고려하지 않고 설계를 진행하고 관리하는 순간부터 보안의 위험에 빠지게 되는 것이다. 조직이 이에 대해서 관심을 안 가지고 Web Site를 이용해서 홍보하는 것에 집중하고 사용자 정보나 다양한 정보를 Web Site에 등록시키는 행위는 자살 행위가 될 것이다.

 WCG는 대표적인 e-Sport 단체이기 때문에 공개적으로 다루었다. 이러한 곳이 너무나도 많다는 사실에 대해서 심각성을 느껴야 한다.

 그럼 앞으로 개선되기를 희망해 본다.

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 단위의 내용을 다루면 그건 엄연히 불법이기 때문이다.


    홈