스턱스넷(Stuxnet)

이윤범·2023년 11월 12일
0

정보보호

목록 보기
7/10
post-thumbnail

1. What is Stuxnet? / 사이버 무기

스턱스넷(Stuxnet)은 2010년에 발견된 웜 바이러스로 산업시설을 감시하고 파괴하는 최초의 소프트웨어이다.

스턱스넷은 웜이지만 사이버 무기급으로 사용되었다.
Cf> 사이버 무기(Cyber Weapon)

2. 웜(Worm) vs 바이러스(Virus)

앞서 스턱스넷은 웜이라 명시했다. 웜과 바이러스는 복제방식/전파방식에 있어 차이가 있으니 참고해두자.

  • 웜(Worm) : 스스로를 복제하는 악성 소프트웨어 컴퓨터 프로그램이다. 웜은 독자적으로 실행되며 별다른 실행 프로그램이 필요하지 않다.
  • 바이러스(Virus) : 컴퓨터 시스템에 침입해 프로그램에 기생하며 시스템을 변경하거나 사용할 수 없도록 만드는 악성코드로, 스스로 복제는 가능하지만 사용자가 직접 바이러스를 옮겨야 다른 컴퓨터로 전염이 가능하다.

즉 웜(Worm)은 숙주없이 자가전파 가능하며 바이러스(Virus)는 파일 등 반드시 숙주를 통해서 전파된다.

3. 감염 경위 및 동작

  1. 스턱스넷은 최초 USB로 침투됐다.

  2. 각각의 컴퓨터에 전달되는 동안에는 탐지되지 않기 위해 암호화된 채로 전달됐고 침투한 순간 스스로 복호화하여 추후 공격을 진행했다.

  3. 놀라운 것은 보호 링(Protection Ring) 중 가장 안쪽(Kernel Root Ring)까지 설치되었는데 따라서 Anti-Virus 프로그램에 감지되지 않고 전파될 수 있었다. 이것이 가능했던 건 무려 4개의 윈도우 취약점을 이용한 제로데이 공격(Zero Day-Attack)을 감행했기 때문이다.

    • 보호 링(Protection) : 결함 (결함 내성) 및 악성 행동 (컴퓨터 보안)으로부터 데이터와 기능을 보호하는 매커니즘이다.
    • 커널 (Kernel) : 컴퓨터 운영 체제의 핵심이 되는 컴퓨터 프로그램으로, 시스템의 모든 것을 완전히 제어(control)한다.
    • 제로데이 공격(Zero Day-Attack) : 특정 소프트웨어의 아직까지 공표되지 않은, 혹은 공표되었지만 아직까지 패치되지 않은 보안 취약점을 이용한 해킹의 통칭이다.
      "Zero-day"는 해당 취약점이 공표 혹은 발견된 날을 뜻하므로, 개발사는 공격이 행해진 시점에서 이 취약점을 해결할 시간을 채 하루도 가지지 못했음을 뜻한다.
  4. 커널 안쪽까지 설치되기도 했고 감염시킨 컴퓨터에 드라이버를 탑재시켰기 때문에 루트 킷(Rootkit)으로서 작동했다.

    • 루트킷(Rootkits) : 컴퓨터 소프트웨어 중에서 악의적인 것들의 모음으로써, 자신 또는 다른 소프트웨어의 존재를 가림과 동시에 허가되지 않은 컴퓨터나 소프트웨어의 영역에 접근할 수 있게 하는 용도로 설계되었다
      Cf> 백도어(Backdoor)
  • 그런데 컴퓨터는 통상 알 수 없는 경로로 드라이버가 설치되는 걸 막는다. 따라서 드라이버를 설치할 때 인증서 키(Certificate Key)를 사용하는데, 스턱스 넷은 실제 대만회사 'Realtek'의 서명을 이용했다. 그렇다고 해서 해당 회사가 실제로 서명을 한 것도 아니다. 당시 서명키는 Air-gapped 상태였는데 이는 누군가 사회공학적 기법을 이용해 키를 탈취했다는거다.

    • Air-gapped : 물리적으로 네트워크와 격리되어 인터넷에 절대로 연결되지 않은 상태
    • 사회공학(Social Engineering) : 인간 상호 작용의 깊은 신뢰를 바탕으로 사람들을 속여 정상 보안 절차를 깨트리기 위한 비기술적 침입 수단

    따라서 드라이버 설치 절차를 정리하면
    [1 Step] : 누군가 회사의 접근권을 얻고
    [2 Step] : 서명키를 회사 컴퓨터에서 추출하고
    [3 Step] : 해커에게 키를 전달 후 해커가 해당키로 인증서 서명한 것

  1. 이후 감염시킨 컴퓨터에 모두 페이로드(Payload)를 배포하진 않고 요구사항에 맞는 컴퓨터에만 배포했다. 요구사항은 wincc 소프트웨어가 설치된 컴퓨터였고 wincc프로그램은 PLC를 관리했다.

    • 페이로드(Payload) : 전송의 근본적인 목적이 되는 데이터. 해킹의 경우 멀웨어, 악성 소프트웨어가 이에 해당한다.
    • PLC(Programmable Logic Controller) : 산업 플랜트의 유지관리 및 자동 제어 및 모니터링에 사용하는 제어 장치
  2. 결국 이 wincc가 설치된 컴퓨터를 조종해서 PLC로 하여금 핵 원심분리기 회전율을 조절했고 핵 시설을 파괴시켰다

profile
🇰🇷

0개의 댓글