편리한 리모컨 저장 시스템 관리자많은 힘 - 동시에 점퍼를 사용하거나 스위치를 켜는 하드웨어로 비활성화할 수 없는 경우 엄청난 보안 위협을 나타냅니다. 시스템 보드. 인텔 차단현대의 관리 엔진 11 인텔 플랫폼이러한 위험을 나타냅니다. 처음에는 비활성화할 수 없으며 또한 프로세서의 일부 초기화 및 작동 메커니즘이 이에 연결되어 있으므로 대략적인 비활성화는 단순히 시스템의 완전한 작동 불능으로 이어질 수 있습니다. 이 취약점은 Intel AMT(Active Management Technology) 기술에 있으며 공격이 성공하면 사용자가 시스템을 완전히 제어할 수 있습니다. 이는 올해 5월에 논의된 바 있습니다. 그러나 Positive Technologies의 연구원들은 .

IME 프로세서 자체는 PCH(시스템 허브) 칩의 일부입니다. 프로세서 슬롯 제외 PCI 익스프레스, 시스템과 외부 세계 간의 모든 통신은 PCH를 통해 이루어지며, 이는 IME가 거의 모든 데이터에 액세스할 수 있음을 의미합니다. 버전 11 이전에는 이 벡터를 통한 공격이 거의 없었습니다. IME 프로세서는 타사 개발자에게 거의 알려지지 않은 ARC 명령어 세트와 함께 자체 아키텍처를 사용했습니다. 그러나 버전 11에서 기술은 나쁜 농담이 되었습니다. x86 아키텍처로 이전되고 수정된 MINIX가 OS로 사용되었습니다. 잘 문서화되어 있습니다. 러시아 연구원 Dmitry Sklyarov, Mark Yermolov 및 Maxim Goryachy는 IME 버전 11 실행 모듈을 해독하고 철저한 연구를 시작했습니다.

Intel AMT 기술의 취약점 점수는 10점 만점에 9.8점입니다. 불행히도 최신 플랫폼에서 IME를 완전히 비활성화하는 것은 위에서 설명한 이유로 불가능합니다. 하위 시스템은 CPU 초기화 및 시작, 전원 관리와 밀접하게 관련되어 있습니다. 그러나 IME 모듈이 포함된 플래시 메모리 이미지에서 불필요한 모든 것을 제거할 수 있지만, 특히 버전 11에서는 매우 어렵습니다. me_cleaner 프로젝트는 이미지의 공통 부분을 제거할 수 있는 유틸리티인 활발히 개발 중입니다. 중요한 것만 남겨두고 필요한 구성 요소. 그러나 약간의 비교를 해보자: Skylake 이전의 IME 버전에서 유틸리티가 거의 모든 것을 삭제하고 약 90KB의 코드를 남긴 경우 현재 약 650KB의 코드를 저장해야 합니다. 차단 IME가 복구 모드로 들어가기 때문에 30분 후에 시스템이 꺼질 수 있습니다.

그러나 움직임이 있습니다. 앞서 언급한 연구원 그룹은 IME 설정을 구성하기 위한 플래시 이미지 도구 유틸리티와 온보드 SPI 컨트롤러를 통해 작동하는 플래시 프로그래밍 도구를 포함하는 인텔 자체에서 제공하는 개발 키트를 사용했습니다. 인텔은 이러한 프로그램을 게시하지 않습니다. 오픈 액세스, 하지만 웹에서 찾는 것은 어렵지 않습니다.

이 키트를 사용하여 얻은 XML 파일을 분석했습니다(IME 펌웨어 구조 및 PCH 스트랩 메커니즘 설명 포함). "HAP(High Assurance Platform) enable"에 대한 설명으로 인해 "reserve_hap"(HAP)이라는 하나의 비트가 의심스러워 보였습니다. 인터넷 검색 결과 미국 NSA와 연계된 고신뢰 플랫폼 프로그램 이름이었다. 이 비트를 켜면 시스템이 Alt Disable Mode에 있음을 나타냅니다. IME 블록이 명령에 응답하지 않았으며 운영 체제의 입력에 응답하지 않았습니다. Habrahabr.ru의 기사에서 찾을 수 있는 더 미묘한 뉘앙스가 많이 있지만, 새로운 버전 me_cleaner는 IME 엔진을 "TemporaryDisable" 상태로 만드는 HAP 비트를 설정하지 않고 가장 위험한 모듈에 대한 지원을 이미 구현했습니다.

me_cleaner의 마지막 수정은 11번째 버전의 IME에서도 RBE, KERNEL, SYSLIB 및 BUP 모듈만 남겨두고 IME 시스템 자체를 활성화하는 코드를 찾을 수 없습니다. 그 외에도 HAP 비트를 사용하여 유틸리티에서도 수행 방법을 알고 있는지 확인할 수 있습니다. 인텔은 연구를 검토한 결과 많은 IME 설정이 보안 강화에 대한 정부의 요구와 실제로 관련이 있음을 확인했습니다. 이러한 설정은 미국 정부 고객의 요청에 따라 도입되었으며 제한된 테스트를 거쳤으며 이러한 구성은 Intel에서 공식적으로 지원하지 않습니다. 회사는 또한 제품에 소위 백도어를 도입하는 것을 부인합니다.

오래 전 KGB 부서 중 하나의 후원하에 수백만 개의 "유통"이 아닌 수백 장의 배치로 개인용 컴퓨터를 해외에서 구입했을 때 소규모 상업 사무실이 "책갈피 검색"을 위해 조직되었습니다. 이제 우리는 그것이 다음 중 하나라는 것을 매우 잘 이해합니다. 공정한 방법그 수준의 지원 및 조직에서는 칩의 일부로 책갈피가 아닌 무엇이든 찾을 수 있기 때문입니다. 그러나 관공서와 기업에서 온 대규모 바이어들은 여전히 ​​갈 곳이 없었다. 그들은 지불했다.

광고하는

오늘날 인텔은 최신 컴퓨터 플랫폼의 프로세서와 칩셋에 원격 PC 제어를 위한 도구가 내장되어 있다는 사실조차 숨기지 않습니다. 널리 광고됨 인텔 기술 AMT(Active Management Technology)는 사용자 개입 없이 원격 시스템 유지 관리(진단 및 복구)를 단순화하는 데 도움이 됩니다. 그러나 아무도 AMT 관리자 권한을 악의적인 목적으로 사용할 수 있다고 보장하지 않으며, 결과적으로 책갈피만 있는 것이 아니라 전체 "트랩"이 있습니다.

보안 전문가 Damien Zammit의 간행물에 따르면 최신 Intel 칩셋에는 통합된 로컬 및 격리된 Intel ME(Intel Management Engine) 마이크로컨트롤러 칩이 있습니다. 이것은 타사 도구에서 연구할 수 없고 프로세서, 메모리 및 시스템 전체를 완전히 제어할 수 있는 권한이 있는 자체 펌웨어가 있는 솔루션입니다. 또한 컨트롤러는 메모리에 전원이 공급되는 한 PC가 꺼진 상태에서도 작동할 수 있습니다. 물론 운영 체제와 유틸리티는 잠자기 상태도 아니고 영도 컨트롤러의 활동에 대해 알지 못하며 시스템 및 데이터와 함께 작동하는 동안 경보를 울리지 않습니다.

전자기장 표시기를 이용한 정보 도청용 전자기기 검색

코스 작업

전문분야 "10.02.01 정보보안 조직 및 기술"

완성자: Shevchenko Konstantin Pavlovich

학생 그룹 번호 342

_______________/_____________/

서명 F.I.O.

"____" __________2016

확인됨:

선생님

_______________/S.V. 루토비노프/

서명 F.I.O.

