https://blog.theori.io/deepseek-security-hidden-risks-ko-4560d96e2f1d

 

딥시크의 보안, 개인정보 보호, 거버넌스: 오픈소스 AI의 숨겨진 위험성

딥시크가 가진 보안 결함과 개인정보 보호 관련 우려사항들을 자세히 살펴보고, 오픈소스 AI가 숨기고 있을지 모르는 위험성을 검토합니다. 사용을 고려중인 분들을 위한 실용적인 조언도 준비

blog.theori.io


딥시크

중국의 AI 스타트업.

뛰어난 추론 능력을 보여주는 오픈소스 AI 모델 'DeepSeek R1'을 공개하며 세계적인 이목을 끌고 있음. 

 

딥시크의 기술 안전성과 보안

딥시크의 기술 안전성과 관련해 제기되어온 문제점들:

  • 취약점 및 탈옥 문제
    • Deepseek R1은 "탈옥" 공격에 매우 취약한 것으로 알려짐 → 안전장치를 쉽게 우회 가능
    • 실제 테스트에서 ChatGPT가 거절한 위험한 요청들(자금 세탁, 악성 프로그램 제작 방법)을 상세히 알려주기도 함. 이는 딥시크가 기본적인 안전 업데이트조차 제대로 하지 않았음을 나타냄
  • 유해한 출력 및 편향성
    • Deepseek R1은 다른 AI 모델들에 비해 위험하거나 편향된 콘텐츠를 만드는 경향이 있음
    • 위험한 내용 생성할 확률은 11배, 보안에 취약한 코드 작성할 가능성은 4배나 높음 → 모델의 안전장치가 제대로 작동하지 않는다는 증거 + 유해 내용이나 잘못된 코딩 방식 퍼질 수 있음
  • 실제 보안 사고
    • 2025년 1월 말: 악의적 공격때문에 신규 사용자 가입을 막아야 했음
    • 인증 없이 누구나 접근할 수 있는 데이터베이스(API 키, 사용자들의 대화 내용, 시스템 상세 정보 등 민감한 정보 담긴 데이터베이스) 발견됨
  • 소극적 보안 대응
    • 위 데이터베이스 노출 사건에서도 대응적이고 수동적인 태도 보임
    • 타 주요 AI 기업들이 운영하는 버그 바운티 프로그램이나 보안 인증 획득 등 절차가 갖추어지지 않음
  • 공식 보안 경고
    • 미 해군은 소속 인원들에게 딥시크 사용을 금지
    • 미 하원도 내부 네트워크에서 딥시크의 접속을 차단

DeepSeek는 업계의 표준과 비교해 봤을 때 보안적 측면에서 한참 뒤쳐져있는 것을 알 수 있음.  

 

데이터 프라이버시와 사용자 보호

개인정보 처리 방식 측면에서도 다양한 우려가 잇따름. 

  • 데이터 수집과 저장의 문제
    • 사용자들의 개인정보를 상당히 광범위하게 수집(챗봇과 나눈 대화, 업로드한 파일, 프로필 정보, IP 주소, 기기 ID 등)하고, 모든 정보를 중국 서버에 저장.
  • 사용자 통제권의 한계
    • 딥시크가 제공하는 사용자 통제 기능은 계정 설정에서 채팅 기록 지우는 것 정도.
    • 정책상으로는 사용자가 자신의 데이터 확인하고 삭제할 권리 있다고 하지만, 실제로 실효성 있는지는 의문. 
  • 국제 데이터 이동의 문제
    • 데이터를 중국으로 보내는 것 자체가 큰 문제가 될 수 있음. 
    • 중국으로 데이터를 보낼 때는 더욱 까다로운 절차가 필요한데, 딥시크는 관련 법을 준수하겠다는 이야기 뿐, 구체적 조치를 설명하지 않음
  • 중국 법률의 영향
    • 데이터가 중국에 있다 = 중국 법의 적용을 받는다
    • 사용자의 민감한 대화 내용이나 개인정보가 중국 당국의 요청으로 제공될 수 있음
  • 검열 가능성
    • 챗봇이 중국 정부를 비판하는 내용은 검열하거나 답변을 거부함. 중국의 콘텐츠 규제가 해당 챗봇에도 적용되고 있음을 알려줌
  • 미흡한 사용자 보호
    • 타 AI 기업이 제공하는 데이터 익명화 및 보관 기간 제한 등의 정책을 딥시크에서는 제공하지 않음.
    • 계정이 있는 동안, 심지어는 사업상 필요 시 그 이후에도 데이터를 계속 보관한다고 명시 중. 데이터 유출 사고 시 광범위한 피해가 이어질 수 있음.

 

오픈소스와 비공개

