Shodan은 인터넷에 연결된 다양한 IoT 기기들을 검색하고 분석할 수 있는 도구이다. 이를 통해 웹캠, CCTV, 네트워크 프린터, 산업제어시스템 등 다양한 기기들의 보안 취약점을 파악하고, 실시간으로 접근할 수 있는 정보들을 열람할 수 있다. 이번 시간에는 Shodan을 통해 검색할 수 있는 주요 IoT 기기들과 각 기기의 특징을 살펴보겠다.

 

1. CCTV

 

  • 특징: 감시용 카메라. 아날로그 CCTV가 아닌 네트워크 연결형 카메라.
  • 보안 위험: CCTV 영상 유출, 관리 부실로 인한 해킹 위험. 개인정보 유출 가능성 있음.
  • 대표적 피해 사례: 영상 정보 유출 및 해킹 사례 발생.

 
 
검색 키워드: port:80 has_screenshot:true  (해당 ip를 웹브라우저 주소 창에 검색하면 이동한다)

  • 포트 554는 **RTSP (Real-Time Streaming Protocol)**로, 웹 브라우저로 직접 접속할 수 없다.
  • has_screenshot:true는 Shodan이 캡처한 화면이 있는 결과만 표시한다.
  • RTSP 포트로 접속이 불가능하므로, HTTP 80 포트로 변경하여 접근할 수 있다. 이를 통해 CCTV 영상에 접근할 수 있다.

2. WebCam, IP Cam

  • 특징: 화상 채팅이나 인터넷 방송 등으로 사용되는 카메라. 네트워크를 통해 직접 연결되는 웹캠에 대한 검색어는 다양한 종류가 존재함.
  • 보안 위험: 사생활 침해 우려가 큼. 불법적으로 웹캠 화면을 엿보거나 유출될 수 있음.
  • 대표적 피해 사례: 가정집에서 설치된 IP 카메라 해킹 사례가 보도된 바 있음.

 

IP 카메라

  • 검색 키워드: title:"IPCam Client" port:80


    • 예를 들어, Foscam과 같은 브랜드에서 기본 비밀번호를 사용하는 웹캠은 쉽게 접근할 수 있을 수 있다.(사용자가 비밀번호를 안 바꿨다면)

 

WebCam

  • 검색 키워드: title:"webcam" has_screenshot:true



    • 이 검색어를 통해 웹캠의 라이브 영상을 확인할 수 있다. Shodan은 각 기기의 화면을 캡처하여 결과로 표시하므로, 이를 통해 라이브 영상을 확인할 수 있다.

 
 
 
 

3. Network Printer

 

  • 특징: 네트워크에 연결되어 모든 사용자들이 함께 사용할 수 있는 프린터.
  • 보안 위험: 프린터 해킹으로 문서 엿보기, 인쇄 기록 훔쳐보기 등. 프린터 하드디스크에서 이전 인쇄 기록을 볼 수 있는 경우도 있음.
  • 대표적 피해 사례: 프린터 해킹 사건으로 인해 문서 정보가 유출된 사례 있음.

 
 

  • HP 프린터 검색 키워드: "HP-ChaiSOE" port:80
  • Xerox 프린터 검색 키워드: ssl:"Xerox Generic Root"

 
일부 프린터는 기본 비밀번호가 걸려 있지 않거나, 취약한 비밀번호를 사용하여 보안에 취약할 수 있다. 예를 들어, 엡손과 캐논은 비밀번호가 걸려 있지만, 다른 프린터는 보안에 취약한 경우가 있다. Server: printer 포트 80을 통해 확인할 수 있다.

4. 산업 제어 시스템 (ICS)

  • 특징: 산업 시설을 제어하는 시스템으로, 네트워크 기술을 통해 외부와 연결되며 생산성 향상에 기여함.
  • 보안 위험: 해킹 시 산업 기밀 유출, 시설 셧다운, 재정적 피해, 국가 시설을 대상으로 한 테러 가능성.
  • 사례: 과거 산업 제어 시스템이 해킹되어 큰 피해를 본 사례가 있음.

1. Nordex 관련 검색

  • Nordex는 독일에 본사를 둔 풍력 발전기 제조업체.
  • 검색한 결과, ICS(산업제어시스템) 관련 장비에서 실행 중인 시스템이 나타남.
  • 이 시스템은 로그인으로 컨트롤 가능한 상태

2. ICS 검색

  • ICS(산업제어시스템)와 관련된 장비를 검색하는 과정에서 특정 제품이나 시스템에 대한 정보를 찾음.
  • ICS 관련 시스템은 보통 특정 산업 장비에 대한 제어를 담당하는 시스템으로, 해당 시스템은 리눅스 기반의 모니터링 대시보드를 활용하는 것으로 추측됨.

 


3. 제품 가이드북을 활용한 로그인 UI 우회 방법

  • 목적: 로그인 UI 우회 방법 탐색
  • 방법:
    1. ICS(산업제어시스템) 회사 이름을 Shodan에서 검색
    2. 검색 결과에서 제품(프로덕트) 이름을 확인
    3. 해당 제품 이름을 구글에서 검색하여 가이드북을 찾음
    4. 가이드북을 분석하여 로그인 UI를 우회할 수 있는 방법을 탐색

4. Siemens 제품의 VNC 서버 취약점 분석(raw data 분석)

  • top automation vendors를 검색하면 Siemens 나타났으며, Siemens 제품과 관련된 ICS 정보를 검색해봤다.
  • Siemens 제품과 관련된 데이터를 추가 검색
  • Siemens의 제품과 관련된 데이터를 쇼단에서 이미지 탭에서 검색하고, 그 내부의 raw data를 분석한 결과 VNC 서버와 관련된 정보가 나타남.

 

  • 발견된 취약점:
    • 인증이 비활성화된 VNC 서버가 존재하여 외부 공격자가 쉽게 접근할 수 있음
    • VNC 서버의 보안이 취약할 경우 공격자가 시스템에 접근할 가능성이 높음
  • 기술적 제한:
    • 웹브라우저는 VNC 프로토콜(RFB)을 지원하지 않음
    • VNC 서버에 접속하려면 전용 VNC 클라이언트가 필요함

 

5. POS 시스템

 
 

  • 특징: 상점에서 판매 거래를 처리하는 시스템으로, 결제 카드 정보와 고객 데이터를 처리하는 중요한 역할을 한다. POS 시스템은 카드 결제뿐만 아니라, 재고 관리, 매출 기록 등의 기능을 수행한다.
  • 보안 위험: 카드 정보 및 고객 데이터를 처리하기 때문에 해킹 시 중요한 개인 정보가 유출될 수 있다. POS 시스템 해킹을 통해 신용카드 정보, 결제 내역, 고객 정보 등이 유출될 수 있으며, 이를 통해 금융 사기 및 데이터 도용이 발생할 수 있다.
  • 대표적 피해 사례: POS 시스템이 해킹되어 카드 정보가 유출된 사건이 발생한 바 있으며, 특히 대형 상점 체인에서 발생한 사례가 보도된 적 있음. 해커는 POS 단말기를 통해 결제 정보를 훔쳐 불법적인 거래를 시도하기도 한다.

 

  • pos 검색 키워드: pos

 

  • Shodan을 통해 POS 시스템의 로그인 화면을 확인할 수 있다. 일부 취약한 POS 시스템은 보안에 취약하여 개인정보 유출의 위험이 있다.

 

개인정보 유출 원인

  1. 취약한 기본 설정: 많은 IoT 기기가 기본 비밀번호나 설정을 그대로 사용하여 보안에 취약하게 노출된다.
  2. 소프트웨어 취약점: 오래된 소프트웨어를 사용하거나 보안 패치가 적용되지 않은 경우 해킹에 취약할 수 있다.
  3. 인증 및 암호화 부재: 일부 IoT 기기는 인증 기능이 없거나 암호화되지 않은 통신을 사용하여 개인정보 유출 위험이 있다.
  4. 네트워크 보안 취약점: 공유기나 방화벽 설정이 취약한 경우, 외부 공격자가 내부 네트워크에 접근하여 IoT 기기를 공격할 수 있다.

보안 강화 방안

  1. 기본 비밀번호 변경: 모든 IoT 기기의 기본 비밀번호를 강력한 비밀번호로 변경해야 한다.
  2. 최신 소프트웨어 유지: IoT 기기의 소프트웨어를 최신 버전으로 유지하고 보안 패치를 정기적으로 적용해야 한다.
  3. 강력한 인증 및 암호화: 인증 기능을 활성화하고 암호화된 통신을 사용하여 개인정보를 보호해야 한다.
  4. 네트워크 보안 강화: 공유기와 방화벽 설정을 강화하여 외부 공격으로부터 네트워크를 보호해야 한다.

