1. 개요

- 보안권고문 게시(1.24) 이후 국내 앱 마켓에서 유통 중인 금융社 위장 사기앱, 위장 사이트 추가 발견

> 위장 사기앱 3개와 관련 위장 사이트 83개

 

2. 주요 내용

- 주식, 비상장 코인 투자 정보 제공을 주제로 홍보해 앱 설치 유도

 

[사진 1] 위장 앱 및 기능

3. 침해지표

- 대부분 해외 인프라를 활용하였고 소스코드 일부에서 중국어 확인

순번 1차 위장 사이트 2차 위장 사이트
1 www[.]dtqyipq[.]store www[.]cipsid[.]xyz
2 - www[.]kjpda[.]com
3 www[.]djjuedn[.]store www[.]cioism[.]xyz
4 - www[.]lsjas[.]com
5 www[.]jgisuxq[.]store www[.]sankghi[.]com
6 - www[.]klujz[.]com
7 - www[.]tiosjv[.]xyz
8 - www[.]tusii[.]xyz
9 - www[.]bjzuikoaj[.]com
10 - www[.]yxzugfb[.]com
11 - www[.]vcmxuiofn[.]com
12 - www[.]kjqda[.]com
13 - www[.]tphpliy[.]store
14 - www[.]zmfljgn[.]xyz
15 - www[.]mlsiughr[.]xyz
16 www[.]oepypdd[.]store www[.]xbvhjkd[.]xyz
17 - www[.]tuiwpas[.]com
18 - www[.]sigen[.]today
19 - www[.]cipsid[.]xyz
20 - www[.]doipdf[.]xyz
21 - www[.]dsfkdd[.]com
22 - www[.]sooja[.]xyz
23 - www[.]dasjda[.]com
24 www[.]ahbovtx[.]store www[.]jxiue[.]xyz
25 - www[.]dfasfu[.]com
26 - www[.]wiyauisuy[.]xyz
27 - www[.]jksdv[.]com
28 - www[.]asnm[.]xyz
29 www[.]djafovj[.]store www[.]nkxy[.]xyz
30 www[.]erweliq[.]store www[.]hjiizo[.]xyz
31 - www[.]sfisyd[.]xyz
32 - www[.]cdefdau[.]xyz
33 - www[.]fedjf[.]com
34 - www[.]asfuw[.]xyz
35 - www[.]drgcv[.]xyz
36 - www[.]ieytuigh[.]xyz
37 - www[.]csbikdkf[.]xyz
38 www[.]qqtrcvf[.]store www[.]sufyz[.]xyz
39 - www[.]guafjnhja[.]xyz
40 www[.]kwgnma[.]store www[.]kbai[.]top
41 - www[.]tyjhnb[.]xyz
42 - www[.]fdgeda[.]com
43 www[.]jbtlmve[.]store www[.]yiosho[.]com
44 www[.]zciqgpk[.]store www[.]yrxsl[.]com
45 - www[.]klhjs[.]com
46 - www[.]iiuqa[.]com
47 - www[.]fsdut[.]xyz
48 - www[.]sdzaqa[.]com
49 www[.]lpmreoo[.]store www[.]loilos[.]xyz
50 - www[.]tusyxnnv[.]com
51 www[.]sqrtexz[.]store www[.]jsloos[.]xyz
52 - www[.]zzlasjfh[.]com
53 www[.]rnoclbs[.]store www[.]yisloc[.]xyz
54 - h5[.]cenciakr[.]com
55 www[.]asjnvsr[.]store h5[.]bmc[.]so
56 www[.]yqmqgqj[.]store www[.]ziouay[.]com
57 www[.]dztzmay[.]store www[.]ciisoe[.]xyz
58 - www[.]ykfqwnp[.]store
59 - www[.]mxkgji[.]xyz
60 - www[.]nkdhgui[.]xyz
61 www[.]rppuriw[.]store www[.]giish[.]xyz
62 www[.]ldweezt[.]store www[.]wuaygbv[.]xyz
63 - www[.]kloijin[.]com
64 - www[.]vrdjhy[.]xyz
65 - www[.]suxghhf[.]xyz
66 - www[.]gsfds[.]com
67 - www[.]dsfxh[.]xyz
68 www[.]meugmpn[.]store a[.]meugmpn[.]store[:]34555
69 www[.]uxszepe[.]store zaif28[.]net
70 www[.]ihimrsb[.]store www[.]bvhjgdsyui[.]com
71 - www[.]brcsgjr[.]store
72 www[.]rmtpshj[.]store www[.]yisub[.]xyz
73 www[.]oaeqxyh[.]store -
74 - www[.]dsfsha[.]xyz
75 - www[.]itobmdnc[.]com
76 - www[.]loidis[.]xyz
77 - www[.]jkueo[.]xyz
78 www[.]mwoitcb[.]store a[.]mwoitcb[.]store[:]34555
79 - app[.]happyshopdz[.]com
80 www[.]hpakexo[.]store www[.]xiolki[.]xyz
81 www[.]lvurhfw[.]store www[.]podj[.]xyz
82 www[.]eiusz[.]xyz -
83 www[.]buqhnop[.]store www[.]zoiakj[.]xyz

 

- 연관 MD5

MD5 F86AE1AA8FFDBD48D594EC949F7BD153
C4F8245F7AC17050357A7B949E46DC65
2E5F5701EAB26ED751BC925995904C5F

 

4. 대응방안

- 발견된 앱은 백신社와 협조하여 탐지 조치

- 금융보안원 등 유관 기관에 해당 내용을 전파하여 사기앱과 연계된 사이트 차단

 

5. 참고

[1] https://www.ncsc.go.kr:4018/main/cop/bbs/selectBoardArticle.do?bbsId=SecurityAdvice_main&nttId=121718&pageIndex=1&searchCnd2=

1. 개요

- 최근 국내 앱 마켓을 통해 국내 주요 금융社 명칭과 브랜드 로고를 교모하게 변조한 사기앱이 유포

- 해당 앱은 누구나 국내 앱 마켓에서 검색 및 설치가 가능

> 국민 피해 예방을 위해 사기 수법·위장 앱 명칭 등 내용을 공개

 

2. 주요 내용

- 주식, 비상장 코인 투자 정보 제공을 주제로 홍보해 앱 설치 유도

 

[사진 1] 위장 앱 및 기능

 

- 정상 정보·비정상 정보가 혼재된 금융정보 제공 및 사용자 투자의향 표명 시 상담 채널(텔레그램) 연결

> 앱 실행 시 위장 사이트로 연결하며, 회원가입·로그인·일부 조작된 금융 정보 등을 표출

 

[사진 2] 앱 실행 시 회원가입·로그인 요청 및 일부 조작된 거래정보 표출

 

- 상담 채널에서는 이체 요청 후 잠적하는 수법으로 자금 절취

① 비상장 코인에 대해 투자 권유

② 투자금 입금용 계좌번호에 자금 이체 요청

③ 입금 시 수수료 등을 사유로 추가 입금 지속 요구