"____" __________2016

톰스크 2016

소개. 삼

책갈피의 종류. 네

어쿠스틱 북마크. 4

전화 북마크. 7

하드웨어 북마크. 8

전자기장 표시기. 십

RF 미터. 13

스캐너 수신기 및 스펙트럼 분석기. 십사

하드웨어-소프트웨어 및 특수 제어 콤플렉스. 16

방사선 감지 시스템. 17

와이어 라인 제어 수단. 십팔

비선형 탐지기 및 금속 탐지기. 이십

북마크 감지. 21

결론. 22

문학. 23


소개

정보는 오랫동안 개인 정보가 아닙니다. 그것은 그것을 사용할 때받는 실제 이익에 의해 명확하게 결정되는 유형 비용 가중치 또는 정보 소유자에게 다양한 확률로 발생하는 피해 금액에 의해 결정됩니다. 그러나 정보의 생성은 전선어려운 문제. 이러한 문제 중 하나는 정보 컴퓨팅 시스템 및 네트워크에서 순환 및 처리되는 정보의 안정성과 확립된 상태를 안정적으로 유지하는 것입니다. 이 문제정보 보안 문제라는 이름으로 사용되었습니다.

특별 점검은 차단 방지를 목표로 전문 기술 수단을 포함하여 제어 및 측정 장비를 사용하여 수행되는 일련의 엔지니어링 및 기술적 조치입니다. 기술적 인 정보국가 기밀을 구성하는 정보가 포함된 개인 정보 보호 장치의 도움으로 기술적 수단및 특수 전자 적재 장치의 제품.

표적 학기말: 전자기장 지시계를 이용한 정보 도청을 위한 전자기기 검색의 원리와 수단을 이론과 실습에서 익힌다.


북마크의 종류

어쿠스틱 북마크특별한 미니어처 전자 기기방이나 기계에 은밀하게 설치된 음향(음성) 정보의 가로채기. 음향 책갈피가 가로채는 정보는 전력망을 통해 라디오 또는 광 채널을 통해 전송될 수 있습니다. 교류, 전화선뿐만 아니라 건물의 금속 구조물, 난방 및 급수 시스템의 파이프 등



쌀. 1. 어쿠스틱 라디오 북마크

가장 널리 사용되는 것은 라디오 채널을 통해 정보를 전송하는 음향 책갈피입니다. 이러한 장치를 라디오 북마크라고 합니다. 음향 진동의 전파 매체에 따라 라디오 북마크는 다음과 같이 나뉩니다. 음향 라디오 책갈피그리고 라디오 청진기.


음향 무선 버그는 정보 누출의 직접적인 음향(공기) 채널을 통해 음향 신호를 가로채도록 설계되었습니다. 그 중 민감한 요소는 일반적으로 일렉트릿 마이크입니다.


쌀. 2. 무선 청진기

무선 청진기는 진동 음향(벽, 천장, 바닥, 급수, 난방, 환기 파이프 등) 누출 채널을 따라 전파되는 음향 신호를 차단하도록 설계되었습니다. 일반적으로 압전 마이크로폰이나 가속도계 센서를 민감한 요소로 사용합니다. 작동 시간을 늘리기 위해 이러한 음향 책갈피에는 음성에서 라디오 송신기를 켜는 제어 시스템과 시스템이 장착될 수 있습니다. 리모콘. 라디오 북마크와 라디오 청진기로 전송된 정보를 수신하기 위해 스캐너 수신기와 소프트웨어 및 하드웨어 제어 시스템이 사용됩니다.


라디오를 통해 정보를 전달하는 책갈피 외에도 220V 전원선을 이용하여 정보를 전달하는 책갈피가 있는데 이러한 책갈피를 음향책갈피라고 합니다. 회로망. 네트워크 북마크에 의해 전송되는 정보를 가로채기 위해 건물 내 전력 네트워크에 연결된 특수 수신기가 사용됩니다.



실제로, 전화선뿐만 아니라 보안 및 화재 경보 시스템 라인을 통해 정보를 전송하는 음향 책갈피를 사용하는 것도 가능합니다. 전화선을 통해 정보를 전송하는 가장 간단한 장치는 소위 "전화 귀" 장치입니다(그림 3).

쌀. 3. 전화이어 TU-2


전화 북마크전화선을 통해 전송되는 정보를 도청하도록 설계되었습니다. 일반적으로 형식으로 수행 별도의 모듈또는 요소로 위장 전화기, 전화 플러그 또는 소켓.

이러한 책갈피의 정보를 가로채기 위해 접촉 및 비접촉 방식의 두 가지 방법이 사용됩니다. 접촉 방식을 사용하면 제어 회선에 직접 연결하여 정보를 가져옵니다. 비접촉 방식으로 정보를 도청 사실을 설정할 가능성을 제거하는 소형 유도 센서를 사용하여 정보를 수집합니다.

전화 북마크를 이용한 정보 전달은 가입자가 수화기를 드는 순간부터 시작됩니다.

쌀. 4. 전화 북마크


하드웨어 북마크- 정보가 적시에 유출되거나 무결성이 침해되거나 차단될 수 있도록 정보를 처리·전송하는 기술적 수단(컴퓨터)에 불법적으로 은밀하게 설치된 전자장치입니다. 컴퓨터에 사용되는 표준 모듈의 형태로 약간의 수정을 가하여 제작되었습니다. 일반적으로 관심 기업의 주문에 따라 컴퓨터를 조립할 때와 서비스 또는 보증 기간 동안 수행되는 문제 해결 또는 수정 중에 컴퓨터에 배치됩니다.


쌀. 5. 하드웨어 북마크

하드웨어 북마크의 도움으로 I/O 데이터와 같은 데이터를 가로챌 수 있습니다. 개인용 컴퓨터: 모니터 이미지; 키보드에서 입력된 데이터는 프린터로 전송되고 내부 및 외부 미디어에 기록됩니다.


정보의 무단 검색을 위한 음향, 전화 및 하드웨어 북마크 외에도 휴대용 비디오 레코더.

비디오 카메라의 방송은 비디오 레코더에서 직접 녹화하거나 특수 송신기를 사용하여 라디오 채널을 통해 전송할 수 있습니다. 비디오 이미지 외에도 사운드 전송이 필요한 경우 비디오 카메라와 함께 마이크가 설치됩니다. 비디오 이미지 송신기는 일반적으로 작은 크기와 무게를 가지면서 별도의 장치로 만들어집니다. 그러나 구조적으로 텔레비전 카메라와 결합 된 경우가 있습니다 (그림 5).

쌀. 6. 비디오 송신기

비디오 카메라 및 송신기는 내장 배터리로 전원이 공급되지만 작동 시간은 일반적으로 몇 시간을 초과하지 않거나 220V 주전원에서 작동하지만 작동 시간은 거의 무제한입니다.