결론

Shodan을 활용하여 IoT 기기의 보안 취약점을 미리 파악하고 적절한 보안 조치를 취하는 것이 중요하다. Shodan에서 검색할 수 있는 IoT 기기들은 CCTV, 웹캠, IP 카메라, 네트워크 프린터, 산업 제어 시스템(ICS) 등이 있다. 각 기기는 기본 설정, 소프트웨어 취약점, 인증 및 암호화 부재 등의 이유로 보안에 취약할 수 있으며, 이를 해결하기 위한 보안 강화 방안을 적용하는 것이 중요하다.
 
참고
https://itstudycube.tistory.com/29

28주차 과제 - 침해대응 & CERT 과정 (5)

침해대응 & CERT 과정을 진행합니다. 지난 과정에서 IoT와 Shodan에 대하여 알아보았습니다. 이번 시간에는 Shodan을 통하여 탐색할 수 있는 대표적인 기기들에 대하여 알아보도록 하겠습니다. 과제

itstudycube.tistory.com

https://youtu.be/bZUnQR4bdT8?si=6oqM7OKZ2FS5zcHP

https://www.youtube.com/watch?v=Stxrz0timCg
 

'Security > CERT' 카테고리의 다른 글

사물인터넷(IoT)과 Shodan  (0) 2025.02.19
구글해킹을 통한 취약 • 노출정보 검색  (0) 2025.02.15
구글해킹  (0) 2025.01.31
침해 대응 & CERT  (0) 2025.01.18

사물인터넷(IoT)과 Shodan 개요

1. 사물인터넷(IoT) 개념 및 특징

https://cdn.iconsumer.or.kr/news/photo/202406/26471_33597_5146.jpg

  • 정의: 네트워크에 연결된 다양한 디바이스들이 서로 통신하고 데이터를 교환하는 기술
  • 예시: 진공청소기, 자동차, 전구 등 센서를 통해 데이터 수집 및 반응 가능
  • 작동 방식:
    1. 센서가 데이터 수집
    2. 네트워크(Wi-Fi, 블루투스 등)로 데이터 전송
    3. 클라우드 서버 또는 스마트 허브에서 분석
    4. 명령이 디바이스로 전달 및 실행

2. IoT 보안 문제점

  • 펌웨어 취약점: 보안 업데이트 미흡, 패치 불가능한 취약점 존재 (*펌웨어: 하드웨어를 제어하는 소프트웨어로, 기기의 내장 메모리에 저장되어 동작을 관리하는 프로그램이다. )
  • 네트워크 보안: 취약한 네트워크 연결 시 공격자가 다른 장치로 침투 가능
  • 암호화 부족: 기본적으로 암호화 없이 통신하여 데이터 유출 위험
  • 물리적 접근 취약: 외부에 배치된 디바이스는 직접적인 해킹 가능  ( *논리적 해킹은 온라인을 통한 원격 공격, 물리적 해킹은 기기 자체를 조작하는 오프라인 공격이다. )
  • 기본 설정 문제: 제조사 기본 ID/PW 미변경 시 공격 가능 (예: iptime 공유기)

3. Shodan 개요

  • 정의: 인터넷에 연결된 장치 및 서비스를 검색하는 특수 검색 엔진
  • 기능:
    • 웹 서버, 라우터, 웹캠 등 인터넷 연결 장치 검색
    • 네트워크 내 취약한 장치 식별 및 보안 점검
    • 특정 운영체제(OS), 소프트웨어, 포트 등이 열린 장비 확인 가능

4. Shodan 검색 필터 및 사용 예시

필터 설명 사용예시
city 특정 도시 내 장치 검색 city:"Seoul"
country 특정 국가 내 장치 검색 country:"KR"
port 특정 포트가 열린 장치 검색 port:22 (SSH)
org 특정 조직의 장비 검색 org:"Google"
product 특정 소프트웨어 실행 중인 장비 검색 product:"nginx"
version 특정 버전 사용 장비 검색 product:nginx version:1.19.6
os 특정 운영체제 사용 장비 검색 os:"Linux"
geo 특정 좌표 근처 장비 검색 geo:37.7749,-122.4194
hostname 특정 호스트명을 가진 장비 검색 hostname:"example.com"
net 특정 IP 대역 검색 net:192.0.2.0/24
vuln 특정 취약점이 있는 장비 검색 vuln:CVE-2021-34527
device 특정 장치 유형 검색 device:router
  • 복합 검색 예시: city:"Seoul" port:22 (서울에 있는 SSH(22번 포트) 실행 장치 검색)

 

사물인터넷(IoT)과 Shodan의 연관성

Shodan은 IoT 기기와 밀접한 관련이 있는 검색 엔진이다. IoT 기기는 인터넷에 연결되어 데이터를 주고받으며, 보안이 취약한 경우 외부에서 쉽게 접근할 수 있다. Shodan은 이러한 인터넷에 연결된 IoT 기기들을 검색하여 노출된 장치를 식별하는 데 활용된다.

1. IoT 기기의 보안 취약점과 Shodan

  • 많은 IoT 기기는 기본 비밀번호(예: admin/admin)로 설정되어 있어 해킹에 취약함.
  • 취약한 펌웨어(보안 패치가 적용되지 않은 구형 버전) 사용 시 공격에 노출될 가능성이 높음.
  • 보안 설정 없이 인터넷에 직접 연결된 기기(CCTV, 공유기, 스마트 TV 등)는 외부에서 쉽게 접근 가능함.

Shodan을 활용하면 이러한 취약한 IoT 기기를 검색하여 확인할 수 있음. 예를 들어, 아래와 같은 검색어를 사용하면 특정 IoT 기기의 정보를 찾을 수 있다.

 
product:"webcam" country:"KR"
→ 한국에서 인터넷에 연결된 웹캠 검색

 

port:23 os:"Linux"
→ Telnet(23번 포트)이 열린 리눅스 IoT 기기 검색


2. Shodan을 통한 IoT 기기 검색 예시

검색 목적 shodan 검색어 예시설명
공개된 CCTV 검색 product:"webcam" 인터넷에 연결된 웹캠 검색
스마트 홈 기기 검색 product:"home automation" 스마트 홈 장치(예: 스마트 도어락) 검색
공유기 및 라우터 검색 device:router country:"KR" 한국 내 인터넷에 노출된 공유기 검색
기본 로그인 설정된 장치 port:23 (Telnet 검색) 기본 계정(admin/admin)으로 접근 가능한 장치 확인 가능
특정 브랜드 IoT 기기 검색 product:"Dahua" Dahua 브랜드의 IP 카메라 검색

이처럼 Shodan을 활용하면 특정 IoT 장비가 인터넷에 노출되어 있는지 확인할 수 있다.


3. Shodan이 IoT 보안에 미치는 영향

긍정적인 측면

  • 보안 전문가 및 기업이 취약한 IoT 장비를 검색하고 보호 조치를 할 수 있음.
  • 제조업체는 자사 IoT 기기의 보안 취약점을 파악하고 개선 가능.
  • 기업 및 일반 사용자도 자신의 IoT 기기가 외부에 노출되었는지 확인 가능.

부정적인 측면

  • 해커가 Shodan을 악용하여 보안이 취약한 IoT 기기를 공격하는 데 사용할 수 있음.
  • 실제로 공개된 CCTV, 스마트 도어락, 공장 자동화 시스템(SCADA) 등이 Shodan에서 검색된 사례가 있음.
  • 기본 로그인 설정을 변경하지 않은 IoT 기기는 누구나 쉽게 접근할 수 있어 해킹 위험이 존재함.

4. IoT 기기의 보안을 강화하는 방법

Shodan을 통해 보안이 취약한 IoT 기기가 검색되는 것을 막기 위해 다음과 같은 보안 조치를 취해야 한다.

기본 비밀번호 변경 (admin/admin 사용 금지)
불필요한 포트 차단 (특히 Telnet, FTP, HTTP 기본 포트)
펌웨어 업데이트 (최신 보안 패치 적용)
VPN 사용 및 방화벽 설정 (공개 네트워크에서 보호)
Shodan을 활용한 자체 보안 점검 (자사 기기가 외부에 노출되었는지 확인)


결론