④ 피해자가 환불 등을 요청시, 잠적

 

3. 침해지표

- 앱 내 포함된 1차 위장 사이트로 접속하면 2차 위장 사이트로 리다이렉션 (두 사이트가 한 세트로 동작)

순번 1차 위장 사이트 2차 위장 사이트 사이트명
1 a[.]phxvsmz[.]store www[.]folisc[.]com 한화
2 a[.]riopcjj[.]store www[.]zoity[.]xyz HANA INT
3 a[.]rnoclbs[.]store www[.]hkahd[.]xyz DB운용에
4 a[.]zaibhmk[.]store www[.]zopsf[.]xyz 유안타 T
5 a[.]xjtyqnw[.]store www[.]ciosly[.]xyz KB AI
6 a[.]wieoawz[.]store www[.]shinhanfund[.]xyz 신한자산운용

 

- 동일한 방식으로 국내 금융社 뿐만 아니라 해외 금융社, 거래소 등을 위장한 사이트도 추가 확인

순번 1차 위장 사이트 2차 위장 사이트
1 a[.]pkxvsmz[.]store www[.]folisc[.]com
2 a[.]riopcjj[.]store www[.]zoity[.]xyz
3 a[.]rnoclbs[.]store www[.]hkahd[.]xyz
4 a[.]zaibhmk[.]store www[.]zopsf[.]xyz
5 a[.]ynrxpkx[.]store www[.]jiudfr[.]xyz
6 a[.]xjtyqnw[.]store www[.]ciosly[.]xyz
7 a[.]wieoawz[.]store www[.]shinhanfund[.]xyz
8 a[.]vzfctgx[.]store www[.]tsuhd[.]xyz
9 a[.]rouurxt[.]store www[.]djueh[.]xyz
10 a[.]emmgadv[.]store www[.]ljiaw[.]com
11 a[.]kwgrnma[.]store www[.]ghdu[.]xyz
12 a[.]ldweezt[.]store www[.]fislod[.]xyz
13 a[.]oepypdd[.]store www[.]bopsi[.]xyz
14 a[.]zcttesa[.]store www[.]djeruy[.]xyz
15 a[.]tphliy[.]store h5[.]cscmapplic[.]xyz
16 a[.]donelwf[.]store www[.]jclise[.]xyz
17 a[.]tnlejon[.]store www[.]zshhsi[.]xyz
18 a[.]jbtlmve[.]store www[.]yiosfe[.]com
19 a[.]dtqyipq[.]store www[.]cipsid[.]xyz
20 a[.]miknddc[.]store www[.]jxbyudufs[.]xyz
21 a[.]wpuvxrn[.]store www[.]piv3[.]com
22 a[.]lpmreoo[.]store www[.]xvsto[.]com
23 a[.]vfnnhlx[.]store www[.]goiwey[.]com
24 a[.]ihimrsb[.]store www[.]topsixj[.]xyz
25 a[.]kpdlhgz[.]store www[.]huiwas[.]com
26 a[.]erweliq[.]store www[.]copeis[.]com
27 a[.]sbwyyqs[.]store www[.]gusisy[.]com
28 a[.]ybuaiot[.]store www[.]tposl[.]xyz
29 a[.]kqoykjn[.]store www[.]tioesl[.]com
30 a[.]vwmnasu[.]store www[.]fgdku[.]xyz
31 a[.]vvjwnmz[.]store www[.]copwx[.]xyz
32 a[.]pfmczyc[.]store www[.]kkjqaz[.]xyz
33 a[.]spgvehi[.]store www[.]ryshos[.]xyz
34 a[.]oaeqxyh[.]store www[.]afhas[.]xyz
35 a[.]zciqgpk[.]store www[.]ljkoc[.]xyz
36 a[.]rppuriw[.]store www[.]ymlisj[.]xyz
37 a[.]aadnhtr[.]store www[.]huiwus[.]com
38 a[.]ckwausl[.]store www[.]fopsjl[.]xyz
39 a[.]gldltyu[.]store www[.]lopwb[.]com
40 a[.]efekftr[.]store www[.]yopdos[.]com
41 a[.]sqrtexz[.]store www[.]kliow[.]xyz
42 a[.]oihckla[.]store www[.]goplpr[.]xyz
43 a[.]djjuedn[.]store www[.]foloix[.]xyz
44 a[.]ebrehld[.]store www[.]yshsns[.]xyz
45 a[.]tpqqkaf[.]store www[.]ropsows[.]xyz
46 a[.]fwhfqkr[.]store www[.]kloieds[.]com
47 a[.]bfwheyk[.]store www[.]accerxas[.]com
48 a[.]mofwepg[.]store www[.]djeruy[.]xyz
49 a[.]lvowzbi[.]store www[.]chneyxvgue[.]xyz
50 www[.]fdasgrdeg[.]store www[.]accerxan[.]com
51 a[.]agplnnw[.]store www[.]xoepdi[.]com
52 a[.]bdemzuc[.]store www[.]dckgti[.]top/kjhek
53 a[.]tskaewj[.]store www[.]aopeses[.]xyz
54 a[.]zuobazx[.]store www[.]accerxan[.]com
55 z[.]whbppxbv[.]store www[.]cmeo[.]com/syn/?y=crypto
56 a[.]syodobc[.]store www[.]flpoesd[.]xyz
57 a[.]cpjmise[.]store www[.]dsdfj[.]xyz
58 a[.]btgevwa[.]store www[.]gdfkhs[.]xyz
59 a[.]ecpotev[.]store www[.]huioesp[.]xyz

 

- 연관 IP 및 MD5

IP 104.22.2.180, 18.166.69.216
MD5 8fd044efd4dd587e2f88c99317371a15 9c2c0d531128233fd5e5ce1fe73afd12
63a515eeb2ef9f73d5b4496f95816e22 1a2c2796572417d7962d6781fee0cb0d
e44fa1bc393b73cbe85c1c0667caf9a4 1ef42484fe8c64382b34fedb1ca93b2e
386afb1e9cd65f88b3faf4031170fc2b 0353251c0ecb5c04ae90ad4c34fd01c8
05b4f435a757f1af3e1e3f269fe3aa3a c52b6d4a3e6f49239397a7f6f5690c78
68c9dafde8be4306b2626cc4a8a5406b 45cdb45b4a0eb201acce1b6dc0477601
7c931a39ce321b216dd22fbae69273a9 768605b5fd6721d7acd3c1a6523955b8

 

4. 대응방안

- 발견된 앱은 백신社와 협조하여 탐지 조치

- 금융보안원 등 유관 기관에 해당 내용을 전파하여 사기앱과 연계된 사이트 차단

 

5. 참고

[1] https://www.ncsc.go.kr:4018/main/cop/bbs/selectBoardArticle.do?bbsId=SecurityAdvice_main&nttId=112826&pageIndex=1&searchCnd2=#LINK

1. 개요

