NIST SP 800-160
더 많은 작업
NIST SP 800-160(Systems Security Engineering)는 미국 국립표준기술연구소(NIST, National Institute of Standards and Technology)가 발행하는 시스템 보안 공학 지침으로, 시스템의 전체 수명 주기에 보안을 통합하여 신뢰할 수 있는 보안 시스템을 설계·구현·운영하기 위한 공학적 원칙과 프로세스를 제시하는 특별간행물이다.
NIST SP 800-160은 보안을 정보시스템에 추가하는 개별 기능이나 통제 수단이 아니라 시스템 자체가 갖추어야 하는 본질적 속성으로 다루는 지침이다.
시스템 보안 공학(Systems Security Engineering, SSE)을 기존 시스템 공학(Systems Engineering)의 하위 전문 분야로 정립하고, 시스템의 기획·요구사항 정의·설계·구현·검증·운영·폐기 과정에 보안 요구사항을 통합하는 방법을 설명한다.
핵심 개념은 시스템을 완성한 이후 보안 통제를 추가하는 방식에서 벗어나, 이해관계자의 보호 요구를 바탕으로 처음부터 보안을 고려하여 시스템을 공학적으로 설계하는 것이다.
특히 시스템의 보안을 개별 구성요소의 보안 기능만으로 판단하지 않고, 구성요소 사이의 상호작용과 시스템 전체의 동작 및 결과를 함께 고려한다.[1]
주요 특징은 다음과 같다.
- 시스템 공학의 전체 수명 주기에 보안 활동 통합.
- 이해관계자의 자산과 보호 요구를 기반으로 보안 목표 정의.
- 시스템의 허가된 동작과 결과를 보장하는 보안 설계.
- 시스템 구성요소뿐 아니라 구성요소 간 상호작용과 의존관계 고려.
- 보안 아키텍처 및 설계 원칙의 체계적 적용.
- 보안 요구사항의 추적성과 검증 가능성 확보.
- 객관적 증거를 통한 시스템 신뢰성 및 보증 수준 평가.
- 비용·일정·성능·보안 요구사항 사이의 공학적 균형.
- 사이버 공격과 장애 등 불리한 상황에서도 임무를 지속할 수 있는 시스템 개발.
NIST SP 800-160은 단일 문서가 아니라 서로 다른 목적을 가진 두 권으로 구성된다.
| 구분 | 정식 명칭 | 주요 내용 | 현행판 |
|---|---|---|---|
| Volume 1 | Engineering Trustworthy Secure Systems | 신뢰할 수 있는 보안 시스템을 개발하기 위한 시스템 보안 공학 | Revision 1, 2022년 11월 |
| Volume 2 | Developing Cyber-Resilient Systems: A Systems Security Engineering Approach | 사이버 공격과 침해 상황에서도 기능을 유지·복구·적응하는 사이버 복원력 공학 | Revision 1, 2021년 12월 |
Volume 1은 시스템 보안 공학의 기본 원칙과 수명 주기 프로세스를 다루며, Volume 2는 이를 기반으로 사이버 복원력(Cyber Resiliency)을 확보하는 방법을 구체화한다.
| 항목 | 내용 |
|---|---|
| 문서 번호 | NIST SP 800-160 |
| 문서 계열 | NIST Special Publication 800 Series |
| 발행기관 | 미국 국립표준기술연구소(NIST) |
| 주요 분야 | 시스템 보안 공학, 보안 아키텍처, 사이버 복원력, 위험 관리 |
| Volume 1 최신판 | SP 800-160 Vol. 1 Rev. 1 |
| Volume 1 발행일 | 2022년 11월 16일 |
| Volume 2 최신판 | SP 800-160 Vol. 2 Rev. 1 |
| Volume 2 발행일 | 2021년 12월 9일 |
| 관련 국제표준 | ISO/IEC/IEEE 15288 |
| 주요 적용 대상 | 시스템 설계자, 보안 아키텍트, 시스템 공학자, 개발자, 위험 관리 담당자 |
| Volume 1 공식 문서 | NIST CSRC |
| Volume 2 공식 문서 | NIST CSRC |
NIST SP 800-160은 복잡한 정보시스템과 사이버 물리 시스템의 보안을 체계적인 공학 활동으로 다루기 위해 개발되었다.
최초 발행 당시에는 시스템 보안 공학을 기존 시스템 공학 프로세스에 통합하는 데 초점을 맞추었다.
이후 사이버 공격에 대한 복원력을 별도로 다루는 Volume 2가 추가되었으며, Volume 1도 시스템 보안의 개념과 설계 원칙을 중심으로 개정되었다.
| 시기 | 문서 | 주요 내용 |
|---|---|---|
| 2016년 11월 | SP 800-160 Volume 1 | 시스템 보안 공학 지침 최초 발행 |
| 2018년 3월 | SP 800-160 Volume 1 갱신본 | 기존 문서 갱신 |
| 2019년 11월 | SP 800-160 Volume 2 | 사이버 복원력 공학 지침 최초 발행 |
| 2021년 12월 | SP 800-160 Volume 2 Revision 1 | 사이버 복원력 공학 프레임워크 개정 |
| 2022년 11월 | SP 800-160 Volume 1 Revision 1 | 신뢰할 수 있는 보안 시스템 공학 지침 전면 개정 |
2026년 10월 23일 기준 NIST CSRC에서 확인되는 최신 확정판은 Volume 1 Revision 1과 Volume 2 Revision 1이다.[2]
두 권은 서로 다른 시점에 개정되므로 Revision 번호가 같더라도 발행일은 다르다.
2022년 11월 16일 발행된 Volume 1 Revision 1의 정식 명칭은 Engineering Trustworthy Secure Systems이다.
이전판의 제목은 Systems Security Engineering: Considerations for a Multidisciplinary Approach in the Engineering of Trustworthy Secure Systems였다.
Revision 1에서는 시스템 보안 공학의 개념과 설계 원칙을 중심으로 문서 구조를 재정비하였다.
주요 변경사항은 다음과 같다.
- 보안을 시스템의 창발적 속성(Emergent Property)으로 다루는 관점 강화.
- 신뢰할 수 있는 보안 시스템을 개발하기 위한 설계 원칙 정비.
- 시스템 보안 공학의 개념과 용어 명확화.
- 시스템 수명 주기 프로세스의 상세 내용을 부록으로 재배치.
- 시스템 공학과 시스템 보안 공학의 관계 구체화.
- 시스템 신뢰성과 보증(Assurance)에 관한 논의 강화.
- 관련 국제표준 및 공학 지침과의 연계 확대.
Revision 1은 2016년 발행되어 2018년 갱신된 Volume 1을 대체한다.[3]
2021년 12월 9일 발행된 Volume 2 Revision 1의 정식 명칭은 Developing Cyber-Resilient Systems: A Systems Security Engineering Approach이다.
이 문서는 시스템이 사이버 공격과 침해를 경험하더라도 임무 수행에 필요한 기능을 유지하거나 복구할 수 있도록 설계하는 방법을 다룬다.
Volume 1이 신뢰할 수 있는 보안 시스템을 개발하기 위한 기본적인 공학 원칙을 제시한다면, Volume 2는 공격자가 시스템의 일부를 침해할 수 있다는 상황까지 고려하여 복원력을 확보하는 데 초점을 맞춘다.[4]
시스템 보안 공학(Systems Security Engineering, SSE)은 시스템 공학의 원칙과 방법을 적용하여 시스템이 이해관계자의 보호 요구를 충족하도록 하는 전문 분야이다.
시스템 공학은 하드웨어, 소프트웨어, 사람, 절차, 시설 등 다양한 구성요소가 결합된 시스템을 전체적으로 다룬다.
시스템 보안 공학은 이러한 시스템 공학 활동에 보안 관점을 통합한다.
주요 활동은 다음과 같다.
- 보호해야 할 자산 식별.
- 자산 손실의 원인과 결과 분석.
- 이해관계자의 보호 요구 파악.
- 시스템 보안 목표 및 요구사항 정의.
- 보안 아키텍처와 설계 개발.
- 보안 기능 및 보호 메커니즘 구현.
- 시스템의 보안 요구사항 충족 여부 검증.
- 객관적 증거를 통한 신뢰성 평가.
- 운영 및 유지보수 과정의 보안 상태 관리.
SP 800-160은 보안을 개별 소프트웨어나 네트워크 장비의 기능만으로 판단하지 않는다.
시스템은 여러 구성요소가 상호작용하여 기능을 제공하기 때문이다.
예를 들어 개별 서버와 네트워크 장비가 각각 보안 요구사항을 충족하더라도 구성요소 사이의 인터페이스나 신뢰관계가 잘못 설계되면 전체 시스템에서 보안 문제가 발생할 수 있다.
따라서 다음 사항을 함께 고려한다.
- 시스템 구성요소의 보안.
- 구성요소 사이의 인터페이스.
- 시스템의 외부 연결.
- 사람과 시스템 사이의 상호작용.
- 운영 절차와 관리 정책.
- 다른 시스템과의 의존관계.
- 시스템 전체에서 발생하는 동작과 결과.
창발적 속성(Emergent Property)은 개별 구성요소의 속성만으로 설명할 수 없고 구성요소의 결합과 상호작용을 통해 나타나는 시스템 전체의 속성이다.
SP 800-160은 보안을 이러한 시스템 수준의 속성으로 다룬다.
개별 구성요소에 보안 기능이 존재하더라도 시스템 전체가 안전하다고 단정할 수 없다.
반대로 특정 구성요소의 보안성이 높다는 사실만으로 전체 시스템의 보안성이 보장되는 것도 아니다.
시스템 보안 공학은 시스템 전체에서 허가된 동작과 결과만 발생하도록 설계하는 데 중점을 둔다.[1]
자산(Asset)은 이해관계자에게 가치가 있으며 손실이 발생할 경우 부정적인 결과를 초래할 수 있는 대상이다.
SP 800-160은 보호 대상을 정보자산으로만 한정하지 않는다.
자산에는 다음과 같은 대상이 포함될 수 있다.
- 정보 및 데이터.
- 시스템과 구성요소.
- 업무 및 임무 수행 능력.
- 서비스와 운영 기능.
- 물리적 자산.
- 사람과 조직.
- 기타 이해관계자가 보호할 필요가 있다고 판단한 대상.
보호 요구(Protection Needs)는 자산 손실과 그 결과에 대한 이해관계자의 우려를 바탕으로 도출한다.
시스템 보안 요구사항은 이러한 보호 요구를 구체화한 것이다.
손실(Loss)은 이해관계자가 중요하게 여기는 자산이나 그 가치가 훼손되는 것을 의미한다.
손실은 반드시 데이터 유출이나 시스템 침해만을 의미하지 않는다.
예를 들어 다음과 같은 상황도 손실에 해당할 수 있다.
- 중요한 업무 기능의 중단.
- 시스템의 의도하지 않은 동작.
- 허가되지 않은 시스템 제어.
- 데이터의 무결성 훼손.
- 물리적 장비의 손상.
- 시스템 기능에 대한 신뢰 상실.
SP 800-160은 자산 손실의 가능성과 결과를 분석하여 적절한 보호 요구를 도출하도록 한다.
손실 통제(Loss Control)는 손실의 발생을 방지하거나 발생 가능성과 결과를 제한하는 활동이다.
Adequately Secure System은 이해관계자의 보호 요구와 시스템의 제약조건을 고려할 때 적절한 수준의 보안을 확보한 시스템을 의미한다.
SP 800-160은 이상적으로 완전한 보안을 달성하는 것과 실제 시스템에서 달성 가능한 보안 수준을 구분한다.
적절한 보안 수준을 판단할 때는 다음 사항을 고려한다.
- 이해관계자가 요구하는 최소한의 보안 수준.
- 자산 손실의 결과와 중요성.
- 시스템의 기능 및 성능 요구사항.
- 비용과 일정.
- 기술적 제약조건.
- 보안 목표 달성을 뒷받침하는 증거.
문서는 합리적으로 실행 가능한 범위에서 최대한 안전한 상태를 추구하는 ASARP(As Secure As Reasonably Practicable) 개념을 사용한다.
이는 보안을 추가로 강화하기 위해 필요한 비용이나 성능 저하 등이 다른 시스템 목표에 비해 지나치게 큰 경우를 고려하는 접근이다.
따라서 적절한 보안 수준은 모든 시스템에 동일하게 적용되는 고정값이 아니라 시스템의 목적과 운영 환경에 따라 결정된다.
Volume 1 Revision 1은 시스템 보안 공학 활동을 세 가지 맥락(Context)으로 구분하는 프레임워크를 제시한다.
- 문제 맥락(Problem Context).
- 해결 맥락(Solution Context).
- 신뢰성 맥락(Trustworthiness Context).
이 세 가지 맥락은 서로 독립적인 일회성 단계가 아니라 반복적으로 상호작용하는 구조이다.[1]
| 구분 | 핵심 질문 | 주요 활동 |
|---|---|---|
| 문제 맥락 | 무엇을 보호해야 하는가? | 자산, 손실, 보호 요구, 보안 목표 및 요구사항 정의 |
| 해결 맥락 | 어떻게 보호할 것인가? | 보안 아키텍처, 설계, 구현 및 검증 |
| 신뢰성 맥락 | 요구한 보호 수준을 실제로 달성했는가? | 보증 근거 수집, 주장 검토 및 신뢰성 판단 |
문제 맥락(Problem Context)은 시스템이 해결해야 할 보안 문제를 정의하는 영역이다.
이해관계자의 임무, 업무, 운영 요구사항과 자산 손실에 대한 우려를 분석한다.
주요 활동은 다음과 같다.
- 보안 목표 정의.
- 보안 요구사항 정의.
- 성공 여부를 판단할 측정 기준 결정.
- 시스템 수명 주기의 보안 개념 정의.
문제 맥락에서 정의한 보호 요구는 이후 시스템 아키텍처와 설계의 기준이 된다.
해결 맥락(Solution Context)은 문제 맥락에서 정의한 요구사항을 충족하는 시스템을 설계하고 구현하는 영역이다.
주요 활동은 다음과 같다.
- 보안 해결 방안 정의.
- 시스템 보호 전략 수립.
- 보안 아키텍처 개발.
- 보안 요구사항의 구성요소별 할당.
- 보안 기능과 메커니즘 설계.
- 시스템 구현.
- 보안 요구사항 충족 여부를 입증할 증거 생성.
해결 맥락에서는 예방적 보호조치와 대응적 보호조치를 함께 고려한다.
신뢰성 맥락(Trustworthiness Context)은 시스템이 요구된 보안 수준을 충족한다는 주장을 객관적인 증거로 뒷받침하는 영역이다.
주요 활동은 다음과 같다.
- 보증 사례(Assurance Case) 개발 및 유지.
- 보안 관련 주장 수립.
- 주장에 필요한 증거 수집.
- 증거의 충분성과 신뢰성 평가.
- 보안 목표 달성 여부 판단.
보증 사례는 시스템이 특정 보안 요구사항을 충족한다는 주장과 그 주장을 뒷받침하는 논증 및 증거를 연결한 구조이다.
단순히 보안 기능이 존재한다는 사실만으로 충분한 신뢰성을 확보했다고 판단하지 않는다.
SP 800-160 Volume 1 Revision 1은 ISO/IEC/IEEE 15288의 시스템 수명 주기 프로세스를 기반으로 보안 공학 활동을 제시한다.
프로세스는 네 가지 범주로 구분된다.
| 범주 | 영문 | 프로세스 수 | 주요 내용 |
|---|---|---|---|
| 합의 프로세스 | Agreement Processes | 2개 | 시스템 획득과 공급 |
| 조직 프로젝트 지원 프로세스 | Organizational Project-Enabling Processes | 6개 | 조직 차원의 프로젝트 지원과 관리 |
| 기술 관리 프로세스 | Technical Management Processes | 8개 | 프로젝트 계획, 위험, 형상, 품질 관리 |
| 기술 프로세스 | Technical Processes | 14개 | 요구사항부터 설계·구현·운영·폐기까지의 기술 활동 |
총 30개의 프로세스를 다룬다.
각 프로세스는 시스템 수명 주기의 특정 시점에만 수행되는 것이 아니라 필요에 따라 반복적으로 수행할 수 있다.
합의 프로세스는 시스템의 획득과 공급에 관한 활동을 다룬다.
- 획득(Acquisition).
- 공급(Supply).
보안 관점에서는 계약과 조달 과정에 보안 요구사항을 반영하고 공급자가 이를 충족하는지 확인하는 것이 중요하다.
조직 프로젝트 지원 프로세스는 시스템 개발과 운영을 지원하는 조직 차원의 활동이다.
- 수명 주기 모델 관리(Life Cycle Model Management).
- 기반 시설 관리(Infrastructure Management).
- 포트폴리오 관리(Portfolio Management).
- 인적 자원 관리(Human Resource Management).
- 품질 관리(Quality Management).
- 지식 관리(Knowledge Management).
보안 관점에서는 조직의 개발 환경, 인력, 관리체계 및 품질 관리 활동에 보안 요구사항을 반영한다.
기술 관리 프로세스는 시스템 공학 활동을 계획하고 통제하는 절차이다.
- 프로젝트 계획(Project Planning).
- 프로젝트 평가 및 통제(Project Assessment and Control).
- 의사결정 관리(Decision Management).
- 위험 관리(Risk Management).
- 형상 관리(Configuration Management).
- 정보 관리(Information Management).
- 측정(Measurement).
- 품질 보증(Quality Assurance).
보안 관점에서는 위험 평가 결과와 보안 요구사항을 프로젝트의 의사결정, 형상 변경 및 품질 보증 활동에 통합한다.
기술 프로세스는 시스템의 정의, 설계, 구현, 운영 및 폐기에 직접 관련된 활동이다.
| 프로세스 | 영문 | 주요 보안 활동 |
|---|---|---|
| 사업 또는 임무 분석 | Business or Mission Analysis | 임무와 업무에 필요한 보호 목표 식별 |
| 이해관계자 요구 및 요구사항 정의 | Stakeholder Needs and Requirements Definition | 보호 요구와 이해관계자 보안 요구사항 도출 |
| 시스템 요구사항 정의 | System Requirements Definition | 검증 가능한 시스템 보안 요구사항 정의 |
| 시스템 아키텍처 정의 | System Architecture Definition | 보안 경계, 신뢰관계 및 보호 기능의 구조 설계 |
| 설계 정의 | Design Definition | 보안 요구사항을 충족하는 상세 설계 |
| 시스템 분석 | System Analysis | 설계 대안과 시스템 특성에 대한 보안 분석 |
| 구현 | Implementation | 보안 설계에 따른 시스템 구성요소 구현 |
| 통합 | Integration | 구성요소 간 인터페이스와 상호작용의 보안 확인 |
| 검증 | Verification | 시스템이 명시된 보안 요구사항을 충족하는지 확인 |
| 전환 | Transition | 시스템을 운영 환경으로 안전하게 이전 |
| 확인 | Validation | 시스템이 실제 이용 목적과 이해관계자의 보호 요구를 충족하는지 확인 |
| 운영 | Operation | 운영 중 보안 기능과 보호 수준 유지 |
| 유지보수 | Maintenance | 변경·수정·개선 과정에서 보안성 유지 |
| 폐기 | Disposal | 데이터, 자격 증명 및 시스템 구성요소의 안전한 폐기 |
이러한 프로세스는 순차적으로 한 번씩 수행하는 고정된 개발 방법론을 의미하지 않는다.
반복형 개발이나 점진적 개발에서도 적용할 수 있으며, 시스템 변경에 따라 이전 프로세스를 다시 수행할 수 있다.
SP 800-160 Volume 1 Revision 1의 부록 E는 신뢰할 수 있는 보안 시스템을 설계하기 위한 30가지 원칙을 제시한다.
이 원칙들은 특정 보안 제품이나 기술을 지정하지 않고 시스템 설계 과정에서 고려해야 할 공통적인 공학적 특성을 설명한다.[1]
주요 원칙은 다음과 같다.
| 원칙 | 영문 | 설명 |
|---|---|---|
| 이상 탐지 | Anomaly Detection | 비정상적인 시스템 동작과 상태를 탐지 |
| 명확한 추상화 | Clear Abstractions | 시스템 구성요소와 기능을 명확하게 추상화 |
| 적정한 보호 | Commensurate Protection | 자산 손실의 중요도에 비례하는 보호 수준 적용 |
| 적정한 대응 | Commensurate Response | 손실의 중요도와 상황에 적합한 대응 수행 |
| 적정한 엄격성 | Commensurate Rigor | 필요한 보증 수준에 맞는 분석·검증의 엄격성 적용 |
| 적정한 신뢰성 | Commensurate Trustworthiness | 시스템 요소의 중요도에 부합하는 신뢰성 확보 |
| 구성적 신뢰성 | Compositional Trustworthiness | 구성요소 결합에 따른 시스템 수준의 신뢰성 평가 |
| 지속적 보호 | Continuous Protection | 시스템 상태 변화와 운영 과정에서 보호 유지 |
| 심층 방어 | Defense In Depth | 여러 보호 계층을 결합하여 단일 방어 실패의 영향 제한 |
| 권한 분산 | Distributed Privilege | 중요한 권한과 기능을 여러 주체 또는 요소에 분산 |
| 다양성 | Diversity (Dynamicity) | 동일한 취약점이나 실패 원인에 대한 의존성 감소 |
| 도메인 분리 | Domain Separation | 서로 다른 보안 영역을 분리 |
| 계층적 보호 | Hierarchical Protection | 시스템 구조와 중요도에 따른 계층적 보호 |
| 최소 기능 | Least Functionality | 불필요한 기능과 서비스 제거 |
| 최소 지속성 | Least Persistence | 불필요하게 장기간 유지되는 상태와 자원 최소화 |
| 최소 권한 | Least Privilege | 필요한 최소한의 권한만 부여 |
| 최소 공유 | Least Sharing | 시스템 요소 사이의 불필요한 자원 공유 최소화 |
| 손실 여유도 | Loss Margins | 손실 발생 가능성과 결과를 고려한 설계 여유 확보 |
| 중재된 접근 | Mediated Access | 보호 대상에 대한 접근을 적절한 중재 메커니즘으로 통제 |
| 최소 신뢰 요소 | Minimal Trusted Elements | 신뢰해야 하는 시스템 요소의 수와 복잡성 최소화 |
| 탐지 가능성 최소화 | Minimize Detectability | 보호 대상이나 중요 기능의 불필요한 노출 감소 |
| 보호적 기본값 | Protective Defaults | 별도 설정이 없을 때 보호에 유리한 상태 적용 |
| 보호적 실패 | Protective Failure | 실패가 발생해도 보호 목표를 가능한 범위에서 유지 |
| 보호적 복구 | Protective Recovery | 장애와 침해 이후 보호 상태를 회복 |
| 복잡성 감소 | Reduced Complexity | 시스템 복잡성을 줄여 분석과 검증 가능성 향상 |
| 중복성 | Redundancy | 중요 기능의 단일 장애점 완화 |
| 자기 의존적 신뢰성 | Self-Reliant Trustworthiness | 다른 요소의 보호 기능에 대한 의존 최소화 |
| 구조화된 분해와 구성 | Structured Decomposition and Composition | 시스템을 체계적으로 분해·구성하여 분석 가능성 확보 |
| 입증된 신뢰성 | Substantiated Trustworthiness | 객관적 근거로 시스템의 신뢰성을 입증 |
| 신뢰할 수 있는 시스템 제어 | Trustworthy System Control | 시스템의 제어 기능과 그 동작에 대한 신뢰성 확보 |
심층 방어(Defense in Depth)는 여러 보호 계층을 결합하여 하나의 보호조치가 실패하더라도 시스템 전체가 즉시 침해되지 않도록 하는 원칙이다.
예를 들어 네트워크 접근통제, 시스템 인증, 권한 관리 및 데이터 보호 기능을 결합할 수 있다.
그러나 동일한 취약점이나 실패 원인을 공유하는 보호조치를 여러 개 적용하는 것만으로 충분한 심층 방어가 이루어지는 것은 아니다.
최소 권한(Least Privilege)은 이용자, 프로세스 및 시스템 구성요소에 필요한 최소한의 권한만 부여하는 원칙이다.
불필요한 권한을 제거하여 침해가 발생했을 때 공격자가 수행할 수 있는 행위와 피해 범위를 제한한다.
보호적 실패(Protective Failure)는 시스템의 구성요소나 기능이 실패하더라도 보호 목표를 가능한 범위에서 유지하도록 설계하는 원칙이다.
실패 상황에서 무조건 모든 기능을 중단해야 한다는 의미는 아니다.
시스템의 목적과 보호 요구에 따라 허가되지 않은 동작을 차단하거나 제한된 기능을 안전하게 유지하도록 설계할 수 있다.
구성적 신뢰성(Compositional Trustworthiness)은 개별 구성요소의 신뢰성이 높더라도 이들을 결합한 전체 시스템의 신뢰성이 자동으로 보장되지는 않는다는 원칙이다.
구성요소의 상호작용과 의존관계로 새로운 취약점이나 예상하지 못한 동작이 발생할 수 있기 때문이다.
따라서 구성요소를 결합한 이후에도 시스템 수준의 신뢰성을 별도로 평가해야 한다.
SP 800-160은 검증(Verification)과 확인(Validation)을 구분한다.
두 활동 모두 객관적인 증거를 통해 시스템의 적합성을 판단하지만 평가 기준이 다르다.
| 구분 | 검증(Verification) | 확인(Validation) |
|---|---|---|
| 핵심 질문 | 시스템을 요구사항대로 만들었는가? | 시스템이 실제 이용 목적에 적합한가? |
| 평가 기준 | 명시된 시스템 요구사항 | 의도된 용도와 이해관계자의 요구 |
| 주요 대상 | 시스템 구현 결과와 요구사항의 일치 여부 | 실제 운영 목적에 대한 적합성 |
| 활용 방법 | 분석, 검사, 시연, 시험 등 | 운영 환경 평가, 시연, 시험 등 |
예를 들어 접근통제 기능이 명세된 정책에 따라 동작하는지 시험하는 것은 검증에 해당한다.
반면 그 접근통제 정책이 실제 업무에서 보호해야 할 자산과 이용자의 요구를 적절히 충족하는지 판단하는 것은 확인에 해당한다.
검증을 통과했다고 해서 요구사항 자체가 적절하다는 사실까지 보장되는 것은 아니다.
따라서 시스템 보안 공학에서는 검증과 확인을 모두 수행해야 한다.
신뢰성(Trustworthiness)은 시스템이 기대되는 특성과 동작을 충족할 것이라고 판단할 수 있는 정도와 관련된다.
보증(Assurance)은 이러한 판단을 뒷받침하는 근거와 확신의 수준을 의미한다.
SP 800-160은 시스템이 신뢰할 수 있다고 주장하는 것과 실제로 이를 입증하는 것을 구분한다.
보안 기능의 존재만으로 충분한 보증이 확보되었다고 판단할 수 없다.
보증 근거에는 다음과 같은 자료가 포함될 수 있다.
- 보안 요구사항 명세.
- 보안 아키텍처 및 설계 문서.
- 위협 및 위험 분석 결과.
- 시스템 분석 결과.
- 구현 및 구성 기록.
- 시험과 검증 결과.
- 운영 환경에서의 확인 결과.
- 기타 보안 목표 달성을 뒷받침하는 객관적 증거.
보증 사례(Assurance Case)는 이러한 증거를 보안 관련 주장과 연결하여 논리적으로 설명하는 구조이다.
SP 800-160 Volume 2는 사이버 복원력 공학(Cyber Resiliency Engineering)을 다룬다.
사이버 복원력(Cyber Resiliency)은 사이버 자원을 이용하거나 이에 의존하는 시스템이 공격, 침해, 장애 및 기타 불리한 상황을 예상하고 견디며 복구하고 적응할 수 있는 능력이다.
Volume 2는 다음 네 가지 목표를 제시한다.[4]
| 목표 | 영문 | 설명 |
|---|---|---|
| 예상 | Anticipate | 공격과 불리한 상황에 대비 |
| 견딤 | Withstand | 공격이나 침해 상황에서도 필수 기능 유지 |
| 복구 | Recover | 손상된 기능과 서비스를 허용 가능한 수준으로 회복 |
| 적응 | Adapt | 공격과 환경 변화에 대응하여 시스템의 보호 능력 개선 |
전통적인 보안 통제는 침해를 예방하거나 탐지하는 데 중점을 두는 경우가 많다.
반면 사이버 복원력은 침해가 발생할 가능성을 전제로 시스템의 임무 수행 능력을 유지하는 문제까지 다룬다.
예를 들어 공격자가 시스템의 일부 구성요소를 장악하더라도 다른 구성요소로 공격이 확산되는 것을 제한하고 필수 서비스를 유지하도록 설계할 수 있다.
사이버 복원력은 예방적 보안 통제를 대체하는 개념이 아니라 기존 보안 활동을 보완하는 개념이다.
Volume 2는 사이버 복원력 목표를 달성하기 위한 공학적 프레임워크를 제시한다.
주요 구성요소는 다음과 같다.
- 목표(Goals).
- 세부 목표(Objectives).
- 기술(Techniques).
- 구현 접근법(Implementation Approaches).
- 설계 원칙(Design Principles).
조직은 시스템의 목적, 위협 환경, 운영 제약조건에 따라 이러한 구성요소를 선택하고 적용할 수 있다.
모든 기술과 설계 원칙을 모든 시스템에 일률적으로 적용해야 하는 것은 아니다.
Volume 2에서 다루는 주요 기술은 다음과 같다.
| 기술 | 영문 | 설명 |
|---|---|---|
| 적응적 대응 | Adaptive Response | 공격과 상황 변화에 따라 대응 방식 조정 |
| 분석적 모니터링 | Analytic Monitoring | 시스템 상태와 이상행위에 대한 지속적 분석 |
| 조정된 보호 | Coordinated Protection | 여러 보호 기능의 연계 |
| 기만 | Deception | 공격자의 관찰과 판단을 교란 |
| 다양성 | Diversity | 공통 취약점과 동일한 실패 원인에 대한 의존 감소 |
| 동적 배치 | Dynamic Positioning | 시스템 자원과 기능의 위치 및 구성을 동적으로 변경 |
| 비일관성 | Non-Persistence | 자원과 상태가 불필요하게 지속되지 않도록 제한 |
| 권한 제한 | Privilege Restriction | 공격자가 이용할 수 있는 권한과 기능 제한 |
| 실시간 정렬 | Realignment | 변화한 위협과 임무 요구에 따라 자원과 기능을 재조정 |
| 중복성 | Redundancy | 중요 기능의 대체 수단 확보 |
| 분할 | Segmentation | 시스템을 분리하여 침해 확산 제한 |
| 실체 무결성 | Substantiated Integrity | 시스템 요소의 무결성을 근거에 기반하여 확인 |
| 비예측성 | Unpredictability | 공격자가 시스템 동작을 예측하기 어렵도록 설계 |
이러한 기술은 시스템의 구조와 운영 환경에 맞게 조합하여 적용한다.
SP 800-160은 특정 유형의 정보시스템에 한정되지 않는다.
시스템의 목적, 규모, 복잡성 및 수명 주기 단계와 관계없이 시스템 보안 공학의 원칙을 적용할 수 있다.
대표적인 적용 대상은 다음과 같다.
- 일반적인 기업 정보시스템.
- 공공기관 정보시스템.
- 클라우드 기반 시스템.
- 산업제어시스템(ICS).
- 운영기술(OT) 환경.
- 사이버 물리 시스템(CPS).
- 사물인터넷(IoT) 시스템.
- 임베디드 시스템.
- 중요 기반시설 시스템.
- 복수 시스템이 결합된 시스템 오브 시스템즈(System of Systems).
특히 시스템 구성요소가 복잡하게 연결되고 침해나 장애의 결과가 큰 환경에서 시스템 전체의 보호 요구를 분석하는 데 활용할 수 있다.
Volume 1 Revision 1은 본문 5개 장과 부록 A부터 L까지로 구성된다.[1]
| 구분 | 영문 제목 | 주요 내용 |
|---|---|---|
| 제1장 | Introduction | 문서의 목적, 적용 범위, 이용 방법 |
| 제2장 | Systems Engineering Overview | 시스템 공학의 기본 개념과 신뢰성 |
| 제3장 | System Security Concepts | 보안, 자산, 손실, 보호 요구 및 시스템 보안 공학 |
| 제4장 | Systems Security Engineering Framework | 문제·해결·신뢰성 맥락으로 구성된 프레임워크 |
| 제5장 | References | 참고문헌 |
| 부록 A | Acronyms | 약어 |
| 부록 B | Glossary | 용어 정의 |
| 부록 C | Security Policy and Requirements | 보안 정책과 요구사항 |
| 부록 D | Trustworthy Secure Design | 신뢰할 수 있는 보안 설계 |
| 부록 E | Principles for Trustworthy Secure Design | 보안 설계 원칙 |
| 부록 F | Trustworthiness and Assurance | 신뢰성과 보증 |
| 부록 G | System Life Cycle Processes Overview | 시스템 수명 주기 프로세스 개요 |
| 부록 H | Technical Processes | 기술 프로세스 |
| 부록 I | Technical Management Processes | 기술 관리 프로세스 |
| 부록 J | Organizational Project-Enabling Processes | 조직 프로젝트 지원 프로세스 |
| 부록 K | Agreement Processes | 합의 프로세스 |
| 부록 L | Change Log | 개정 이력 |
Volume 1은 기본 개념을 본문에서 설명하고, 상세한 설계 원칙과 시스템 수명 주기 프로세스를 부록에서 다루는 구조이다.
SP 800-160은 시스템 보안을 공학적으로 설계하고 구현하는 방법을 다루며, 위험 관리 및 보안 통제 관련 NIST 문서와 함께 활용할 수 있다.
| 문서 | 주요 내용 | SP 800-160과의 차이 |
|---|---|---|
| SP 800-30 | 위험 평가 수행 지침 | 위험을 식별·분석·평가하는 방법에 중점 |
| SP 800-37 | 위험 관리 프레임워크(RMF) | 시스템의 보안 분류·통제 선정·구현·평가·인가·모니터링 절차 |
| SP 800-39 | 조직 차원의 정보보안 위험 관리 | 조직·업무·시스템 수준의 위험 관리 체계 |
| SP 800-53 | 보안 및 개인정보 보호 통제 카탈로그 | 적용 가능한 구체적인 보안 통제 제공 |
| SP 800-53A | 보안 및 개인정보 보호 통제 평가 절차 | 통제의 구현과 효과를 평가하는 방법 |
| SP 800-160 Vol. 1 | 시스템 보안 공학 | 시스템 전체의 수명 주기에 보안 설계와 공학 활동 통합 |
| SP 800-160 Vol. 2 | 사이버 복원력 공학 | 공격과 침해 상황에서의 기능 유지·복구·적응에 중점 |
| SP 800-161 | 사이버보안 공급망 위험 관리 | 시스템 구성요소와 공급망의 위험 관리 |
| SP 800-218 | 보안 소프트웨어 개발 프레임워크(SSDF) | 소프트웨어 개발 과정의 보안 활동에 중점 |
SP 800-37은 위험 관리 프레임워크(RMF)를 정의한다.
RMF는 정보시스템의 보안 및 개인정보 보호 위험을 관리하기 위한 절차로, 준비·분류·선정·구현·평가·인가·모니터링의 일곱 단계로 구성된다.
반면 SP 800-160은 시스템을 설계하고 개발하는 공학적 과정에서 보안을 어떻게 구현하고 입증할 것인지 다룬다.
두 문서는 상호 보완적이다.
SP 800-37이 위험 관리와 보안 인가의 절차를 제공한다면, SP 800-160은 그러한 요구사항을 시스템의 아키텍처와 설계에 반영하는 공학적 접근법을 제공한다.[5]
SP 800-53은 조직과 정보시스템에 적용할 수 있는 보안 및 개인정보 보호 통제를 제공하는 카탈로그이다.
접근통제, 감사, 형상 관리, 사고 대응, 시스템 보호 등 다양한 통제 영역을 포함한다.
반면 SP 800-160은 특정 통제 목록보다 상위 수준에서 시스템 전체의 보안 목표와 요구사항을 정의하고, 이를 설계와 구현으로 연결하는 방법을 다룬다.
SP 800-53의 통제는 SP 800-160의 공학적 설계 활동에서 보호 메커니즘을 선정하고 구현하는 데 활용할 수 있다.
그러나 개별 보안 통제를 모두 구현했다는 사실만으로 시스템 전체가 신뢰할 수 있는 보안 시스템이라는 결론이 자동으로 도출되지는 않는다.
SP 800-218은 보안 소프트웨어 개발 프레임워크(Secure Software Development Framework, SSDF)를 정의한다.
소프트웨어 개발 조직이 개발 과정에서 보안 취약점을 줄이기 위해 수행할 활동에 중점을 둔다.
반면 SP 800-160은 소프트웨어뿐 아니라 하드웨어, 사람, 절차, 시설 및 외부 시스템과의 상호작용을 포함한 시스템 전체를 다룬다.
따라서 SSDF는 시스템 보안 공학에서 소프트웨어 개발 영역의 보안 활동을 구체화하는 데 활용할 수 있다.
SP 800-160은 시스템 보안 공학의 원칙과 방법을 제공하는 지침이다.
특정 제품이나 시스템이 안전하다는 사실을 직접 인증하는 기준은 아니다.
실제 적용 시에는 다음 사항을 고려해야 한다.
- 시스템의 목적과 운영 환경에 맞는 보호 요구 정의.
- 시스템 수명 주기 전반의 보안 활동 통합.
- 보안 요구사항의 명확성과 검증 가능성 확보.
- 구성요소 사이의 상호작용과 의존관계 분석.
- 설계 원칙을 적용한 보안 아키텍처 개발.
- 비용·일정·성능·보안 목표 사이의 균형.
- 보안 목표 달성을 뒷받침하는 객관적 증거 확보.
- 운영 중 시스템 변경에 따른 보안 요구사항 재평가.
- 침해와 장애 상황에서의 복원력 고려.
특히 SP 800-160은 시스템의 보안을 운영 단계에서 추가하는 독립적인 활동이 아니라 시스템 공학의 전 과정에 통합해야 하는 활동으로 다룬다.
이러한 접근은 보안 요구사항을 설계 초기에 반영하고 시스템 전체의 신뢰성을 객관적으로 입증하려는 공학적 방법론이라는 점에서 기존의 개별 보안 통제 중심 접근과 구분된다.
- ↑ 1.0 1.1 1.2 1.3 1.4 Ron Ross, Mark Winstead, Michael McEvilley, Engineering Trustworthy Secure Systems, NIST SP 800-160 Volume 1 Revision 1, National Institute of Standards and Technology, 2022-11.
- ↑ Systems Security Engineering Project: Publications, NIST Computer Security Resource Center, 확인: 2026-10-23.
- ↑ SP 800-160 Vol. 1 Rev. 1, Engineering Trustworthy Secure Systems, NIST Computer Security Resource Center, 확인: 2026-10-23.
- ↑ 4.0 4.1 Ron Ross, Victoria Pillitteri, Richard Graubart, Deborah Bodeau, Rosalie McQuaid, Developing Cyber-Resilient Systems: A Systems Security Engineering Approach, NIST SP 800-160 Volume 2 Revision 1, National Institute of Standards and Technology, 2021-12.
- ↑ Ron Ross, Victoria Pillitteri, Kelley Dempsey, Mark Riddle, Gary Guissanie, Risk Management Framework for Information Systems and Organizations: A System Life Cycle Approach for Security and Privacy, NIST SP 800-37 Revision 2, 2018-12.