IoT 기기의 보안 취약점은 해커에게 악용될 위험이 있으며, Shodan은 이러한 기기를 검색하는 데 사용될 수 있다.
하지만 이를 역이용하여 보안 점검 및 취약점 보호 조치를 취하면 Shodan은 오히려 IoT 보안 강화를 위한 유용한 도구가 될 수 있다.
따라서 기업 및 개인은 Shodan을 활용해 자사 IoT 장비의 보안 상태를 주기적으로 점검하고 강화해야 한다.

https://pntbiz.co.kr/wp-content/uploads/2020/08/Easy-Steps-for-Enterprises-to-Strengthen-IoT-Security-1030x579.jpg

 

 

참고자료

https://itcase.tistory.com/entry/26-%EC%B9%A8%ED%95%B4%EB%8C%80%EC%9D%91CERT-4-%EC%82%AC%EB%AC%BC%EC%9D%B8%ED%84%B0%EB%84%B7IoT-%E2%80%A2-Shodan

'Security > CERT' 카테고리의 다른 글

Shodan을 통한 IoT 기기 검색과 특징  (0) 2025.03.01
구글해킹을 통한 취약 • 노출정보 검색  (0) 2025.02.15
구글해킹  (0) 2025.01.31
침해 대응 & CERT  (0) 2025.01.18

Google Hacking과 보안 취약점

구글은 단순한 정보 검색을 넘어 보안 취약점과 민감한 정보까지 노출할 수 있는 강력한 도구이다. 이러한 검색 기법을 체계적으로 정리한 것이 Google Hacking Database(GHDB)이며, 특정 키워드 조합을 활용해 보안이 미흡한 시스템의 정보를 찾아내는 데 사용된다.
이 글에서는 GHDB를 활용한 검색 기법과 함께 주요 보안 취약점의 예시를 살펴본다.


1. 무선 공유기 정보 노출

검색 키워드: inurl:home.htm intitle:1766

 




GHDB에서 제시한 취약점을 검색하여 장비 이름, MAC 주소, IP 주소가 그대로 노출되는 모습을 확인할 수 있었다.    


 

2. 개인정보 노출


검색 키워드: inurl:"wp-content/uploads" "passport"




페루 국적의 사람 여권 정보가 유출되었다.                                                                                                                              


3.데이터 베이스 정보 노출

검색 키워드: intitle:"Index of /" intext:".db"

 

데이터베이스 내부 구조와 SQL 작성 코드가 노출되어 중요한 내부 정보들이 보였다.


4.교육기관 및 학생 정보 유출

검색 키워드: intitle:"index of" "/students"



대학생들의 이름과 프로필 사진이 노출되었다.                                                                                                                        


5. 금융정보 유출

검색 키워드: inurl:pastebin "VISA"

 



카드 정보가 유출된 사례가 발견되었다.


6.고객 정보 노출

검색 키워드: intitle:"index of" "invoices"

 



무역에 사용되는 송장 정보들이 공개되었다.


7. 감시 카메라 및 CCTV 피드 노출

검색 키워드: inurl:"view/view.shtml" "webcam"

 



특정 CCTV 영상이 라이브로 스트리밍되어 누구나 실시간으로 확인할 수 있는 상태였다.


결론

Google Hacking 기법을 통해 단순한 검색만으로도 개인정보, 금융 정보, 시스템 설정 파일 등 다양한 민감한 데이터가 노출될 수 있다. 이를 방지하기 위해서는 디렉터리 접근 통제, 보안 설정 강화, 암호화 적용 등의 조치가 필수적이다.
검색 기술을 윤리적이고 보안적으로 활용하는 것은 사용자들의 책임이며, 조직에서도 정기적인 보안 점검을 통해 데이터 유출을 예방해야 한다.

'Security > CERT' 카테고리의 다른 글

Shodan을 통한 IoT 기기 검색과 특징  (0) 2025.03.01
사물인터넷(IoT)과 Shodan  (0) 2025.02.19
구글해킹  (0) 2025.01.31
침해 대응 & CERT  (0) 2025.01.18

구글 해킹 정의

  • 구글 해킹(Google Hacking, Dorking)은 구글 검색 엔진을 사용하여 인터넷 상에 노출된 민감한 정보나 보안 취약점을 탐지하는 해킹 기술이다. 구글 해킹은 구글 검색의 고급 명령어(검색 연산자)를 활용해 웹에서 손쉽게 정보에 접근할 수 있게 해준다.
  • 이 기법은 Johnny Long이 창시한 Google Hacking Database (GHDB)에 의해 대중화되었으며, 주로 보안 전문가들이 취약점을 테스트하거나 보안을 점검하는 용도로 사용된다. 그 외에도 사이버 공격자들이 이 기술을 악용할 수 있다.

구글 해킹 키워드 종류 및 사용 방법

  1. filetype:
    • 특정 파일 형식을 검색하는 데 사용된다. 이를 통해 보안에 취약한 파일을 쉽게 찾을 수 있다.
    • 예시:
      • filetype:sql "password" → "password"라는 단어가 포함된 .sql 파일을 찾는다. 이는 일반적으로 데이터베이스 파일로, 보통 중요한 로그인 정보나 암호가 포함된 경우가 많다.
      • filetype:xls "confidential" → "confidential"이라는 단어가 포함된 .xls(엑셀 파일) 파일을 찾는다. 보안 민감한 자료가 담겨 있을 수 있다.
      • filetype:pdf "치킨" → "치킨"이라는 단어가 포함된 .pdf 파일을 찾는다. 음식 메뉴, 레시피, 마케팅 자료 등이 포함될 가능성이 있다.
  2. site:
    • 특정 사이트나 도메인 내의 콘텐츠를 검색한다. 이 명령어는 사이트 전체 또는 특정 하위 도메인의 페이지를 대상으로 검색을 할 때 유용하다.
    • 예시:
      • site:example.com → example.com 도메인 내 모든 문서를 탐색한다.
      • site:edu → 교육기관에 해당하는 .edu 도메인 내에서 정보를 검색한다. 이 명령어는 학교와 같은 신뢰할 수 있는 도메인 내의 민감한 데이터를 찾는 데 유용할 수 있다.
      • site:naver.com → naver.com 도메인 내 모든 문서를 탐색한다. 블로그, 카페, 뉴스 등의 콘텐츠를 검색하는 데 유용하다.
  3. intitle:
    • 페이지의 제목(title tag)에 특정 키워드가 포함된 페이지를 검색한다.
    • 예시:
      • intitle:"admin login" → "admin login"이라는 키워드가 페이지 제목에 포함된 페이지를 찾는다. 이 페이지는 관리자가 로그인하는 페이지로, 공격자에게는 매우 유용한 정보가 될 수 있다.
      • intitle:"index of" → 서버의 디렉토리 목록을 노출하는 페이지를 찾을 수 있다. 이 페이지는 일반적으로 보안상 취약하다.
      • intitle:"정보처리기사" → "정보처리기사"라는 키워드가 제목에 포함된 페이지를 찾는다. 정보처리기사 시험 정보, 기출문제, 학습 자료 등이 포함될 수 있다.
  4. inurl:
    • URL에 특정 키워드가 포함된 페이지를 검색한다. 웹 애플리케이션에서 자주 사용하는 파라미터나 페이지의 URL 구조에서 취약점을 찾을 수 있다.(inurl을 사용하면 단순한 도메인 검색(site)을 넘어서 특정 경로, 관리자 페이지, 입력 파라미터가 포함된 취약한 URL을 직접 찾아낼 수 있다. )
    • 예시:
      • inurl:index.php?id= → index.php?id=라는 URL 파라미터를 포함한 페이지를 찾는다. 이는 SQL Injection 공격에 취약할 수 있다.
      • inurl:admin → URL에 "admin"이라는 단어가 포함된 페이지를 찾는다. 관리 페이지가 노출되었을 가능성이 있다.
      • inurl:admin login.php id=1 → URL에 "admin login.php id=1"이 포함된 페이지를 찾는다. 이는 로그인 페이지 및 특정 파라미터를 가진 관리자 페이지를 탐색하는 데 사용될 수 있다.
  5. intext:
    • 페이지 본문에 특정 단어가 포함된 페이지를 검색한다.
    • 예시:
      • intext:"password" → 페이지 본문에 "password"라는 단어가 포함된 페이지를 찾는다. 이러한 페이지는 중요한 비밀번호나 인증 정보를 포함할 수 있다.
      • intext:"confidential information" → "confidential information"이라는 단어가 포함된 페이지를 찾는다. 민감한 정보가 포함된 페이지를 쉽게 찾을 수 있다.
      • intext:"갈비찜 재료" → 페이지 본문에 "갈비찜 재료"라는 단어가 포함된 페이지를 찾는다. 요리 레시피, 장보기 목록, 식자재 관련 문서 등이 검색될 가능성이 있다.
  6. 명령어 조합
    • 여러 명령어를 조합하여 더 효과적인 검색을 할 수 있다.
    • 예시:
      • site:example.com filetype:pdf "confidential" → example.com 도메인 내에서 "confidential"이라는 단어를 포함한 PDF 파일을 찾는다. 이 파일은 중요한 문서일 수 있다.
      • site:gov filetype:xls "sensitive data" → 정부 웹사이트에서 중요한 민감 데이터가 담긴 엑셀 파일을 찾는다.

 

 


