본문 바로가기

5. 방학 활동/보고서 분석

[2021.02.20] 5회차 - 데이터 특성 선정 및 분류 실험

[KISA 연구보고서] "임베디드 리눅스 기반 IoT 기기 악성코드 분석 기술 연구"

 

제 4장 실험 및 분석

- 제 1절 악성코드 특성 선정을 위한 실험 환경

1. IoT Malware 선정 및 공격 특성

: 각 공격에 따라서 환경에 대한 정리와 동작방식을 기준으로 분석 실시

: bot - DDoS 및 정보 전송을 위한 메모리, 네트워크 사용량의 변과

: cryptojacking - CPU, GPU 사용량이 높아짐

2. 데이터 가공 및 분석

    가. 데이터 전처리 :
데이터 분포를 분석하고 데이터를 필터링 하는 과정을 거친다. 각각의 특성에 따라 범위가 다르기 때문에 특성 을 분석하기 어렵다. 데이터를 일반화하기 위해 사이킬런의 proprocess의 Transform을 이용하여각각 다른 특성의 수치를 0~1사이의 값으로 만들어주고 특성에 대한 분포와 분석을 하였다.다음 데이터 분포를 분석하고 이상치를 걸러내어 정규분포 형태로 가공했다. 

 

- 제 2절 하드웨어 공통 상태 정보 분석

1. IoT 디바이스 공격 수집 환경

 내부망에 C&C서버와 DNS, Loader서버를 구축한다. IoT기기로 부터 수집된 정보는 DB Server로 전송한다. 내부 망에서 1차적으로 수집된 정보는 추출 및 분석을 진행하고 옵션을 적용하여 특성을 추가 및 수정한다.


- 제 3절 특성공학을 이용한 데이터 분석

: 특성공학이란?
 raw data를 예측 모델의 문제들을 잘 표현해주는 특징들로 변환하는 기법, 모델 정확도를 향상시켜주는 역할을 한다.

  • 데이터 관찰: 데이터의 형식과 데이터 단위 등을 결정하는 단계
  • 데이터 전처리: 형식화(분석 목적에 맞는 적절한 파일 형식으로 변환 또는 저장), 정제(문제 해결에 도움이 되지 않는 데이터 제거), 샘플링(실험초기에 일부 데이터만 선택하여 모델링을 하는 단계)로 나누어진다.
  • 데이터 변환단계: 스케일(데이터 전처리 후 데이터의 단위를 0~1사이의 값으로 치환), 분해(하나의 특징이 복잡한 여러 개념을 포함하는 경우 여러 개의 특징으로 분리하거나 선택적 추출이 필요할 때), 결합(특징 두 가지를 하나의 특징으로 결합하는 단계), 변환(특정 변수를 모델에 사용할 수 있는 데이터 형식으로 변환) 으로 나눠진다.

: 특징공학을 진할할 때에는 추출, 선택, 구현이 중요하다.

  • PCA : 개념의 단순성과 용이한 적용성에 의하여 현재까지 널리 이용된다. 데이터의 차원을 감소시키는 선형변환 기법으로 입력 데이터의 공분산에 의해 결정되는 정규직교기저를 이용하는 2차원 선형변환기법이다.
  • ICA : 데이터의 통계적 성질을 고려한 선형변환 기법, 다차원 방법이다. 고차원의 누적률이나 통계적 모먼트를 사용한다. 

- 제 4절 데이터 특성 선정 및 분류 실험

1. 시나리오별 특성 목록 정리

데이터 분석을 통하여 정상 데이터의 분석과 각 공격의 특성에 대해서 분석하고 시계열 분석 및 분류를 통해특성별 특징들과 변화량에 대해 분석하였다.  

가. 상관관계 분석

하드웨어 특성 선정을 위해 수집한 데이터의 분포를 분석, 전처리를 진행하였다. 디바이스 상태정보의 변화를 확인하고 비교 분석을 진행하였다.

 

