DMA 공격

DMA attack

DMA 공격은 컴퓨터 보안 측면 채널 공격의 일종으로, 공격자는 Direct Memory Access(DMA; 다이렉트메모리 액세스)를 허용하는 고속 확장 포트의 존재를 이용하여 컴퓨터 또는 다른 장치를 침입할 수 있습니다.

DMA는 다수의 접속에 포함되어 있습니다.이것은, 접속된 디바이스(캠코더, 네트워크 카드, 스토리지 디바이스, 그 외의 유용한 악세사리, 내장 PC 카드 등)가, 동작하지 않고 메인 메모리에 직접 읽거나 쓰는 하드웨어 액세스를 사용해 가능한 한 빠른 속도로 컴퓨터와 데이터를 전송할 수 있기 때문입니다.시스템 감시 또는 상호 작용.이러한 디바이스를 합법적으로 사용함으로써 DMA 악세사리와 접속이 폭넓게 채용되고 있습니다만, 공격자는 동일한 기능을 사용하여 동일한 포트를 사용하여 접속하는 악세사리를 작성할 수 있습니다.그 후, 컴퓨터의 물리 메모리 주소 공간의 일부 또는 전체에 직접 액세스 할 수 있어 모든 OS의 시큐러티를 회피할 수 있습니다.메커니즘 및 잠금 화면을 사용하여 컴퓨터의 모든 작업을 읽거나 데이터 또는 암호 키를 훔치거나 스파이웨어 및 기타 악용 프로그램을 설치 또는 실행하거나 백도어 또는 기타 악성 프로그램을 허용하도록 시스템을 수정합니다.

이러한 포토에의 물리적인 접속을 방지하면, DMA 공격을 방지할 수 있습니다.많은 컴퓨터에서는 DMA를 구현하는 접속을 BIOS 또는 UEFI 내에서 사용하지 않을 수도 있습니다.디바이스에 따라서는, 이러한 부정 이용의 가능성이 무효가 되거나 감소하거나 할 수 있습니다.

악용 가능한 형태로 DMA를 사용할 수 있는 연결의 로는 FireWire, CardBus, ExpressCard, Thunderbolt, USB 4.0, PCI, PCI-X, PCI Express 등이 있습니다.

묘사

최신 운영체제에서는 비시스템(사용자 모드) 어플리케이션은 가상 메모리 컨트롤러(MMU)에 의해 명시적으로 허가되지 않은 메모리 위치에 액세스할 수 없습니다.이 아키텍처는 소프트웨어 결함으로 인해 발생할 수 있는 손상을 억제하고 물리 메모리를 보다 효율적으로 사용할 수 있을 뿐만 아니라 운영 체제의 보안에 필수적인 부분을 구성합니다.그러나 커널 모드 드라이버, 많은 하드웨어 디바이스 및 사용자 모드의 취약성으로 인해 물리적 메모리 주소 공간에 대한 직접적이고 중단 없는 액세스가 허용됩니다.물리 주소 공간에는 메인 시스템 메모리와 메모리 매핑 버스 및 하드웨어 디바이스(일반 RAM인 것처럼 읽기 및 쓰기를 통해 운영체제에 의해 제어됨)가 모두 포함됩니다.

OHCI 1394 사양에서는 퍼포먼스상의 이유로 디바이스는 operating system을 바이패스하여 보안상의 [1][2]제약 없이 물리 메모리에 직접 액세스 할 수 있습니다.그러나 SBP2 디바이스는 쉽게 스푸핑할 수 있기 때문에 공격자가 물리 메모리를 읽고 쓸 수 있도록 운영체제를 속일 수 있으며, 이로 인해 메모리 [3]내의 기밀 암호 자료에 대한 무단 액세스를 얻을 수 있습니다.

FireWire, ExpressCard, Thunderbolt 또는 기타 확장 포트가 있는 시스템에서는 일반적으로 PCIPCI Express와 같이 연결된 장치를 가상 메모리 주소 공간이 아닌 물리적 장치에 직접 연결하는 경우 외부 장치에 의한 DMA 공격에 여전히 취약할 수 있습니다.따라서 FireWire 포트가 없는 시스템은 FireWire 확장 카드를 설치할 수 있는 PCMCIA/CardBus/PC 카드 또는 ExpressCard 포트를 가지고 있으면 여전히 취약할 수 있습니다.

사용하다

예를 들어 공격자는 소셜 엔지니어링 공격을 사용하여 "행운의 승리자"에게 악성 Thunderbolt 장치를 보낼 수 있습니다.컴퓨터에 접속하면 디바이스는 물리 주소 공간에 대한 직접적이고 방해받지 않는 액세스를 통해 OS의 거의 모든 보안 수단을 우회할 수 있으며 암호화 키를 읽거나 말웨어를 설치하거나 다른 시스템 디바이스를 제어할 수 있습니다.공격자는 대상 컴퓨터에 물리적으로 액세스할 수 있는 경우에도 공격을 쉽게 실행할 수 있습니다.

위의 다양한 용도 에 DMA 기능을 [4]커널 디버깅 목적으로 사용할 수 있기 때문에 유익한 용도도 있습니다.

이 공격에는 Inception이라는 툴이[5] 있으며, 이 공격에 취약한 확장 포트가 있는 머신만 필요합니다.이 취약성을 이용하여 실행 중인 Windows, Mac OS 및 Linux 컴퓨터에 대한 무단 액세스를 얻는 것으로 알려진 또 다른 응용 프로그램은 스파이웨어 FinFireWire입니다.[6]