딥시크는 '오픈소스 AI'로 알려져 있는데, 완전한 개방을 강조하며 출시된 것과 달리 오픈소스와 비공개 요소가 섞여 있는 것으로 드러남. 

  • 오픈소스로 공개된 것
    • DeepSeek R1의 핵심 모델 가중치는 오픈소스로, MIT 라이선스를 따름 → 누구나 이 모델을 다운받아 개인 컴퓨터에서 돌려보거나 파인튜닝하거나 상업적 사용이 가능
    • 모델이 어떻게 만들어졌는지 설명하는 기술 문서, 커뮤니티를 위해 R1의 경량화 버전도 몇 가지 공개
    • 해당 사실은 투명성 면에서 긍정적으로 평가됨. 
  • 비공개로 남겨둔 것
    • "완전 오픈소스"라는 홍보와는 달리 R1을 만들 때 사용한 학습 데이터&자세한 학습 코드는 공개하지 않음
    • 모델 자체는 공개되어 있어도 만든 과정은 불투명한 셈.
    • 딥시크 플랫폼과 앱도 회사가 직접 운영하기 때문에 코드가 공개되어 있지 않음 → 사용자 계정과 데이터 저장, 프롬프트 필터링 등의 작동 방식을 알 수 없다. 
  • 모델에 숨겨진 위험
    • 학습 데이터가 비공개이기 때문에 예상치 못한 이상한 행동을 할 수도 있음.
    • LLM에 아무리 안전하게 추가학습을 시켜도 몰래 위험한 행동을 계속 할 수 있음 (Ex. 연구용으로 만든 모델이 프롬프트에 "2023년"이라는 말이 나오면 안전한 코드 작성하다가도 "2024년"이라는 말만 보이면 해킹이 가능한 취약 코드 생성하는 등)
    • 해당 속임수를 갖춘 LLM은 안전성 테스트를 통과하여 마치 안전한 것처럼 보이게 되지만, 중요한 일에 모델을 쓸 때는 각별한 주의가 필요
  • 외부에서 받은 모델의 위험
    • 비공식 경로로 딥시크 모델 다운받을 시 악의적 페이로드가 심어진 버전 다운로드할 위험이 있음.
    • 과거 기계학습 모델이 특정 악성 결과를 뱉어내거나 프로그램 허점 이용해 악성 코드 실행하도록 조작된 사례들이 실제로 존재. 
    • 딥시크 모델의 파라미터 수가 많기 때문에 커뮤니티 멤버들이 이를 줄이거나 특정 용도에 맞게 수정해 Hugging Face 등의 플랫폼에 공유하고 있음. 실제로 Hugging Face에 딥시크를 검색하면 약 1800개의 모델이 검색되는데, 이러한 모델들은 누가 어떤 의도로 수정했는지 알 수 없어서 위험하다. 

모델이 오픈소스라는 건 빠른 혁신과 커뮤니티 기반의 발전 가능케 한다는 장점이 있지만,

반대로 모델의 안전성을 검증하고 AI 공급망을 지키는 책임도 고스란히 사용자의 몫이 된다. 

 


AI 시장에 새로운 바람을 불러오고 있는 딥시크이지만, 보안/프라이버시/관리 측면에서 너무 많은 위험성과 취약점이 존재하기 때문에 사용자와 기업은 해당 모델을 사용함에 있어서 더욱 신중함을 가해야 할 것으로 전망된다. 

https://blog.alyac.co.kr/5519

 

계정정보 탈취를 시도하는 피싱 공격 진행 중! 북 배후 추정

안녕하세요? 이스트시큐리티 시큐리티대응센터(이하 ESRC)입니다.  최근 전자문서 도착 알림, 회원정보 변경 알림, 약관 위반 알림 등 다양한 주제로 국내 포털사이트 고객센터를 사칭한 피싱

blog.alyac.co.kr


최근 전자문서 도착 알림, 회원정보 변경 알림, 약관 위반 알림 등 다양한 내용으로 국내 포털사이트 고객센터를 사칭한 피싱 메일이 유포되고 있어 각별한 주의가 필요하다.

 

피싱 공격의 개요

피싱 메일은 실제 공식 사이트에서 게시 중단 요청을 접수 받아 진행하는 게시중단 처리 안내 메일과 매우 흡사함

좌측 사진은 정상 메일이고, 우측 사진은 정상 메일을 가장한 피싱 메일이다.

우측 화면의 링크 버튼을 클릭하면 공격자가 제작해 둔 피싱 페이지로 연결됨.

 

피싱 페이지 역시 실제 로그인 페이지와 매우 유사한 형태를 갖추고 있다.

다만, 실제 로그인 페이지와는 달리 사용자의 아이디 정보가 미리 입력되어 있으며

위 페이지에 비밀번호를 입력하면 비밀번호 오류라는 문구와 함께 재입력을 요구한다.

하지만 입력된 비밀번호는 백그라운드에서 공격자 서버로 전송되며 공격이 종료된다. 

 

피싱 분석

해당 피싱 메일은 공격자들이 대량으로 피싱 메일을 발송할 때 많이 사용하는 PHPMailer를 통해 발송됨

 

최근 발견된 계정정보 탈취를 시도하는 피싱 페이지들 사이의 공통점:

1. 피싱 페이지에서 사용된 주요 도메인 리스트

  • 피싱 페이지들은 o-r.kr, r-e.kr, p-e.kr 도메인을 사용
  • 해당 도메인들은 김수키 조직(북 해킹 조직)이 공격을 할 때 자주 사용하는 도메인으로 알려져 있음

 

2. 네트워크 응답 메시지 문자열

  • 피싱 페이지 도메인에 접속하면 아래와 같은 "Millon OK!!!" 응답 메시지를 볼 수 있음

  • 이 메시지는 김수키 조직이 사용하는 인프라로 알려져 있음

 