2. 통계 기반 데이터 특성 수치 분석

 

  가. 감염 전 하드웨어 데이터 분석

      데이터 분석 과정을 통해 감염되기 전 데이터 수치 분석을 한다.

 

         (1) USER영역 CPU 사용량
             감염되기 전 USER 영역의 경우 일정한 주기로 CPU 사용량이 증가하는 것을 확인할 수 있다.

 

         (2) 시스템 메모리 사용량 측정
             메모리 사용량은 평균 0.2 수준의 사용량을 유지하는 것을 볼 수 있으며,

업데이트와 파일전송 등에 의해 수치 가 일정 시간마다 일시적으로 변화된다.
  
          (3) 시스템 유휴상태
             센싱 데이터를 일정 주기마다 전송할 경우 CPU 사용 및 메모리 사용량이 증가한다.

 

          (4) CPU에서 하드디스크 사용 대기시간
             감염되기 전의 CPU 및 하드웨어를 사용하여 대기하는 시간은 없었고,

데이터 처리에 대한 부하가 발생하지 않았다.

 

          (5) 인터럽트 요청 수

인터럽트의 비정상적인 변화는 공격의 시작을 의미할 수 있으며,

감염에 의해 주기가 변화될 경우 하드웨어 용량이 크게 증가할 수 있다.

 

          (6) CPU 총 사용량
CPU의 연산 증가는 전원 공급량 증가로 연결될 수 있으며,