- 북한 Lazarus 해킹 그룹이 INISAFE CrossWeb EX, MagicLine4NX 외에도 VestCert, TCO!Stream 제로데이 취약점 악용

> INISAFE CrossWeb EX, MagicLine4NX 취약점 또한 공격에 지속적으로 활용

 

- VestCert: 예티소프트社에서 제작한 Non-ActiveX 방식의 웹 보안 소프트웨어(공인인증서 프로그램)

- TCO!Stream: (주)엠엘소프트社에서 제작한 자산관리 프로그램

> TCO!Stream은 서버-클라이언트로 구성

> 서버: 소프트웨어 배포 및 원격제어 등의 기능을 제공

> 클라이언트: 서버와 통신을 위해 항상 3511/TCP Listening 상태

 

- Lazarus는 지속해서 국내 사용 소프트웨어의 취약점을 찾아 공격에 악용하므로, 해당 소프트웨어를 사용할 경우 반드시 최신 버전 업데이트 적용

 

2 주요 내용

2.1 VestCert 취약점

- 공격자는 기업 내부로 최초 침입을 위해 워터링 홀 기법을 사용

① 사용자가 취약한 버전의 VestCert가 설치된 환경에서 감염된 웹 사이트에 접속

② VestCert의 써드파티 라이브러리 실행 취약점으로 인해 PowerShell 실행

③ PowerShell을 이용해 C2 서버 접속 및 악성코드 다운, 실행

워터링 홀(Watering Hole)
- 물웅덩이 근처에 매복해 먹잇감을 노리는 사자의 모습에서 유래
- 공격자는 대상에 대한 정보를 미리 수집하여, 자주 방문하는 웹 사이트를 알아낸 뒤 해당 사이트의 취약점을 이용해 침해하여 악성코드 업로드
- 피해자가 해당 웹 사이트에 접속할 경우 악성코드를 유포
- 특정대상을 대상으로 하거나, 해당 웹 사이트에 접속하는 모든 사용자들을 대상으로 할 수도 있음

써드파티 라이브러리 실행 취약점
- 써드파티(Third-party)란 제품이나 서비스의 개발과 관련하여 직접적으로 관련이 없는 외부 업체나 개인을 뜻 함
- 즉, 소프트웨어 개발에서 써드파티는 애플리케이션 개발자가 직접 개발하지 않은 외부 제공 요소
- 써드파티(Third-party) 라이브러리 실행 취약점은 애플리케이션에서 사용되는 외부 제공 라이브러리에 존재하는 보안 취약점을 의미

 

[사진 1] VestCert 취약점으로인해 실행된 악성코드를 다운로드하는 PowerShell 명령어

 

2.2 TCO!Stream

- 공격자는 최초 침입 후 내부 전파를 위해 TCO!Stream의 취약점을 이용

> 공격자는 자체 제작한 악성코드를 이용해 서버에서 특정 파일을 다운로드하고 실행하는 명령어를 생성하여 클라이언트에 전달

> 명령을 수신한 클라이언트는 서버에 접근해 악성파일을 다운로드 및 실행

 

- 공격자가 제작한 악성코드의 커맨드 라인은 다음과 같음

[사진 2] 커멘드 라인

 

파라미터 설명
<Malware> 악성 파일명 (MicrosoftVSA.bin, MicroForic.tlb, matrox86.bic, matrox86.tcm, matrox86.tcm, wincert.bin, mseng.bin)
<TCO DeviceID> TCO 서버의 Device ID
<Destination IP> 대상 클라이언트 시스템의 IP
<Destination Port> 대상 클라이언트 시스템의 포트 (3511)
<Job ID> 서버에서 사용되는 Job ID

 

- 악성코드 파일 배포 위치와 실행명령은 다음과 같음

> 배포 파일 위치: C:\Packages\<배포 모듈 이름>\<버전>\<최종 경로>\<배포 파일명>

> 실행 명령: loadconf.exe –rt5y65i8##7poi88++5t4t54t54t5n

> 해당 명령은 백도어 다운로더 loadconf.exe를 C:\Temp\ 경로에 다운로드하고 인자와 함께 실행시키는 명령

[사진 3] 복호화된 명령 中 일부

 

3. 대응방안

① 최신 버전 업데이트 적용

- 해당 취약점을 분석해 KISA와 관련 업체에 전달 및 현재는 패치가 완료된 상태

> 해당 소프트웨어들은 자동 업데이트가 적용되지 않는 소프트웨어로 업데이트를 적용하지 않은 환경이 많음

제품명 영향받는 버전 해결 버전
VestCert 2.3.6 ~ 2.5.29 2.5.30
TCO!stream 8.0.22.1115 이하 8.0.23.215

 

- 서비스 운영자: 벤더사를 통해 최신 버전 교체

- 서비스 이용자

> 작업관리자의 프로세스 탭에서 ① Goji → ② VestCert를 반드시 순서대로 종료

> [제어판]-[프로그램]-[프로그램 및 기능]에서 VestCert 버전 확인 후 제거 클릭

※ TCO!stream은 서비스 운영자가 최신버전으로 교체 시 자동 업데이트됨

> 이용 중인 금융사이트에 접속하여 해결된 버전의 프로그램 재설치

[사진 4] 삭제 방법

 

② 침해지표 보안 장비 적용

 

3. 참고

[1] https://asec.ahnlab.com/ko/53832/
[2] https://www.boannews.com/media/view.asp?idx=119059&page=1&kind=1
[3] https://www.boho.or.kr/kr/bbs/view.do?searchCnd=1&bbsId=B0000133&searchWrd=&menuNo=205020&pageIndex=4&categoryCode=&nttId=71008

1. Veraport

- (주)위즈베라에서 개발한 인터넷 뱅킹 이용시 필요한 보안 프로그램을 통합 설치해주는 솔루션

 

1.1 동작방식

① 은행 웹사이트가 hxxps://127.0.0.1:16106(베라포트의 로컬 웹서버)에 연결해서 JSONP 요청 전송

> getAxInfo와 같은 명령어를 사용해 웹사이트에서 설치 정책을 다운

send_command("getAxInfo", {
  "configure": {
    "domain": "http://banking.example/",
    "axinfourl": "http://banking.example/wizvera/plinfo.html",
    "type": "normal",
    "language": "eng",
    "browser": "Chrome/106.0.0.0",
    "forceinstall": "TouchEnNxKeyNo",
  }
});

 

② 베라포트가 정책파일을 다운로드해서 검증