저는 정보 보안 분야의 전문가가 아니며, 제 관심 분야는 고성능 컴퓨팅 시스템입니다. 나는 정보 보안이라는 주제를 우연히 접하게 되었고, 이것이 더 논의될 것입니다. 나는 이 논픽션 이야기가 무분별한 사실 진술보다 가상화 하드웨어와 관련된 문제를 훨씬 더 잘 강조할 것이라고 생각합니다. 하드웨어 가상화를 지원하는 새로운 Intel 프로세서가 공식적으로 발표되기 전에(2007년 초) 이 칩을 사용하여 여러 서버를 기반으로 하는 단일 컴퓨팅 시스템을 만들 계획이었습니다. OS 및 응용 프로그램. 이를 위해서는 비표준 기능을 갖춘 컴팩트 하이퍼바이저를 작성해야 했으며, 주요 특징이는 단일 컴퓨팅 설치의 리소스를 서로 다른 운영 체제 간에 분할하는 것이 아니라 반대로 여러 운영 체제의 리소스를 통합하는 것입니다. 컴퓨터하나의 OS에 의해 제어되는 단일 컴플렉스로. 동시에, OS는 그것이 처리하지 않는다는 것을 짐작조차 하지 말았어야 했습니다. 통합 시스템 하지만 여러 서버와 함께. 가상화 장비는 원래 이러한 문제를 해결하기 위한 것이 아니었지만 이러한 기회를 제공했습니다. 사실 가상화 하드웨어를 고성능 컴퓨팅에 사용할 수 있는 시스템은 아직 만들어지지 않았고, 당시 나는 대체로 이 분야의 선구자였다. 물론 이 작업을 위한 하이퍼바이저는 처음부터 작성되었습니다. OS 로더의 첫 번째 명령부터 모든 것이 가상 환경에서 작동하도록 이미 가상화된 플랫폼에서 OS를 실행하는 것이 근본적으로 중요했습니다. 이를 위해 실제 모델과 프로세서 작동의 모든 모드를 가상화하고 플랫폼 초기화 직후 OS를 로드하기 전에 가상화를 시작해야 했습니다. 이 목적을 위한 가상화 시스템은 비표준으로 판명되었고 완전히 자율적인 소형 소프트웨어 모듈(코드 크기는 40–60KB 이하)처럼 보였기 때문에 언어는 어떻게든 그것을 하이퍼바이저라고 부를 수 없었고 저는 시작했습니다. 시스템의 기능적 목적의 본질을 전달하는 것이 더 정확하기 때문에 "하이퍼 드라이버"라는 용어를 사용합니다. 그 당시에는 가상화 하드웨어가 있는 직렬 장비가 없었지만 Kraftway 회사와의 협력 덕분에 아직 공식적으로 출시되지 않은 가상화 지원이 포함된 프로세서 및 마더보드의 프리 시리즈 샘플(소위 샘플 인텔은 비즈니스 파트너에게 친절하게 제공합니다). 따라서이 "샘플"장비에 대한 작업이 시작되었습니다. 레이아웃이 조립되고 하이퍼드라이버가 작성되었으며 모든 것이 의도한 대로 작동했습니다. 그 당시 가상화 장비는 매우 "원시"였기 때문에 문서에 쓰여진 대로 작동하는 것을 한 번 이상 거부했다고 말해야 합니다. 말 그대로 모든 어셈블러 명령을 처리하고 가상화 장비에 대한 명령을 기계어 코드로 작성해야 했습니다. 그 당시에는 가상화 명령을 지원하는 컴파일러가 없었기 때문입니다. 나는 그 결과가 자랑스러웠고 가상 세계의 주인이 된 것 같은 기분이 들었습니다. 하지만 행복감은 오래가지 않고 딱 한 달만 지속되었습니다. 그 당시 나는 이미 가상화 장비가 있는 서버를 기반으로 레이아웃을 조립했는데, 그 당시 첫 번째 직렬 샘플이 등장했지만 레이아웃이 작동하지 않았습니다. 하드웨어 가상화 명령을 실행할 때 내 시스템이 멈추는 것을 이해하기 시작했고 깨달았습니다. 그들은 전혀 작동하지 않거나 어떻게 든 비표준으로 작동하는 것처럼 보였습니다. 가상화 하드웨어가 리얼 모드에서 실행되는 동안에만 정지가 발생했지만 OS가 로드된 후 보호 모드에서 시스템을 시작했다면 모든 것이 정상이었습니다. 전문가들은 첫 번째 개정판에서 인텔 가상화 하드웨어가 리얼 모드에서 프로세서를 지원하지 않았다는 것을 알고 있습니다. 이것은 필수 추가 레이어가상 x86을 에뮬레이트할 만큼 충분히 큽니다. 하이퍼드라이버는 운영 체제가 로드되기 전에 실행되어 새로운 가상 구성을 완전히 믿을 수 있었기 때문에 프로세서의 리얼 모드에서 작은 OS 부트 코드가 실행되었습니다. 시스템은 에뮬레이션 핸들러에서만 죽어가고 있었습니다. 리얼 모드하이퍼드라이버에서 처음에는 어디선가 실수를 했고, 이해가 안 되었고, 잊어버린 것이 있다고 생각했습니다. 나는 내 코드의 마지막 부분까지 모든 것을 검사했고, 어떤 오류도 발견하지 못했고, 나 자신이 아니라 언덕 뒤에서 온 동료들에게 죄를 짓기 시작했습니다. 첫 번째 단계는 프로세서를 교체하는 것이지만 도움이 되지 않았습니다. 그 당시 마더보드에서 가상화 하드웨어는 서버가 켜질 때 초기화되는 BIOS에만 있었기 때문에 마더보드의 BIOS(샘플이 있는 동일한 마더보드)를 비교하기 시작했습니다. 모든 것이 BIOS의 바이트 및 수까지 일치했습니다. 그 자체. 나는 혼미에 빠졌고 더 이상 무엇을해야할지 몰라 신청했습니다 최후의 조치- "포크 방법". 방금 하지 않은 것, 더 이상 생각하지 않고 단순히 결합하고 결국 공식 Intel 웹 사이트에서 BIOS를 어리석게 다운로드하고 마더 보드에 다시 작성 한 후 모든 것이 작동했습니다 ... 놀라움에는 한계가 없었습니다. : BIOS 번호는 동일했고 BIOS 이미지는 바이트 단위로 일치했지만 어떤 이유로 직렬 마더보드는 인텔 사이트에서 가져온 동일한 BIOS로 채웠을 때만 작동했습니다. 그래서, 그 이유는 여전히 마더보드에 있습니까? 그러나 그들의 유일한 차이점은 라벨링에 있었습니다. 샘플에는 Assembled Canada라고 쓰여 있었고 생산 보드에는 Assembled China가 적혀 있었습니다. 중국의 보드에는 BIOS에서 플래시된 추가 소프트웨어 모듈이 포함되어 있음이 분명해졌지만 이러한 모듈은 표준 분석 프로그램에서 볼 수 없었습니다. 그들은 분명히 가상화 장비로 작업했기 때문에 BIOS의 실제 내용을 숨길 기회가 있었습니다. 또한 내 하이퍼드라이버가 다음과 같은 중국어 보드에서 멈춘 이유도 분명해졌습니다. 소프트웨어 시스템리소스 공유를 허용하지 않는 동일한 가상화 장비로 동시에 작업했습니다. 이 악의적인 바이오스를 처리하고 싶었고 "북마크", "백도어", "문서화되지 않은 기능"에 대한 어떤 숨은 동기도 없이 그저 학문적 관심일 뿐이었습니다. 가상화 하드웨어의 도입과 병행하여 인텔은 칩셋을 근본적으로 업데이트했습니다. 번호 5000x를 받은 이 칩셋은 여전히 ​​여러 가지 수정 사항으로 제공됩니다. 이 칩셋의 사우스브리지인 631xESB/632xESB I/O Controller Hub는 BIOS와 함께 플래시 미세회로가 연결되어 있으며 2007년 이후 거의 그대로 생산되어 거의 모든 서버의 2소켓 버전의 기본 칩으로 사용되고 있다. 나는 사우스브리지 데이터시트를 다운로드하고 설명을 읽었고 그냥 날아갔다. 이 새로운 사우스 브리지에는 3개의 플래시 메모리 칩이 연결되어 있는 것으로 나타났습니다. 첫 번째는 표준 BIOS, 두 번째는 네트워크 컨트롤러 프로세서 프로그램 전용, 세 번째는 사우스 브리지에 통합된 해군 유닛용입니다. SMB(시스템 관리 장치)는 컴퓨터 설치를 원격 제어하고 모니터링하는 수단입니다. 소음, 온도 및 외풍으로 인해 단순히 오래 머물 수없는 대형 서버 룸에는 필수 불가결합니다. 해군 부대에는 자체 프로세서가 있고 따라서 프로그램용 플래시 메모리가 있다는 사실은 물론 새로운 것은 아니지만 지금까지는 그러한 프로세서와 메모리가 마더보드에 연결된 별도의 보드에 배치되었습니다. 원하는 경우 - 넣어요, 원하지 않으면 - 넣지 마세요. 이제 인텔은 사우스 브릿지에서 이러한 구성 요소를 구현했으며 이 장치를 시스템 버스에 연결했으며 BMC 장치의 기능을 설명하는 IPMI 표준에서 제공한 대로 전용 네트워크 채널을 사용하지 않았습니다. 서비스 네트워크에 연결되었지만 모든 서비스 네트워크 트래픽을 기본 네트워크 어댑터로 터널링했습니다. 또한, 나는 문서에서 해군 부대의 플래시 칩에 있는 프로그램이 암호화되어 있으며 사우스 브리지에 통합된 특수 하드웨어 암호화 모듈을 사용하여 압축을 푼다는 것을 배웠습니다. 나는 전에 그런 해군 블록을 만난 적이 없습니다. 근거 없는 말을 하지 않기 위해 이 사우스 브리지에 대한 문서에서 발췌한 내용을 제공합니다.

  • 62.5MHz 속도로 작동하는 ARC4 프로세서.
  • Intel® 631xESB/632xESB I/O 컨트롤러 허브의 두 LAN 포트에 대한 인터페이스로 네트워크에 직접 연결하고 모든 LAN 레지스터에 액세스할 수 있습니다.
  • AES 및 RC4 암호화 알고리즘과 SHA1 및 MD5 인증 알고리즘을 지원하는 암호화 모듈.
  • 로드 가능한 Regulated FW를 위한 고정 메커니즘.
