위협 모델 분석
TMA(위협 모델 분석)는 제품, 응용 프로그램, 네트워크 또는 환경에 대한 보안 위험 및 공격이 수행되는 방식을 확인하는 데 도움이 되는 분석입니다. 이 분석은 완화해야 하는 위협 및 해당 위협을 완화하는 방법을 확인하는 데 목적을 두고 있습니다.
이 섹션에서는 TMA 프로세스에 대한 상위 수준의 정보를 제공합니다. 자세한 내용은 보안 코드 작성의 4장 , 두 번째 버전, 마이클 하워드와 데이비드 르블랑을 참조하세요.
TMA의 장점은 다음과 같습니다.
응용 프로그램을 보다 명확하게 이해할 수 있습니다.
버그를 찾을 수 있습니다.
신규 팀 멤버가 응용 프로그램을 상세하게 파악하는 데 도움이 됩니다.
사용자의 응용 프로그램을 기반으로 하는 다른 팀에 대한 중요한 정보가 제공됩니다.
테스터에게 유용합니다.
다음은 상위 수준의 TMA 수행 단계입니다.
1단계: 백그라운드 정보 수집
2단계. 위협 모델 만들기 및 분석
3단계. 위협 검토
4단계. 완화 기술 및 기술 식별
5단계. 문서 보안 모델 및 배포 고려 사항
6단계. 완화 구현 및 테스트
7단계. 디자인과 동기화에서 위협 모델 유지
1단계: 백그라운드 정보 수집
성공적인 TMA를 준비하려면 몇 가지 배경 정보를 수집해야 합니다. 이러한 정보를 수집하면 다음과 같이 대상 환경(응용 프로그램, 프로그램 또는 전체 인프라)을 분석하는 데 유용합니다.
사용 사례 시나리오를 식별합니다. 대상 환경의 각 사용 사례 시나리오에 대해 회사에서 대상 환경을 사용하도록 할 방법과 대상 환경에 대한 제한 사항을 식별합니다. 수집된 정보를 통해 위협 모델 관련 토론의 범위를 정의할 수 있으며, 자산(데이터 및 컴퓨터와 같이 회사에서 중요하게 취급되는 모든 항목)에 대한 포인터 및 진입점을 정확하게 확인할 수 있습니다.
각 시나리오에 대해 DFD(데이터 흐름 다이어그램)를 만듭니다. DFD는 위협을 파악할 수 있도록 상세히 만들어야 합니다.
대상 환경의 경계와 범위를 결정합니다.
신뢰할 수 있는 구성 요소와 신뢰하지 않는 구성 요소 간의 경계를 파악합니다.
각 구성 요소의 구성 및 관리 모델을 파악합니다.
외부 종속성 목록을 만듭니다.
각 구성 요소가 종속되는 다른 구성 요소에 대한 가정 목록을 만듭니다. 이 목록을 통해 구성 요소 간 가정, 작업 항목 및 다른 팀과의 추가 작업 항목에 대해 유효성을 검사합니다.
2단계. 위협 모델 만들기 및 분석
배경 정보를 수집한 후에는 위협 모델 관련 모임을 한 번 이상 가져야 합니다. 각 개발 분야의 멤버(예: 프로그램 관리자, 개발자 및 테스터)가 한 명 이상 모임에 참석해야 하며, 이러한 참석자에게 모임의 목표가 위협을 해결하는 것이 아닌, 위협을 발견하는 것임을 주지시켜야 합니다. 위협 모델 관련 모임에서는 다음을 수행합니다.
각 사용 사례에 대해 DFD를 검토하고 사례 식별을 사용합니다.
진입점
신뢰 경계
진입점에서 최종 도착 위치로의 데이터 흐름 및 그 반대 방향의 흐름
관련 자산을 참고합니다.
각 DFD에 대해 논의하고 DFD의 모든 항목에 대해 다음 범주에서 위협을 찾습니다. Spoofing identify, 데이터로 앰퍼링, R삭제, Information 공개, 서비스의 Denial 및 E권한 부과.
식별된 위협의 목록을 만듭니다. 이 목록에는 제목, 간략한 설명(위협 트리 포함), 자산(자산), 영향, 위험, 완화 기술, 완화 상태 및 버그 번호가 포함되는 것이 좋습니다.
참고
위험, 완화 방법 및 완화 상태는 위협을 검토하면서 추가할 수 있습니다. 위협 모델 모임 중에는 이러한 영역에서 시간을 너무 많이 소비하지 마십시오.
3단계. 위협 검토
환경에 대한 위협을 파악한 후에는 각 위협의 위험 순위를 지정하고 각 위협에 대응할 방법을 결정해야 합니다. 이 작업은 추가 팀 모임 또는 전자 메일을 통해 수행할 수 있습니다. 다음 효과 범주를 사용하여 위험 노출을 계산할 수 있습니다. D아미지 잠재력, R재현성, Exploitability, Affectedusers 및 Discoverability.
대상 환경에 대한 위협 목록에서 위험의 우선 순위를 지정한 후에는 각 위협에 대한 대응 방법을 결정해야 합니다. 대응 방법으로는 아무 작업도 하지 않기(대부분의 경우 적절하지 않음), 사용자에게 잠재적 문제 경고, 문제 제거 또는 문제 해결이 있습니다.
4단계. 완화 기술 및 기술 식별
해결할 위협을 식별한 후에는 각 위협에 대해 사용 가능한 완화 방법 및 각 위협의 영향을 줄이는 데 가장 적합한 기술을 결정해야 합니다.
예를 들어 대상 환경의 세부 정보에 따라 인증 방법을 사용하여 데이터 손상 위협의 영향을 줄일 수 있습니다. 그런 다음 사용할 적절한 인증 기술(예: DACL(임의 액세스 제어 목록), 사용 권한 또는 IT 제한)을 결정해야 합니다.
중요
사용할 완화 방법 및 기술을 평가할 때는 회사에서 수행하는 업무에 적절한 항목과 선택하려는 완화 방법에 영향을 줄 수 있는 회사의 정책을 고려해야 합니다.
TMA를 완료한 후에는 다음을 수행합니다.
보안 모델 및 배포 고려 사항 문서화
완화 구현 및 테스트
디자인과 동기화된 위협 모델 유지
5단계. 문서 보안 모델 및 배포 고려 사항
TMA 중에 확인된 내용과 대상 환경에 대한 위협의 영향을 줄일 방법을 문서로 작성해야 합니다. 이러한 문서는 QA(품질 보증), 테스트, 지원 및 운영 담당자에게 유용할 수 있습니다. 대상 환경과 상호 작용하거나 호환되는 다른 응용 프로그램 그리고 방화벽 및 토폴로지 권장 사항과 요구 사항에 대한 정보를 포함하십시오.
6단계. 완화 구현 및 테스트
팀에서 TMA 중에 식별된 위협을 해결할 준비가 되면 개발 및 배포 검사 목록을 사용하여 새로운 위협 발생 가능성을 최소화하는 데 도움이 되는 보안 수칙 및 배포 표준을 따라야 합니다.
완화를 구현한 후에는 테스트를 거쳐 해당 완화가 위협에 대해 적절한 수준의 보호를 제공하는지 확인해야 합니다.
7단계. 디자인과 동기화에서 위협 모델 유지
작업 환경에 새 응용 프로그램, 서버 및 기타요소를 추가할 때는 위협 모델 분석에서 발견된 내용을 다시 확인하고 새 기능에 대해 TMA를 수행해야 합니다.