3. 웹 서버 스택 정보

  • 웹 서버 스택 정보가 모두 Apache/2.4.17(Win32) OpenSSL/1.0.2d PHP/5.6.15로 동일

 

4. URL 특징

  • 피싱 URL에서 특정 파라미터 및 경로를 사용


웹사이트에 접속한 모습은 위와 같다.

아마 이전 문제인 'Smuggling'과 비슷한 방식으로 풀이하는 문제인듯.

문제 파일을 다운받아 열어봤다.

 

 

 

index.php

이 index.php 코드에서 취약점이 발생하는데, 

10번째 라인을 보면 '$$'라는 문자가 쓰인 걸 볼 수 있다. 

$$는 php의 가변변수 선언 시 사용되는 구문인데, 여기서 13번째 라인의 ($_SESSION['include_path'])를 덮으면 플래그를 획득할 수 있을 것으로 보인다.

config.php

그런데 smuggling 문제와 비슷하게, 이 문제에서 역시 필터링되고 있는 문자들이 있다.

여기서는 /, _, SESSION이 필터링되고 있기 때문에 URL encoding을 사용해 우회가 필요하다.

 

이번에도 역시 변조를 위한 사이트 (https://dencode.com/)를 이용했다.

근데 URL encoding으로 변조가 잘 안 되어서...

이유를 모르겠지만 ㅜㅜ 속는 셈 치고 HEX String으로 변조를 도전했다. 

위 내용을 바탕으로 변조를 완료한 url은 다음과 같다. 

http://web.h4ckingga.me:10013?%5f%53ESSION[include%5fpath]=%2fflag

 

 

URL을 그대로 입력해 엔터키를 누르면,

/를 제외한 문자들은 변조 이전의 형태로 URL창에 나타난다.

이건 왜인지 모르겠다...

어쨌든 플래그를 획득하는 데 성공했다.


웹사이트 접속하면 아래와 같은 화면이 나온다. 

사이트 내부에 특별한 기능이 있는 걸로 보이진 않는다. 

 

문제 파일을 다운로드해서 코드를 먼저 살펴보았다. 

총 네 개의 파일이 있고, config라는 폴더 내에는 haproxy.cfg라는 파일 한 개가 존재한다.

 

main.py를 열어봤다. 

15번째 라인을 보면, /flag 경로로 접속했을 때 flag 값을 얻을 수 있다는 걸 확인할 수 있다.

해당 문제는 url를 직접 수정하여, /flag로 접속해 flag 값을 얻어야 하는 방식인 듯하다. 

 

다음으로 haproxy.cfg를 열어 봤다. 

10번째, 11번째 라인을 보면 /flag 혹은 //로 요청했을 시 거부한다는?.. 내용인 걸 알 수 있다.

main.py에서는 /flag 경로로 접속했을 때 flag 값을 얻을 수 있다고 했는데, 

그렇게 접속하면 거부당할 것이므로... 우회하는 방법이 필요할 것 같다.

 

/flag를 변환하여 url을 작성해보겠다.

url 변조를 위한 사이트(https://dencode.com/)를 활용하였다. 

url encoding 값을 확인해 보면 '%2Fflag'라는 값으로 우회가 가능하다고 한다. 

이를 활용해 url을 작성해 본다.

 

플래그를 획득했다.

https://www.ahnlab.com/ko/contents/content-center/35755

 

광고 페이지 악용한 프록시재킹 공격 주의

 

www.ahnlab.com


프록시재킹 공격

프록시웨어란?

: 설치된 시스템에서 현재 사용 가능한 인터넷 대역폭 일부를 외부에 공유하는 프로그램. 일반적으로 이를 설치하는 사용자는 대역폭을 제공하는 대신 일정한 금액을 받음

 

프록시재킹 공격이란?

: 사용자의 동의 없이 프록시웨어를 설치해 감염 대상 시스템의 인터넷 대역폭 일부를 외부에 공유하는 방식으로 공격자들이 수익을 얻는 공격 방식.

감염된 시스템은 비자발적으로 네트워크 대역폭 탈취당하며, 수익은 공격자에게 돌아감.

  • 이는 프록시웨어 대신 코인 마이너 설치해 감염 대상 시스템의 자원으로 암호화폐 채굴하는 '크립토재킹 공격'과 유사

프록시재킹 공격 사례에서 악용되는 프록시웨어 종류:

  • IPRoyal
  • Peer2Profit
  • Traffmonetizer
  • Proxyrack
  • PacketStream
  • Digitalpulse 등

해당 콘텐츠에서 다루고 있는 프록시재킹 공격에 사용된 건 디지털 펄스 프록시웨어 (그러나 "넷링크 커넥트"라는 이름으로 서명됨

 

공격 사례 설명

현재 공격 사례에서 악성코드는 프리웨어인 특정 유튜브 다운로더 프로그램의 홈페이지 거쳐 설치됨

위와 같은 다운로드 페이지에 처음 접속 후 웹 페이지 클릭하면 광고 페이지가 팝업되며,

랜덤한 확률로 여러 PUP 및 악성코드, 광고 페이지로 리다이렉트됨.

 

악성코드는 다운로드 페이지에서 다운로드되거나 위 사진의 루마C2(LummaC2)를 유포하는 페이지로 리다이렉트 되기도 함. 

 

클립보드에 저장된 루마C2를 설치하는 실제 명령

루마C2: 클립보드에 악성코드 다운로드 명령을 저장한 후 사용자로 하여금 실행하도록 하는 피싱 기법

실행 창에서는 CAPCHA와 관련된 내용만 보이지만, 실제로는 mshta를 이용해 외부에서 악성 자바스크립트를 다운로드하고 실행하는 명령.

 

악성코드 분석

위 과정에서 유포된 파일을 사용자가 별도 검증 없이 실행할 경우, 최정적으로 프록시웨어가 사용자의 시스템에 설치됨. 

악성코드 설치 흐름도

  • 분석 방해 기법

최초 유포 파일은 위와 같은 아이콘으로 위장.

설치 시 자동 클릭 기능을 제공하는 GUI 프로그램으로 위장한 오토클리커를 실행

위 AutoClicker.exe는 내부에 프록시웨어를 다운로드하는 루틴이 삽입된 다운로드 악성코드이다.

오토클리커는 사용하는 문자열들을 암호화해 가지고 있으며, 함수 이름도 정상적인 목적으로 위장함

이외에도 실행되면 먼저 Anti VM 및 Anti Sandbox 기법들을 사용해 현재 환경이 분석 환경인지 검사함

 

표 최하단의 '웹 브라우저 히스토리 파일 검사'를 통해 일정 크기 이하일 때에는 악성 루틴이 실행되지 않도록 함.

크로미움(Chromium) 기반 웹 브라우저나 인터넷 익스플로러는 0.5MB, 모질라 파이어폭스(Mozila Firefox)의 경우 5.5MB 이상인지 검사함.

 

  • 프록시웨어 설치

분석 방해 기법을 활용한 과정이 끝나면 오토클리커는 "%TEMP%\t.ps1" 경로에 파워쉘(PowerShell) 스크립트를 생성하고 실행한다.

위 스크립트는 노드JS(nodeJS)를 설치하고 악성 자바스크립트 다운로드 후 작업 스케줄러에 등록하는 기능을 담당함. 

위 사진은 "FastDiskCleanup"이라는 이름으로 작업 스케줄러에 등록된 작업 중 하나로,

노드JS를 이용해 다운로드한 자바스크립트 악성코드를 실행하는 기능을 담당함.

 

노드JS를 통해 자바스크립트가 실행되면 C&C 서버에 접속해 위와 같은 데이터 구조로 시스템의 기본적인 정보들을 전송한 후 응답에 따라 추가 명령을 실행함.

다운로드된 응답은 최종적으로 프록시웨어를 설치하는 파워쉘 명령이다.

파워쉘 명령은 깃허브에서 프록시웨어를 다운로드한 후 "Network Performance"라는 이름으로 작업 스케줄러에 등록함.

 

최종적으로 설치된 프록시웨어는 앞서 말했던 디지털 펄스이다. 

바이너리 자체는 실질적으로 동일하지만 "넷링크 커넥트"라는 이름의 인증서로 서명되었다는 점이 다름. 

https://blog.plainbit.co.kr/loglayer-gaebaljareul-wihan-hyeogsinjeogin-tonghab-roging-raibeureori/

 

LogLayer: 개발자를 위한 혁신적인 통합 로깅 라이브러리

안녕하세요, 개발자 여러분! 오늘은 최근 GitHub에서 주목받고 있는 프로젝트인 LogLayer에 대해 상세히 소개해드리고자 합니다. LogLayer는 다양한 로깅 라이브러리와 클라우드 제공업체에 로그를 라

blog.plainbit.co.kr


LogLayer

다양한 로깅 라이브러리와 클라우드 제공업체에 로그를 라우팅하는 통합 로거.

로그 메시지, 메타데이터 및 오류를 지정하기 위한 유연한 API를 제공

기존의 로깅 라이브러리들은 각각 다른 API 가져 여러 프로젝트에서 일관된 로깅 방식 유지하기 어렵고 로깅 라이브러리 변경할 때마다 애플리케이션 전체의 로깅 코드 수정해야 하는 번거로움 존재했음

※ 로깅(Logging)이란? - 정보를 제공하는 일련의 기록인 로그(Log)를 생성하도록 시스템 작성하는 활동

 

LogLayer의 주요 특징

  • 일관된 API: 다양한 로깅 라이브러리에 대해 일관된 API 제공
  • 다중 전송 지원: 여러 대상(DataDog, New Relic 등)에 동시에 로그 전송 가능
  • 유연한 로거 교체: 애플리케이션 코드 변경하지 않고도 로깅 라이브러리 쉽게 교체 가능
  • 플러그인 시스템: 로그 데이터를 로깅 라이브러리로 전송하기 전 수정할 수 있는 플러그인 시스템 제공
  • 표준화된 오류 처리: 오류 처리 및 직렬화를 표준화하여 일관된 오류 로깅 가능하게 함
  • 테스트를 위한 내장 목(mock): 테스트 시 로깅 코드 쉽게 모의할 수 있는 기능 제공

LogLayer는 '전송(Transport)' 시스템을 통해 작동. 

전송 시스템은 선호하는 로깅 라이브러리에 대한 어댑터 역할을 함.

 

LogLayer의 설치 및 기본 사용법

npm을 통해 코어 패키지를 설치해야 함. ▼

npm i loglayer

 

설치 후 기본적인 사용법:

import { LogLayer, ConsoleTransport } from 'loglayer'

const log = new LogLayer({
    transport: new ConsoleTransport({
        logger: console,
    }),
})

log.withMetadata({ some: 'data'}).withError(new Error('test')).info('my message')

 

Pino 로깅 라이브러리와 함께 LogLayer를 사용하는 예시:

import { LogLayer } from 'loglayer';
import { pino } from 'pino';
import { PinoTransport } from '@loglayer/transport-pino';
import { redactionPlugin } from '@loglayer/plugin-redaction';

const log = new LogLayer({
    transport: new PinoTransport({
        logger: pino()
    }),
    plugins: [
        redactionPlugin({
            paths: ['password'],
            censor: '[REDACTED]',
        }),
    ],
})

log.withPrefix("[my-app]")
   .withMetadata({ some: 'data', password:'my-pass' })
   .withError(new Error('test'))
   .info('my message')

 

위 예시를 통해 생성되는 로그 출력:

{
    "level": 30,
    "time": 1735857465669,
    "msg": "[my-app] my message",
    "password": "[REDACTED]",
    "some": "data",
    "err":{
        "type": "Error",
        "message": "test",
        "stack": "Error: test\n..."
    }
}

 

LogLayer는 강력한 플러그인 시스템을 제공. 이를 통해 로그 데이터를 로깅 라이브러리로 전송하기 전 수정 가능.

위 예시에서 사용된 redactionPlugin은 민감한 정보를 자동으로 가리는 역할을 함.

 

다른 로깅 라이브러리와 LogLayer의 차별점

  • Winston
    • Node.js에서 가장 인기 있는 로깅 라이브러리 중 하나
    • Winston도 다양한 전송 옵션과 로그 레벨 제공하지만 LogLayer는 더 일관된 API와 쉬운 전환성을 제공
    • LogLayer의 플러그인 시스템은 Winston의 사용자 정의 포맷터보다 더 강력하고 유연함
  • Pino
    • 성능에 중점을 둔 로깅 라이브러리
    • LogLayer는 Pino의 성능 이점을 그대로 활용하면서 더 풍부한 기능과 유연성 제공
    • 특히 Pino 단독으로는 구현이 어려운 '여러 로깅 대상에 동시에 로그를 전송하는 기능' 제공
  • Bunyan
    • JSON 로깅에 특화된 라이브러리
    • LogLayer는 Bunyan의 JSON 로깅 기능을 포함하면서도 더 다양한 형식과 대상으로의 로깅을 지원
    • LogLayer의 플러그인 시스템은 Bunyan보다 더 강력한 로그 변환 및 처리 기능을 제공

※ Node.js란? - JavaScript 코드를 브라우저 밖에서 실행할 수 있게 해주는 런타임 환경

※ JSON이란? - 일반적으로 서버에서 클라이언트로 데이터를 보낼 때 사용하는 양식

 

LogLayer의 성능과 확장성

  • 성능
    • 기본적으로 비동기 로깅을 지원하여 애플리케이션의 주 실행 흐름에 미치는 영향을 최소화함
    • 로그 볼륨이 증가하더라도 효율적으로 처리할 수 있도록 설계
  • 확장성 측면에서의 이점
    • 다중 로거 지원: 여러 로깅 라이브러리를 동시에 사용할 수 있어, 다양한 요구사항에 맞춰 로깅 전략 구성 가능
    • 클라우드 제공업체 통합: DataDog, New Relic 등 주요 클라우드 모니터링 서비스와의 통합을 쉽게 구현 가능
    • 사용자 정의 전송: 필요에 따라 사용자 정의 전송을 구현하여 특정 요구사항을 충족시킬 수 있음

 

LogLayer의 미래 전망

  • 더 다양한 로깅 라이브러리와 클라우드 서비스에 대한 지원 확대
  • 대규모 로그 처리 시나리오엥서의 성능 개선
  • 로그 데이터에 대한 실시간 분석 및 인사이트 제공 기능 추가
  • 로그 데이터의 암호화 및 접근 제어 기능 강화

 


문제 파일 다운로드하면 아래와 같이 jpg 파일 하나, jpeg 파일 하나 나온다. 

 

hello_postman.jpg는 이렇게 생김

바코드 같기도 하고 녹음한 음성 파일 뭐 그런 것 같기도 하고...

이게 힌트라는데 무슨 의미인지는 모르겠다.

그냥 postman스러움

 

구글에 찾아 보니까 Hello_Postman.jpg처럼 생긴 형태의 바코드가 실제로 존재한다!

Intelligent Mail barcode라고 해서 IMB라고 불리는 바코드의 모습인 듯.

이걸 변환 가능한 사이트 같은 게 있을까 싶어 찾아봄. 

 

https://online-barcode-reader.inliteresearch.com/

진짜 있다.

여기서 세 번째의 Postal: IBM 클릭하고 이미지 파일 업로드해 보겠다

 

변환하면 위처럼 숫자 여러 개가 나열된 형태로 뭔가 출력됨

 

보통 이렇게 숫자가 나오면 아스키 코드로 변환하는데

이번에도 그렇게 하면 플래그가 나올 것 같음

어떻게 띄어쓰기 해야 될지 모르겠어서 일단 두 자리씩 끊고 마지막 숫자만 세 자리로 해서 변환해 봤는데

H4CGM까지만 멀쩡히 출력되고 나머지는 깨진다.

어쨌든 이런 접근 방식이 맞긴 한 듯.

마지막 세 자리가 중괄호로 제대로 출력된 걸 보아, H4CGM 이후의 글자는 세 자리씩 끊어야 되는 것 같아서 그렇게 바꿔봄

 

플래그 모양처럼 출력됐다.

해킹게임 플래그 란에 넣어보면,

 

풀이 완료


exe 파일을 다운로드해 열었다.

알맞은 flag를 입력해야 뭔가 출력되는 형태로 추정. 

 

notepad++ 사용해서 exe 파일 열었더니 깨져서.. ㅎㅎ

IDA freeware 사용해서 열었다.

main 함수 부분 찾았다. 

이 상태로는 해석이 어렵기 때문에, F5 키를 눌러 디컴파일한다.

 

int __fastcall main(int argc, const char **argv, const char **envp)
{
  int i; // [rsp+20h] [rbp-48h]
  char Buf2[24]; // [rsp+28h] [rbp-40h] BYREF
  char Buf1[24]; // [rsp+40h] [rbp-28h] BYREF

  strcpy(Buf2, "?;FJDnv8dw8lRulyRmmt");
  memset(Buf1, 0, 0x15uLL);
  sub_140001070("%s", aInputFlag);
  sub_140001140("%s", Buf1);
  for ( i = 0; i < 20; ++i )
  {
    Buf1[i] ^= 0x11u;
    Buf1[i] ^= 0x1Bu;
    Buf1[i] -= 3;
  }
  if ( !memcmp(Buf1, Buf2, 0x14uLL) )
    sub_140001070("%s", aGoodThisIsFlag);
  else
    sub_140001070("%s", aNoThisIsNotFla);
  return 0;
}

디컴파일된 함수는 위와 같다.

Buf2에 "?;FJDnv8dw8lRulyRmmt” 문자열을 copy하고 Buf1의 메모리를 0x15만큼 0으로 초기화,

sub_140001070 = IDA 통해 들어가 보니 printf() 함수

sub_140001140 = IDA 통해 들어가 보니 scanf() 함수

i는 반복문에서 사용하는 정수형 변수이고

Buf1은 사용자 입력 저장하고 변환 후 저장될 24바이트 크기의 버퍼

Buf2는 정답 플래그 저장을 위한 24바이트 크기의 버퍼.

Buf1과 Buf2를 처음 20바이트까지 비교하고 변환된 입력값이 정답과 동일한지 판별.

입력값을 변환한 값이 Buf2와 동일하면 성공 메시지를 출력

 

Buf2에 들어가 있는 이상한 문자열을 해석하기 위한 코드 작성해야 하는 것 같다.

GPT의 도움을 좀 받아 보니, 변환 과정을 역으로 계산해야 한다고 함.

Buf2 = '?;FJDnv8dw8lRulyRmmt'
for i in range(0, 20):
    char = ord(Buf2[i])
    char += 3
    char ^= 0x1B
    char ^= 0x11
    print(chr(char), end="")

위와 같은 코드 작성해 실행해 봤음.

 

이렇게 플래그 형태의 문자열 출력됨.

이를 exe 파일에 입력해 보자.

-> 입력해 봤는데 엔터키 누를 때마다 실행파일 꺼짐... 왜이러지

 

어쨌든 정답은 맞다. 해결 완료

https://www.igloo.co.kr/security-information/%ed%95%a9%eb%8f%99-%ec%a3%bc%ec%9d%98%eb%b3%b4-%ec%8b%a0%eb%b6%84-%ec%9c%84%ec%9e%a5%ec%9d%84-%ec%a1%b0%ec%8b%ac%ed%95%98%eb%9d%bc/

 

합동 주의보! 신분 위장을 조심하라!

요 근래 글로벌 주요국들의 안보 기관들과 사이버 보안 업체들이 공통적으로 ‘北 IT 인력의 신분 위장 취업‘을 경고하는 합동 주의보를 연일 발표하고 있다.어린 나이부터 해킹에 대한 교육을

www.igloo.co.kr


최근 글로벌 주요국들의 안보 기관&사이버 보안 업체들이 공통적으로 ‘北 IT 인력의 신분 위장 취업‘ 경고하는 합동 주의보를 연일 발표 중. 북한의 IT 전문가들이 북한사람이 아닌 것으로 가장하여 다양한 국가, 산업의 다양한 회사에 취직.

북한의 해킹 인력 양성 방법을 시작으로 북한 IT 노동자들의 위장 취업 행위 및 관련 악성 행위에 대해 알아보는 내용.

 

IT·해킹 인력 조기 양성에 집중하는 北 정권

북한은 핵·미사일(대량살상무기와 탄도미사일)개발 위해 가상화폐 탈취와 위장 취업 통해 개발 자금 조달 중.

1) 해킹 강국 북한, 비결은 IT 조기교육?

지난 5월 29일, 미국 재무부는 '2024 대체불가토큰(NFT) 불법 금융 리스크 평가' 보고서를 통해

북한이 지난 22년에만 최소 7억 2,000만 달러(약 9,860억 원)에 달하는 가상화폐를 탈취했다고 밝힘.

→ 익명성이 강조되고 관리가 비교적 허술한 가상화폐의 허점 노려 국제사회 제재망을 빠져나감.

 

특히 미끼 사이트를 만들어 '가상자산사업자(Virtual Asset Service Provider, 이하 VASP)들이 자산 계정 및 비밀번호 입력하도록 유도한 뒤 자금 빼내거나 자국 IT 기술자들을 중국인 등으로 위장시켜 세계 각지의 가상화폐 관련 사업에 참여토록 하는 수법 사용

가상화폐 탈취 위해 북한 해커들은 500개에 달하는 악성 사이트 운영 중, 위장 IT 기술자 역시 수천 명에 달함

 

북한의 높은 해킹 역량의 배경: IT 조기교육

지난해 5월 인도계 미국 기업인 해커어스(HackerEarth)가 개최한 코딩 및 해킹 대회 'May Circuits 2023'에서 北 김책공업종합대학(이하 김책공대) 학생이 만점으로 1위를 차지, 2위는 北 김일성종합대학 학생, 3위와 4위도 김책공대 학생이 차지하며 북한 대학생들이 상위권 기록

김책공대 - 북한의 공과대학으로, 한국의 포스텍과 유사함

북한에서는 중고등학교 시기 IT 관련 지식 공부하고 대학 진학 이후에는 실질적으로 북한 정권에게 금전적 이익 가져다 주는 '해킹'에 대한 전문적 교육 받음.

 

2) 북한의 대표적인 해킹 인력 양성소

외교부가 지난 5월 암호화폐 해킹 등과 관련해 추가 제재 대상으로 지정한 북한 기관들:

이 중 금성학원은 북한의 특목고로 불리며, IT 분야에서 최고 수재 학교.

북한의 '사이버 전사 사관학교' 역할을 수행. 이곳의 상위 인재들이 김일성종합대학, 평양콤퓨터기대학, 김책공대 등으로 진학해 해킹 능력을 키움. 

 

북한 IT 인력에 대한 '합동 주의보'

최근 북한 IT 인력들에 대한 '합동 주의보'가 끊이지 않고 있음.

전문적인 해킹 교육 받은 북한 IT 인력들은 여러 곳의 기업에 동시 취직해 금전적 이익 취할 뿐만 아니라 사내 시스템에 접속해 정보 탈취한 것으로 드러남. 

1)  맨디언트(Mandiant), "UNC5267을 조심하라"

