DMA 공격에 저항하도록 Linux 시스템을 어떻게 구성합니까? 불가능하게 만드는 방법이 있나요?
DMA 공격
발췌위키피디아에서
최신 운영 체제에서는 비시스템(예: 사용자 모드) 응용 프로그램이 가상 메모리 컨트롤러(MMU 또는 메모리 매핑 장치라고 함)에 의해 명시적으로 승인되지 않은 메모리 위치에 액세스할 수 없습니다. 의도하지 않은 소프트웨어 오류로 인한 손상을 억제하고 물리적 메모리를 보다 효율적으로 사용할 수 있게 하는 것 외에도 이 아키텍처는 최신 운영 체제 보안의 필수적인 부분을 구성합니다. 그러나 커널 모드 드라이버, 많은 하드웨어 장치 및 가끔씩 발생하는 사용자 모드 취약성으로 인해 물리적 메모리 주소 공간에 대한 직접적이고 방해받지 않는 액세스가 허용됩니다. 물리적 주소 공간에는 모든 기본 시스템 메모리뿐만 아니라 메모리 매핑된 버스 및 하드웨어 장치(일반 RAM과 마찬가지로 읽기 및 쓰기를 통해 운영 체제에 의해 제어됨)가 포함됩니다.
답변1
즉, 잠재적인 공격 경로를 완전히 차단하는 것은 불가능합니다. Wikipedia 기사를 보면 기본적으로 4가지 경로를 이해해야 합니다.
- 커널 모드 드라이버
- 많은 하드웨어 장치
- 사용자 모드 취약점
- 사회공학
위험을 완화하는 가장 좋은 방법(무언가를 보호할 때 할 수 있는 전부)은 위의 네 가지 항목에 대한 노출을 제어하는 것입니다.
1을 차단하려면 누구에게도 커널 드라이버를 로드할 수 있는 권한을 부여하지 마십시오. 또한 불필요한 드라이버를 설치하지 마십시오.
2를 차단하려면 사람들이 시스템에 물리적으로 접근하는 것을 거부합니다. 물리적 접근이 컴퓨터의 핵심 운영자로 제한되는 안전한 데이터 센터를 사용하십시오.
포인트 3을 방지하려면 사용자가 꼭 필요한 것보다 더 많은 애플리케이션을 실행하도록 허용하지 마십시오. 이는 작업 범위를 벗어나므로 필요한 것 이상을 설치하지 마십시오. gcc
예를 들어 프로덕션 서버인 경우 해당 서버에 설치하지 마세요.
포인트 4, 사기를 탐지할 수 있도록 지원 직원을 교육하십시오.
또 다른 방법은 업데이트가 적시에 설치되고 검토되도록 하는 것입니다. 예를 들어, 1년에 한 번 시스템을 업데이트하지 마세요.
답변2
Thunderbolt 및 FireWire 어댑터를 비활성화하고 다른 사람이 PCI(e) 카드를 삽입할 수 없도록 상자를 물리적으로 잠급니다.
답변3
펜치를 들고 마더보드의 포트나 액세스 포인트를 물리적으로 찢어냅니다. 도둑이 물리적으로 하드웨어에 침투할 수 있는 방법을 찾을 수 없다면 최대한 안전할 것입니다. 주변에 아무것도 손상시키지 않도록 하세요. 물론 이렇게 하면 특정 지점이 작동하지 않게 되므로 이 작업을 시도하고 싶은지 확실히 확인하세요.