관리 메뉴

너와 나의 스토리

[컴퓨터 보안] 보안 개념 & 기초 본문

Computer Security

[컴퓨터 보안] 보안 개념 & 기초

노는게제일좋아! 2020. 10. 27. 17:55
반응형

보안 요구조건: CIA + AA

  • Confidentiality(기밀성): 허가받은 사람만 정보를 볼 수 있어야 한다.
    • 예: 성적표
  • Integrity(무결성):
    • Data integrity: 변경된 사실을 확인할 수 있어야 하고, 정보는 사전에 정의된(허가된)대로만 변경되어야 한다.
    • System integrity: 허가 받지 않은 사람은 변경할 수 없어야 한다.
    • 예: 약 정보 
  • Availability(가용성): 정상적인 사용자에게 서비스가 정상적으로 제공이 되어야 한다.
    • 예: 인증 시스템에 제대로 작동되야 함
  • Accountability: 책임 소재를 밝힐 수 있다.
  • Authenticity: 인증. 누가 진짜인지 확인할 수 있는 것

 

 

Threats and Attacks

  • Threat: 잠재적인 공격(아직 공격이 들어오지 않았음)
  • Attack: 이미 공격이 들어옴

 

Security Attacks

  • passive attack: 공격이 일어난 후, 시스템이 변하지 않은 것
    • 메시지 내용을 볼 수 있도록 해버림
    • Traffic analysis: 예를 들어, 어떤 사이트에서 어떤 물건이 많이 판매되는지 알아감.
  • active attack: 공격이 일어나면 시스템의 자원이 변조되는 것
    • Masquerade(가면): 다른 사람인 척, 메시지 보내고 하는 것
    • Replay: 어떤 데이터 복사해놓고 replay.
      • 예:송금 한 번 한 거 복사해서 계속 반복
    • Modification of messages: 메시지 내용 바꿔서 보내기
    • Denial of service: 메시지 전송을 막음
      • 클라이언트가 서버로부터 제대로된 서비스를 받을 수 없도록 막음
    • -> Data Integrity, Availability(DoS), Authentication

 

 

Data confidentiality

  • 위에 언급된 passive attack을 막는 것
  • traffic analysis를 막기
  • 즉, 허가 받은 사람만 볼 수 있어야 함. 다른 사람은 보면 안 됨

 

Data Integrity

  • 메시지 자체, 혹은 메시지들 간의 관계(순서)가 유지돼야 함

 

Availability Service

  • denial-of-service attack 공격을 제일 걱정

 

Authentication

  • 통신이 진짜임을 증명하는 것, 가장하는 것을 막는 것
  • Peer entity authentication: 사용자 인증
  • Data origin authentication: 원본 데이터인지 인증

 

Nonrepudiation

  • : 송신자(A)가 수신자(B)에게 무언가를 보냈을 때, B는 A가 자신에게 무언가를 보냈다(요청)는 사실을 입증할 수 있어야 함(발뺌하면 안 되니까). 반대도 마찬가지
  • Accountability에서 가장 관심있는 것

 

Access Control

  • 접근을 한정시키고 제어해야 함.
  • 허가된 사람만 접근할 수 있어야 함(기밀성), 허가된 사람만 수정해야 함(Integrity)

 

Attack

  • 기밀성 <-> release(passive)
  • 무결성 <-> 변조
  • 가용성 <-> DoS
  • 인증 <-> 가장(masquerade)
  • 상황:
    • 즉, 어떤 사용자가 메시지를 보냈는데, 그걸 보기만 하면->passive attack
    • 그걸 못가게 막으면 -> DoS
    • 아예 보내지도 않았는데 만들어서 보내는 것 -> 가장
    • 메시지를 중간에 가로채서 변조한 뒤 보내는 것 -> 변조
    • 메시지를 반복해서 계속 보냄 -> replay 

 

Security Mechanism

  • passive attack 막는 법: 암호화(Encryption)
  • 무결성과 인증을 동시에 해결하는 법 2가지: 
    • Message Authentication Code(MAC)
    • Digital signature
  • 책임 소재를 확인하는 법:
    • Nonrepudiation
      • Digital signature로 가능

 

 

 

근본적인 보안 디자인 원칙

  • Economy of mechanism
    • 가능한 간단하게 설계하기 
  • Fail-safe defaults
    • Access decision은 배제하는 것을 디폴트로 생각해야 함.
    • 즉, 기본적으로 다 접근 못하게 하고, 접근 가능한 것을 정의하는 게 안전
  • Complete mediation
    • 자원에 따라 각각 따로 접근 정의해야함.
  • Open design
    • 공개를 해서 취약점을 여려 명이 파악하는 게 좋음
    • 예: AES는 NIST에서 암호 공모해서 만든 것
  • Separation of privilege
    • 권한을 세분화하자
    • 한 가지 권한으로 한 가지 일만 할 수 있거나,
    • 한 가지 일을 하기 위해 여러 가지 권한을 다 가져야 하게끔 구현해야 함
  • Least privilege
    • 최소한의 구너 한 만 주기
  • Least common mechanism
    • 다른 사용자들이 기능 공유하는 것을 최소화하라
    • 의도치 않게 정보 유출되는 것을 막을 수 있음
  • Psychological acceptability
    • 가능하면 security mechanism은 사용자들에게 최대한 투명해야 한다.
    • 즉, 사용자들은 보안이 이루어지는데 잘 모르도록 해야 편하다(편의성)
  • Isolation
    • public access system은 critical resources와 분리되어야 한다.
  • Encapsulation
    • 내부 구조를 사용자에게 보여주지 않음
  • Modularity
    • 모듈별로 설게. 한쪽에서의 오류가 다른 족에 영향을 안 주도록
  • Layering
    • 여러 개의 겹치는 부분이 있음. 대체될 수 있도록
  • Least astonishment
    • 사용자를 놀라게 하면 안 됨
    • 사용자가 직관적으로 접근할 수 있도록 설계

 

Attack Surfaces

  • 시스템에 활용 가능한 취약점들
  • 공격자가 공격할만한 표면
    • 예: 사용하지 않은 port가 열려 있는 경우

 

 

 

 

 

 

 

 

 

 

 

 

 

출처:

- [Cryptography and Network Security: Principles and Practices]

 

 

 

 

반응형
Comments