<pluginInstallInfo>
  <version>2.2</version>
  <createDate>2022/02/18 17:04:35</createDate>
  <allowDomains>www.citibank.co.kr;*.citibank.co.kr;cbolrnd.apac.nsroot.net</allowDomains>
  <allowContexts/>
  <object type="Must">
    <objectName>TouchEnNxKeyNo</objectName>
    <displayName>TouchEnNxKey-multi64</displayName>
    <objectVersion>1.0.0.73</objectVersion>
    <signVerify>confirm</signVerify>
    <hashCheck>ignore</hashCheck>
    <browserType>Mozilla</browserType>
    <objectMIMEType>
      file:%ProgramFiles(x86)%\RaonSecure\TouchEn nxKey\TKMain.dll
    </objectMIMEType>
    <downloadURL>
      /3rdParty/raon/TouchEn/nxKey/nxKey/module/
      TouchEn_nxKey_Installer_32bit_MLWS_nonadmin.exe /silence
    </downloadURL>
    <backupURL>
      /3rdParty/raon/TouchEn/nxKey/nxKey/module/
      TouchEn_nxKey_Installer_32bit_MLWS_nonadmin.exe
    </backupURL>
    <systemType>64</systemType>
    <javascriptURL/>
    <objectHash/>
    <extInfo/>
    <policyInfo/>
    <description/>
  </object>
  <object type="Must">
    …
  </object>
  …
</pluginInstallInfo>

 

③ 베라포트는 objectMIMEType 항목을 통해서 애플리케이션의 설치여부 확인

>  설치가 안되었을 경우 downloadURL, backupURL 항목을 사용해 설치파일 다운

 

④ 베라포트의 사용자 인터페이스를 통해 해당 파일 다운로드

> type 설정 매개변수에 의해 "관리(manage)모드"와 "일반(normal)모드"로 나뉘어짐

[사진 1] Veraport 동작 과정 요약

2. 취약점

- 취약점 요약

① 서명 유효성 검사에 사용되는 루트 인증서 중 하나는 MD5 해싱과 1024비트 RAS키 사용 > 지원 중단이 10년 넘음.
② 다운로드를 위한 연결에 HTTPS를 강제하지 않으며 HTTPS가 사용될 때도 서버 인증서를 검증하지 않음
다운로드한 파일의 무결성을 올바르게 검증하지 않음 > 애플리케이션 서명 유효성 검사를 쉽게 우회할 수 있음
④ 무결성 검증을 쉽게 우회할 수 없더라도 베라포트는 손상된 바이너리를 사용할 지 여부를 사용자 결정에 의존
⑤ 사용자의 선택이나 기타 피드백 없이 애플리케이션을 다운로드하고 설치하는 동작을 시작할 수 있음
웹사이트에서 소프트웨어를 배포하며, 이미 알려진 보안 문제가 있는 오래된 애플리케이션을 제공
⑦ 공개적으로 유출된 서명인증서나 악의적인 정책파일을 철회할 수 있는 장치가 없음
⑧ hxxps://127.0.0.1:16106에서 동작하는 베라포트의 로컬 웹서버에는 영구적 XSS 을 비롯한 여러 보안취약점이 존재

 

2.1 전송 데이터 보호 부족 문제

- HTTPS 연결을 강제하지 않음 > 모든 다운로드는 암호화되지 않은 HTTP 연결을 통해 다운로드

- HTTPS 연결 테스트시 서버의 정당성을 확인하지 않음 > 악성 서버가 hxxps://download.example로 가장한 경우에도 베라포트는 다운로드를 수행

※ 두 번째 이유는 잘 모르겠음

HTTPS Handshaking 과정 중 Server Hello 패킷을 통해 서버의 SSL 인증서를 전송하며, 클라이언트는 이를 검증

공격자가 애초에 SSL 인증서를 사용해 악성 사이트로 가장한 경우에대한 검증인지

혹은 다른 무엇이 있는지에 대한 의문

 

2.2 신뢰 도메인 범위 문제

- 'allowedDomains'에 표시된 URL을 신뢰

> 1.1 동작방식 ②에서는 *.citibank.co.kr를 신뢰 도메인으로 지정

> *.citibank.co.kr는 citibank.co.kr의 모든 하위 도메인을 신뢰한다는 의미

> 서브 도메인 탈취, 웹 사이트 해킹 등으로 악성 사이트를 만들 수 있으며, 악성 파일 유포가 가능해짐

※ 이와 관련된 공격 행위는 2020년 이미 발생한 것으로 확인됨

참고: https://threatpost.com/hacked-software-south-korea-supply-chain-attack/161257/

 

2.3 서명키 보관 문제

- 인증서 발급에 이미 사용이 중단된 알고리즘을 사용

> 1024비트 키와 MD5 서명은 오래전에 사용이 중단되었으며며, 브라우저에서는 이러한 인증기관의 단계적인 제거를 10년전에 시작

※ 참고: https://wiki.mozilla.org/CA:MD5and1024

Authority name Validity Key size Signature algorithm
axmserver 2008-11-16 to 2028-11-11 1024 MD5
VERAPORT Root CA 2020-07-21 to 2050-07-14 2048 SHA256

 

- MS에서는 인증 기관에 대한 요구 사항 중 루트 인증서는 배포 신청일로부터 25년 이내에 만료되어야 한다고 말함

※ 참고: https://learn.microsoft.com/en-us/previous-versions//cc751157(v=technet.10)#a-root-requirements

 

2.4 다운로드 파일 무결성 검증 문제

- 정책 파일에는 다운로드에 대한 해시 기반 검증 옵션이 있음 > 모든 웹사이트에서 이 기능은 사용되지 않음

> 2.2 신뢰도메인 문제를 악용해 공격자가 조작하는 웹 사이트에서 파일 다운로드 및 실행이 가능함

<hashCheck>ignore</hashCheck>

 

2.5 정보 유출 문제

- 베라포트 서버에서 지원하는 명령 중 'checkProcess' 명령이 있음

> 애플리케이션 이름을 넘겨주면 현재 실행 중인 경우 프로세스에 대한 정보를 반환

> 아래와 같이 애플리케이션 이름으로 *를 입력하면 사용자가 어떤 애플리케이션을 실행하고 있는지알 수 있음

> getPreDownInfo 명령을 통한 접근도 가능

let processes = send_command("checkProcess", "*");

 

2.6 HTTP 응답 분할 문제

- HTTP 응답을 생성하는 모든 라이브러리들이 헤더 이름이나 값에서 줄바꿈 문자를 금지한 후 거의 사라진 취약성 종류

> Veraport는 그러한 라이브러리를 사용하지 않으며, 이를 통한 XSS 공격이 가능함

 

3. 조치

- 블라디미르 팔란트

> 2023년 02월 22일 KrCERT에 보고 및 같은 날 KrCERT가 위즈베라에 전달

 

- 위즈베라

> 2월 28일 Veraport 3.8.6.5 출시

> 해당 버전의 경우 제보한 취약점이 수정된 것으로 확인됨

① HTTPS 연결에 대해 서버 유효성 검사
② HTTP 다운로드를 HTTPS로 업그레이드 하여 신뢰할 수 없는 네트워크가 더 이상 설치를 조작할 수 없게함
③ 애플리케이션에 대한 설명을 변경할 수 없음
④ XSS 취약점은 베라포트의 로컬 서버에서 제거 및 JSONP 엔드포인트는 콜백 이름을 허용된 문자 집합으로 제한
⑤ OpenSSL은 Veraport 3.8.6.5에서 버전 1.1.1t로 업데이트 등

 

