Incident Response

ATT&CK Attack Framework

Requirement

1. ATT&CK Att&ck Framework 개념, 용어, 활용방안 등 배경지식 설명

ATT&CK Framework?

Miter Corp에서 개발 한 ATT&CK Framework는 기업 네트워크에 대한 수백만 건의 공격에서 관찰된 위협적인 전술 및 기술에 대한 동적 문서이다.

 

ATT&CK Use Cases

  • Adversary Emulation
    • 특정 적에 대한 사이버 위협 인텔리전스를 적용하여 기술 도메인의 보안을 평가하는 과정과 그 위협을 모방하기 위해 그들이 어떻게 운용하는지를 평가한다.
    • Adversary Emulation은 조직의 라이프사이클의 모든 해당 지점에서 적대적인 활동의 탐지 및/또는 완화를 검증하는 능력에 초점을 맞춘다.
    • ATT&CK는 Adversary Emulation 시나리오를 만들어 공통 적 기술에 대한 방어를 테스트하고 검증하는 도구로 사용될 수 있다.
  • Red Teaming
    • 공개된 위협 인텔리전스를 사용하지 않고 조직의 적대적인 사고방식을 가지고 연습을 진행한다.
    • ATT&CK는 네트워크 내에서 발생할 수있는 특정 방어 수단을 우회하기 위해 red team 계획을 세우고 작전을 짜는 것으로 운영을 구성하는 도구로 사용될 수 있으며, 또한 탐지되지 않을 수 있는 새로운 공격 방법을 개발하기 위한 연구 로드맵으로도 사용될 수 있다.
  • Behavioral Analytics Development
    • 기존의 침해지표 (IoCs)나 악의적인 활동의 Signatures를 넘어, 적대적인 도구와 지표에 대한 사전 지식에 의존하지 않을 수 있는 시스템이나 네트워크 내에서 잠재적으로 악의적인 활동을 식별하기 위해 행동 탐지 분석을 사용할 수 있다.
    • Behavioral Analytics Development는 공격자가 특정 플랫폼을 활용하여 접속하여 의심스러운 활동을 식별하고 확인한다.
  • Defensive Gap Assessment
    • Defensive Gap Assessment를 통해 조직은 기업의 어떤 부분에 방어 또는 가시성이 부족한지 판단할 수 있다. 이러한 부분이 부족하면 적에게 탐지되지 않거나 제한되지 않은 네트워크의 연결로 사각지대가 되어 잠재적으로 이용할 수 있다.
  • SOC Maturity Assessment
    • 조직의 SOC(Security Operations Center)는 네트워크에 대한 능동적 위협을 지속적으로 모니터링하는 기업 네트워크의 중요한 구성 요소이다.
  • Cyber Threat Intelligence Enrichment
    • 사이버 위협 인텔리전스는 사이버 위협 및 사이버 보안에 영향을 주는 공격자 그룹에 대한 지식과 멀웨어, Tool, TTP, 트레이드 그래프트 등과 관련된 정보가 포함된다.

 

용어 정리

  • 위협 인텔리전스 (TI, Threat Intelligence)

    • 사이버 공간에서 유해한 이벤트(IT나 정보자산에 위협 등)를 완화하는 데 도움이 되는 공격 및 공격자에 대한 정보

  • STIX(Structure Threat Information eXpression)

    • 사이버 위협 정보 관련 표준

  • TAXII (Trusted Automated eXchange of Indicator Information)

    • 사이버 위협 정보 전송 규격

  • CVE(Common Vulnerabilities and Exposures)

    • 공격 취약점 관련 표준

  • CPE(Common Platform Enumeration)

    • 공격 타깃 플랫폼 관련 표준

  • MAEC(Malware Attribute Enumeration and -Characterization)

    • 악성코드 속성 정보 관련 표

  • CybOX(Cyber Observables eXpression)

    • 사이버 운영 오브젝트 관련 표준

  • MMDEF(Malware Metadata Exchange Format)

    • 악성코드 정보 공유 관련 표준

  • 사이버 킬 체인 (Cyber Kill Chain)

    • IT 보안 업계에서는 공격자가 조직을 공격할 때 쓰는 방법을 7개의 단계로 정의한 모델로서 사이버 킬 체인으로 표현되고 있다.

      • 사이버 킬 체인 7단계 :

        1. 정찰 (Reconnaissance)
        2. 공격코드 제작 (Weaponization)
        3. 전달 (Delivery)
        4. 취약점 공격 (Exploitaion)
        5. 설치 (Installation)
        6. 명령 및 제어 (Command and Control)
        7. 목표시스템 장작 (Actions on objectives)

        킬 체인(Kill Chain, 타격 순환체계), 스커드 미사일을 방어하기 위한 선제공격형 방어 전략

  • 침해 지표 (IOC, Indicator Of Compromise)

    • IOC는 여러 침해사고의 흔적들을 일정한 포맷으로 정리 해 놓은 문서 또는 파일을 의미한다.
  • 보안 운영 센터 (SOC, Security Operations Center)

    • 보안 운영 센터는 조직 및 기술 수준의 보안 문제를 처리하는 중앙 집중식 유닛입니다.
    • 건물 또는 시설 내의 SOC는 직원이 데이터 처리 기술을 사용하여 현장을 감독하는 중앙 위치입니다.

 

