7장. 애플리케이션 신뢰하기
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
실리콘밸리의 저명한 투자자 마크 안드레센(Marc )은 "소프트웨어가 세상을 먹어 치우고 있다"는 유명한 말을 남겼습니다. 여러 면에서 이 말은 그 어느 때보다 사실적입니다. 데이터센터에서 실행되는 소프트웨어가 모든 마법을 일으키고 있기 때문에 그 실행을 신뢰하고 싶은 것은 당연한 일입니다.
신뢰할 수 있는 디바이스에서 실행되는 코드는 충실하게 실행됩니다. 신뢰할 수 있는 디바이스는 5장에서 다룬 코드 신뢰의 전제 조건입니다. 그러나 실행 환경이 안전하다고 해도 디바이스에서 실행되는 코드가 신뢰할 수 있다고 믿으려면 아직 해야 할 일이 더 많습니다.
따라서 디바이스를 신뢰하는 것은 이야기의 절반에 불과합니다. 코드와 코드를 작성한 프로그래머도 신뢰해야 합니다. 실행 중인 애플리케이션의 무결성을 보장하는 것이 목표이므로 이러한 인간의 신뢰를 코드 자체에서 실제 실행까지 확장할 수 있는 방법을 찾아야 합니다.
코드에 대한 신뢰를 구축하려면 이것이 필요합니다:
- 코드를 만드는 사람들 자체가 신뢰할 수 있는 사람들입니다.
- 신뢰할 수 있는 애플리케이션을 만들기 위해 코드를 충실히 처리했습니다.
- 신뢰할 수 있는 애플리케이션이 실행될 인프라에 충실하게 배포됩니다.
- 신뢰할 수 있는 애플리케이션은 악의적인 동작으로 애플리케이션을 강제로 실행하려는 시도가 있는지 지속적으로 모니터링됩니다.
이 장에서는 사람에서 프로덕션 애플리케이션으로의 신뢰 상속을 중심으로 이러한 각 단계를 보호하는 접근 방식에 대해 설명합니다.
애플리케이션 파이프라인 이해
컴퓨터 시스템 내에서 코드의 생성, 전달, 실행은 매우 민감한 일련의 이벤트입니다. 이러한 시스템은 더 많은 접근 권한을 얻을 수 있기 때문에 공격자들에게 매력적인 표적입니다. 모든 단계에 공격 벡터가 존재하며 이러한 단계에서의 전복은 탐지하기가 매우 어려울 수 있습니다. 따라서 우리는 이 체인의 모든 링크( 그림 7-1에 표시됨)가 전복을 탐지할 수 있는 방식으로 보안을 유지하도록 노력해야 합니다.
이 프로세스는 보안을 강화하기 위한 전 세계 정부의 공동 노력인 공급망 보안과 유사합니다. 군사 장비가 안전하게 제작/공급되도록 하는 것은 전투력의 효율성을 보장하는 데 매우 중요하며, 소프트웨어 제작 및 제공도 이와 다르지 않습니다.
공급망 중요성
2007년 이스라엘 정부는 시리아의 핵 의심 시설에 대한 공습을 실시했습니다. 이 공습을 둘러싼 많은 미스터리 중 하나는 시리아의 레이더 시스템이 갑자기 고장나 이스라엘에 엄폐물을 제공했다는 점입니다. 최첨단으로 여겨졌던 이 레이더 시스템의 고장은 레이더 장비에 사용된 상용 칩에 숨겨진 하드웨어 킬 스위치 때문인 것으로 널리 알려져 있습니다. 아직 완전히 확인되지는 않았지만 이와 같은 사례는 하드웨어든 소프트웨어든 안전한 공급망의 중요성을 강조합니다.
안전한 소프트웨어 배포 체인을 지원하기 위해 프로세스의 ...