구글 해킹으로 찾을 수 있는 주요 취약점

  1. 디렉토리 리스팅 (Directory Listing)
    • 웹 서버에서 디렉토리 목록이 노출되면, 웹사이트의 파일 및 폴더 구조를 쉽게 파악할 수 있다. 이로 인해 중요한 파일이나 데이터가 유출될 위험이 크다.
    • 예시: intitle:"index of" "passwords.txt"
      디렉토리 목록(Directory Listing)이 활성화된 웹 서버에서 "passwords.txt" 파일이 포함된 페이지를 찾는다.

      💡 설명:

      • intitle:"index of" → 웹 서버가 디렉토리 목록을 노출할 때 자동으로 생성하는 "Index of /" 제목이 포함된 페이지를 찾음.
      • "passwords.txt" → 해당 디렉토리에 "passwords.txt" 파일이 존재하는 경우 검색 결과에 노출됨.
      • 결과적으로, 보안 설정이 제대로 되어 있지 않아 디렉토리 리스팅이 활성화된 서버에서 비밀번호 관련 파일을 찾을 가능성이 높음.
  2. 민감한 정보 노출
    • 클라우드 스토리지나 서버에 저장된 민감한 정보가 외부에 노출되는 경우, 해커가 이를 악용할 수 있다.
    • 예시:
      • site:s3.amazonaws.com "confidential" → Amazon S3 클라우드 스토리지 내의 민감한 파일을 검색한다.
      • inurl:/.git/ → Git 저장소가 웹에 노출되면 소스 코드와 인증 정보가 유출될 수 있다.
  3. 관리자 페이지 노출
    • 관리자 페이지가 외부에 노출되면 악성 공격자가 무차별 대입 공격(Brute Force) 등을 통해 시스템에 접근할 수 있다.
    • 예시:
      • intitle:"admin login" → 관리자 로그인 페이지를 찾아낸다.
      • inurl:admin → "admin"이라는 단어가 URL에 포함된 페이지를 찾는다.
      • 이와 같은 페이지는 권한 상승을 시도하는 공격자에게 매우 유용한 타겟이 된다.
  4. 취약점 파라미터
    • SQL Injection, Cross-Site Scripting(XSS), 백업 파일 노출 등의 취약점이 있는 페이지를 쉽게 찾을 수 있다.
    • 예시:
      • SQL Injection: inurl:index.php?id= → SQL Injection 공격에 취약할 수 있는 페이지를 찾는다.
      • XSS: inurl:search?q=<script> → XSS 취약점이 있을 수 있는 페이지를 찾는다.
      • 백업 파일: filetype:bak → 웹 서버에 백업 파일이 존재하는지 찾는다.
      • 더보기

        1. SQL Injection

        inurl:index.php?id=데이터베이스 공격이 가능한 웹 페이지를 찾음

        💡 설명:

        • 일부 웹사이트는 index.php?id=1처럼 URL을 이용해 데이터베이스에서 정보를 불러옴.
        • 보안이 취약하면 공격자가 id=1 대신 "id=1 OR 1=1" 같은 코드를 넣어 데이터를 무단으로 빼내거나 조작할 수 있음.
        • inurl:index.php?id=는 이런 취약점이 있을 가능성이 높은 웹사이트를 찾는 검색어임.

        2. XSS (Cross-Site Scripting)

        inurl:search?q=<script>웹사이트에서 악성 스크립트가 실행될 수 있는지 찾음

        💡 설명:

        • 일부 웹사이트는 검색창 등에 입력한 값을 그대로 출력하는데, 보안이 허술하면 공격자가 검색창으로 심어둔 악성코드 (예시: <script>alert('해킹!')</script> ) 같은 악성 코드가 그대로 출력되어 사용자에게 실행될 수도 있음.
        • inurl:search?q=<script>는 검색 기능이 있는 페이지에서 이런 취약점이 있는 사이트를 찾는 데 사용됨.

        3. 백업 파일 노출

        filetype:bak백업 파일이 노출된 웹 서버를 찾음

        💡 설명:

        • 개발자가 중요한 설정 파일을 백업할 때 .bak 확장자를 붙이는 경우가 있음.
        • 파일이 웹 서버에 그대로 남아 있으면, 공격자가 이를 다운로드해 데이터베이스 비밀번호 같은 민감한 정보를 알아낼 수 있음.
        • filetype:bak을 검색하면 이런 백업 파일이 인터넷에 노출된 사이트를 찾을 수 있음.
  5. IoT 및 장치 취약점
    • 기본 사용자명과 비밀번호로 로그인할 수 있는 IoT 장치나 CCTV, DVR 장치들을 쉽게 찾을 수 있다.
    • 예시:
      • intitle:"DVR Login" inurl:login → DVR 장치의 로그인 페이지를 찾는다. 이러한 장치는 보통 기본 사용자명과 비밀번호를 그대로 사용하여 보안에 취약하다.

대처 방안

  1. 디렉토리 리스팅 비활성화: 웹 서버에서 디렉토리 목록을 표시하지 않도록 설정하여 보안 강화.
  2. 민감한 파일 비공개: 로그 파일, 설정 파일 등 중요한 파일을 외부에 공개되지 않도록 경로를 변경하거나 접근을 제한한다.
  3. Robots.txt 사용: 검색 엔진 크롤러가 민감한 정보를 탐색하지 못하도록 robots.txt 파일을 활용하여 제한한다.
  4. 관리자 페이지 보호: 관리자 페이지에 IP 제한을 두고, 2단계 인증을 도입하여 외부에서의 접근을 차단한다.
  5. 에러 메시지 마스킹: 서버 오류 메시지를 일반적인 메시지로 변경하여 상세한 시스템 정보를 외부에 노출하지 않도록 한다.
  6. 정기적인 보안 감사: 웹 애플리케이션 및 서버에 대한 취약점 스캔을 정기적으로 진행하여 잠재적인 보안 위험을 사전에 차단한다.

'Security > CERT' 카테고리의 다른 글

Shodan을 통한 IoT 기기 검색과 특징  (0) 2025.03.01
사물인터넷(IoT)과 Shodan  (0) 2025.02.19
구글해킹을 통한 취약 • 노출정보 검색  (0) 2025.02.15
침해 대응 & CERT  (0) 2025.01.18

침해사고대응(CERT)의 업무 및 특징


1. CERT의 정의와 역할

  • CERT(Computer Emergency Response Team)는 조직 내 침해사고에 대응하기 위해 설립된 전문 팀이다.
  • 사이버 보안 사고 발생 시 원인 분석, 피해 평가, 대응 방안 수립 및 복구 업무를 수행하며, 사고 재발 방지를 위해 보안 정책 개선에 기여한다.
  • KISA, 기업, 정부 기관 등 다양한 환경에서 운영되며, 국제적으로 협력 네트워크를 통해 위협 정보를 공유한다.

2. CERT의 주요 업무

 

  1. 침해사고 예방:
    • 보안 정책 수립 및 모의훈련, 보안 교육 수행.
    • 최신 위협 동향 파악 및 취약점 점검.
  2. 사고 발생 시 대응:
    • 사고 원인과 피해 규모 분석.
    • 사고 대응 및 복구 조치 수행.
  3. 보고서 작성:
    • 사고 분석 데이터를 정리해 관리 및 공유.
    • 육하원칙(왜, 언제, 어디서, 누가, 무엇을, 어떻게)에 기반한 보고서 작성.
  4. 유사 사고 방지:
    • 사고 재발 방지를 위한 보안 절차 개선 및 기술 적용.
  5. 기타 기술 업무:
    • 악성코드 분석, 디지털 포렌식, 모의해킹 수행(조직별 상이).

 


3. CERT 업무 절차

CERT의 업무 절차는 7단계로 구성되며, 이는 사고 예방부터 복구까지 이어지는 반복 사이클이다​.