경감

DMA 공격은 잠재적인 악의적인 디바이스에 대한 물리적 보안으로 방지할 수 있습니다.

커널 모드 드라이버는 시스템의 보안을 해치는 많은 기능을 가지고 있기 때문에 신뢰할 수 있는 버그가 없는 드라이버를 로드할 때는 주의가 필요합니다.예를 들어 최신 64비트 버전의 마이크로소프트 윈도우즈에서는 드라이버를 Microsoft에서 테스트하고 디지털 서명해야 하며 서명되지 않은 드라이버가 설치되지 않습니다.

IOMMU는 이러한 시스템버스에 가상 메모리의 개념을 적용하는 테크놀로지입니다.이러한 보안 취약성을 해소하기 위해(시스템 안정성을 높이기 위해) 사용할 수 있습니다.인텔은 IOMMU를 VT-d로 브랜드화하고 있습니다.AMD는 IOMMU를 AMD-Vi로 브랜드화하고 있습니다.Linux 및 Windows 10은 이러한 IOMMU를[7][8][9] 지원하며 이를 사용하여 허용되지 않은 I/O 트랜잭션을 차단할 수 있습니다.

새로운 operating system에서는, DMA 공격을 막기 위한 조치를 취할 수 있습니다.최신 Linux 커널에는 FireWire 장치에 의한 DMA를 비활성화하고 다른 [10]기능을 허용하는 옵션이 포함되어 있습니다.Windows 8.1 [11]에서는, 콘솔이 잠겨 있는 경우, 무인 머신의 DMA 포토에의 액세스를 금지할 수 있습니다.그러나 2019년 현재 주요 OS 벤더는 여러 개의 에뮬레이트된 주변기기 간의 복잡한 상호작용을 이용하여 미묘한 버그와 [12]취약성을 노출시킬 수 있는 다양한 방법을 고려하지 않았습니다.

기밀 데이터를 암호화하지 않고 RAM에 저장할 수 없도록 하는 것도 DMA 공격에 대한 대책입니다.다만, DMA 를 개입시켜 RAM 에 기입하는 것으로, 코드 주입에 의해서, 시큐어인 것처럼 보이는 RAM외의 스토리지에 악영향을 줄 가능성이 있기 때문에, RAM 의 내용을 읽어내는 것으로는 불충분합니다.후자의 공격의 예로는 RAM에 전혀 저장되지 않는 암호키를 공개하는 TRESOR-HUNT가 있습니다.TRESOR-HUNT는 운영 [13]체제의 일부를 덮어쓰는 것으로 이를 실현합니다.

문제가 [14]있는 경우 이를 방지하기 위해 기본 Windows 구성을 변경할 것을 권장합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Freddie Witherden (2010-09-07). "Memory Forensics Over the IEEE 1394 Interface" (PDF). Retrieved 2011-04-02. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  2. ^ Piegdon, David Rasmus (2006-02-21). Hacking in Physically Addressable Memory - A Proof of Concept (PDF). Seminar of Advanced Exploitation Techniques, WS 2006/2007.
  3. ^ "Blocking the SBP-2 Driver to Reduce 1394 DMA Threats to BitLocker". Microsoft. 2011-03-04. Retrieved 2011-03-15.
  4. ^ Tom Green. "1394 Kernel Debugging: Tips And Tricks". Microsoft. Archived from the original on 2011-04-09. Retrieved 2011-04-02.
  5. ^ "Inception is a physical memory manipulation and hacking tool exploiting PCI-based DMA. The tool can attack over FireWire, Thunderbolt, ExpressCard, PC Card and any other PCI/PCIe interfaces.: carm." 28 June 2019 – via GitHub.
  6. ^ "Tactical IT Intrusion Portfolio: FINFIREWIRE" (PDF) (PDF). Gamma International. October 2011. Retrieved 2014-04-28.
  7. ^ "/linux/Documentation/Intel-IOMMU.txt". 14 July 2014. Archived from the original on 14 July 2014.
  8. ^ "Linux Kernel Driver DataBase: CONFIG_AMD_IOMMU: AMD IOMMU support". cateee.net.
  9. ^ Dansimp. "Kernel DMA Protection (Windows 10) - Microsoft 365 Security". docs.microsoft.com. Retrieved 2021-02-16.
  10. ^ Hermann, Uwe (14 August 2008). "Physical memory attacks via FireWire/DMA - Part 1: Overview and Mitigation". Archived from the original on 4 March 2016.
  11. ^ "Countermeasures: Protecting BitLocker-encrypted Devices from Attacks". Microsoft. January 2014. Archived from the original on 2014-03-24.
  12. ^ "Thunderclap: Exploring Vulnerabilities in Operating System IOMMU Protection via DMA from Untrustworthy Peripherals – NDSS Symposium". Retrieved 2020-01-21.
  13. ^ Blass, Erik-Oliver (2012). "TRESOR-HUNT". Proceedings of the 28th Annual Computer Security Applications Conference on - ACSAC '12: 71. doi:10.1145/2420950.2420961. ISBN 9781450313124. S2CID 739758.
  14. ^ "KB2516445: Blocking the SBP-2 Driver to Reduce 1394 DMA Threats to Bitlocker". Microsoft. 2011-03-04. Retrieved 2011-03-15.

외부 링크