지난 9월 29일, 美 사이버 보안 업체 맨디언트가 발표한 '북한 IT 노동자로 인한 위협 완화' 보고서에 따르면

북한의 IT 전문가들은 북한 사람이 아닌 것으로 가장하여 다양한 국가, 산업의 다양한 회사에 취직하여 적잖은 돈을 벌여들임. 

보고서는 북한의 'UNC5267'이 서방 국가를 겨냥해 위장 취업을 이어가고 있다고 발표.

UNC5267 - 위장 취업 조직으로 지난 2018년부터 활발한 활동 진행 중. 이 중 다수는 100%원격 근무가 가능한 업체에 지원.

UNC5267의 목표 3가지

 

이들은 정부에서 관리하거나 지령을 받아 움직이는 조직은 아니고, 다소 느슨하게 조직되어 있는 개개인의 집합에 더 가까움.

주로 중국과 러시아에 파견되거나 아프리카나 동남아에 근거지 마련하고 주로 미국이나 서방 국가 기업에 취업.

 

북한 IT 인력들은 여러 가지 방법으로 자신들의 정체 탄로나는 것을 막음.

진짜 이름 숨기기 위해 현지인을 고용하거나,

아예 현지에 페이퍼컴퍼니 역할을 해 줄 단체를 구성하거나,

