Evooo1Bot Linux 봇넷: 기능과 공격 기법
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
Evooo1Bot은 가장자리에 있는 장치를 손상시켜 지속 가능한 프록시 인프라를 구축하는 새로운 미라이 기반의 리눅스 봇넷입니다. 이 악성코드는 암호화된 C2 통신, SOCKS 릴레이 모듈, 통합된 익스플로잇 아스날과 같은 고급 기능을 포함하고 있습니다. 이는 IoT 장치 및 네트워크 하드웨어에 영향을 미치는 다양한 취약점을 표적으로 삼습니다.
조사
포티가드랩은 활성 익스플로잇 시도를 포착한 IPS 원격 측정을 통해 봇넷을 발견했습니다. 조사는 로더 스크립트가 대상 시스템 아키텍처에 맞춰진 바이너리를 가져오는 모듈식 아키텍처를 밝혀냈습니다. 분석가들은 또한 다층 문자열 암호 해독 및 분석 도구 확인을 포함하는 몇 가지 회피 기술을 식별했습니다.
완화
조직은 모든 인터넷 연결 장치 및 네트워크 장치의 적시 패치에 우선순위를 두어야 합니다. 정기적인 펌웨어 업데이트와 의심스러운 외부 연결에 대한 지속적인 모니터링은 노출을 줄이는데 필수적입니다. 가장자리 장치에서 불필요한 서비스를 비활성화하면 사용할 수 있는 공격 표면을 더욱 최소화할 수 있습니다.
대응
Evooo1Bot 활동이 탐지되면, 영향을 받은 가장자리 장치는 측면 이동 및 프록시 남용을 막기 위해 즉시 네트워크에서 격리되어야 합니다. 조사자는 침해 범위를 결정하고 cron 작업이나 systemd 서비스와 같은 지속성 메커니즘을 찾아야 합니다. 또한 봇넷의 자격 증명 스니퍼로 인해 노출되었을 수 있는 자격 증명은 갱신되어야 합니다.
공격 흐름
이 부분은 아직 업데이트 중입니다.
탐지
바이너리/스크립트/폴더의 위험한 권한이 설정되었습니다 (cmdline 통해)
표준 도구를 통한 원격 파일 업로드 / 다운로드 (cmdline 통해)
리눅스 호스트에서 숨겨진 파일이 생성되었습니다 (file_event 통해)
IOCs (HashSha256)로 감지: 다기능 리눅스 봇넷 “Evooo1Bot”
IOCs (SourceIP)로 감지: 다기능 리눅스 봇넷 “Evooo1Bot”
IOCs (DestinationIP)로 감지: 다기능 리눅스 봇넷 “Evooo1Bot”
Evooo1Bot의 지속성을 위한 반복된 wget 또는 curl 사용 및 /proc/self/oom_score_adj 조정 [리눅스 시스템]
Evooo1Bot 프로세스 초기화 및 디버깅 도구 존재 탐지 [리눅스 프로세스 생성]
Evooo1Bot을 위한 wget.sh 스크립트 실행 감지 [리눅스 파일 이벤트]
시뮬레이션 실행
전제 조건: 원격 측정 및 기초 상태가 통과해야 합니다.
논리: 이 섹션은 탐지 규칙을 트리거하기 위한 적대자 기술(TTP)의 정확한 실행을 상세히 설명합니다. 명령과 내러티브는 반드시 식별된 TTP를 직접 반영해야 하며 탐지 논리에서 예상되는 정확한 원격 측정을 생성해야 합니다. 추상적이거나 관련 없는 예는 오진을 초래할 것입니다.
-
공격 내러티브 & 커맨드: 적대자가 리눅스 서버에 초기 접근 권한을 얻었습니다. 봇넷 에이전트가 리소스를 많이 사용할 때에도 활성 상태를 유지하기 위해, 원격 C2 서버에서 페이로드를 다운로드하는 명령을 실행합니다.
curl -sL(조용하고, 리디렉션을 따름). 다운로드 직후, 프로세스는 자신의 커널 우선순위를 수정하려고 시도합니다.-17를/proc/self/oom_score_adj에 에코하며. 이 특정 결합의 “은밀한” 다운로드와 “프로세스 보호”는 Evooo1Bot의 서명입니다. -
회귀 테스트 스크립트:
#!/bin/bash # Evooo1Bot 동작의 시뮬레이션 # 목표: CommandLine 조건을 모두 충족하여 탐지 규칙을 트리거 echo "[+] Evooo1Bot 시뮬레이션 시작..." # 단계 1: 규칙의 정확한 플래그를 사용하여 은밀한 다운로드 시뮬레이션 # 실제 외부 트래픽을 피하기 위해 로컬 루프백 또는 더미 URL을 사용할 수 있으나 # CommandLine은 규칙의 문자열과 일치해야 합니다. echo "[+] 페이로드 다운로드를 모방하기 위해 curl -sL 실행 중..." curl -sL http://localhost:8080/payload > /tmp/payload_test 2>/dev/null || echo "[!] 참고: URL에 접근할 수 없지만 명령은 실행되었습니다." # 단계 2: 지속성을 위해 OOM 점수 조정 시뮬레이션 echo "[+] 종료 방지를 위해 oom_score_adj 조정..." echo -17 > /proc/self/oom_score_adj echo "[+] 시뮬레이션 완료. SIEM에서 경고 확인." -
정리 명령:
# 더미 페이로드 파일 제거 rm -f /tmp/payload_test # OOM 점수 재설정 (현재 셸/프로세스에만 영향 미침) echo 0 > /proc/self/oom_score_adj