전체값에서 CPU 연산의 값을 빼줄 경우 IDLE 값을 획득할 수 있다.

 

          (7) Memory 사용량 변화

              Malware 중 botnet과 Cryptojacking 모두 메모리 사용량이 변화했다.

              또한 패턴을 유지하되 전체적인 사용량이 증감 되었다.

 

          (8) 네트워크 사용량 분석

              IoT 기기는 센서로부터 데이터를 지속적으로 수집하여 전송해주는 역할을 수행한다. 센싱 데이터를 지속적으

              로 수행하며 발생하는 네트워크 사용량과 감염에 의한 네트워크 사용량 분석을 통해 변화를 확인할 수 있다.



  나. Cryptojacking에 감염 후 하드웨어 데이터 변화 분석

      유저 영역 CPU 변화량을 분석하면,
       (1) SSH 기반 파일 전송 공격을 기반으로 한 Cryptojacking의 경우 

            사용패턴이 크게 변화하는 것을 알 수 있었다.

      (2) SSH based Attack의 경우

            대표적으로 linux_muldrop이 있으며, 감염되기 전 평균 값 0.2보다 약         

            2배정도의 사용량이 증가된 0.4정도의 평균 값을 나타낸다.

      (3) mining 중심 공격의 경우

            하드웨어의 직접적인 공격을 수행하기는 하지만 CPU의 사용량은 크게                        

            증가하지 않고 사용하는 주기의 변화가 발생한다.

       

      유저권한 그룹에서의 CPU사용량의 변화는 System CPU사용량과는        

      다르게 권한을 가진 CPU 사용량 및 패턴은 크게 변화되는 것을 알 수 있다. 

      SSH 기반 공격: CPU 변화가 심해졌다가 다시 평균치로 돌아옴 

      Linux muldrop: CPU 사용량이 급격하게 늘리게 되며 감염완료 시 계속     

      평균적인 수준 유지
      mining: CPU 사용량이 크게 증가

      메모량에 대해서는 두 개의 공격모두 사용량 폭이 크게 증가함을 볼 수    

      있으며, 일반 동작과정 때보다 2배정도의 시스템 메모리 사용량이 크게    

      증가함을 볼 수 있다. Cryprojacking에 대한 공격 중 SSH, mining기반의 

      공격으로 인해 메모리 사용량이 증가하는 것을 확인할 수 있다.

       

  1. 유휴상태
    시스템의 유휴상태의 경우 감염시작되고 이뤄지는 동안에 하드웨어 사용량이 크게 늘어남 확인가능. 하드웨어 처리량이 심해지며 하드웨어의 부하가 심해지는 것을 확인가능.

  2. CPU, 하드디스크 사용에 따른 대기시간

    lowt의 경우: 사용 패턴에 대한 변화
    mining pool: CPU, 하드디스크사용에 대한 대기시간의 변화가 거의 없었지만, 하드웨어를 직접적으로 한 공격의 경우 크게 증가. CPU와 하드디스크를 사용하는 빈수 증가 및 malware로 인해 연산량 및 처리량 증가로 인한 시간 증가 인한 증상

  3. 인터럽트 요청 수에 대한 공격에 대한 증상
    사용패턴이 다양해지는 것을 볼 수 있다. IoT 기기의 경우 반복적인 데이터를 처리하는데 목적이 있기 때문에 사용량 또한 일정하게 변화되는데 감염이 이뤄졌을 경우 패턴이 변화됨을 알 수 있다.

  4. 감염으로 인한 유저 권한 그룹 CPU 사용량
    mining 기반 공격의 CPU 사용량이 크게 증가했다.
    사용량 변화의 원인은 mining 기반 공격은 공격대상의 하드웨어를
    대상으로 공격이 진행되는 반면 pooling은 웹상에서 채굴이 진행되어
    메모리 사용량이 높은 차이점을 볼 수 있다.

  5. 메모리
    pooling 기반의 사용량 변화의 폭이 가장 컸다.
    이는 Crpytojacking 공격의 경우 하드웨어에서 직접 동작하는 공격일 경우 CPU 사용량과 메모리양이 크게 증가하고, pooling을 이용한 공격의 경우 Memory를 대상으로 한 변화가 심한 것을 파악할 수 있다.

  6. 네트워크 사용량
    감염이 이뤄지면 네트워크 사용량은 일반적인 사용량보다 약 3배정도 차이를 보인다.
    이는 cryptojacking에 감염될 경우 일정한 주기별로 서버로 정보를 전송하고 보내는 데이터 파일 크기 또한 변경되기 때문이다.

  다. Botnet 공격에 의한 하드웨어 특성 

        (1)CPU 사용량

          mirai에 감염되었을 경우 평균 사용 정도 2배 증가하며,  사용영역 0.8배 증가하는 것을 볼 수 있다. 봇넷에 감염됨으로써 사용량과 사용되는 범위가 증가한다. 하지만 유저권한에 대한 CPU의 변화는 없었다.

 

        (2)시스템 전체 메모리 사용량

          일반적인 상황에서는 0.5~0.25정도를 유지하다가 감염이 되는 시점에서 0.4~0.8의 범위로 크게 증가하다가

다시 정상상태로 돌아온다. 공격명령 수행시 메모리 사용량이 크게 증감하는 것을 반복한다.

 

        (3)시스템유휴 상태

         시스템 유휴시간은 각 CPU마다 하나씩 실행되는 스레드로서 CPU의 잔여 프로세스 처리량을 나타내는 값이다.  즉 사용되지 않는 CPU이다.감염되기 전 센싱 데이터를 처리하기 위해 처리를 제외하고는 적은양의 CPU를 사용한다. 하지만 Malware에 감염시 IDLE값이 증가한다. 감염이 진행된 이후 메모리 유휴 상태의 폭이 커진다.

 

        (4)CPU의 전체 사용량 변화

           Malware에 감염됨으로써 CPU 사용량은 8배정도 증가했다가 3배정도가 높아진 평균치를 유지하며 동작된다.

 

        (5)메모리 사용량에 대한 상태변화

           Malware에 감염될 경우 메모리를 거의 대부분 사용한다. 메모리 사용량의 변화가 심한 것이다.

 

        (6)Malware에 감염되었을 때의 네트워크 사용량에 따른 변화

           Malware에 감염될 경우 네트워크에서 데이터를 전송하는 TX값이 크게 증가했다가 다시 안정성을 회복한다.

감염 프로그램을 받는 과정에서 또한 크게 증가한다.