키 길이가 40비트를 초과하는 외국 암호화 도구의 사용은 러시아에서 법으로 금지되어 있지만 여기 있습니다! - 각 Intel 서버에서 256비트 길이의 알 수 없는 키가 있는 암호화 모듈. 또한 이 키는 생산 단계에서 마더보드 칩에 내장된 프로그램을 암호화하는 데 사용되었습니다. 구성에 5000x 칩셋이 있는 Intel 서버의 러시아 해군 부대는 비활성화되어야 합니다. 그러나 이러한 블록은 반대로 컴퓨팅 장치 자체가 꺼져 있어도 항상 정상 작동합니다 (VMS 작동을 위해서는 대기 전압, 즉 소켓에 연결된 서버 전원 케이블이면 충분합니다) . 그 당시에는 이 모든 것이 부차적인 것 같았습니다. 먼저 어떤 플래시 칩에 가상화 하드웨어와 작동하고 내 하이퍼드라이버를 방해하는 소프트웨어 모듈이 포함되어 있는지 알아내야 했고 펌웨어 실험을 시작했기 때문입니다. 문서를 검토한 후, 나는 조심하게 되었고, 해군 부대의 플래시 마이크로 회로를 플래시한 직후 하이퍼드라이버의 성능이 복원되었다는 것을 알았을 때 나는 놀라지도 않았습니다. 암호학이 해군의 코드 리버스 가능성을 완전히 차단했기 때문에 특별한 스탠드 없이는 더 이상 이해하는 것이 불가능했습니다. 이 통합된 해군의 내부 아키텍처에 대한 문서를 찾지 못했습니다. 사우스 브리지용 데이터시트에서 인텔은 표준 액세스 방법을 사용하여 이 장치를 제어하기 위한 인터페이스 레지스터만 설명하여 고전적인 "블랙박스"를 초래했습니다. 사실의 전체성은 놀라웠고 스파이 탐정의 스타일로 편집증적인 생각으로 이끌었습니다. 이러한 사실은 다음을 분명히 나타냅니다.
  • 새로운 직렬 서버 룸에서 인텔 보드 5000 칩셋을 기반으로 BMC 유닛의 플래시 메모리에 플래시되어 중앙 프로세서에서 실행되는 프로그램이 있으며 이러한 프로그램은 가상화 장비를 사용하여 작동합니다. CPU.
  • 인텔 공식 웹사이트의 플래시 메모리 이미지에는 이러한 소프트웨어 모듈이 포함되어 있지 않기 때문에 생산 단계에서 저를 방해하는 소프트웨어 모듈이 불법적으로 마더보드에 플래시되었습니다.
  • 해군 부대의 플래시 메모리에는 암호화 키를 모른 채 조립 및 플래시 메모리에 업로드할 수 없는 암호화된 프로그램 모듈이 포함되어 있으므로 이러한 불법 프로그램 모듈을 삽입한 사람은 암호화 키를 알고 있었습니다. 비밀 정보.
