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