미국의 경우 미국인이지만 북한인들의 이러한 활동을 돕는 사람들(美 정부 명칭으로는 촉진자라고 불림)이 있고 최근 몇 년간 이 촉진자들이 여럿 체포됨. 

 

촉진자들은 회사에서 제공하는 업무용 노트북 대신 수령하고, 해당 노트북을 자신의 집에 연결시켜 북한 해커가 원격 제어할 수 있게 해 주며 도용된 신원을 사용해 현지에서 필요한 서류를 꾸미거나 자금 세탁까지 도움.

이로 인해 지금까지 미국에서만 UNC5267에 속은 기업이 300개 이상, 최소 680만 달러(약 89억 원)의 피해가 발생함

 

UNC5267이 피해 기업의 원격 접근 권한 획득하려는 목적

  • 물리적으로 다른 나라에 있음
  • 원격에서 업무를 하는 사람들에게 기업들이 차츰 높은 접근 권한을 허용하는 경향을 가짐
    • 코드 수정, 네트워크 시스템 관리 등 IT 프로젝트를 위해 꼭 필요한 일들

원격 근무 가능한 부분에 지원 위해 북한 IT 인력들은 가짜 이력서를 정교하게 꾸미기도 함.

한두 명이 여러 개의 이력서를 만들어 회사에 뿌리고 있던 걸로 밝혀짐. 

