Operating System Ch 16

LeemHyungJun·2022년 12월 9일
0

Operating System

목록 보기
13/14
post-thumbnail

운영체제 수업 + Operating System Concepts 10E 정리 내용

Operating System Ch16 : Security

Computer Security

1. Overview

  • Cryptography
    • 보안에서 널리 쓰이는 분야
    • Shared Key (symmetric) : DES, AES
    • public Key (asymmetric) : RSA
  • Software Security : Application process
  • System Security : OS + hardware
  • Network Security : 컴퓨터와 컴퓨터 사이의 보안
  • Surveillance : 전부 다 관리

2. CIA triad (Security Requirement Triad)

  • 보안의 3대 요소
    1) Confidentiality 기밀성 : 데이터의 내용을 남들이 모르게 만들기
    2) Integrity 무결성 : 위조나 변조가 될 수 없게 만들기
    3) Availabilty 가용성 : 사용하지 못하게 만드는 것을 막는 것, 항상 이용 가능하게 만들기

3. Security Problems

  • 모든 시스템에는 hole(문제점) 이 있다. 완벽한 보안은 없다.
  • 용어
    • Vulnerability : 취약점
    • Threat : 위협
    • Attack : 위협을 가지고 무언가를 수행하는 것
    • Adversary : attack을 수행하는 주체
    • Countermeasure : 공격을 막는 수단

4. Security Services

  • 용어
    • Authentication : 인증, ex) id, password
    • Access Control : authentication을 통과한 후 어디까지 접근할 수 있는지 정하기
    • Nonrepudiation : 부인 방지 - 나쁜 짓을 했을 때 발뺌하는 걸 방지
      -> 잘 구현되어있는 예시 : email system (보낸 측 , 받는 측, 서버 모두 로그가 남음)

5. Cracker's Basic Steps

  • Gather information
    • 최대한 많은 정보를 모으기
  • Use port scanner
    • 모은 정보를 토대로 취약점이 알려진 부분을 찾기
    • 서비스의 port 스캔
  • Get a login account
    • 아무 계정으로 로그인 하기
  • Get root privilege
    • 시스템에 직접 접근해서 프로그램에서 잘못 설정된 부분을 찾기
    • 루트 권한을 획득
  • Keep root privilege
    • backdoor를 남겨두고 나와서 위의 순서를 생략하고 한번에 접근 가능

Security

1. Physical Security

  • hardware security
    • id 카드, 생체인증 등으로 보안 유지
  • BIOS security
    • 부팅 시 password 걸기
    • 외부장치로 부팅하는 것을 막기
  • Session security
    • screen savers

2. Account Security

  • Authentication
    • password, id 사용하기
    • unix는 별도의 file을 통해 password를 저장해 둔다
      -> 해당 file를 craker가 가져갈 수 있으므로 보안 처리 해두기
  • CHAP (Challenge Handshake Authentication Protocol)
    • id와 password + random number 를 섞어서 계산하여 서버로 전달하기
    • 서버에서는 해당 방식을 통해 역으로 풀어서 확인
  • Alternatives
    • Physical keys : badges, smart cards...
    • Biometric keys : fingerprints, facial prifiles...
  • Authorization
    • Access control : 자격/권한 설정
    • ACLs

3. File System Security

  • 보안 분야에서 가장 큰 문제중 하나
  • setuid/setgid
    • setuid를 사용하면 root로 실행이 가능하다.
    • 잘못 사용하면 security hole이 생길 수 있다.
  • Search paths
    • 리눅스/유닉스 기반
    • cmd 기반으로 동작하기 때문에 path와 환경변수를 사용한다.
    • cracker가 로그인하여 ls를 바꾸면 문제가 생긴다.
  • Other countermeasures

4. Network Security

  • 패킷을 보낼 때 어떻게 암호화해서 보낼 것인가
    • password를 그대로 server로 보내지 않고 암호화 하기
    • ex) https, SSL
  • TCP wrapper
    • 서버에서 미리 서버에 접속이 가능한 멤버를 정해두기
  • firewall (방화벽)
    • 외부망과 내부망의 경계
    • 외부에서 들어오는 내용이 방화벽에 걸리면 해당 내용을 버리기
    • if) 외부에서 내부망에 접근이 가능하게 하려면
      • 내부망의 내용중 접근이 가능한 내용은 DMZ로 지정하기
  • firewall이 강화된 버전
    • intrusion detection system(IDS) : 침입을 한 것에 대한 감지, 침입 강화
    • intrusion prevention system(IPS) : 못들어오게 함

