본문으로 건너뛰기
피드

Go의 golang.org/x/crypto를 사칭하는 악성 모듈 발견 — 비밀번호 탈취 후 Rekoobe 백도어 설치

security 약 6분
vote
0
댓글
북마크

golang.org/x/crypto를 복제한 악성 Go 모듈이 ReadPassword 함수에 백도어를 심어 비밀번호를 탈취하고, 리눅스 호스트에 Rekoobe 백도어를 설치함. Go 모듈 프록시에서는 차단됐지만 이미 벤더링한 프로젝트는 여전히 취약.

  • 1

    golang.org/x/crypto를 통째로 복제 후 ReadPassword에 백도어 삽입

  • 2

    비밀번호 평문 탈취 → SSH 키 삽입 → 방화벽 해제 → Rekoobe 백도어 설치

  • 3

    Ubuntu 클라우드 VM/CI 러너 등을 타깃으로 한 것으로 추정

  • 4

    APT31에 귀속된 Rekoobe 백도어가 최종 페이로드

  • 5

    Go 모듈 프록시에서 차단됐지만 이미 벤더링한 코드는 확인 필요

  • Socket 보안팀이 악성 Go 모듈 github[.]com/xinfeisoft/crypto를 발견했음. 정식 golang.org/x/crypto 코드베이스를 통째로 복제한 뒤, ssh/terminal/terminal.goReadPassword 함수에 백도어를 심은 것
  • golang.org/x/crypto는 Go 생태계의 핵심 암호화 라이브러리로, bcrypt, argon2, chacha20, ssh 등을 제공하는 초고신뢰 패키지임. 이걸 사칭한 건 전략적인 선택 — 의존성 그래프에서 의심받기 어려움

백도어 작동 방식

  • 앱이 ReadPassword를 호출해서 터미널에서 비밀번호를 입력받는 순간 트리거됨. SSH 패스프레이즈, DB 로그인, 대화형으로 입력하는 API 키 같은 고가치 시크릿을 노린 것
  • 동작 순서:
    1. 입력된 비밀번호를 평문으로 /usr/share/nano/.lock에 저장
    2. GitHub Raw에서 스테이징 URL을 가져옴 (xinfeisoft/vue-element-admin 레포의 update.html)
    3. 비밀번호를 해당 URL로 POST 전송
    4. 같은 URL에서 쉘 스크립트를 받아와 /bin/sh로 실행
  • 비대화형 테스트에서는 ReadPassword가 호출되지 않으니 조용히 숨어있고, 실제 운영 환경에서만 트리거됨. 발각 확률을 최소화하는 설계임

감염 후 벌어지는 일

  • 다운로드된 쉘 스크립트(snn50.txt)가 하는 일:
    1. /home/ubuntu/.ssh/authorized_keys에 공격자 SSH 키 추가 — 비밀번호 변경해도 SSH 접근 유지
    2. iptables 기본 정책을 전부 ACCEPT로 변경 — 방화벽 무력화
    3. img[.]spoolsv[.]cc에서 .mp5 확장자로 위장한 바이너리 두 개를 받아 실행 후 삭제
  • 경로가 /home/ubuntu/로 하드코딩되어 있어서 Ubuntu 클라우드 VM, 배스천 호스트, CI 러너 같은 환경을 노린 것으로 보임
sequenceDiagram
    participant 앱 as 감염된 앱
    participant GH as GitHub Raw
    participant C2 as 공격자 서버
    participant 호스트 as 리눅스 호스트

    앱->>앱: ReadPassword() 호출 시 트리거
    앱->>GH: update.html 요청 (스테이징 URL 획득)
    GH-->>앱: seed.php URL 반환
    앱->>C2: 비밀번호 평문 POST 전송
    C2-->>앱: 쉘 스크립트(snn50.txt) 반환
    앱->>호스트: /bin/sh로 스크립트 실행
    호스트->>C2: .mp5 페이로드 2개 다운로드
    호스트->>호스트: SSH 키 삽입 + 방화벽 해제 + Rekoobe 실행