출처: KISA홈페이지-제2010-8호-침해사고_분석_절차(내지)최종(fin).pdf

  1. 사고 전 준비:
    • 침해사고 발생 시 대응 체계 및 조직 준비.
    • 시스템 관리자와 협력 관계 구축 및 비상 연락망 확보.
    • 침입탐지 시스템(IDS) 설치 및 사전 예방 조치 수행.
  2. 사고 탐지:
    • IDS, 방화벽 등의 보안 장비 및 로그를 통해 이상 징후를 탐지.
    • 관리자 또는 시스템 경고로 침해사고 발생 여부 식별.
  3. 초기 대응:
    • 사고 정황에 대한 세부사항 기록.
    • 침해사고 발생 시 관련 부서 및 외부 기관에 통지.
    • 네트워크와 시스템 정보 수집.
  4. 대응 전략 체계화:
    • 사고에 따른 최적의 대응 전략 설계.
    • 조직 업무 및 법적 요건을 고려해 관리자의 승인 필요.
    • 공격 환경과 피해 규모를 바탕으로 대응 방안 수립.
  5. 사고 조사:
    • 호스트 기반, 네트워크 기반 증거 수집 및 분석.
    • 공격 시작부터 종료까지의 과정을 재구성하여 피해 확산 방지.
  6. 보고서 작성:
    • 사고 대응 전 과정을 기록하여 의사결정자 및 법적 대응에 활용 가능하게 문서화.
    • 육하원칙(왜, 언제, 어디서, 누가, 무엇을, 어떻게)에 따라 작성.
  7. 복구 및 해결:
    • 침해된 시스템 복구 및 취약점 보완.
    • 유사 사고 방지를 위한 보안 정책 개선 및 절차 변경.

4. CERT의 특징

  • 침해사고 대응의 중심 역할:
    • 사고 발생 시 신속하고 체계적으로 대응하여 조직 피해를 최소화.
  • 다양한 기술 활용:
    • 디지털 포렌식, 악성코드 분석, 네트워크 트래픽 모니터링 등 전문 기술 필요.
  • 보안 환경의 변화에 대응:
    • 새로운 보안 위협(DDoS, APT, 랜섬웨어 등)에 대한 최신 기술 학습 필수.
  • 다학제적 접근:
    • 법률, 정책, 기술적 분석 등 다양한 분야의 협력 필요.

5. KISA에서 수행하는 CERT 업무

한국인터넷진흥원(KISA)은 국가 차원의 CERT 역할을 수행하며, CERT-KR로 알려져 있다:

  1. 침해사고 대응:
    • 국내외 사이버 위협에 대한 실시간 대응.
    • 악성코드 유포 사이트 탐지 및 차단.
  2. 취약점 분석 및 보완:
    • 공공기관과 기업을 대상으로 취약점 진단 및 개선 방안 제공.
  3. 보안 교육 및 훈련:
    • 보안 담당자를 대상으로 사고 대응 훈련 제공.
    • 디지털 포렌식, 악성코드 분석 기술 지원.
  4. 국제 협력:
    • 글로벌 CERT 네트워크와 협력하여 위협 정보를 공유.
  5. 보고 및 자료 제공:
    • 침해사고 통계와 대응 사례를 바탕으로 보고서를 발간.
    • 보안 컨퍼런스와 세미나를 통해 정보를 확산.
 

6. 보안관제와 CERT의 연관성과 차이점

1. 보안관제와 CERT의 연관성

  • 보안관제(Security Monitoring)와 CERT(Computer Emergency Response Team)는 모두 조직의 보안을 유지하고, 사이버 위협으로부터 보호하는 역할을 수행하며, 서로 밀접하게 연결되어 있다.
  • 업무 흐름에서의 연관성:
    • 보안관제사이버 위협 탐지 및 1차 대응을 담당하며, CERT는 관제에서 보고된 사건을 심층 분석하고 대응 방안을 설계한다.
    • 보안관제는 CERT로 정보를 전달하는 역할을 하며, CERT는 이를 기반으로 후속 조치를 수행한다.
  • 목표의 유사성:
    • 두 팀 모두 침해사고를 방지하고 대응하는 데 목표가 있다.
    • 보안 사고 발생 시 협력하여 문제를 해결하며, 조직의 보안 체계를 개선한다.
  • 조직 구조 내 역할 분담:
    • 보안관제와 CERT는 별도로 운영되기도 하고, 한 팀이 두 역할을 모두 겸하기도 한다.
    • 중소기업에서는 보안관제 담당자가 CERT 업무를 병행하기도 한다.

 

2. 주요 차이점 설명

  • 업무 초점의 차이:
    • 보안관제는 탐지경고에 중점을 두며, 이상 징후를 식별하고 즉각 차단하는 실무적 역할을 한다.
    • CERT는 사고의 원인과 경로를 분석하고, 조직적 영향을 평가하며, 재발 방지 방안을 마련하는 고도화된 작업을 수행한다.
  • 업무 성격의 차이:
    • 보안관제는 일상적이고 루틴한 업무가 많지만, CERT는 사고 발생 시 긴급하고 심층적인 대응을 필요로 한다.
  • 기술 수준 차이:
    • 보안관제는 기본적인 네트워크와 보안 장비 운영 능력이 요구된다.
    • CERT는 침해사고 분석, 디지털 포렌식, 악성코드 분석, 취약점 탐지 등 전문적이고 심화된 기술이 필요하다.

 

3. 보안관제와 CERT의 차이점

주요 역할 실시간 보안 시스템 모니터링, 탐지, 초기 대응 침해사고 발생 시 분석, 심층 대응, 복구 및 재발 방지
업무 초점 위협 탐지 및 경고, 초기 대응 사고 원인 분석, 피해 규모 평가 및 대응 방안 수립
일상 업무 - 보안 로그 및 이벤트 모니터링
- 이상 징후 탐지 및 차단
- 초기 사고 보고
- 침해사고 분석 및 보고서 작성
- 악성코드 및 취약점 분석
- 사고 대응 전략 체계화
업무 성격 루틴 업무: 실시간 모니터링 및 정기적 점검 비정기 업무: 사고 발생 시 긴급 대응 및 전문적 분석
기술 요구 수준 기본적인 네트워크 및 시스템 보안 기술 심화된 분석 기술 및 포렌식, 악성코드 분석, 침투 테스트 역량
대응 범위 1차 대응 (차단, 로그 기록, 경고 전파) 2차 대응 (심층 분석, 원인 규명, 복구 및 재발 방지 대책 마련)
업무 주체 보안 관제 센터(SOC)의 실무진 침해사고 대응 전문팀(CERT)
결과물 이벤트 보고 및 1차 경고 상세 사고 분석 보고서 및 대응 방안
  • CERT는 보안관제의 연장선에서 심층 분석과 전략적 대응을 담당하며, 조직의 보안 사고에 대한 최종 방어선을 구축한다.

 

참고자료

https://maker5587.tistory.com/26

https://zerotrust.tistory.com/31

https://www.kisa.or.kr/2060204/form?postSeq=11&page=2

'Security > CERT' 카테고리의 다른 글

Shodan을 통한 IoT 기기 검색과 특징  (0) 2025.03.01
사물인터넷(IoT)과 Shodan  (0) 2025.02.19
구글해킹을 통한 취약 • 노출정보 검색  (0) 2025.02.15
구글해킹  (0) 2025.01.31

기초분석에 이어서 계속 진행해보자

https://eatitstory.tistory.com/79

 

악성코드 샘플 분석3(상)

악성코드 샘플 조사 및 수집 과정 명확한 네트워크 행위가 있는 샘플 필요성Snort를 활용한 패턴 생성을 위해 명확한 HTTP 기반 네트워크 행위를 가진 악성코드 샘플이 필요.정보유출형, 애드웨어

eatitstory.tistory.com

 
 

정적 분석

ExInfo PE

  • Micro Visual C++/C#으로 작성된 것을 확인하여 패킹되지 않았다고 판단하였다.
  • .text 섹션에서 평문 코드가 보이는 것으로 보아 분석 가능하다고 판단하였다.

 

  • 일반적인 압축 파일로 간주하고 내부 파일도 분석해보기위해 7-Zip으로 압축을 해제하였다.

 

  • 압축 해제 후 내부 파일

 

  • 내부 파일 중 핵심 파일로 보이는 webcompanion-installer.exe를 ExInfo PE로 분석하였다.
  • 앞서 언급한 것처럼 Micro Visual C#이 보이는 것으로 보아 패킹은 없는 것으로 판단하였다.

 