3.1 남은 문제들

① 2023.03.01 기준 일부 은행 사이트에서만 최신 베라포트(버전 3.8.6.4) 지원

② checkProcess는 2021.10.29 패치되었지만, getPreDownInfo 명령을 통한 접근은 최신 버전에서도 사용 가능

③ mongoose 5.5 라이브러리를 로컬 웹 서버에 사용 > 업그레이드되고 있지 않는 라이브러리

mongoose: 몽고DB와 Express.js 웹 애플리케이션 프레임워크 간 연결을 생성하는 자바스크립트 객체 지향 프로그래밍 라이브러리

④ 임의의 애플리케이션을 강제로 설치할 수 있는 권한이 있음
⑤ 오래된 루트 인증서(1024비트, MD5)가 애플리케이션에 여전히 존재함 등

 

4. 참고

[1] https://palant.info/2023/03/06/veraport-inside-koreas-dysfunctional-application-management/
[2] https://github.com/alanleedev/KoreaSecurityApps/blob/main/05_wizvera_veraport.md

1. 개요

- 필란트는 앞서 한국의 은행 보안 프로그램 TouchEn nxKey, IPinside에 대해 분석글을 게시

- 해당 보안 프로그램의 설치를 강제하는 것이 사용자들에게 더 나은 보안을 제공하지 못함

 

2. 중간 결론

2.1 엔드포인트

- 사용자가 은행 웹사이트 접속 시 공격자 등 외부 요소의 간섭 없이 사용할 수 있어야함

- 이를 위해 MS에서 윈도우 방화벽(방화벽)과 윈도우 디펜더(백신)을 제공

- 한국에서는 타사 백신(안랩 백신)을 사용

- 안랩 세이프 트랜잭션의 경우 백그라운드에서 동작이 없다가, 은행 웹사이트에 접속해야만 동작

- 보통 멀웨어 감염은 은행 웹사이트에서 발생하지 않으므로 호스트를 공격으로부터 보호하지 못함

 

2.2 키보드 보안

- 한국의 여러 보안 애플리케이션이 키보드 입력을 보호하려 함

- 금융권을 대상으로한 트로이 목마 바이러스가 유행해 암호를 탈취

- 당시 화상키보드를 사용해 물리키보드 입력을 통한 키로깅 행위를 방지함

- 트로이 목마 바이러스 변종이 등장해 키 입력 뿐만 아니라 마우스 클릭과 클릭된 위치 주변의 스크린샷을 저장

- 새로운 변종 바이러스가 다수 등장하였지만 한국의 환경에서는 과거의 방식이 많이 사용됨

 

2.3 IP 주소 감지

- 공격자들은 여러 IP를 이용해 공격을 시도

- 한국의 은행들은 새로운 방법을 찾기 보단, 익명 프록시 및 VPN 사용에 대한 대안을 찾고있음_IPinside 설치를 요구

- 일반적으로 로그인 시도가 3~5번 실패할 경우 계정이 잠기거나, 다중 인증을 요구하므로 접속 IP에 대한 관심은 낮은편

- 또한, 금융권을 대상으로한 트로이 목마 바이러스 역시 이를 회피하는 방법을 가지고 있음

- 회피 기능을 이용해 계정을 탈취한 후 악의적으로 사용

 

2.4 인증서 기반 로그인

- 한국 은행 웹사이트 로그인 환경에서 인증서기반 로그인이 많이 사용됨

- 한 때 인터넷 뱅킹을 위해 강제되었지만 더 이상 그렇지 않음

- 인증서를 백업하고 사용하는 모든 디바이스로 옮기는 과정에서 오류가 발생할 가능성이 높음

- 또한, 부가적인 가치를 제공하지 않음

- 결론적으로, 인증서의 실질적인 기능에 대한 의문

 

2.5 소프트웨어 배포

- 설치가 필요한 애플리케이션의 개수가 다수

- 웹 사이트에 따라 필요로 하는 애플리케이션이 다르며, 버전 또한 고려해야하므로 일반 사용자가 관리하기에 어려움이 있음

- 해당 애플리케이션을 은행에서 배포하며, 버전별 호환성에 의해 오래전 버전이 지속적으로 배포되고 있을 수 있음

- 또한, HTTP를 이용해 소프트웨어를 배포하는 경우도 확인됨

- 은행 웹사이트에서 최신 버전의 보안 프로그램과 호환 될 수 있도록 절차 마련이 필요

 

3. 참고

[1] https://palant.info/2023/02/20/south-koreas-banking-security-intermediate-conclusions/

[2] https://github.com/alanleedev/KoreaSecurityApps/blob/main/04_intermediate_conclusions.md

1. 개요

- 팔란트가 앞선 2차례 보안 S/W (TouchEnxKey_라온시큐어, IPinside_인터리젠) 취약점을 공유

- 3차 공개된 게시글은 보안 S/W에서의 인증서 사용 방식에대한 문제를 제시

 

1.1 인증서

- Transport Layer Security (TLS)라는 프로토콜을 사용해 브라우저와 웹 서버간 보안통신(암호화)를 적용

- TLS는 소수의 신뢰할 만한 (trusted) 인증 기관(CA; Certification Authority)에서 발행하는 웹사이트의 인증서(certificate)를 통해 해당 웹사이트가 맞다는 신분을 증명

 

2. 취약점

- 보안 S/W가 암호화 통신을 위해 사설인증서를 PC 영역에 설치하여 사용

※ 보안 S/W : 아래 표 참조

※ PC 영역 : 신뢰할 수 있는 최상위 인증기관의 인증서를 보관하는 영역

※ 설치 : 브라우저와 보안 S/W 간 암호화 통신을 위해 사설인증서를 브라우저가 신뢰할 수 있도록 해당 기관을 최상위 인증기관으로 등록

 

- 현재까지 한국의 어플리케이션에 의해 다음 인증 기관이 설치됨

이름 설치하는 애플리케이션 유효기간 시리얼 넘버
ASTxRoot2 AhnLab Safe Transaction 2015-06-18 to 2038-06-12 009c786262fd7479bd
iniLINE CrossEX RootCA2 TouchEn nxKey 2018-10-10 to 2099-12-31 01
INTEREZEN CA Interezen IPInside Agent 2021-06-09 to 2041-06-04 00d5412a38cb0e4a01
LumenSoft CA KeySharp CertRelay 2012-08-08 to 2052-07-29 00e9fdfd6ee2ef74fc
WIZVERA-CA-SHA1 Wizvera Veraport 2019-10-23 to 2040-05-05 74b7009ee43bc78fce69 
73ade1da8b18c5e8725a
WIZVERA-CA-SHA2 Wizvera Veraport,
Wizvera Delfino
2019-10-23 to 2040-05-05 20bbeb748527aeaa25fb
381926de8dc207102b71

 

- 이로인해 다음과 같은 문제가 발생

① TLS가 제공하는 보호를 약화 시킴

