스턱스넷 이란
독일 지멘스사의 SCADA 시스템을 목표로 제작된 악성코드로 원자력, 전기, 철강, 반도체, 화학 등 주요 산업 기반 시설의 제어 시스템에 침투해 오작동을 일으키는 악성코드이다.
- 2010년에 발견된 웜 바이러스로 산업시설을 감시하고 파괴하는 최초의 소프트웨어
- 스턱스넷은 웜이지만 사이버 무기급으로 사용되었다.
- 명확한 타겟에만 공격을 가하는 해킹 프로그램으로 이란의 핵개발 연구소에 공격을 가한 사례가 있다. 이 공격으로 원심분리기 등 기기의 물리적인 손상이 생겼다고 한다.
웜(Worm) vs 바이러스(Virus)
앞서 스턱스넷은 웜이라 명시했다. 웜과 바이러스는 복제방식/전파방식에 있어 차이가 있다.
웜(Worm) : 스스로를 복제하는 악성 소프트웨어 컴퓨터 프로그램이다. 웜은 독자적으로 실행되며 별다른 실행 프로그램이 필요하지 않다.
바이러스(Virus) : 컴퓨터 시스템에 침입해 프로그램에 기생하며 시스템을 변경하거나 사용할 수 없도록 만드는 악성코드로, 스스로 복제는 가능하지만 사용자가 직접 바이러스를 옮겨야 다른 컴퓨터로 전염이 가능하다.
즉 웜(Worm)은 숙주없이 자가전파 가능하며 바이러스(Virus)는 파일 등 반드시 숙주를 통해서 전파된다.
감염 경위 및 동작
- 스턱스넷은 최초 USB로 침투됐다.
- 각각의 컴퓨터에 전달되는 동안에는 탐지되지 않기 위해 암호화된 채로 전달됐고 침투한 순간 스스로 복호화하여 추후 공격을 진행했다.
- 놀라운 것은 보호 링(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] : 해커에게 키를 전달 후 해커가 해당키로 인증서 서명한 것
5. 이후 감염시킨 컴퓨터에 모두 페이로드(Payload)를 배포하진 않고 요구사항에 맞는 컴퓨터에만 배포했다. 요구사항은 wincc 소프트웨어가 설치된 컴퓨터였고 wincc프로그램은 PLC를 관리했다.
페이로드(Payload) : 전송의 근본적인 목적이 되는 데이터. 해킹의 경우 멀웨어, 악성 소프트웨어가 이에 해당한다.
PLC(Programmable Logic Controller) : 산업 플랜트의 유지관리 및 자동 제어 및 모니터링에 사용하는 제어 장치
6. 결국 이 wincc가 설치된 컴퓨터를 조종해서 PLC로 하여금 핵 원심분리기 회전율을 조절했고 핵 시설을 파괴시켰다.
회고
'벌거벗은 세계사'라는 방송 프로그램의 이란, 이스라엘 편을 보다가 사이버 무기가 전쟁이 될 수도 있구나하고 스턱스넷에 대해 정리하게 되었다.
스턱스넷은 이란의 나탄즈(Natanz) 핵 시설을 표적으로 삼아 우라늄 농축 장비를 파괴하는 데 사용되었다. 이는 최초로 공개된 사이버 무기로서 국가 간 사이버 전쟁의 현실을 보여주었다.
스턱스넷은 사이버 공격이 단순한 데이터 탈취나 서비스 방해를 넘어 실제 물리적 손상까지 초래할 수 있음을 증명한 예이다. 이는 해커들이 단순히 정보를 훔치는 것을 넘어서 산업 인프라에 직접적인 타격을 줄 수 있다는 점에서 매우 중요한 사례이다.
스턱스넷은 제로데이(Zero-Day) 취약점을 이용하여 시스템 보안 및 취약점 관리의 중요성을 강조했다. 이 사건을 통해 교과서적인 이론을 넘어서 실제 사례를 통해 사이버 보안의 실질적인 중요성과 그 영향을 학습할 수 있는 좋은 기회가 되었다.
참고
https://velog.io/@celtic97/스턱스넷Stuxnet
'CS' 카테고리의 다른 글
Monolithic vs MSA (2) | 2024.04.21 |
---|---|
비동기 처리 (0) | 2024.01.24 |
RDBMS 와 NoSQL (+짧은 회고) (0) | 2024.01.23 |
URI vs URL (0) | 2024.01.12 |