북한 IT 인력의 허위 이력서

허위 이력서 등을 바탕으로 취업에 성공한 북한 IT 노동자는 회사로부터 업무용 노트북 지급받음.

한 사람이 여러 페르소나를 운영하며 해당 노트북에 원격으로 접근하여 맡겨진 일들을 처리,

이 과정에서 촉진자들은 다수의 노트북을 한번에 켜두고 원격 접근을 도움

UNC5267의 업무용 노트북과 행동 패턴에서 발견된 공통점

 

2) 北 위장 취업 경고하는 글로벌 주요국들의 안보 기관

맨디언트의 경고 뿐만 아니라 글로벌 주요국들의 안보 기관에서도 북한 IT 인력의 위장 취업을 경고

  • 독일 정보기관 연방헌법수호청
    • 지난 10월 1일, 북한 IT 노동자들이 독일 기업에 위장 취업하고 있다며 '경제 안전 정보, 북한 IT 노동자'라는 제목의 사이버 보안 권고문 발표.
    • 해당 사이버 보안 권고문의 발표 배경에는 北 해커조직 김수키의 독일 방산업체 '딜 디펜스' 해킹 공격이 존재
    • 딜 디펜스는 국산 전투기인 KF-21용 미사일 IRIS-T를 생산함
  • 영국 재무부
    • 북한 IT 노동자들이 영국과 미국 등의 기업에 위장 취업하고 있다며 '주의보(Advisory on North Korean IT Workers)'를 발령
    • 현재 북한 IT 노동자들이 영국 기업에 취업 위해 온라인 프리랜서 플랫폼이나 구인구직 사이트 이용하고 있다고 지적
    • 불법 고용을 통해 벌어들인 자금 확보 위해 전자 화폐 기관이나 자금 서비스 업체, 암호화폐 거래소 제공업체의 대체 결제 수단 활용할 가능성 크다고 덧붙임

 