② 인증 기관을 악용할 경우 많은 한국의 사용자를 대상으로 웹사이트를 사칭할 수 있음

 

2.1 사설인증서의 미삭제 문제

- 해당 보안 S/W가 삭제되어도 사설인증서는 삭제되지 않음

※ 인증서 수동 삭제 필요

 

2.2 사설인증서의 악용 문제

- 사용 용도에 대해 제한을 두지 않아 비밀키 유출 시 다른 용도로 악용 가능

※ 타 웹 서버 인증, 코드서명, 이메일 서명 등

 

2.3 사설인증서의 비밀키에 대한 관리 문제

- 사설인증서와 관련된 비밀키의 안전한 보관 여부, 접근 권한에 대해 알지 못하며, 제3자에 의한 감사를 받지 않음

※ 사용자들은 비밀키를 안전하게 보관할 것이라 믿을 수 밖에 없으나, 앞서 공개된 게시글에 따르면 낮은 보안성을 가짐

 

3. 해결방안

- 보안 S/W의 사설인증서 사용이 안전한 통신을 위한 것임을 설명하며, 보다 안전한 방법을 제시

- 방안 : 동일한 인증기관을 모든 컴퓨터에 설치하는 대신, 각각의 컴퓨터마다 다른 인증서를 등록

※ 자체 인증 기관을 설치하지만 한 컴퓨터에서만 유효하고 거기에서만 실행되기 때문에 상대적으로 안전

- 방안의 절차는 다음과 같음

① 새 인증 기관 및 대응되는 비밀키를 (무작위로) 생성

② 컴퓨터의 신뢰할 만한 인증 기관 목록에 추가

③ 127.0.0.1을 위한 인증서를 만들고 위 인증 기관의 비밀 키로 서명

④ 인증 기관의 비밀키를 파기

※ 이니텍 CrossWeb Ex V3의 경우 위와 같은 방법으로 동작하는 것으로 추정_유효기간 시작일이 설치 날짜와 동일한지 보면 쉽게 알 수 있음

 

4. 참고

- https://palant.info/2023/02/06/weakening-tls-protection-south-korean-style/

- https://github.com/alanleedev/KoreaSecurityApps/blob/main/03_weakening_tls_protection.md

1. IPinside

- (주)인터리젠에서 제작한 단말기 정보 수집 및 실시간 개인정보 유출탐지 및 차단 솔루션

- 접속자 단말기 정보 수집, 해외 IP 분석 및 차단, 부정 접속 등을 방지하기 위한 프로그램

 

1.1 IPinside 동작 방식

① IPinside LWS Agent 애플리케이션도 로컬 서버를 통해서 웹사이트와 통신

② 은행 웹사이트가 접속자에 대한 정보를 더 얻기 위해 localhost:21300로 JSONP 요청을 보냄

JSONP (JSON with Padding)
- 자바 스크립트는 서로 다른 도메인에 대한 요청을 보안상 제한 = 동일근원정책(Same-Origin Policy, SOP)
- 이러한 정책으로 인해 생기는 이슈를 cross-domain 문제
- JSONP은 각기 다른 도메인에 상주하는 서버로부터 데이터를 요청하기 위해 사용

③ 해당 요청 실패 시 은행 웹사이트는 접속을 거부 및 IPinside LWS Agent를 먼저 설치할 것을 요구

④ 애플리케이션이 실행되고 있다면 웹사이트는 wdata, ndata, udata 필드를 통해서 다양한 데이터를 받아 볼 수 있음

 

2. 취약점

- wdata, ndata, udata 필드를 통해서 다양한 데이터를 받아 볼 수 있으나 필요 정보보다 많은 데이터가 전송

[사진 1] localhost:21300로 JSONP 요청 결과

2.1 wdata

- 실행중인 프로세스에 대한 정보를 저장

- 난독화시 단지 무작위 바이트 하나만 사용

[사진 2] wdata 예시

- [사진 3]을 통해 wdata에는 다음과 같은 데이터 등이 저장됨

① IP 정보

c0 a8 7a 01 (실 IP 주소 192.168.122.1)

c0 a8 7a 8c (192.168.122.140, 첫 네트워크 카드의 IP 주소)

c0 a8 7a 0a (192.168.122.10, 두번째 네트워크 카드의 IP 주소)

② 운영체제 정보

65 (문자 e)는 GetProductInfo() 함수를 호출한 결과

※ GetProductInfo(): 로컬 컴퓨터의 운영 체제에 대한 제품 유형을 검색 및 반환

③ 하드드라이브 정보

하나는 시리얼 번호가 QM00001이고 다른 하나는 abcdef 

④ 실행중인 프로세스 정보

firefox.exe

⑤ 실행 플랫폼

가상 머신

⑥ 원격제어 프로그램 동작 정보

 

2.2 ndata

- 접속자의 IP 주소를 저장

- 난독화는 랜덤성도 없으며 데이터는 항상 동일

- 웹 사이트가 IPinside LWS Agent에 통신(응답)하는 과정에서 RESPONSE_IP의 값이 HDATAIP에 저장되며, 이는 접속자 IP주소

[사진 3] ndata 예시

2.3 udata 

- “u” 는 “unique”의 약자이며, 몇 가지 다른 아웃풋 타입이 있음

- 15개의 서로 다른 CPUID 명령호출의 결과를 합쳐서 만든 것

※ CPUID 명령어: 소프트웨어가 프로세서의 세부 정보를 검색할 수 있도록 하는 프로세서 보조 명령어

- 난독화는 랜덤성도 없으며 데이터는 항상 동일

- [사진 4]를 확인해보면 네트워크 카드, 하드 드라이브의 목록과 네트워크 카드의 MAC 주소도 목록에 포함

[사진 4] udata 예시

2.4 wdata, ndata, udata 보호

- 사용자를 비익명화하기 위한 여러 데이터가 사용

- 사용자의 H/W, S/W에 대한 데이터를 통해 시스템의 취약점 확인 > 잠재적으로 다른 공격으로 발전 할 가능성

- localhost:21300에서 동작하는 서버는 누가 응답하는지 상관하지 않음 > 어떤 웹사이트든 데이터 요청 가능

① wdata
- 3단계의 보호 장치가 적용_난독화, 압축, 암호화(공개키 암호화)
- 암호화에 사용된 RSA 암호화는 해당 테스트에서 2시간 36분 만에 비공개키를 계산

② ndata, udata
- 유일한 보호장치는 암호화(AES-256 기반의 대칭 암호화)
- 암호화 키는 애플리케이션 내에 하드코딩
- 실행 시마다 동일한 ciphertext를 생성_ CBC 블록 연쇄 모드를 사용하며, 초기회 백터 IV를 전달하지못해 항상 0으로 채움

 

> 재전송 공격을 통해 미리 저장한 유효한 응답을 웹 사이트에 보낼 수 있음

challenge-handshake scheme, 타임 스탬프(timestamp) 등 대응 방안이 확인되지 않음

 