2. ATT&CK Att&ck Framework 활용하여 공격자의 공격 라이프사이클, 사이버 킬-체인 설명

공격 라이프 사이클 (Attack Lifecycle)

  1. 정찰 (Reconnaissance)
  2. 무기화 및 전달 (Weaponization and delivery)
  3. 악용과 설치 (Exploitation and Installation)
  4. 명령과 제어 (Command & Control)
  5. 탈출 (Exfiltration)

사이버 킬 체인 (Cyber Kill Chain)

  1. 정찰 (Reconnaissance)
  2. 공격코드 제작 (Weaponization)
  3. 전달 (Delivery)
  4. 취약점 공격 (Exploitaion)
  5. 설치 (Installation)
  6. 명령 및 제어 (Command and Control)
  7. 목표시스템 장작 (Actions on objectives)

사이버 킬체인이란 공격 라이프 사이클이 더 진행되기 전에 최대한 빨리 탐지하고 제거하는 것이 사이버 킬 체인이라는 전력이다. 100% 막겠다는 방어 전략은 불가능하니 공격자의 공격 단계를 나눠서 탐지하며, 최대한 진행 중인 단계를 끊어내어 최종 목표를 이룰 수 없게끔 하는 전략이다.

 

3. ATT&CK Att&ck Framework 내의 TTP 중에서 12개의 전술에 대한 각각의 설명

Initial Access

  • 초기 접속(Initial Access)은 다양한 진입 벡터를 사용하여 네트워크 내에서 초기 발판(foothold)을 확보하는 기술로 구성된다. 발판(foothold)을 확보하는 데 스피어 피싱 및 공개 웹 서버 취약점 악용을 이용하여 확보할 수 있다.

Execution

  • 공격자가 로컬 또는 원격 시스템을 통해 악성코드를 실행하기 위한 전술.
  • 실행(Execution)은 로컬 또는 원격 시스템을 통해 적의 adversary-controlled code를 실행시키는 기술로 구성된다.

Persistence

  • 공격 기반을 유지하기 위한 전술.
  • 운영체제에서 사용하는 파일을 공격자가 만든 악의적인 파일로 대체하여 지속적인 악성 행위를 수행하거나 높은 접근 권한을 가진 계정을 생성하여 쉽게 재접근하는 방법 등이 있다.

Privilege Escalation

  • 공격자가 시스템이나 네트워크에 대한 더 높은 수준의 권한을 얻기 위한 전술.
  • 공격자는 종종 권한 없이 접속 가능한 네트워크에 진입하여 탐색할 수 있지만 목적을 위해서는 높은 권한이 필요하다. 일반적으로 시스템 취약점이나 구성 오류를 이용한다.

Defense Evasion

  • 공격자가 침입한 시간 동안 탐지당하는 것을 피하기 위해 사용하는 전술.
  • 보안 소프트웨어 제거 및 비활성화, 악성코드의 난독화 및 암호화와 신뢰할 수 있는 프로세스를 악용하여 악성 코드 위장 기법 등과 같은 기술로 유지한다.

Credential Access

  • 공격자가 계정의 아이디와 패스워드 등을 훔치기 위한 전술.
  • 자격 증명을 얻기 위해서는 키 로깅(keylogging)이나 자격 증명 덤핑(credential dumping)을 사용하며, 이를 이용해 정상적인 자격 증명을 사용하여 더욱 탐지하기 어렵게 하며 더욱 많은 계정을 만들 기회를 제공할 수 있다.