나는 해군 부대의 플래시 메모리 펌웨어 문제와 입법의 관점에서 모호한 상황에 대해 Kraftway 경영진에게 새로운 인텔 칩셋 , "장난 치지 마, 장사를 방해하는구나"라는 형식으로 꽤 예상되는 답변을 받았습니다. 진정해야했습니다. 고용주에 대해 실제로 논쟁 할 수 없기 때문입니다. 내 손은 묶여 있었지만 "내 생각, 내 말"은 나에게 평화를주지 않았고, 왜 이러한 어려움이 있었고이 모든 것이 수행되었는지 명확하지 않았습니다. 해군 부대의 메모리에 자신의 소프트웨어를 넣을 수 있는 능력이 있다면 왜 중앙 프로세서에 이 모든 번거로움이 필요합니까? 합리적인 이유는 해결 중인 작업이 중앙 프로세서에서 현재 컴퓨팅 컨텍스트를 제어하는 ​​데 필요하기 때문일 수 있습니다. 분명히, 60MHz의 주파수를 가진 주변 저속 프로세서를 사용하여 주 컴퓨터 시스템에서 처리되는 정보를 추적하는 것은 불가능합니다. 따라서 이 불법 시스템의 임무는 가상화 하드웨어를 사용하여 주 컴퓨터 설치에서 처리된 정보를 검색하는 것이었습니다. 물론 BMC 단위 프로세서에서 전체 불법 시스템을 원격으로 제어하는 ​​것이 더 편리합니다. 마더보드의 네트워크 어댑터에 대한 자체 액세스 권한과 자체 MAC 및 IP 주소가 있기 때문입니다. "그것은 어떻게 수행됩니까?"라는 질문 누군가가 다른 하이퍼바이저와 가상화 하드웨어 리소스를 공유할 수 있는 하이퍼바이저를 만들고 CPU의 실제 모드를 제외한 모든 모드에서 올바르게 수행하기 때문에 본질적으로 더 학문적이었습니다. 이제 이러한 시스템을 사용하는 사람을 놀라게 하지는 않겠지만 5년 전만 해도 에뮬레이션 속도가 놀라웠습니다. 성능 손실 없이 호스트를 프로그래밍 방식으로 에뮬레이트하는 것은 불가능했습니다. 설명을 위해서는 이론에 대해 조금 더 깊이 파고들어야 합니다. Intel 및 AMD 가상화 시스템의 아키텍처는 플랫폼에 여러 하이퍼바이저가 동시에 존재함을 의미하지는 않지만, 먼저 실행되는 하이퍼바이저는 이후에 실행되는 하이퍼바이저에 대한 실제 가상화 하드웨어에서 작업을 에뮬레이트할 수 있습니다. 이 경우 첫 번째 하이퍼바이저는 에뮬레이트된 호스트 환경에서 실행된 후 시작된 모든 하이퍼바이저입니다. 나는 이 원칙을 "첫날 밤의 권리"라고 부른다. 루트 호스트의 특수 처리기를 사용하여 쉽게 구현할 수 있지만 작업 모드는 크게 변경되지 않으며 보조 하이퍼바이저 호스트는 루트 호스트의 작업 모드에서 실행됩니다. 에뮬레이션 모드는 구성하기 어렵지 않지만 성능에 문제가 있습니다. 가상화 하드웨어는 주로 VMCB(VMCS)와 함께 작동하며 호스트 프로그램은 이 블록에 지속적으로 액세스하며 이러한 액세스에는 각각 0.4-0.7 µs가 필요합니다. 인텔 가상화 시스템에 대해 이러한 소프트웨어 호스트 에뮬레이션을 숨기는 것은 거의 불가능합니다. 실제 하드웨어에서 실행하는 대신 루트 호스트에 대한 출력을 통해 소프트웨어에서 너무 많은 가상화 명령을 에뮬레이트해야 합니다. 가상화 아키텍처 간의 차이점에 대해 조금 말씀드리겠습니다. Intel과 AMD의 하드웨어 가상화 시스템은 완전히 다릅니다. 이러한 시스템 간의 주요 아키텍처 차이점은 호스트 모드입니다. AMD 시스템에서 호스트는 가상화 하드웨어가 비활성화된 상태로 실행됩니다. 즉, 해당 프로그램은 실제 프로세서에서 실행됩니다. AMD 시스템의 보조 호스트 가상화에는 VMRUN 명령의 가상화만 필요합니다(다른 명령이 없다고 가정). AMD 아키텍처에서 제어 VMCB 블록에 대한 작업은 액세스를 위한 일반적인 명령을 통해 발생합니다. 랜덤 액세스 메모리, 보조 호스트를 사용하여 VMRUN 명령 실행만 제어하고 필요한 경우 실제로 작업 모드로 들어가기 전에 VMCB 블록을 수정할 수 있습니다. 이벤트 처리 주기를 두 번 연장하는 것은 여전히 ​​가능하며, AMD 플랫폼 이러한 에뮬레이션은 실행 가능합니다. Intel 가상화 시스템에서는 상황이 훨씬 더 복잡합니다. VMCB 블록에 액세스하려면 VMREAD 및 VMLOAD 특수 명령이 사용되며 이는 가상화해야 합니다. 일반적으로 호스트 핸들러는 VMCB 블록의 필드에 수백 번은 아니더라도 수십 번 액세스하며 이러한 각 작업을 에뮬레이션해야 합니다. 동시에 속도가 10배 정도 떨어지는 것이 눈에 띕니다. 이는 매우 비효율적입니다. 알 수 없는 동료가 에뮬레이션을 위해 더 효율적이고 다른 메커니즘을 사용했다는 것이 분명해졌습니다. 그리고 설명서에서 찾은 힌트. Intel 호스트 자체는 가상 환경, 즉 사실 이 점에서 작업 실행 환경과 다르지 않으며 단순히 다른 VMCB에 의해 제어됩니다(다이어그램 참조). 또한 문서에는 두 개의 호스트가 실제로 한 번에 활성화되어 두 개의 VMCB 블록이 있는 경우 SMM 모드(시스템 관리 모드)를 가상화하기 위한 "이중 모니터"의 개념이 설명되어 있으며, 시스템 관리 모드를 가상화하는 호스트가 시스템 관리 모드를 제어합니다. 주 호스트를 작업으로 사용하지만 시스템 관리 인터럽트 트리거 지점에서만 발생합니다. 이 간접적인 사실은 Intel 가상화 하드웨어에 루트 호스트가 관리하는 여러 보조 호스트를 제어하는 ​​메커니즘이 있을 수 있음을 시사하지만 이 메커니즘은 어디에도 설명되어 있지 않습니다. 또한 이것이 내 시스템이 작동하는 방식이며 루트 하이퍼바이저의 거의 감지할 수 없는 동작에 대한 다른 설명이 아직 없습니다. 훨씬 더 흥미로워졌습니다. 누군가가 이러한 문서화되지 않은 기능에 액세스하여 실제로 사용한 것 같습니다. Kraftway와의 협력이 종료되기 약 6개월 전에 저는 수동적인 관찰자의 위치를 ​​차지했지만 그럼에도 불구하고 중국의 새로운 직렬 마더보드 배치와 새로운 샘플에 대한 시스템을 정기적으로 계속 출시했습니다. 샘플에서 모든 것이 안정적으로 계속 작동했습니다. 중국판으로 바꾸면서 시스템에 기적이 더 많이 일어났습니다. 해외 동료들이 루트 하이퍼바이저의 성능을 적극적으로 개선하고 있는 것 같았습니다. 마지막 의심스러운 보드 배치는 거의 정상적으로 작동했습니다. 즉, 하이퍼드라이버를 처음 실행하면 OS 시작 중에 시스템이 재부팅되지만 하이퍼드라이버 및 OS의 모든 후속 실행은 문제 없이 진행되었습니다. 결국, 내가 오랫동안 기대했던 일이 일어났습니다. 새로운 직렬 마더보드 배치가 도착했으며 이를 사용하여 하이퍼드라이버가 전혀 정지되지 않았습니다. 나는 이미 편집증적인 의심을 의심하기 시작했지만 새로운 사건이 그들을 강화했습니다. 인텔은 가상화 하드웨어를 적극적으로 개선하고 있습니다. 내가 작업을 시작한 하드웨어의 첫 번째 개정이 7번이라면 설명된 상황은 11번째 개정에서 발생했습니다. 즉, 개정이 약 1년에 두 번 업데이트되었습니다(어떤 이유로 개정에는 홀수만 있음). 그래서 개정 번호 11에서는 가상화 장비에 대한 작업 상태에 따라 호스트에 진입하는 조건이 크게 확장되어 VMCB 블록에 새로운 제어 필드가 도입되기까지 했습니다. 이번 가상화 하드웨어 개정판과 함께 샘플 프로세서가 등장했을 때 실제로 새로운 가능성을 시도해보고 싶었습니다. 가상화 하드웨어 11차 개정판의 새로운 기능으로 하이퍼드라이버를 업데이트하고 이미 모든 것이 문제 없이 작동하던 중국의 시리얼 보드에 샘플 프로세서를 설치하고 디버깅을 시작했다. 장비의 새로운 기능은 어떤 식 으로든 스스로를 나타내지 않았고 나는 다시 샘플 프로세서와 문서에 죄를 지으며 엎드려졌습니다. 얼마 후 다른 작업을 위해 마더보드가 필요했고, 실험을 재개하면서 안전상의 이유로 가상화 하드웨어의 11번째 개정판 프로세서를 캐나다 샘플로 재배열했습니다. 이 샘플에서 모든 것이 작동했을 때의 놀라움을 상상해 보십시오! 처음에는 호스트에 대한 새로운 출력이 마더보드와 전혀 관련이 없기 때문에 직렬 보드를 망쳐 놓은 곳이 있다고 생각했습니다. 이것은 순전히 프로세서 기능입니다. 테스트를 위해 샘플 프로세서를 직렬 보드로 옮겼고 모든 것이 다시 작동을 멈췄습니다. 그래서 나는 아무 것도 엉망이되지 않았고 문제는 마더 보드가 프로세서 가상화 하드웨어의 새로운 기능에 어떻게 든 영향을 미쳤다는 사실에 있습니다. 내 의심을 고려할 때 유일한 결론은 마더보드의 플래시 메모리에 플래시된 해외 동료의 불법 루트 호스트가 가상화 하드웨어의 새 개정판에 대해 알지 못했다는 것입니다. 그에게 알려지지 않은 이 하드웨어가 작동하기 시작했을 때 그는 자신의 이벤트 핸들러를 통해 작업 상태에서 내 보조 호스트로 종료를 올바르게 전달하는 것을 중단했습니다. 이 재앙을 처리하는 방법을 이미 알고 있었기 때문에 Intel 웹 사이트에서 직렬 보드에 해군 부대용 펌웨어를 업로드하고 모든 것이 즉시 작동할 것이라는 믿음으로 시스템을 켰다가 얼어붙으면서 다시 퇴적물에 빠졌습니다. 남아 있었다. 그것은 새로운 것이었습니다. 내 이론에 따르면 불법 하이퍼바이저는 무적에 대해 대담하고 자신감을 갖게 되었습니다. 분명히, 그 작성자는 그들의 아이디어가 실행 단계를 통과했으며 더 이상 디버그되지 않은 소프트웨어를 BIOS 오류로 가장할 필요가 없다고 생각했습니다. 초기화 코드를 플래시 메모리에 덮어쓰지 않도록 보호하는 기능이 활성화된 후 책갈피는 거의 파괴할 수 없게 되었습니다. 나는 내가 옳았다는 확신이 없었고, 통제 실험이 필요했습니다. 하드웨어 하이퍼바이저를 감지하는 나만의 방법을 발명해야 했습니다. 그러다가 바퀴를 발명했다는 것이 밝혀졌습니다. 실행 시간을 제어할 수 있는 메서드 시스템 명령하이퍼바이저 호스트에서 필수 에뮬레이션이 필요합니다. 타이머로 USB 컨트롤러 하드웨어의 순환 프레임 카운터를 사용하고 시스템 명령의 실제 실행 시간을 가리는 사이드 및 제어되지 않는 인터럽트를 최소화하기 위해 실제 작동을 위한 프로그램을 작성했습니다. 에 대한 첫 번째 테스트를 수행했습니다. 깨끗한 시스템캐나다의 샘플 마더보드를 기반으로 합니다.
사진에 표시된 실행 시간은 프로세서 주기와 거의 일치하는 일부 조건부 값입니다. 그런 다음 기본 마더보드에서 동일한 테스트를 실행하고 편집증적인 가정을 확인했습니다. 명령 실행 주기가 상당히 길어졌습니다.
즉, Intel 레이블로 제조된 중국 서버 보드의 BMC 블록 플래시 메모리에는 하이퍼바이저 호스트로 작동하는 미신고 소프트웨어 모듈이 생산 단계에서 설치되어 있었습니다. 이것에 대해 다른 사람들을 설득하는 것이 남아 있습니다. 우선 인텔 러시아 대표에게 갔습니다. 러시아 사무소 직원들이 크래프트웨이에 자주 등장하기 때문에 전혀 어렵지 않았다. 다 말해주고 보여줬는데, 기술자가 다 이해하고 있는지 확신이 서지 않았다. 이러한 소위 기술 전문가는 능력 수준에서 관리자와 크게 다르지 않습니다. 그러나 그는 모든 것을 지도부에 보고하겠다고 약속했다. 했는지는 모르겠지만 인텔에서는 아무런 반응이 없었고 모든 것이 모래처럼 흘러갔습니다. Kraftway에서의 일은 그때쯤 끝났고, 나는 시작했습니다. 새로운 과제정보 보안 회사에서. 내 "발견"을 공유한 이 회사의 사장은 내 말을 진지하게 받아들였습니다. 이와 관련하여 FSB의 정보 보호 및 특수 커뮤니케이션 센터의 지도력에 가기로 결정되었습니다. FSB 내의 이 구조는 국가의 정보 보안을 보장하고 정보 보호와 관련된 국가 및 상업 조직의 활동을 규제합니다. 또한 기밀 및 정보를 처리하는 정부 기관 및 상업 회사에 대한 정보 보안 조치를 기밀 정보 . 당시 내가 일했던 회사는 상업 프로젝트를 인증하고 라이선스를 부여하기 위해 센터와 공식 연락을 유지했기 때문에 전문가 수준에서 회의를 주선하는 것이 매우 쉬웠습니다. 센터의 전문가들이 경영진에게 자신의 의견을 보고하고, 그 후 경영진이 우리의 의견을 경청할 필요가 있다고 판단하면 다음 단계는 더 높은 차원의 회의가 될 것이라고 가정했습니다. 회의가 열렸고, 내가 알아낸 모든 것을 말하고 보여줬고, 캐나다와 중국의 보드 예제를 사용하여 불법 소프트웨어 모듈의 존재를 시연했습니다. 그건 그렇고, 그런 모듈을 나타내는 전문 용어 "북마크"를 처음 들었습니다. 대화가 해군으로 넘어가자 센터 동료들의 눈에는 오해가 보였다. 교육 프로그램을 진행해야 했습니다. 그 과정에서 네트워크 어댑터에 액세스할 수 있는 사우스 브리지에 특수 마이크로프로세서가 있고 러시아 법을 위반한 해군 부대에 암호화 모듈이 있는지 의심조차 하지 않는 것으로 나타났습니다. 결론적으로, 우리는 예기치 않게 이 위협 모델이 이미 조사되었으며 이에 대해 일련의 대응책이 적용되고 있다는 소식을 들었으며 일반적으로 시스템에 인터넷 액세스가 없기 때문에 책갈피를 두려워하지 않습니다. 추가 문의는 아무 것도 나오지 않았고, 우리는 영리하고 초능력이 있는 것처럼 모든 것이 비밀리에 이루어졌습니다. 하지만 당신은 아무것도 알 수 없습니다. 그러나 나는 그들이 내가 말하고 보여준 것의 대부분을 이해하지 못했기 때문에 그들의 기술적인 소양을 강하게 의심했습니다. 상급자에게 보고하고 추후 조치를 결정하기로 했다. 조금 후에 이 "비밀 방법"이 호스트 프로그램을 감지하는 방법을 알게 되었습니다. 그리고 나는 회사에서 협상하는 동안 우연히 알게되었습니다. 센터의 면허 소지자는 책갈피에 대한 바이오스를 확인할 권한이 있습니다. BIOS에 대한 연구를 수행하는 이 회사의 기술 전문가는 가상화 하드웨어를 사용하는 소프트웨어 모듈은 가상화 명령의 서명으로 검색해야 한다고 말했습니다. 실제로 가상화 장비에 대한 프로세서 명령에도 프로그램 코드에 3~4바이트가 포함되어 있지만 플래시 칩에서 이 프로그램 코드를 암호화되지 않은 형태로 찾을 수 있다고 누가 말했습니까? 이러한 메모리 영역이 하드웨어에서 볼 수 없도록 보호되어 있는 경우 RAM에서 이 코드를 어떻게 스캔합니까? 대체적으로 첫 만남의 결과는 씁쓸한 뒷맛을 남겼고, 사건 전개를 기다리는 가장 우울한 기분이었다. 한 달 반 후, 우리는 우리가 발견한 책갈피를 시연하기 위해 정보 보호 및 특수 커뮤니케이션 센터 자체에 초대되었습니다. 이번에는 일반 직원들이 아니라 우리의 이야기를 듣기 위해 모인 매니저들과 일류 전문가들(적어도 자기소개는 그랬다.) 회의는 강의로 바뀌었고, 그들은 거의 3시간 동안 내 말을 주의 깊게 들었고, 내가 그들에게 말하는 것을 처음 듣는 것이 분명했습니다. x86 플랫폼의 새로운 취약점을 나열하고 책갈피를 보여주고 탐지 방법을 알려주고 많은 질문에 답했습니다. 마지막으로 그들은 우리에게 감사했고 주제는 특별 연구 프로젝트의 틀 내에서 개발되어야한다고 말했고 이것으로 우리는 헤어졌습니다. 그들이 단순히 우리를 믿고 싶지 않다는 비공식 채널을 통해 정보가 우리에게 도달했을 때 행복감은 사라졌습니다. 하지만 그렇다고 해서 내 주장을 증명하려는 내 욕망은 꺾이지 않았습니다. 그 당시 나에게 그 해결책은 표면에 있었다: 그러한 책갈피 소프트웨어 모듈을 직접 작성하는 것이 필요했습니다. 해군의 플래시 메모리에 책갈피를 넣을 수는 없지만 메인 BIOS에는 잘 밀어 넣을 수 있습니다. 나는 하이퍼바이저에 메모리와 플래시 칩의 마스킹을 위한 자체 보안 모듈을 장착하고 북마크 코드가 배치될 플래시 칩에 대한 쓰기를 차단하기로 결정했습니다. BIOS 및 외부 프로그래머에서 재프로그래밍. 하이퍼바이저가 수행해야 하는 "악의적인" 기능을 결정하는 일만 남았습니다. FSB 전문가 중 한 명이 시스템이 글로벌 네트워크와 연결이 끊어졌기 때문에 책갈피를 두려워하지 않는다는 진술을 기억했습니다. 그러나 외부 세계의 정보는 어떻게든 이러한 보호된 로컬 네트워크, 적어도 일회용을 통해 광 디스크. 따라서 나는 명백한 결론에 이르렀고 들어오는 것을 분석하기로 결정했습니다. 정보 흐름말해서 종말의 무기를 구현하기 위해, 즉 책갈피를 사용하여 외부 명령에 따라 컴퓨팅 시스템을 파괴하고 입력 정보 스트림을 통해 스테가노그래피로 전달하기 위해 하이퍼드라이버를 사용하여 책갈피에 넣습니다. 신중하게 정보 흐름을 스캔하고 성능 저하 없이 가상화 장비만 있으면 됩니다. 디스크 시스템 및 네트워크 어댑터의 I/O 버퍼에서 스캔할 지점도 명확합니다. I/O 버퍼 스캔은 가상화 하드웨어의 사소한 작업입니다. 빨리 말하자! 이러한 약 20KB 크기의 하이퍼드라이버는 마더보드의 BIOS에 등록되어 감지 보호 기능을 갖추고 있습니다. BIOS를 업데이트할 때 덮어쓰려는 시도를 차단하고 유일한 기능을 수행했습니다. BIOS 플래시 칩을 파괴하라는 명령이 수신되면 BIOS 플래시 칩을 재설정합니다. 명령 자체는 구현의 용이함을 위해 구성 태그에서 DOC 형식의 텍스트 파일에 하드와이어링되었습니다. 모든 것이 준비되었을 때 회사 경영진은 우리 자신의 책갈피 작업을 살펴보고 가상화 기술이 실제 위협이 되는지 확인하자는 제안과 함께 다시 FSB로 이동했습니다. 그러나 아무도 케이스에 있는 우리 책갈피를 보고 싶어하지 않았습니다. 더 이상 우리와 통신하지 말라는 명령이 맨 위에서(누구 주문인지는 알 수 없었습니다) 왔습니다. 정보 보안의 주요 투사들은 우리의 말을 듣고 싶어하지 않았습니다. 그런 다음 실제로 우리의 양심을 맑게하기 위해 거의 아무것도 바라지 않고 정보 보안 시스템 사용자에게 문제에 대한 정보를 전달하려고했습니다. 우리는 분산 공정 제어 시스템에 대한 최신 위협에 대해 회사 전문가에게 알리기 위해 Gazprom에 연락했습니다. 기업 보호 및 관리 서비스의 경영진과의 회의를 주선 할 수있었습니다. 복잡한 시스템이 회사의 보안. 특히 이들을 위해 보다 시각적인 버전의 책갈피와 간소화된 명령 인터페이스를 준비했습니다. 북마크는 컴퓨터에 다운로드한 후 활성화되었습니다. 텍스트 파일, "Gazprom"과 "stop"이라는 두 단어가 포함된 콘텐츠가 임의의 순서로 배열되었습니다. 그 후 컴퓨터가 죽었지만 즉시가 아니라 5분 지연되었습니다. 물론 하루라도 미루는 것은 가능했지만, 시연에 주어진 시간을 지키지 못했을 것입니다. Gazprom의 직원들은 낮은 수준의 정보 보안에 대해 불평하고 FSB가 설정한 요구 사항과 규칙에 따라 안내되기 때문에 자신의 일이 아니라고 말했습니다. 원이 닫히면서 "정보 무책임"이라는 단일한 시스템을 깨뜨릴 수 없다는 것이 분명해졌습니다. 그 이후로 3년이 넘는 시간 동안 가상화 하드웨어가 대상 시스템에 침투하기 위한 도구라는 이야기를 들어본 적이 없습니다. 역설? 나는 생각하지 않는다. 주제의 세부 사항은 실패한 기술에 대해서만 배운다는 것입니다. 우리는 아직 발견되지 않은 기술에 대해 알지 못하며 그 작성자는 물론 침묵합니다. BIOS에서 책갈피를 안정적으로 배치하는 것은 공장에서만 가능하다는 점을 명심해야 합니다. 작동 조건에서 이것은 특정 마더보드 모델에 초점을 맞춰야 하며 이러한 옵션은 해커에게 그다지 흥미롭지 않습니다. 그들은 질량이 필요하고 "지역별로"라고 말합니다. 하지만, "저격수 같은" 조준을 공격하는 이들이 있다. BIOS에 북마크를 배치하는 기술과 가상화 장비를 활성화하여 효과적으로 숨길 수 있는 기술은 물론 이러한 "저격수"를 위한 편리한 도구입니다. 한 번 그들은 거의 잡히고 거의 우연이었습니다. 나는 이제 이것을 할 수 없을 것이라고 생각하며 아마도 이해했듯이 잡을 사람이 없습니다.