최종 페이로드: Rekoobe 백도어

  • 555.mp5Rekoobe 리눅스 백도어로 확인됨. APT31(Zirconium)에 귀속된 스파이 활동에서 사용된 이력이 있는 백도어이고, 공개된 Tiny SHell 백도어 코드베이스에서 파생됨
  • 154[.]84[.]63[.]184:443으로 통신하는데, 정상 TLS 핸드셰이크가 아닌 커스텀 프로토콜을 사용하면서 포트 443으로 HTTPS인 척 위장함
  • 공격자의 GitHub 계정(xinfeisoft)에는 vue-element-admin 레포가 스테이징 인프라로 사용되고 있었고, 2025년 2월 최초 생성 후 7월에 C2 도메인을 .net에서 .cc로 변경한 이력이 있음 — 몇 달째 운영 중이었다는 뜻

⚠️주의

> Go 모듈 프록시에서는 이제 차단되지만, 이미 벤더링한 프로젝트는 여전히 취약함. go.modgo.sum 변경을 보안 민감하게 리뷰하고, xinfeisoft/crypto가 의존성에 없는지 확인할 것

  • Socket의 권고: go.mod/go.sum 변경을 보안 민감 사항으로 취급하고, 네트워크 접근이나 쉘 실행을 가능하게 하는 의심스러운 유틸리티 라이브러리 추가를 차단할 것. /usr/share/nano/.lock 쓰기, GitHub Raw 요청 후 동적 POST, curl | sh 실행, authorized_keys 수정, iptables 정책 변경 등을 엔드포인트/CI 탐지에 추가할 것

Go 생태계의 네임스페이스 혼동을 노린 공급망 공격의 교과서적 사례. go.mod/go.sum 변경을 보안 리뷰 대상으로 격상시켜야 함.

댓글

댓글

댓글을 불러오는 중...

security

엘에이 경찰, 사생활 침해 논란 끝에 플록 번호판 감시 계약 종료

엘에이 경찰이 번호판 인식 카메라 업체 플록 세이프티와의 3년 계약을 연장하지 않기로 했어. 시민권, 프라이버시, 데이터 보관과 공유 문제를 해결하지 못했다는 게 핵심 이유야. 플록은 미국 전역에 최소 8만 대 카메라망을 깔아 경찰과 연방기관이 차량을 추적할 수 있게 해왔고, 오탐·보안 사고·이민 단속 악용 의혹까지 겹치며 압박이 커졌어.

security

크로미움 148부터 Math.tanh 한 번으로 운영체제 지문이 새는 문제

크로미움 148 이후 V8이 Math.tanh 계산을 자체 구현 대신 운영체제의 수학 라이브러리에 맡기면서, 같은 입력값도 리눅스·맥·윈도우에서 마지막 비트가 달라지는 지문 신호가 생겼다. 이 차이는 User-Agent로 맥이라고 주장하면서 리눅스 수학 결과를 내는 식의 위장을 바로 들키게 만든다. CSS 삼각함수와 웹 오디오까지 보면 브라우저 수학 경로가 꽤 복잡하게 갈라지고, 제대로 흉내 내려면 실제 운영체제 라이브러리의 비트 단위 동작까지 맞춰야 한다.

security

출입통제도 클라우드 구독제로 간다…제로트러스트·AI 분석이 승부처

기업 출입보안이 사업장별 서버를 두는 방식에서 클라우드 기반 서비스형 출입통제(ACaaS)로 옮겨가고 있다. 시장은 2026년 17억8000만 달러에서 2030년 31억9000만 달러로 커질 전망이고, 제로트러스트·모바일 인증·AI 출입 분석·스마트빌딩 통합이 핵심 경쟁 포인트로 꼽힌다.

security

AWS·구글 클라우드, 양자컴퓨터 대비해 암호 체계 갈아엎는 중

AWS와 구글 클라우드가 양자컴퓨터 시대를 대비해 기존 공개키 암호와 양자내성암호를 함께 쓰는 하이브리드 전환을 시작했다. 핵심 배경은 지금 훔친 암호문을 나중에 양자컴퓨터로 푸는 ‘선수집·후해독’ 공격이고, 국내도 통신·금융·국방 등 5개 분야에 45억원을 투입해 실증에 들어간다.

security

보안 점검 맡긴 AI 에이전트가 악성코드를 직접 실행할 수 있다는 경고

AI 보안 에이전트가 저장소를 검사하다가 README 같은 문서에 숨은 프롬프트 인젝션에 속아 악성 바이너리를 실행할 수 있다는 연구가 나왔다. 클로드 코드와 코덱스의 자동 모드처럼 승인 없이 명령을 수행하는 구성에서 문제가 재현됐고, 여러 모델과 공급업체를 가로질러 같은 패턴이 통했다는 점이 핵심이다.