Discovery

  • 공격자가 시스템과 내부 네트워크에 대한 정보를 얻기 위한 전술.
  • 공격자는 목적을 위한 행동 방식을 결정하기 전에 주변 환경을 관찰하여 공격 방향을 정할 수 있다.

Lateral Movement

  • 공격자가 네트워크의 원격 시스템에 진입하고 제어하기 위한 전술.
  • 공격자는 자신의 자체 원격 제어 도구를 설치하여 내부 확산(Lateral Movement)을 진행하거나, 운영 체제에 포함된 도구를 이용하여 정상적인 자격 증명으로 접근한다.

Collection

  • 공격자가 목적과 관련된 정보 또는 정보의 출처가 포함된 데이터를 수집하기 위한 전술.
  • 정보를 수집하는 타깃은 일반적으로 다양한 드라이브, 브라우저, 오디오, 비디오 및 이메일을 스크린샷과 키보드 입력을 이용하여 수집한다.

Command and Control

  • 공격자가 침입한 대상 네트워크 내부 시스템과 통신하며 제어하기 위한 전술.
  • 공격자는 탐지를 피하기 위해 정상적인 트래픽을 모방하여 시도하며, 네트워크와 방어 수준에 따라 다양한 수준의 공격으로 명령하고 통제할 수 있다.

Exfiltration

  • 공격자가 네트워크에서 데이터를 훔치기 위해 사용하는 전술.
  • 공격자는 데이터를 탐지되는 것을 피하기 위해 데이터를 압축과 암호화를 진행 후 전송하거나 데이터의 크기 제한 설정을 통해 여러 번 나누어 전송하는 방법을 이용한다.

Impact

  • 공격자가 비지니스 및 운영 프로세스를 조작하여 가용성을 방해하거나 무결성을 손상시키기 위한 전술.
  • 공격자들이 최종 목표로 기밀을 지키기 위해 사용한다.

 

4. ATT&CK Att&ck Framework 내의 TTP 중에서 한 개 이상의 기법에 대한 실습 및 내용 설명

Scheduled Task

at나 schtask.ext와 같은 Windows 작업 스케줄러를 이용하여 실행할 프로그램이나 스크립트를 예약하는 데 사용할 수 있다. Administrators group의 권한이 있으면 원격으로도 예약을 할 수 있다.

실습

실습은 간단하게 계산기를 실행시키는 것으로 진행한다.

 

예약에는 다음 명령어를 입력하며, 여러 설정을 줄 수 있다.

schtasks /create

  • /tn "TaskName"
    • 작업에 대한 이름을 지정한다. 최대 238자 까지 가능하다.
  • /tr "TaskRun"
    • 프로그램이나 작업을 실행하는 명령을 지정한다. 실행파일, 스크립트 파일 또는 배치 파일의 정규화된 경로 파일 이름을 입력한다. 경로 이름은 262자를 초과할 수 없다.
  • /sc "ScheduleType"
    • 일정 유형을 지정한다. 유효한 값은 분, 매시간, 매일, 매주, 매월, 한 번, 시작 시, 등 을 지정할 수 있다.
  • /sd "YYYY/MM/DD"
    • 작업 일정 시작 날짜를 지정한다. 기본값은 로컬 컴퓨터에 현재 날짜이다.
  • /st "StartTime"
    • 작업을 시작하는 시간을 지정한다.

실험해볼 명령어는 다음과 같다.

schtasks /create /tn "calc.exe" /tr C:\Windows\System32/calc.exe /sc once /sd 2020/04/02 /st 17:40

해석해보면 2020/04/02일 17:40분에 단 한번 계산기(calc.exe)를 실행한다.

 

예약을 한 뒤 쿼리 명령어를 통하여 예약된 명령어를 확인할 수 있다 schtasks /query /tn "taskname"

 

다음은 예약한 시간이 되어 계산기가 실행한 모습이다.

 

계산기가 실행한 후 쿼리 명령어로 해당 예약을 확인해보면 다음 실행 시간이 설정되어있지 않는 상태로 되어있는 것을 확인할 수 있다.

 

schtasks /delete /tn "taskname"명령어를 이용하여 예약을 삭제할 수 있다.

 

Reference

'Incident Response' 카테고리의 다른 글

Fodhelper를 이용한 UAC bypass  (0) 2020.06.08
Incident Response  (0) 2020.05.13
Amcache 수집 및 분석  (0) 2020.05.01
Windows Artifacts  (0) 2020.04.06
Initial Access  (0) 2020.03.31