적의 기술 수준이 충분하면 칩을 은밀하게 수정할 위험이 있습니다. 수정된 칩은 주요 노드에서 작동하고 도입된 "트로이 목마" 또는 "하드웨어 북마크"가 눈에 띄지 않게 되어 가장 근본적인 수준에서 국가의 방어 능력을 약화시킬 것입니다. 오랫동안이러한 위협은 여전히 ​​가설로 남아 있었지만 최근 국제 연구팀이 물리적 수준에서 이를 구현할 수 있었습니다.

매사추세츠 대학의 Georg T. Becker는 스위스와 독일의 동료들과 함께 Intel의 암호화 블록에서 (의사) 난수 생성기(PRNG)의 작동을 방해하는 "하드웨어 수준 트로이 목마"의 두 가지 버전을 만들었습니다. 개념 증명 Bridge의 일부인 Ivy 아키텍처 프로세서. 모든 암호화 시스템에 대해 수정된 PRNG를 사용하여 생성된 암호화 키는 쉽게 예측할 수 있습니다.

하드웨어 탭의 존재 여부는 이를 위해 특별히 설계된 내장 테스트나 프로세서의 외부 검사에 의해 결정되지 않습니다. 어떻게 이런 일이 일어날 수 있습니까? 이 질문에 답하려면 하드웨어 PRNG 출현의 역사로 돌아가서 다음을 숙지해야 합니다. 기본 원리들그의 작품.