BinText

  • installer.exe(악성코드)를 실행하면 실행되는 webcompanion-installer.exe가 보인다.

 

  • installer.exe를 압축해제 한 후 webcompanion-installer.exe 파일의 내부에 기초분석에서 중요시 한 파일인 webcompanion.exe가 포함된 것을 확인하였다.

 

  • 기초분석에서 보았던 url주소도 보인다.

 

  • 악성코드에서 자주 사용되는 .dll 문자열도 보인다.
  •  user32.dll(ex,사용자 입력 감시), kernel32.dll(ex.시스템 관리와 같은 기본적인 기능과 관련), shell32.dll(ex.파일을 만들거나 지우고, 사용자에게 알림창을 띄우는 데 관련), oleaut32.dll(ex.데이터를 다루거나 특정 기능을 실행과 관련)

 
 

PEView

  • "4D 5A MZ" 헤더를 통해 .exe 파일임을 확인하였다.

 

  • 파일 생성 날짜를 확인했다.

 

  • 파일 용량 차이가 크지 않아 패킹 여부는 무시해도 된다고 판단하였다.

 

  • BinText에서 확인한 DLL 파일들이 여전히 존재하는 것을 확인하였다.

 

동적 분석

악성코드 실행 화면

  • 파일이 설치가 되고
  • 설치가 완료 되면 크롬으로 창이 뜬다

 

Process Explorer

  • webcompanion-installer.exe 실행 후 cmd.exe, conhost.exe, netsh.exe가 순차적으로 실행되는 것을 확인하였다.

 

  • cmd.exe가 없어지면 그 다음로 webcompanion.exe가 실행되다가 사라진다.

 

  • 그리고 다시 webcompanion.exe 실행이되고 크롬 브라우저를 반복적으로 띄우는 과정을 확인하였다.
  • 이는 크롬을 반복적으로 실행해 시스템 자원을 소모하거나, 추가적인 악성 활동을 시도하고 있음을 추정할 수 있다.

 

Process Monitor

 

  • Process Tree로 실행 과정을 확인한 결과, Any.Run에서 확인한 실행 과정과 동일하게 진행되었다.

 

 
 

  • installer.exe가 실행된 후 하위 파일인 webcompanion-installer.exe를 생성하고 실행하는 과정을 확인하였다.

 

  • webcompanion-installer.exe 파일도 똑같이 구동이 되기 위해 여러 파일들을 실행하려는 과정이 보인다.

 

  • webcompanion.exe와 chrome.exe에서 TCP/UDP 네트워크 통신 시도 활동을 확인하였다.

 

  • webcompanion.exe과 chrome.exe파일을 보면 프로세스가 Windows 레지스트리의 특정 키 값을 변경하려는 활동을 확인하였다.

 

Autoruns

  • installer.exe 실행 전·후 레지스트리 변화를 비교한 결과, Software\Microsoft\Windows\CurrentVersion\Run 경로에 Web Companion이 등록되어 자동 실행되도록 설정된 것을 확인하였다.
  • 이로 인해 시스템 성능 저하, 검색 엔진 변경, 광고 폭주 등의 문제가 발생할 수 있다.

 

CurrPorts

 

  • webcompanion.exe 실행 시 HTTP 통신에 사용된 IP를 확인하였다.
    • 104.16.149.130
    • 64.18.87.81
  • TCP 연결 상태가 "Established"로, 통신이 성공적으로 이루어진 것을 확인하였다.

 

  • chrome.exe가 여러 크롬 창을 실행하려는 시도를 확인하였다.

 

Wireshark

 

  • HTTP 통신을 하는 ip를 중점으로 분석하였다.
    • 104.16.148.130
    • 64.18.87.81

 

  • hypertext transper protocol에서 볼 수 있는 Request URI(HTTP 요청에 포함된 리소스 경로) http://geo.lavasoft.com를 볼 수 있었다

 

  • hypertext transper protocol에서 볼 수 있는 Request URI(HTTP 요청에 포함된 리소스 경로) http:// wc-partners.lavasoft.com를 볼 수 있었다.

 

  • 그외 통계를 이용해서 http 통신하는 다른 ip와 도메인들을 찾아봤다.

 

Snort 룰 작성

alert ip 104.16.148.130 any -> 192.168.1.59 any (msg:"Suspicious Adware traffic from malicious IP 104.16.148.130"; sid:1000148;)
alert ip 192.168.1.59 any -> 104.16.148.130 any (msg:"Suspicious Adware traffic from 192.168.1.59 to malicious IP 104.16.148.130"; sid:1000149;)
alert ip 64.18.87.81 any -> 192.168.1.59 any (msg:"Suspicious Adware traffic from malicious IP 64.18.87.81"; sid:1000150;)
alert ip 192.168.1.59 any -> 64.18.87.81 any (msg:"Suspicious Adware traffic from 192.168.1.59 to malicious IP 64.18.87.81"; sid:1000151;)

alert tcp any any -> any any (msg:"Adware - Web Companion activity detected"; content:"webcompanion.com"; sid:1000152;)
alert tcp any any -> any any (msg:"Adware - Web Companion partner info detected"; content:"wc-partners.lavasoft.com"; sid:1000153;)
alert tcp any any -> any any (msg:"Adware - Web Companion partner info detected"; content:"geo.lavasoft.com"; sid:1000154;)
alert tcp any any -> any any (msg:"Adware - Chromium Updater activity detected"; content:"ocsp.entrust.net"; sid:1000155;)
alert tcp any any -> any any (msg:"Adware - Chromium Updater activity detected"; content:"edgedl.me.gvt1.com"; sid:1000156;)
  • 주요 ip와 url을 이용해 스노트 룰을 만들었다(위:ip/아래:url)

 
 
https://eatitstory.tistory.com/71

 

Snort 환경 구성

가상환경 생성 snort 환경을 구성할 Server와, 악성코드 행위 분석용  Client(Victim) 각각 가상환경을 구성하였다.  네트워크 통신을 원활히 하기 위해 방화벽을 해제하였으며,   ipconfig 명령어로

eatitstory.tistory.com

  • snort 실행과 룰 수정 방법은 윗글 참고하기

 

Snort 실행 결과

BASE 창 분석

  • TCP 통신 탐지 결과를 확인하였다
  • 악성코드 실행 후 base창
  • tcp(100%)를 클릭해보면

  • 악성코드의 악성행위를 정상적으로 감지하는 모습을 확인할 수 있다.

  • 탐지된 주요 룰은 다음과 같다.
    • alert ip 104.16.148.130 any -> 192.168.1.59 any
    • alert ip 64.18.87.81 any -> 192.168.1.59 any
    • alert tcp any any -> any any (content:"webcompanion.com")
  • Web Companion의 악성 행위가 정상적으로 탐지되는 것을 확인하였다.
alert ip 104.16.148.130 any -> 192.168.1.59 any (msg:"Suspicious Adware traffic from malicious IP 104.16.148.130"; sid:1000001;)
alert ip 64.18.87.81 any-> 192.168.1.59 any (msg:"Suspicious Adware traffic from malicious IP 64.18.87.81"; sid:1000003;)
alert tcp any any -> any any (msg:"Adware - Web Companion activity detected"; content:"webcompanion.com"; sid:1000005;)

 

 

'Security > 보안관제' 카테고리의 다른 글

악성코드 샘플 분석3(상)  (0) 2024.12.27
Snort 환경 구성  (1) 2024.12.01
SNORT  (2) 2024.11.22
악성코드 샘플 분석2  (0) 2024.11.10
악성코드 샘플 분석  (0) 2024.11.03
 

악성코드 샘플 조사 및 수집 과정

 
  1. 명확한 네트워크 행위가 있는 샘플 필요성
    • Snort를 활용한 패턴 생성을 위해 명확한 HTTP 기반 네트워크 행위를 가진 악성코드 샘플이 필요.
    • 정보유출형, 애드웨어, 스파이웨어와 같은 명확한 네트워크 행위를 보이는 악성코드가 적합.
  2. 샘플 조사 사이트
    • VirusShare: 회원가입 후 다양한 악성코드 다운로드 가능. (해시값 검색 시 탐색 효율 증가)
    • Malware Bazaar: 무료 이용 가능하지만 애드웨어/스파이웨어 관련 샘플 부족.
    • AnyRUN: 실행형 EXE, 문서형 악성코드 결과를 확인할 수 있는 플랫폼으로, 직관적인 UI 제공.
  3. 샘플 수집 절차

1) virusshare.com에 접속을 하면 로그인을 해야한다.
 

2)  회원가입을 위해 메일을 보내면 회원가입 링크를 준다
 

