[개요]


국내 인터넷 뱅킹이나 공공기관 웹사이트에서는 ActiveX 기반의 모듈이 구동되어야만 사이트 서비스를 이용할 수 있는 곳이 많이 있습니다. 이러한 ActiveX는 키로깅 방지, 방화벽(백신), 암호화 등 웹브라우저에서 기본적으로 제공되지 않는 기능을 구현하는데 사용되어 지고 있습니다. 이는 해킹 공격을 방어해 준다는 부분도 있지만, 반대로 부작용이 많은 것이 사실입니다. ActiveX의 남용은 다음과 같은 문제점들을 내포하고 있습니다. 


    • 웹 접근성 훼손 : 외국인 : “천송이 옷 사게 해 주세요”
    • 사용자 동의 없는 무분별한 모듈의 중복 설치 : 난 다른 AV 쓰고 있다구... 버럭!!!
    • 시스템의 불안정화 : 최소한 블루스크린은 뜨지 말게 해야지...



    [분석]

    이러한 사이트에서 ActiveX의 구동 없이 사이트를 이용할 수 있는 방법을 없을까 고민을 해 보았습니다. 국내 유명 금융 사이트 및 공공기관 사이트의 트래픽(HTTP & HTTPS)을  Packet Sniffing + Web Proxy 방식을 이용하여 분석하였고, 특정 ActiveX가 어느 시점에 어떻게 구동되는지를 일일이 확인해 보았습니다. 분석 결과, 우회 방식은 크게 아래의 3가지로 정리를 할 수가 있겠습니다.



    [A. DNS Sinkhole 방식]

    금융결제원, 나이스, 현대카드 등에서는 ActiveX 모듈을 특정 URL에서부터 받아 오도록 되어 있습니다. 이 경우는 해당 domain name을 127.0.0.1이나 존재하지 않는 IP로 박아 넣으면 쉽게 우회가 가능합니다(이 방식은 기존에 인터넷에 많이 나와 있음).

    예제
    • 금융결제원 http://ahnlabdownload.nefficient.co.kr/aos/plugin/aosmgr_common_.js
    • 나이스 http://update.nprotect.net/netizenv55/gov/neisnew/fucktizen55_p.js
    • 현대카드 https://supdate.nprotect.net/netizen/card/hyundaicard/81/fucktizen_multios_check.js



    [B. Web Proxy를 이용하여 URL을 변조하는 방식]

    농협, 국민은행과 같이 ActiveX 모듈에 사용되는 js 파일을 외부 서버를 사용하지 않고 자체적인 웹서버에서 제공하는 곳도 있습니다. 이 경우에는 A 방식을 사용하게 되면 사이트 자체를 이용하지 못하게 됩니다. 이 경우에는 Web Proxy 를 이용하여 특정 URL을 제거하는 방식을 사용해야 합니다(요즘에는 HTTPS 방식을 사용하는 사이트가 많이 있기 때문에 SSL 통신까지도 분석을 할 수 있는 Proxy가 필요함).

    예제
    • 농협 https://banking.nonghyup.com/service/js/so/ahnlab/aos/aosmgr_common_.js
    • 국민은행 https://oimg1.kbstar.com/js/common/nprotect/op_netizen.js




    [C. HTTP Response를 일일이 분석하는 방식]

    삼성카드의 경우에는 A나 B 방식으로는 제대로 된 제거가 되지 않습니다. 이 경우에는 추가적으로 HTTP Response를 일일이 분석을 하여 관련 부분을 제거(주석을 달거나 해서)를 해야 합니다(이러한 사이트는 분석에 시간이 많이 걸림).

    예제
    • 삼성카드 - 아래 빨간색 부분을 제거(주석을 달거나)를 해야 함
    function s*a*d*o*i*(...) {
      // A*S*A*n*a* *n*i*e*S*c*r*t*)*...
      // g*A*s*a*g*t*n*o(...);
      ...
      if(window.location.href.indexOf('menuId=NHPIMCSPCX') > -1) {
          if(a*s*i*_*e*()) {
          // a*s*r*p*r*n*o*l*();
        ...
        } else {
          alert('PC 방화벽 프로그램이 설치되지 않았습니다. \n\n설치 후 이용해주시기 바랍니다.');
        }
      } else {
        ...
      }
    }




    [결과]


    분석한 20개 사이트에서 방화벽 ActiveX 모듈은 모두 제거 성공하였고, 키로깅 방지 ActiveX 모듈은 일부 제거를 성공하였습니다. 다만, PKI 인증과 같은 암호화 ActiveX 모듈은 제거를 하였을 때 서비스(로그인&이체 등)자체를 이용하지 못하기 때문에 우회가 어려운 것으로 파악되었습니다(사이트 주소 ABC순). 


     금융 및 공공기관명 

     사이트 주소 

     우회 가능한 모듈 

     BC카드 

     bccard.com 

     nProtect Netizen v5.5, nProtect KeyCrypt V6.0 

     시티은행

     citibank.co.kr 

     AhnLab Online Security 

     인터넷 우체국

     epost.go.kr 

     EasyKeytec (키보드 보안 프로그램

     국세청 이세로 

     esero.go.kr 

     nProtect KeyCrypt V6.0 

     하나은행 

     hanabank.com 

     AhnLab Online Security 

     현대카드 

     hyundaicard.com 

     nProtect Netizen v5.5 

     IBK기업은행 

     ibk.co.kr 

     nProtect Netizen v5.5 

     KB카드

     kbcard.com 

     nProtect Netizen v5.5, npEfdsWCtrl 

     KB국민은행

     kbstar.com 

     nProtect Netizen v5.5 

     외환은행

     keb.co.kr 

     nProtect Netizen v5.5 

     금융결제원

     kftc.or.kr 

     AhnLab Online Security 

     나이스 

     neis.go.kr 

     nProtect Netizen v5.5, nProtect X-Guard 

     NH농협

     nonghyup.com 

     AhnLab Online Security, SoftCamp Secure KeyStroke 4.0 

     IBK기업은행(오픈뱅킹) 

     open.ibk.co.kr 

     nProtect Netizen v5.5 

     특허청 특허로

     patent.go.kr 

     nProtect Netizen v5.5, nProtect KeyCrypt V6.0 

     삼성카드 

     samsungcard.com 

     AhnLab Online Security 

     신한은행 

     shinhan.com 

     AhnLab Online Security, SoftCamp Secure KeyStroke 4.0 

     신한카드 

     shinhancard.com 

     nProtect Netizen v5.5 

     스탠다드차타드은행 

     standardchartered.co.kr 

     AhnLab Online Security

     우리은행 

     wooribank.com 

     AhnLab Online Security 




    [결론]


    이러한 우회이 가능한 것은 특정 방화벽(AV)의 문제라기 보다는 웹브라우저상에서 백신을 구동을 시키려고 하는 구조상의 문제점이 존재하기 때문입니다(위에 열거된 ActiveX 말고도 다른 것들도 우회가 가능함). 결론적으로, ActiveX의 남용을 막기 위해서는 특정 사이트에 들어 가기만 하면 무조건 설치하도록 하지 말고 사용자들의 동의를 얻어 선택적으로 설치를 할 수 있도록 하는 배려가 필요할 것입니다(동영상은 현재 비공개 상태).