∴ 데이터를 제대로 보호하고 있지 않으며, 어떤 임의의 웹사이트에서도 수집한 데이터에 접근할 수 있음

 

2.5 어플리케이션의 전반적인 보안성

- OpenSSL 라이브러리를 사용 > OpenSSL 1.0.1j 버전

※ 2015년 릴리즈, 2017년 OpenSSL 1.0.1에 대한 지원이 중단

 

- 단일 쓰레드로 동작 > 서비스 거부 공격에 취약

 

[사진 5] 코드 中 일부

- ssl_read 가 정확히 8192 바이트를 리턴해서 버퍼를 꽉 채울 수도 있음 > 이럴 경우 inputBuffer는 널문자로 종료되지 않음

- 이것을 복사한 request 도 마찬가지로 널문자로 종료되지 않음 > sprintf() 나 handle_request()에서 request를 널문자로 종료되는 문자열로 취급할 경우 버퍼를 초과해서 읽을 것

- 그렇게 되면 sprintf() 는 16384 바이트 이상의 데이터를 읽을 것 > 타깃 버퍼에 다 담기는 너무 큰 데이터

=> 스택오버플로우나 버퍼의 범위를 벗어난 읽기 등 발생가능

> 이 취약점 중 일부는 확실히 애플리케이션을 죽일 수도 있음 > 2개의 개념증명 웹페이지를 만들어서 여러 차례 확인

> 원격 코드 실행 취약점은 확인되지 않음 > StackGuard와 SafeSEH 기능이 효율적으로 동작하기 때문

 

3. 조치

- 블라디미르 팔란트

> 2022년 10월 21일 3건의 취약점 보고서를 KrCERT에 보고

> 11월 14일 KrCERT는 보고서를 인터리젠에 전달

- 인터리젠 관계자

> 보고서 중 하나만 2023년 1월 6일 전달 받음 주장

> 문제점에 대한 수정 버전은 2월에 배포할 예정 > 새로운 버전을 사용자에게 배포하는 것은 고객(은행 등)의 문제

 

- IPinside는 자동 업데이트 기능이 없음

> 사용자가 수동으로 업데이트를 다운로드하여 설치

> Wizvera Veraport와 같은 관리 애플리케이션을 통해 업데이트

> 은행에서 사용자에게 업데이트를 강제하지 않는 이상 둘 다 가능성이 작아 보임

 

4. 참고

https://palant.info/2023/01/25/ipinside-koreas-mandatory-spyware/

https://github.com/alanleedev/KoreaSecurityApps/blob/main/02_ipinside_lws_agent.md

 

1. TouchEnxKey

- 라온시큐어사의 키보드 보안 프로그램 - 키보드 입력을 암호화하여 키로거 방지

- 브라우저 확장 프로그램으로 설치

 

1.1 TouchEnxKey 동작 방식

- TouchEnxKey를 사용할 경우 웹사이트에서 실행되는 자바스크립트 코드와 일부 서버 측 코드로 구성된 nxKey SDK와 함께 동작

① nxKey SDK를 사용하는 웹 사이트에서 암호 필드를 입력
② nxKey SDK의 JavaScript 코드가 이를 감지하여 로컬 nxKey 응용 프로그램 호출
③ nxKey 응용 프로그램은 윈도우즈 커널에서 장치 드라이버를 활성화
④ 장치 드라이버가 모든 키보드 입력을 가로채 nxKey 응용 프로그램으로 전송
⑤ nxKey 응용 프로그램은 키보드 입력을 암호화하여 nxKey SDK의 JavaScript 코드로 전송
⑥ 자바스크립트 코드는 암호화된 데이터를 숨겨진 형태의 필드에 작성

※ 실제 암호 필드는 더미 텍스트만 수신
⑦ 로그인 자격 증명 입력을 완료하고 "로그인" 클릭
⑧ 암호화된 키보드 입력은 다른 데이터와 함께 서버로 전송
⑨ nxKey SDK의 서버 측 부분은 암호를 해독하고 일반 텍스트 암호를 검색

 

>  사용자의 입력값을 nxKey가 가로채어 암호화 및 숨겨진 필드에 작성

>  서버측 nxKey SDK에서 복호화 및 로그인 시도 검증

>  키로거는 nxKey에 의해 암호화된 데이터만을 볼 수 있으며, 개인 키가 없으므로 복호화를 수행하지 못함

 

[사진 1] 웹 사이트와 TouchEnxKey 통신 방식 비교 (과거-좌 및 현재-우)

- 과거 : 브라우저 확장을 통해 웹 사이트와 응용 프로그램 사이에서 동작하며 요청과 응답을 중재 

- 현재 : 웹 사이트에서 웹 소켓 API를 사용하여 응용 프로그램과 직접 통신 즉, 브라우저 확장은 더 이상 필요하지 않음

> 일부 은행 사이트들은 브라우저 확장에 의존하는 오래된 코드를 사용

 

2. 취약점

- 설계상 주요 로깅 기능을 포함하고 있으며, 해당 기능에 대한 액세스를 충분히 제한하지 못함

- 단순 서비스 거부에서부터 원격 코드 실행을 유발하는 다양한 버그가 존재

 

2.1 TouchEn 확장 기능을 악용하여 은행 웹 사이트 공격

- eval()은 문자로 표현된 JavaScript 코드를 실행하는 함수

- TouchEn browser extension의 코드 중 주석처리된 eval()이 존재 > 코드 품질의 문제가 있을 가능성

result = JSON.parse(result);
var cbfunction = result.callback;

var reply = JSON.stringify(result.reply);
var script_str = cbfunction + "(" + reply + ");";
//eval(script_str);
if(typeof window[cbfunction] == 'function')
{
  window[cbfunction](reply);
}

 

- 콜백 메커니즘에서 악용 가능성이 발견되었으며, 악의적인 웹 페이지를 콜백 하도록 조작이 쉽게 가능하였음

※ 일부 이벤트에대해 웹 사이트에서 setcallback 요청을 전송

- 조작을 위해서는 2가지 조건이 필요

대상 웹 페이지에 id="setcallback" 매개변수가 존재해야 함

> 이는, nxKey SDK를 사용하는 웹 사이트만 공격할 수 있다는 것을 의미

※ WebSockets를 통한 통신은 이 요소를 생성하지 않음 즉, 최신 nxKey SDK를 사용하는 웹 사이트는 영향을 받지 않음

콜백은 특정 탭으로 전달

> 현재 탭에 로드된 페이지, 예를 들어 프레임에 로드된 페이지만 공격할 수 있다는 것을 의미

 

- 응용 프로그램이 요청을 처리하기 위해 JSON 파서를 사용하는 동안 응답은 sprintf_s()를 통해 처리되며, 이때 필터링이 수행되지 않음

> id 값은 응용 프로그램의 응답에 복사 - 취약점 발생 지점

> 공격자는 tabid 값을 알아낼 필요 有 - TouchEn 확장이 노출하는 tabid로 추측 또는 빈 값으로 설정(빈 값일 경우 현재 활성 탭으로 설정)

 