Attack vs Countermeasures

1. Security Threats

  • 위협의 종류
    1) 자연재해 : 막기는 어렵지만 고려는 한다.
    2) Logical Threats : SW에서 발생하는 문제, 잘못된 프로그램 실행할 때
    3) Operational : manage를 잘 못함
    4) Denial of service : 서비스를 못하게 함

2. Attacks

  • attack의 종류
    • virus / worm
    • trojan hourses
    • logic bomb / trap door
    • malware / spyware / ransomware
    • Dos / DDos

3. Attacks Example

1. Morris Internet worm

  • 최초의 malware
  • unix 서버의 finger라는 문제점을 찾아서 worm 코드를 통해 감염시킴

2. Buffer overflow

  • 특정 코드를 실행 후 return address를 두고 돌아가게 된다.
  • b라는 buffer가 존재할 때 해당 buffer의 size를 할당 받을 수 있는 크기보다 더 크게 할당하게 되면 buffer의 주소가 다른 주소값까지 침범하게 되고 return address가 가리키는 곳이 program이 아닌 b buffer의 시작점을 가리키도록 만들 수 있다.
    -> 만약 b의 시작점에 악성 코드가 있다면 문제가 발생한다.
  • 해결방법 : buffer의 전체 크기보다 더 큰 값이 들어오는지를 미리 체크한 후 값을 받아오는 방식으로 구현해야 한다.

3. IP spoofing

  • A와 B가 통신하는 상황에서 공격자가 A를 무력화 시킨 상황
    • 공격자는 A인척 하면서 B에게 계속해서 패킷을 보냄
    • B는 공격자가 보낸 패킷에 대한 응답을 A에게 주지만 A는 응답할 수 없는 상황이 된다.

4. Denial of service

  • 서비스를 못하도록 만들기
  • Internal attack
    • 무한 디렉토리 만들기, 무한 포크 실행
  • External attack
    • 외부에서 시작되는 공격
    • 하나의 cracker의 공격은 intrusion detection으로 추적할 수 있음
      -> 분산된 cracker로 공격 = DDOS

4. Basic Concept of Cryptography

1. Shared Key Cryptography

  • 암호화 하는쪽(Sender)과 암호를 받는쪽(Receiver) 모두 같은 key를 가지고 있음
  • 똑같은 key를 양쪽이 안전하게 가지게 하는지가 이슈
  • DES (Data Encryption Standard)-안씀, AES (Advanced Encryption Standard)

2. Public Key Cryptography

  • sender 와 receiver가 모두 반대편의 public key를 추가적으로 가지는 방식
  • public key로 암호화 했다면 private로만 풀 수 있고, private key로 암호화 했다면 public으로만 풀 수 있다.
  • example 1
    • sender(A)는 A의 private로 암호화하여 내용을 보냄
    • receiver(B) 가 어떤 암호화된 내용을 풀었다면, 그것은 A가 보낸 내용임을 확신할 수 있다.
      -> B는 A의 public을 가지고 있기 때문에
  • example 2
    • sender(A)가 B의 public으로 암호화 하여 B에게 보냄
    • 이 암호화된 내용은 reciever(B)만 풀 수 있다.
      -> B private key를 가지는 것은 receiver(B)만 가능하기 때문에

5. Applied cryptography for network

1. Digital Signature

  • 보내야 할 데이터와 보낸 곳 둘 다 확인하는 방법
  • 보내야 할 데이터 (text)는 공개
  • 보낼 데이터에 해싱함수를 실행한 후 A의 private key로 암호화 한 후 Digital Signature를 붙여서 B에게 보냄
  • B는 받은 데이터를 A의 public key로 해독한 후 clear text를 해싱하여 해독한 데이터와 비교
  • 같은 내용이라면 A가 보낸 데이터임을 알 수 있음 + 보내야 할 데이터(text)도 바뀌지 않았음을 알 수 있다.

2. TLS/SSL

  • TLS (Transport Layer Security)
  • SSL (Secure Socket Layer) : 과거 명칭
  • 대칭 key를 안전하게 주기

6. Virtual Private Network (VPN)

  • A와 B끼리 private 하게 정보를 주고 받고 싶어서 전용선을 설치함
    -> 전용선을 설치하는 것은 비용이 많이 든다
  • 전용선 비용의 절약을 위해 public internet이라는 중간 매개지역을 만든다.
    -> 그러나 public internet 은 보안기능 없다.
  • public internet은 중간 매개 역할로만 사용하고 정보를 주고 받을때는 암호화를 통해 정보를 주고받는다.

0개의 댓글