암호화 시스템을 만들 때 키를 빠르게 선택할 수 있는 가능성을 제거해야 합니다. 그들의 길이와 예측 불가능성의 정도는 공격측이 시도해야 하는 옵션의 수에 직접적인 영향을 미칩니다. 길이를 직접 설정할 수 있지만 주요 변형의 고유성과 동일한 확률을 달성하는 것이 훨씬 더 어렵습니다. 이를 위해 키 생성 중에 난수가 사용됩니다.

현재로서는 소프트웨어 알고리즘만으로 지정된 전체 집합에 대해 균일한 혼돈 분포를 갖는 진정한 난수 스트림을 얻는 것이 불가능하다는 것이 일반적으로 받아들여지고 있습니다. 그들은 항상 범위의 일부 부분에서 높은 빈도를 가지며 어느 정도 예측 가능한 상태로 유지됩니다. 따라서 실제로 사용되는 대부분의 숫자 생성기는 의사 난수(pseudo-random)로 간주되어야 합니다. 암호학적 의미에서 충분히 안전한 경우는 거의 없습니다.

예측 가능성의 영향을 줄이기 위해 모든 숫자 생성기에는 신뢰할 수 있는 랜덤 시드 소스가 필요합니다. 즉, 랜덤 시드입니다. 일반적으로 일부 혼란스러운 물리적 프로세스의 측정 결과가 그대로 사용됩니다. 예를 들어, 빛 진동 강도의 변동 또는 무선 주파수 노이즈 등록. 이러한 임의성 요소(및 전체 하드웨어 PRNG)를 컴팩트 버전에서 사용하고 이상적으로는 내장형으로 만드는 것이 기술적으로 편리합니다.