영국 재무부가 소개한 사례

  • 자신도 모르게 북한 IT 노동자 고용, 수익 제공
    • 프로세스

  • 북한의 자금 조달을 위한 페이퍼 컴퍼니로 운영되는 기업
    • 프로세스

이러한 프로세스 바탕으로 얻은 수익은 UN이 금지한 물품과 군사 장비 등에 사용되며

북한의 대량살상무기와 미사일 개발 프로그램에 기여한다고 지적

북한 IT 노동자의 위장 취업은 악성코드 유포 등 대단한 해킹 기술 필요로 하지 않으면서도 비교적 손쉽게 정보나 자금 탈취하는 수단으로 자리잡고 있다고 지적

 

파일 다운로드 해보면 이번엔 파일이 .mp4다

다운받아서 열면 이렇게 파일이 손상되었다고 나옴.

손상된 걸 복구시키면 플래그 획득이 가능? 

 

우선은 HxD로 파일을 열었다. 

손상되어서인지 파일을 까 보면 뭐가 없다.

용량이 커서 스크롤이 작은 걸 보면 뭔가 숨어있을 것 같긴 한데...

 

이렇게 데이터가 있는 부분이 존재

그런데 읽을 수 있는 내용은 없다. 여기 말고도 다른 부분에도 데이터 영역 있음.

