미국 / 영국 이외의 지역에있는 대규모 서비스 조직에서 근무한다고 가정 해 보겠습니다. 우리는 UNIX와 Linux 서버를 광범위하게 사용합니다.
이 기사를 읽으면 백도어를 C 컴파일러에 쉽게 삽입 할 수 있다고 언급 한 다음 해당 컴파일러로 컴파일 된 코드에도 백도어가 포함됩니다. NSA / GCHQ가 모든 암호화 방법, 하드웨어 및 소프트웨어에 백도어 / 취약점을 부여해야한다는 최근의 유출로 인해 컴파일러는 이제 중요한 장애 지점이되었습니다. 잠재적으로 모든 표준 UNIX / Linix 배포판이 손상 될 수 있습니다. 우리는 우리의 시스템, 데이터 및 고객 데이터를 악의적 인 정부가 침해 할 여유가 없습니다.
이 정보가 주어지면 신뢰할 수있는 컴파일러를 처음부터 작성하고 나서 안전한 기반을 구축하여 해당 컴파일러를 사용하여 소스 코드에서 운영 체제 및 응용 프로그램을 빌드 할 수 있습니다.
질문
소스 코드에서 컴파일러를 컴파일 한 다음 (달걀 치킨 달걀 시나리오) 신뢰할 수있는 Unix / Linux 배포를 처음부터 컴파일하는 올바른 방법은 무엇입니까?
본인 또는 다른 사람이 보안 결함에 대한 소스 코드를 읽고 이해할 수 있다고 가정 할 수 있으므로 컴파일 전에 소스 코드가 먼저 검사됩니다. 내가 실제로 따르는 것은이 컴파일러를 처음부터 안전하게 생성하는 작업 안내서이며 커널, OS의 다른 부분 및 응용 프로그램을 컴파일하는 데 사용할 수 있습니다.
보안 스택은 운영 체제 또는 해당 스택에서 실행되는 응용 프로그램에 대한 확신이있는 경우 기본 수준에서 시작해야합니다. 예, 컴파일러가 빌드 될 때 마이크로 코드를 삽입 할 수있는 하드웨어 백도어가있을 수 있음을 알고 있습니다. 미국에서 설계되지 않은 칩을 사용하는 것 외에는 지금 당장 할 수있는 일이 많지 않습니다. 이 레이어를 시작으로 분류하여 백도어를 삽입하기 전에 오래된 컴퓨터에서 잠재적으로 빌드 할 수 있다고 가정하겠습니다.
브루스 슈나이어 (Bruce Schneier)는 "엔지니어들에게 이렇게 말합니다. 우리는 인터넷을 만들었고 우리 중 일부는 인터넷을 파괴하는 데 도움을주었습니다. 이제 자유를 사랑하는 사람들은 인터넷을 고쳐야합니다."
추가 링크 :