1. Computer security concepts
NIST에서 제시한 Computer security의 정의
정보 시스템에서 사용하는 자원들에 대해서 기밀성, 무결성, 가용성을 보존하는 것을 목표로 하는 보호 절차
기밀성(Confidentiality)
- 데이터의 기밀성
허가받은 사람만 정보에 접근 가능해야 한다.
- Privacy
자신의 정보를 아무나 임의의 방식으로 공유하거나 배포할 수 없다.
즉, 정보의 주권은 자기가 가지고 있다.
무결성(integrity)
- 데이터의 무결성
정보나 프로그램이 미리 정의되거나 허가된 방법으로만 변경되어야 한다.
- 시스템의 무결성
시스템이 허가되지 않은 방식으로 조작되는 것은 허용되면 안된다.
가용성(availablity)
- 정상적인 사용자한테는 시스템에 대한 서비스가 정상적으로 제공되어야 한다.
책임성(accountability)
- 어떠한 일이 일어났을 때 책임 소재를 가릴 수 있어야 한다.
인증(authenticity)
- 누가 진짜인지 아닌지 확인할 수 있어야 한다.
보안이 어려운 점
- 보안은 복잡하다.
- 항상 공격자가 유리한 싸움이다.
- 잠재적인 위험이 있어 계속 모니터링해야 한다.
- 보안 메커니즘이 여러 알고리즘으로 구성되어 있다.
- 투자하는 비용 대비 얻게되는 효용성이 적어진다.
- 강력한 보안은 기능의 효율성을 떨어트릴 수 있다.
OSI Security architecture
- Security attack
- Security mechanism
- Security service
2. Security attacks
Threat(위협) and Attack
- Threat
보안을 위반할 수 있는 잠재성
- Attack
Threat이 실현된 상태
Passive attack
공격이 일어난 다음에 시스템의 변형이 일어나지 않고 상태가 유지된다.
Active attack
시스템 자원이나 동작이 변형이 일어난다.
- 다른 사람인 척 하는 공격
- 반복해서 요청을 보내는 공격
- 메세지 내용을 변경하는 공격
- 메세지가 가는 것을 막는 공격
Security services
Data Confidentially
- passive attack을 막는다.
- 트래픽 흐름 분석을 막는다.
Data intergrity
- Connectionless
메세지 자체가 변경이 되었는지 고려한다.
- Connection-oriented
메세지 자체가 변경이 되었는지와 메세지의 순서까지 고려한다.
Availablity
- 서비스가 거부되도록 하는 공격(ex. DDOS 공격)
Authentication
- 주체가 누구인지 확인한다.
- 내가 기대하는 사람으로부터 오는 정보가 맞는지 확인한다.
Nonrepudiation
- 메세지의 송수신이나 통신이 실행된 후에, 그 사실을 사후에 증명함으로써 사실 부인을 방지하는 공증과 같은 기술이다.
Access Control
- 인가되지 않는 공개나 인가되지 않는 변경으로부터 데이터와 정보를 보호한다.
- 위의 5가지 조건과 연결되어 있다.
Access Control 정책
DAC(임의적 접근 제어)
정보의 소유자가 정보나 자원에 대한 접근제어를 결정한다. (ex. 리눅스 파일 시스템)
- 장점
세밀한 제어가 가능하다.
- 단점
사용자를 믿을 수 없다.
잘 못 사용하면 시스템 전체에 위협이 될 수 있다.
MAC(강제적 접근 제어)
관리자가 시스템 전체의 정보나 자원에 대한 접근제어를 결정한다.
Access Control Matrix
권한이 정의되어 있는 2차원 테이블
Access Control List
- 객체에 따라 주체를
- UNIX file
- 정밀도가 떨어지고 세부적인 컨트롤 불가하다.
Capabilities
RBAC(역할 기반 접근제어)
사용자 인증
Security mechanism
Encryption
Message authentication
Digital signature
Fuyndamental security design principles
- Economy of mechanism
간단하고 작게 만들어야 한다.
- Fail-safe defaults
전부 막아놓고 일부 허용으로 만들어야 한다.
- Complete mediation
한가지만 확인하고 전부 허용하면 안된다.
- Open design
보안 시스템을 모두가 볼 수 있게 해야 한다.
- Sepration of privilege
한가지 권한으로 모든 것을 할 수 있게 하면 안된다.
- Least privilege
어떠한 동작을 위해 그 동작에 필요한 권한만 부여해야 한다.
- Least common mechanism
공유되는 함수를 최소화한다.
- Psychological acceptablility
사용자들에게 투명해야 한다.
- Isolation
중요한 자원을 다루는 시스템간에는 분리되어야 한다.
- Encapsulation
필요한 기능에 대해서만 접근하게 하고 내부적인 구성은 외부적으로 보여주면 안된다.
- Modularity
모듈 별로 설계해서 오류가 전파되지 않도록 한다.
- Layering
중복되고 겹치는 방법들을 여러개를 도입해야 한다.
어떠한 부분에서 실패해도 다른 부분에서 잡을 수 있도록 설계한다.
- Least astonishment
사용자를 놀라게 하면 안된다.
Attack Surfaces
공격자가 뚫고 들어갈 수 있는 표면
Attack Tree
보안상의 취약점을 이용할 수 있는 잠재적인 기술들의 계층적인 데이터 구조
Network security model
Standards
- NIST
- Internet Society
- ITU-T
- ISO
출처: Cryptography and Network Security: Principles and Practices