flag 관련 내용이 있을까 싶어 flag로 검색을 해봤음

이런 내용이 나왔다

근데 여기 직접적인 플래그 내용이 나와 있진 않음

 

volatility 이용해서 풀이해야 하는 문제. 

근데 볼라틸리티 사용법 까먹었다ㅎㅎ. 구글링으로 다시 공부함

 

볼라틸리티 있는 폴더에 내가 분석할 data.mp4 파일 넣고 cmd 창 열어서 아래 명령어로 profile 수집함.

.\volatility_2.6_win64_standalone.exe -f data.mp4 imageinfo

Profile 알아야 분석이 가능하다.

Suggested Profile: Win7SP1x64

 

그리고 cmd에서 입력한 기록을 확인하려 함. 그 기록을 통해 덤프를 떴는지 확인 가능!

.\volatility_2.6_win64_standalone.exe -f data.mp4 --profile=Win7SP1x64 cmdscan

DumpIt.ext 명령어를 사용한 것이 나옴. 확실히 덤프를 떴음.

 

덤프 파일에 있는 모든 파일 확인할 것. 검색 쉽게 하기 위해 txt 파일로 결과를 추출.

.\volatility_2.6_win64_standalone.exe -f data.mp4 --profile=Win7SP1x64 filescan >> scan.txt

이런 txt 파일이 만들어진다. 

열어서 flag 검색. 

.bmp 확장자를 사용하는 flag 파일이 있는 것을 확인. 

 

해당 파일을 추출한다

.\volatility_2.6_win64_standalone.exe -f data.mp4 --profile=Win7SP1x64 dumpfiles -Q 0x000000007db82b30 -D ./

위 명령어를 입력하면,

이렇게 .dat 확장자의 데이터가 추출됨.

이 파일의 확장자를 .bmp로 변경한다. 

열면 위처럼 손글씨로 쓴 플래그가 추출된다! 문제 풀이 성공

+ Recent posts