3) 회원 가입을 하면 virusshare.com에서 원하는 악성코드 파일을 다운 받을 수있다.(그러나 애드웨어나 스파이웨어를 검색을 해도 양이 너무 많고 네트워크 행위를 안하는 악성코드 파일들도 많아 하나하나 찾아서 하기에는 무리였다.)
 

4) 그래서 anyrun을 통해 최근 애드웨어나 스파이웨어 파일들을 찾아봤다
덕분에 Installer.exe라는 파일을 찾았다.
 

5) 해당 파일의 해시값을 virustotal에 검색해서 behavior창에서 network에서 http가 몇개 있는지 확인해주고 지금까지 많아봐야 4개였는데 이건 22개 다운 받기로 한다
 

6. 해시값(edf40e55f1bfe16ed9b1339c2d07cace96df156776f20b17f91a05c9532b5309)을 virusshare 검색창에 검색하여 vmware 서버에 다운 받아주면 된다.
 
 

네트워크 행위 확인 과정

 

Wireshark 분석:

  • HTTP 필터(port 80)를 사용해 악성코드의 통신 시도 확인.
  • 특정 IP와의 3-Way Handshake 및 HTTP GET 요청을 통해 명확한 네트워크 행위 판단.

 

 

 

기초 분석

 

개요

Web Companion은 해외 보안 업체 Lavasoft에서 만든 프로그램으로, 악성 URL 차단 및 웹 브라우저 보호 기능을 가진 웹 보안 솔루션이다. 하지만 과거 광고를 생성하거나 인터넷 속도를 저하시키는 등 문제를 일으키는 프로그램으로 알려져 있다. 이 프로그램은 PC에 직접적인 위협을 주는 악성코드는 아니지만, 웹 브라우저 체감 속도를 늦추고 시스템 자원을 과도하게 소모할 수 있다.

 

https://m.blog.naver.com/grooo01/221242921791

 

IT 보안 꿀팁 : web companion 프로그램 삭제 방법

IT 보안 꿀팁 : web companion 프로그램 삭제 방법안녕하세요 그루입니다 :) 지난 주말, 꿀휴무를 즐기기...

blog.naver.com

 

 

Virustotal

VirusTotal 스캔

  • 72개의 안티바이러스 엔진 중 26개의 엔진이 해당 파일을 악성 파일로 추정.
  • Threat categories: Trojan, Adware로 분류됨.

 

Detail 탭 분석

  • 해시값 확인 가능: 파일 식별의 핵심 정보 제공.
  • PEiD Packer 정보 확인: Micro Visual C++으로 작성된 것으로 나타났으며, 이를 통해 해당 파일이 패킹 되지 않았음을 알 수 있다
  • 파일 생성 날짜 확인 가능: 파일의 작성 시점 파악.

 

Relations 탭 분석

  • 파일과 관련된 IP 및 URL 정보 확인 가능.
  • 분석 파일은 특정 IP(사진 참조) 및 wc.portners, ocsp.entrust.net 등의 URL과 연관된 것으로 의심됨.

 

Behavior 탭 분석

  • HTTP Request에서 GET 메소드로 특정 도메인에서 데이터를 다운로드 시도 확인.
  • 22번의 HTTP 네트워크 통신이 이루어진 것으로 분석됨.
  • 이는 명확한 네트워크 행위를 나타내며, Snort 규칙 작성에 유용한 데이터로 활용 가능.

 

Any.Run 

  • 해시값을 검색하여 Any.Run의 분석 보고서를 통해 악성코드 파일의 프로세스 진행 과정을 확인하였다.
  • Web Companion은 크롬을 반복적으로 실행하며 시스템 자원을 과도하게 소모하거나, 브라우저를 통해 추가적인 악성 활동을 시도하는 신호를 보이고 있다.

 

다음 분석

https://eatitstory.tistory.com/80

악성코드 샘플 분석3(하)

기초분석에 이어서 계속 진행해보자https://eatitstory.tistory.com/79 악성코드 샘플 분석3(상)악성코드 샘플 조사 및 수집 과정 명확한 네트워크 행위가 있는 샘플 필요성Snort를 활용한 패턴 생성을 위

eatitstory.tistory.com

 
 
 
 
참고자료

https://itstudycube.tistory.com/m/20
https://itcase.tistory.com/entry/20-%EC%95%85%EC%84%B1%EC%BD%94%EB%93%9C-%EC%83%98%ED%94%8C-%EC%88%98%EC%A7%91-%EB%B0%8F-%EA%B8%B0%EC%B4%88%E2%80%A2%EC%A0%95%EC%A0%81%EB%B6%84%EC%84%9D-1
https://ogig0818.tistory.com/277
https://velog.io/@pingu_9/%EB%B3%B4%EC%95%88%EA%B4%80%EC%A0%9C-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B82

 
 
 

[20주차]악성코드 샘플링 및 기초 분석.pptx
3.78MB

 

'Security > 보안관제' 카테고리의 다른 글

악성코드 샘플 분석3(하)  (0) 2025.01.04
Snort 환경 구성  (1) 2024.12.01
SNORT  (2) 2024.11.22
악성코드 샘플 분석2  (0) 2024.11.10
악성코드 샘플 분석  (0) 2024.11.03

가상환경 생성

 

snort 환경을 구성할 Server와, 악성코드 행위 분석용  Client(Victim) 각각 가상환경을 구성하였다.

 

 

네트워크 통신을 원활히 하기 위해 방화벽을 해제하였으며,

 

 

 

ipconfig 명령어로 가상환경의 IP 주소를 확인한 뒤,
ping [IP주소] 명령어로 네트워크 연결을 확인하였다.


Snort 환경 구성 준비물

Snort: 네트워크 패킷 분석 및 침입 탐지 도구

WinPcap: 네트워크 패킷 캡처를 위한 라이브러리 및 드라이버

XAMPP: Apache, MySQL, PHP, Perl 등을 포함한 통합 개발 환경

Base: Snort 이벤트 데이터를 웹 인터페이스로 분석 및 표시하는 도구

ADOdb: Snort 로그 데이터를 MySQL로 저장하고 PHP로 처리하기 위한 라이브러리

Notepad++: Snort 규칙 및 구성 파일을 수정할 수 있는 코드 편집기

* (PHP는 웹사이트를 만들 때 서버에서 작동하는 프로그래밍 언어이다.
주로 데이터베이스와 연동해 동적인 웹 페이지를 생성하는 데 사용된다.)

 


Snort 설치

Snort 2.9.2.3 버전을 설치하였다.(3버전은 리눅스 버전이므로 주의!)

SQL과 연계 설치 여부는 추후 데이터베이스 직접 연결을 위해 "I do not plan to log to database" 옵션을 선택하였다.

설치 완료


WinPcap 설치

최신 버전인 WinPcap 4.1.3을 설치하였다.


XAMPP 설치

MySQL과 호환 가능한 버전으로 설치하였다.(최신 버전 설치 했는데 환경구성에서 호환이 안되는 경우가 생겨서 안전하게 1.7.1버전 사용을 추천!)

XAMPP Control Panel에서 Apache, MySQL 등을 통합 관리할 수 있다.

사용할 모듈들을 체크해서 실행 시켜준다.


Base 설치

Base를 설치 후 C:\xampp\htdocs\base 경로에 압축 해제하여 저장하였다.


ADOdb 설치

ADOdb를 C:\xampp\htdocs\adodb 경로에 압축 해제하여 저장하였다.

(ABODB는 버전인 5.20.12를 사용해야 localhost/base url에서 세팅이 가능하다)


Notepad++ 설치

Snort 규칙 파일 수정 및 구성 파일 편집을 위해 설치하였다.


MySQL 비밀번호 설정

 

1.MySQL 경로로 이동

cd C:\xampp\mysql\bin
 

2.root 사용자로 접속

mysql -u root -p mysql
 

3.비밀번호 설정

update user set password = password('비밀번호') where user = 'root';
 
4.현재 사용중인 MYSQL캐시를 지우고 새로운 설정을 적용
flush privileges;
 

5.MySQL 종료

quit
 

 


MySQL 스키마 생성

 

스키마 파일 복사

C:\snort\schemas의 create_mysql 파일을 C:\xampp\mysql\bin으로 복사하였다.

 

 

 

Snort DB 생성

mysqladmin -u root -p create snort
 

스키마 적용

mysql -D snort -u root -p < create_mysql
 
 
 mysql console 로그인
 mysql -u root -p  입력 후 비밀번호 입력
 
 

snort DB선택

use snort;
 
테이블 확인
show tables;

Base 설정

step0

