개념: 보안 패턴
관계
관련 요소
기본 설명

소개

"보안"은 일반적으로 복합적이고 재미없는 원칙으로 여겨집니다.  사람들은 인식한 패턴에 대해서 이를 알아보고 일반화하도록 교육받기 때문에 "패턴"은 대부분의 사람들이 직관적으로 이해한다고 믿는 용어입니다.  연습 목적으로 작업 정의를 다음과 같이 간주합니다.

보안"시스템을 보호하기 위한 방법을 확립 및 유지보수하여 만들어진 시스템 조건"입니다.  [1]

"패턴은 특정한 비임의적 컨텍스트에서 반복되는 구체적 양식의 추상적 개념입니다." [2]

따라서 "보안"과 "패턴" 두 용어의 결합은 약간의 텐션을 가져올 수 있습니다.  보안 패턴을 생성하기 위한 다양한 시도가 이루어집니다(부록 A 참조).   이 문서에서는 IBM 보안 패턴의 프레임워크를 생성하는 다양한 고객과의 계약에서 다양한 보안 관련 종사자가 여러 해에 걸쳐 모은 자료를 수집하고 분류했습니다. 이 문서의 컨텍스트에 있는 "보안 패턴"의 작업 정의는 다음과 같습니다.

시스템을 보호하는 데 사용된 반복적인 방법의 확립 및 유지보수에서 비롯된 조건의 추상적 개념

소프트웨어 개발 커뮤니티에서 패턴 개발을 위해 [3] 방법을 확립할 수 있도록 노력하고 있습니다.

모든 과학 또는 엔지니어링 원칙의 기본이 되는 것은 해당 개념 및 이들의 결합과 관련한 언어를 표시하는 데 필요한 공통 용어입니다. 소프트웨어 커뮤니티에 있는 패턴의 목적은 문서의 본문을 작성해 소프트웨어 개발자가 소프트웨어 개발 중에 발생하는 반복되는 문제를 해결할 수 있도록 돕는 것입니다. 패턴으로 이러한 문제점 및 솔루션에 대한 생각과 경험을 나눌 수 있는 공유 언어를 만들 수 있습니다. 이 솔루션 및 해당 관계를 공식적으로 분류하여 사용자의 요구를 충족시키는 아키텍처에 대한 이해가 정의된 핵심 지식을 캡처할 수 있습니다. 구조를 전달하는 공통 패턴 언어 및 아키텍처의 메커니즘을 형성하면 이에 대해 합리적으로 판단할 수 있습니다. 기본 초점은 기술이 아닌 견실한 엔지니어링 아키텍처 및 디자인을 문서화하고 지원하는 양식을 만드는 것에 맞추어져 있습니다. [4]

혼란의 근본적인 원인은 미의 기준처럼 패턴도 보는 사람의 시각에 따라 다르다는 것 때문입니다. 따라서 누구든 5명의 보안 담당자가 모이면 그들의 관심 영역에 대한 고유한 특정 패턴을 정의합니다.

이러한 이유 때문에 관심 커뮤니티의 그룹 패턴을 돕는 "역할"을 설명합니다. 

전문가

소프트웨어계에는 설계를 하는 사람, 그림을 그리고 문서를 작성하는 사람, 코드를 작성하는 사람 및 정보를 수집하고 컴퓨터 기반 시스템을 제공하는 사람들이 있습니다.

각 조직은 타스크를 정의하는 고유한 방법을 가지고 있지만 그 역할은 전형적입니다.

전형은 유사한 인스턴스가 파생, 복사, 패턴화 또는 에뮬레이트되는 사람, 오브젝트 또는 개념의 이상화된 모델입니다. 심리학에서는 전형이 사람, 성격 또는 행동의 모델입니다. [5]

중간 규모에서 대규모 조직까지, 조직의 책임을 기반으로 여러 사람들에게 타스크가 지정됩니다. 일반적으로, 비즈니스 분석가 및 비즈니스 응용프로그램은 비즈니스의 정보 자산을 보호해야 합니다. 이 때문에 보안에 필요한 비즈니스 응용프로그램 요구사항을 작성합니다.

전형 1 - 비즈니스 분석가

법률적 또는 규제 요구사항을 준수해야 하는 조직에는 이러한 규제를 모니터하고 시행하는 "C" 레벨의 특정 타스크 세트가 있습니다. CSO 및 CPO는 일반적으로 분석가와 함께 우수한 비즈니스 사례의 기초가 되는 조직의 가이드라인 및 요구사항 세트를 만듭니다.

전형 2 - 보안(개인) 책임자

오늘날에는 규모에 관계없이 대부분의 조직에 방화벽이 있습니다. 가정의 각 개인들도 홈 네트워크용 방화벽을 갖고 있습니다. 누군가는 이러한 장치를 설치하고 유지보수해야 합니다. 일부는 단순하지만 일부는 복잡합니다.

전형 3 - 네트워크 보안 책임자

비즈니스에서 지정한 요구사항에 맞는 특정 유형의 보안 메커니즘을 실제로 이해하고 선택하는 경우, 많은 사람들이 보안 구현을 위해 함께 작업합니다.  

전형 4 -  보안 설계자

보안 개발자, 보안 배치자, 보안 정책 작성자, 보안 정책 관리자, 보안 시스템 관리자

역할로 패턴 보기