인텔 90년대 후반부터 칩에 (의사)난수 생성기를 구축해 왔습니다. 이전에는 그들의 성격이 아날로그적이었습니다. 출력에서 임의의 값은 예측하기 어려운 물리적 프로세스(열 노이즈 및 전자기 간섭)의 영향으로 얻어졌습니다. 아날로그 발진기는 개별 블록으로 구현하기가 비교적 쉬웠지만 새로운 회로에 통합하기는 어려웠습니다. 프로세스가 작아짐에 따라 새롭고 긴 보정 단계가 필요했습니다. 또한 이러한 시스템에서 공급 전압의 정기적인 감소는 신호 대 잡음비를 악화시켰습니다. PRNG는 지속적으로 작동하고 상당한 양의 에너지를 소비했으며 작업 속도는 많이 부족했습니다. 이러한 단점은 적용 가능한 영역을 제한했습니다.

완전한 디지털 특성을 지닌 (의사)난수 생성기에 대한 아이디어는 오랫동안 이상하지만 터무니없지는 않지만 이상해 보였습니다. 결국 어떤 상태라도 디지털 회로항상 엄격하게 결정되고 예측 가능합니다. 아날로그 구성 요소가 없는 경우 필요한 무작위 요소를 도입하는 방법은 무엇입니까?

디지털 요소만을 기반으로 원하는 혼돈을 얻으려는 시도는 2008년부터 인텔 엔지니어들에 의해 이루어졌으며 몇 년의 연구 끝에 성공으로 선정되었습니다. 이 작업은 2010년 호놀룰루에서 열린 VLSI 여름 심포지엄에서 발표되었으며 현대 암호학에 작은 혁명을 일으켰습니다. 처음으로 완전 디지털의 빠르고 에너지 효율적인 PRNG가 대량 생산된 범용 프로세서에 구현되었습니다.

첫 번째 작업 제목은 Bull Mountain이었습니다. 다음으로 이름이 변경되었습니다. 보안 키. 이 암호화 블록은 세 가지 기본 모듈로 구성됩니다. 첫 번째는 3Gbps의 비교적 느린 속도로 임의 비트 스트림을 생성합니다. 두 번째는 분산을 평가하고 무작위 시드의 소스로 사용되는 256비트 블록으로 결합합니다. 세 번째 블록에서 일련의 수학적 절차를 거친 후 고속난수의 128비트 스트림이 생성됩니다. 그것들을 바탕으로, 새로운 지시 RdRand는 필요한 경우 필요한 길이의 난수를 생성하여 특별히 지정된 레지스터(16, 32 또는 64비트)에 배치하고 결국 이를 요청한 프로그램으로 전송합니다.

(의사)난수 생성기의 오류 및 악의적인 수정은 인기 있는 암호화 제품과 해당 인증 절차에 대한 신뢰를 잃게 합니다.

모든 암호화 시스템에서 PRNG가 매우 중요하기 때문에 생성된 난수의 품질을 확인하기 위한 테스트가 보안 키에 구축되었으며 주요 전문가 그룹이 인증에 참여했습니다. 전체 블록은 ANSI X9.82 및 NIST SP 800-90의 기준을 충족합니다. 또한 NIST FIPS 140-2에 대한 레벨 2 인증을 받았습니다.

지금까지 하드웨어 트로이 목마에 대한 대부분의 작업은 가설이었습니다. 연구원들은 기존 칩에 어떻게든 추가되어야 하는 작은 논리 회로의 추가 설계를 제안했습니다. 예를 들어, Samuel Talmage King과 공동 저자는 LEET-08 회의에서 원격 공격자에게 시스템에 대한 완전한 제어를 제공하는 중앙 프로세서용 하드웨어 트로이 목마의 변종을 발표했습니다. 단순히 특정 방식으로 구성된 UDP 패킷을 전송함으로써 그러한 컴퓨터에서 변경을 수행하고 메모리에 무제한 액세스할 수 있습니다. 그러나 추가 논리 회로는 그러한 수정을 검색하는 특수 방법은 말할 것도 없고 현미경으로 식별하기가 비교적 쉽습니다. Becker의 그룹은 다른 방향으로 나아갔습니다.

칩에 추가 회로를 추가하는 대신 이미 있는 일부 마이크로 트랜지스터의 작동을 변경하여 하드웨어 수준 탭을 구현했습니다. 여러 번의 시도 끝에 도펀트의 극성을 선택적으로 변경하고 전체 암호화 장치의 작동에 원하는 수정 사항을 적용할 수 있었습니다. 따라서 우리의 트로이 목마 제품군은 스캐닝 현미경 검사 및 참조 칩과의 비교를 포함한 대부분의 탐지 방법에 내성이 있는 것으로 판명되었습니다.”

작업 결과 128비트 길이의 고유번호 대신 세 번째 보안키 블록은 32비트만 다른 시퀀스를 누적하기 시작했다. 이러한 의사 난수를 기반으로 생성된 암호화 키는 예측 가능성이 높으며 일반 가정용 컴퓨터에서 몇 분 안에 해독될 수 있습니다.

하드웨어 탭 아래에 있는 전기 전도도의 선택적 변경은 두 가지 버전으로 구현되었습니다.

  1. 인텔 보안 키에서 신호의 디지털 후처리;
  2. 테이블 비트 대체 방법(Substitution-box)을 사용하여 사이드 채널에서 사용합니다.

후자의 방법은 더 다양하며 다른 칩에 약간의 수정을 가하여 적용할 수 있습니다.

RdRand 명령어를 통해 내장 PRNG를 사용하는 기능은 인텔 프로세서아이비 브릿지 아키텍처입니다. 인텔은 프로그래머를 위한 자세한 매뉴얼을 작성했습니다. 그들은 암호화 알고리즘의 최적 구현을 ​​위한 방법을 설명하고 보안 키 작동 원리에 대한 설명에 대한 링크를 제공합니다. 오랫동안 보안 전문가들의 노력은 소프트웨어 부분의 취약점을 찾는 데 집중되어 왔습니다. 아마도 처음으로 하드웨어 수준의 숨겨진 개입이 실제로 훨씬 더 위험하고 실현 가능한 기술로 판명되었을 것입니다.