- 위 과정에 따른 공격 시나리오는 다음과 같음

① 은행 웹 사이트를 열어 활성 탭 생성
② 페이지가 로드될 때까지 기다렸다가 id="setcallback" 요소 확인
③ 일부 기능에 대한 콜백을 설정하기 위해 TouchEn 확장을 통해 콜백 메시지를 보내는 동시에 JSON 응답 속성을 "tabid":" 및 "reply":"malicious payload"로 조작하여 요청
④ 악성 페이로드를 매개 변수로 하여 은행 웹사이트에서 콜백 기능이 호출

[사진 2] 실제 공격 화면

2.2 웹 사이트의 키로깅 기능 사용

- 공격자 스스로 TouchEnxKey를 사용한 웹 페이지를 구성 - 피싱과 유사한 형태로 판단됨.

- 웹 사이트에서 TouchEnxKey를 사용하기 위해서는 유효한 라이센스가 필요

- TouchEnxKey는 요청 정보의 유효성이 아닌 라이선스 정보를 통해 식별

> TouchEnxKey가 암호화를 위한 공개 키를 수신하지 못하면 암호화하지 않고 평문을 전송

> 해당 방법은 가로챈 입력이 실제 유효한 사이트에 도달하지 못하므로, 의심을 유발할 수 있음

socket.send(JSON.stringify({
  "tabid": "whatever",
  "init": "get_versions",
  "m": "nxkey",
  "origin": "https://www.example.com",
  "lic": "eyJ2ZXJzaW9uIjoiMS4wIiwiaXNzdWVfZGF0ZSI6IjIwMzAwMTAxMTIwMDAwIiwicHJvdG9jb2xfbmFtZSI6InRvdWNoZW5leCIsInV1aWQiOiIwMTIzNDU2Nzg5YWJjZGVmIiwibGljZW5zZSI6IldlMkVtUDZjajhOUVIvTk81L3VNQXRVd0EwQzB1RXFzRnRsTVQ1Y29FVkJpSTlYdXZCL1VCVVlHWlY2MVBGdnYvVUJlb1N6ZitSY285Q1d6UUZWSFlCcXhOcGxiZDI3Z2d0bFJNOUhETzdzPSJ9"
}));

 

2.3 응용프로그램 자체 공격

- TouchEnxKey는 sprintf_s() 또는 strcpy_s()와 같은 버퍼 오버플로우에 상대적으로 안전한 함수를 사용

> 충분히 큰 버퍼를 제공하지 못하면 잘못된 매개 변수 처리기가 호출되며, 이로 인해 애플리케이션이 다운이 발생

 

- 모든 JSON 파서 중에서 nxKey 애플리케이션 개발자들은 C로 작성된 것을 선택(https://github.com/json-parser/json-parser/)

> github의 업데이트 사항이 반영되지 않음 (2014.01~)

> 2014년 6월 수정이 반영되지 않음

 

- 취약한 OpenSSL 사용

> OpenSSL 1.0.2c를 사용중으로 이는 2015년에 공개된 버전이며, 2020년 1월 지원이 종료된 버전

[사진 3] openssl-1.0.2c

2.4 도우미 응용 프로그램 남용

- nxKey가 키보드 입력을 가로챌 때마다 CKAgentNXE.exe 도우미 애플리케이션이 시작

- CKAgentNXE.exe가 무결성 수준이 낮은 프로세스에서 액세스할 수 있도록 IPC 개체에 대한 보안 설명자를 설정함

- 또한, 레지스트리 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy 경로 추가

> TouchEn Key가 Internet Explorer에서 ActiveX로 실행될 때 무결성 수준은 낮음으로 실행됨

 

2.5 드라이버의 키로깅 기능을 직접 액세스

- TouchEnxKey 응용 프로그램(드라이버로부터 받은 키보드 입력을 암호화하는 응용 프로그램)은 사용자 권한으로 실행

- 드라이버 통신을 하는 라이브러리인 TKPPM.dll은 Temida를 사용하여 난독화

> 런타임에 디버거를 연결하면 이미 해독된 TKAppm.dll 메모리를 저장하고 분석을 위해 결과를 Gidra에 로드가 가능하였다고 함

 

3. 조치

- 블라디미르 팔란트

> 2022년 10월 4일 KrCERT에 보고

> KrCERT는 약 2주 후에 내 보고서를 RaonSecure에 전달

 

- 라온시큐어 관계자
> 해당 내용은 이미 작년에 KrCert를 통해 모두 전달받음
> 취약점을 보완하는 패치가 모두 이뤄진 상태
> 보완된 프로그램을 각 은행을 통해 배포하는 절차만 남겨놓은 상황

> 2023.02 업데이트 공개

① TouchEn nxKey 및 CrossEXService에서 발생하는 크로스 사이트 스크립팅(XSS) 취약점

※ CrossEXService: TouchEn nxKey 설치 시 함께 설치되는 프로그램으로 TouchEn nxKey 재설치 시 함께 업데이트 됨

② 위즈베라의 Veraport V3에서 발생하는 정보 노출 취약점

제품명 영향받는 버전 해결 버전
TouchEn nxKey 1.0.0.78 이하 1.0.0.82
CrossEXService 1.0.2.9 이하 1.0.2.10 
Veraport V3 v3702~v3863 v3864

> 해결 방안

① 서비스 운영자: 라온시큐어, 위즈베라를 통해 최신버전 교체

② 서비스 이용자

- TouchEn nxKey, CrossEXService, Veraport V3가 설치되어 있는 경우 제거 후 최신버전 업데이트

※ [제어판]-[프로그램]-[프로그램 및 기능]

- 이용 중인 금융사이트에 접속하여 해결된 버전의 프로그램 재설치

※ 금융사이트별 취약한 프로그램 패치 일정은 상이하므로 확인 필요

 

4. 참고

 

TouchEn nxKey: The keylogging anti-keylogger solution

TouchEn nxKey is supposed to combat keyloggers. Instead, this application made writing a keylogger extremely simple, allowed attacking banking websites and more.

palant.info

 

독일 개발자 “한국 은행 사이트, 매우 불편하고 위험해”

독일의 유명 개발자 블라디미르 팔란트(Wladimir Palant)가 최근 우리나라 보안 프로그램을 정면으로 비판하고 나서 화제다. 팔란트는 세계에서 가장 많이 쓰이는 광고차단 프로그램 ‘애드블록 플

n.news.naver.com

 

[긴급] 라온시큐어 및 위즈베라의 금융보안 솔루션, 보안 업데이트 서둘러야

금융보안 솔루션을 금융권 등에 공급하는 라온시큐어와 위즈베라가 자사 제품에서 발생하는 취약점을 해결한 보안 업데이트를 발표했다. 공격자들이 해당 취약점을 악용해 피해를 발생시킬 수

www.boannews.com

 

KISA 인터넷 보호나라&KrCERT

KISA 인터넷 보호나라&KrCERT

www.boho.or.kr

+ Recent posts