프레임워크를 제공하여 IBM 고객, 즉 비즈니스 분석가 커뮤니티의 기존 공통 보안 패턴을 식별하고 설명하는 것이 이 문서의 목적 및 동반되는 효과입니다. e-business 패턴의 노력에 대한 타스크는 추상적 개념으로 정보의 양을 조정하는 것입니다. 이 추상적 개념은 일반적이어서 비보안 종사자(practitioner)도 이해할 수 있지만 여전히 보안 커뮤니티에 단단한 기반을 제공하기에 충분한 컨텍스트를 유지보수합니다.

IBM은 거대한 소프트웨어업계의 축소판으로, 여기에서는 제품 개발 및 비즈니스 응용프로그램 서비스 개발 모두와 응용프로그램의 관리 및 배치에 필요한 미들웨어 제품을 다룹니다. 

보안 응용프로그램(예: MASS, Open Group, JASS)을 디자인하고 개발하는 여러 방법이 있지만 이 중 일부는 기술에 대한 세부 지식이 있는 훈련된 보안 전문가를 위한 것입니다. 따라서, 패턴 그룹 중 하나는 "보안 아키텍처 패턴"이 됩니다. 보안에 대한 세부 아키텍처는 보안 솔루션을 제공하는 기술을 개발하는 데 필요하며 해당 패턴으로 참조됩니다. 하지만 이 문서의 목적이 보안 아키텍처 패턴을 모두 문서화하는 것은 아닙니다.

보안 개념

IETF는 알려진 것처럼 인터넷의 개발에 중요한 조직입니다. IETF는 2000년에 보안 용어집을 만들었으며 컴퓨터 보안의 기본 개념인 경우 이 용어집에 대부분 포함됩니다. 점점 더 개선되고 새 기술과 메커니즘이 사용되지만 기본 정의는 변함없습니다.

오늘날 보안을 위해 사용하는 가장 일반적인 컴포넌트에는  식별과 인증, 권한 부여, 보증, 감사, 메시지 보호, 기밀성 및 무결성이 있습니다. 이 프레임워크가 개별 보안 메커니즘의 패턴만 제공하기보다는 개별 보안 메커니즘을 확인하여 공통 특성을 식별합니다. 이 백서는 "보안 솔루션 패턴"의 식별에 초점을 맞추고 있습니다. 이 공통적인 요소는 각 보안 메커니즘의 세부적인 개별 패턴 요소 세트(예: 인증---- 사용자 이름, 암호, Kerberos, PKI)를 보고 인증, 권한 부여, 보증 등에 공통되는 것들을 추상화하여 만들어졌습니다.

모든 보안 패턴의 공통 요소를 찾으면 모든 유형의 보안 솔루션에 있는 일부 양식에 표시되는 다음과 같은 세 가지 서브패턴을 식별할 수 있습니다.

  1. 보안 메커니즘의 이름이(예: "제어점") 있는 소프트웨어에 지점이 있어야 합니다.
  2. #1 실행에 필요한 일반적인 특정 유형의 메타 정보이며 이를 "시스템 신뢰 및 액세스 특성"이라고 합니다.
  3. 보안 메커니즘의 초기화 및 지속적인 유지보수와 관계있는 특정 타스크이며 이를 "보안 관리/워크플로우 타스크"라고 합니다.

보안 패턴 개요

각 개별 보안 메커니즘을 이 세 가지 서브요소에 맵핑할 수 있는 방법을 설명하기 위해 "식별"에 대한 예제를 제공합니다. 또한 다음은 IETF 용어집의 내용입니다.

식별  -  (I) 시스템에서 시스템 엔티티를 인지하고 다른 엔티티와 구별할 수 있도록 시스템에 ID를 표시하는 행동 또는 프로세스입니다(참조: 인증). 

응용프로그램 호출 시 사람을 구별하는 것은 모든 비즈니스가 당면하는 패턴입니다. 비즈니스 문제점을 설명하는 전략은 응용프로그램 및 배치 환경에 관련된 요소의 수 및 다양성에 따라 달라집니다.  일부 비즈니스에서는 "이름 지정"에 대한 결정을 개별 응용프로그램에서 하거나 비즈니스 행에 있는 응용프로그램의 그룹에서 할 수도 있습니다.  일부 비즈니스는 데이터 센터의 소프트웨어에 의해 제약을 받습니다. 일부는 응용프로그램 배치 환경을 엄격한 메커니즘 세트에 단단하게 결합시킵니다.  

그럼에도 불구하고 "ID"가 응용프로그램에 표시되는 지점이 있으며 이는 식별에 필요한 "보안 제어점" 패턴으로 간주합니다.   필요한 정보의 양과 유형도 매우 다양합니다.   ID는 실제 인물의 이름(예:  Maryann Hondo) 또는 가명(예: mhondo)일 수 있습니다.  ID는 전체에서 고유하거나(UUID) 규정된 이름 공간에서 고유합니다(예: mhondo@us.ibm.com).

보안 패턴의 특성

  • 하나 이상의 제어점 정의(식별, 인증, 권한 부여, 정책 시행, 감사, 준수, 메시지 보호)
  • 시스템 보호 특성 정의(구성 제한조건, 신뢰와 액세스 규칙)
  • 관리 타스크 정의(공급, 레지스트리/저장소 동기화, 관리, 모니터링)

참조

  1. RFC 2828 Internet Security Glossary May 2000
  2. Understanding and Using Patterns in Software Development, Dirk Riehle and Heinz Zullighoven.
  3. Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides.
  4. Patterns and Software: Essential Concepts and Terminology, Brad Appleton: http://www.cmcrossroads.com/bradapp/docs/patterns-intro.html#Origins
  5. Wikipedia: http://en.wikipedia.org/wiki/Archetype