c:\xampp\htdocs\base\includes 경로에 base_action.inc.php 파일을 notepad++를 열어준다.

 

메일 관련 29번, 30번 라인을 주석 처리하였다.

결과를 메일로 알려주는 29번과 30번 라인을 주석처리하여 비활성화
(받을 메일이 없기 때문에 해당 라인이 활성화되면 오류가 발생)

 

**추가로 localhost\base 들어가면

Deprecated: Function ereg_replace() is deprecated in C:\xampp\htdocs\base\includes\base_state_common.inc.php on line 184

이런 화면이 뜰 수 도 있다.

 

이럴 땐 php 문법이 버전 호환 때문에 생긴거라

base_state_common.inc.php 파일을 notepad++로 들어가서 finally 문법을 catch로 바꿔줘야 한다

예시

수정 전

try {
    $savec = $ADODB_COUNTRECS;
    $ADODB_COUNTRECS = false;

    if ($secs2cache != 0) {
        $rs = $this->CacheExecute($secs2cache, $sql, $inputarr);
    } else {
        $rs = $this->Execute($sql, $inputarr);
    }
} finally {
    $ADODB_COUNTRECS = $savec;
}


수정 후
try {
    $savec = $ADODB_COUNTRECS;
    $ADODB_COUNTRECS = false;

    if ($secs2cache != 0) {
        $rs = $this->CacheExecute($secs2cache, $sql, $inputarr);
    } else {
        $rs = $this->Execute($sql, $inputarr);
    }
} catch (Exception $e) {
    // 예외 발생 시 $ADODB_COUNTRECS 복원
    $ADODB_COUNTRECS = $savec;
    throw $e;
}

// 정상 실행 시 $ADODB_COUNTRECS 복원
$ADODB_COUNTRECS = $savec;

 

웹 인터페이스 설정

http://localhost/base에 접속하여 Snort DB 및 경로 정보를 설정하였다.

(XAMPP에서 Apache와 MySQL을 켜야 접속이 된다.)

 

step1

Pick a Language : 한국어가 없어 여어로 설정

Path to ADODB : adodb5  아까  저장해둔 C:\xampp\htdocs\adodb 경로로 설정

 

step2

Pick a Database type :
MySQL DB를 사용할 것이므로 MySQL 선택

Database Name : snort
이전에 명령프롬프트에서 설정한 DB명 ‘snort’

Database Host : localhost
현재 접속한 host 주소

Database Port :
DB 접속 시 어떤 포트로 접속할 것인지 결정
입력하지 않아도 무방

Database User Name, Password :
MySQL 계정 정보 입력

밑에 Archive Database는 사용하지 않을 것이므로 생략

 

step3

Use Authentication System : 인증 시스템 사용 여부 (체크)

Admin User Name : 로그인할 때 사용할 아이디

Password : 로그인할 때 사용할 비밀번호

Full name : base에서 사용할 닉네임


step4

 

‘Create BASE AG’ 버튼 클릭

 

 

'DONE'
'Successfully created user'
문구가 떴다면 성공적으로 Base 설정 완료

 

 

step5

설정을 모두 완료하고 마지막 단계 Step 5로 넘어가면 로그인 창 생성

Step 3에서 설정한 계정

Login : base_admin

Password : 비밀번호

입력하면 위에 화면이 뜨면 로그인 성공


Snort.conf 파일 설정

 

 

 

불필요한 라인 주석 처리

IDS 모드에서 사용하지 않는 라인을 주석 처리하였다.

rules 파일 작성

C:\snort\rules 경로에 사용 규칙 파일을 생성하였다.

MySQL 연계 설정

 

C:\Snort\etc\ 경로에서 snort.conf 파일을 Notepad++을 통해 열어준다.

 

변수 설정 변경

ipvar와 portvar를 모두 var로 변경하였다.

var: JavaScript 언어에서 ‘변수’ 설정의 역할 (C언어의 int와 비슷한 역할)

ipvar: IP 주소 또는 IP 주소의 목록/범위를 나타내는 목적으로 사용

portvar: 포트 번호 또는 포트 번호의 목록/범위를 나타내는 목적으로 사용

 

경로 수정

리눅스 초기 경로를 윈도우 경로인 C:\snort\ 경로로 변경하였다.

 

 

247, 250, 253번 라인의 경로도 초기 경로 설정값을 윈도우 경로로 변경 후, C:\snort\lib 경로에 접속해보면 dynamicpreprocessor파일과 dynamicengine 파일은 있지만 dynamicrulese 파일은 없기 때문에 이 파일을 직접 생성

 

265 ~ 269번 라인은 Snort IDS 모드에서는 사용할 수 없기 때문에
맨 앞에 # 을 입력해 주석 처리

 

510, 511번 라인 또한 윈도우 형식으로 변경 ( / → \ ) 후,


cmd를 통해 C:\snort\rules 경로에 해당 이름의 rules 파일 생성

 

 

MySQL연계설정

533, 534번 라인을 참고하여
output database: alert, mysql, user=root password=(비밀번호) dbname=snort host=localhost
output database: log, mysql, user=root password=(비밀번호) dbname=snort host=localhost
위 문장을 535, 536번에 이어서 작성

 

541, 542번 라인도 초기 경로 설정값을 윈도우 경로로 변경
(C:\snort\etc)

553번 라인에 사용할 rules 파일 입력 후, C:\Snort\rules 경로에 사용하고자 하는 rules 파일 생성

 

그 밑의 라인은 사용하지 않을 예정이므로 모두 주석 처리

 

 

sc.rules


Snort IDS 테스트

Snort.conf 검증

 

사용할 rules파일인 sc.rules파일을 열어 테스트 룰을 입력한다.

alert icmp any any -> any any (msg:"ICMP_TEST"; sid:10000001;)

 

이 Snort 규칙은 ICMP 프로토콜을 사용하는 모든 트래픽을 탐지하는 역할을 한다.

출발지와 목적지 IP 및 포트에 제한을 두지 않으며, 탐지된 패킷에 "ICMP_TEST"라는 메시지를 출력하고 고유 식별 번호(sid)로 10000001을 사용한다.

이 규칙은 주로 Ping 요청/응답 같은 ICMP 트래픽을 모니터링할 때 활용된다.

 

 

파일 위치로 이동 -> cd C:\Snort\bin

NIC 번호 확인 명령어를 입력 -> snort.exe –W

NIC 번호는 **네트워크 인터페이스 카드(Network Interface Card)**를 식별하는 번호이다.
한 시스템에 여러 네트워크 인터페이스가 있을 경우 Snort와 같은 도구가 모니터링할 네트워크 인터페이스를 지정하기 위해 사용한다.

 

snort.exe -T -c c:\snort\etc\snort.conf -l c:\snort\log -i 1
: Snort.conf 파일 검증 테스트 진행

‘Snort successfully validated the configuration!’
문구가 확인되면 설정이 잘 진행되었다는 의미

 

‘snort.exe -c c:\snort\etc\snort.conf -l c:\snort\log -i 1’
명령어로 Snort 실행한 화

(-c : snort 설정 파일 위치 지정)
(-l : 로그 파일 저장 위치 지정)
(-i : 모니터링할 NIC 번호 지정)
(NIC : 네트워크 인터페이스 카드)

 

‘Commencing Packet Processing (pid = )’ 문구를 보아 Snort가 정상적으로 실행 완료된 것을 확인

 

 

Server 가상환경의 IP주소를 확인하고, Client(Victim) 가상환경에서 Server 환경으로 ping을 보내 정상적으로 수신하는지 확인

 

 


http://localhost/base 도메인에 접속하면 전 슬라이드에서 보낸 Ping 패킷이 대한 로그가 ICMP 프로토콜 형태로 탐지된 것을 확인할 수 있음.

 

 

이렇게 Snort 환경 설정 완료.

 

 

참고 자료

https://velog.io/@pingu_9/%EB%B3%B4%EC%95%88%EA%B4%80%EC%A0%9C-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B81#25-base-%EC%84%A4%EC%B9%98

https://maker5587.tistory.com/25

https://velog.io/@secloud/17.-Snort-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%84%B1#xampp-%EC%84%A4%EC%B9%98

 

 

ppt

[19주차]snort 환경 구성.pptx
4.57MB

'Security > 보안관제' 카테고리의 다른 글

악성코드 샘플 분석3(하)  (0) 2025.01.04
악성코드 샘플 분석3(상)  (0) 2024.12.27
SNORT  (2) 2024.11.22
악성코드 샘플 분석2  (0) 2024.11.10
악성코드 샘플 분석  (0) 2024.11.03

+ Recent posts