다양한 기록

CIA / Authenticaion, Authorization, Non-repudiation 본문

보안개론

CIA / Authenticaion, Authorization, Non-repudiation

라구넹 2024. 4. 10. 19:30

IT 컴포넌트와 CIA

 

하드웨어

- 가용성 : 장비의 도용, 장비의 불능화

ex) 장악하고 락하는 경우

 

소프트웨어

- 가용성

ex) 프로그램 삭제, 유저 액세스 거부

- 비밀성

ex) 허락을 받지 않은, 불법 복제

- 무결성

ex) 프로그램 변조, 리패키징 어택

 

데이터

- 가용성

ex) 파일 삭제, 유저 액세스 거부

- 비밀성

ex) 인가되지 않은 읽기, 데이터에 대한 통계 분석 (이 사람이 누구랑, 어디서 통신..)

- 무결성

ex) 기존 파일의 수정.. 특히 랜섬웨어 (데이터를 암호화 시키는 것, + 가용성도 깨트리는 공격이다)

 

커뮤니케이션 라인(네트워크)

- 가용성

ex) 선 절단, 메시지 삭제 및 망가뜨리기, 좀비 피시를 이용한 플루딩 공격(디도스)

- 비밀성

ex) 패킷 캡쳐, 트래픽 패턴 분석 (메시지가 데이터에 속한다고 볼 수도 있음)

- 무결성

ex) 메시지 변조(파라미터 변조), 맨 인 더 미들 -> TCP 패킷 순서 조작

 

** 위조 -> Authentication 위반, 변조가 Integrity 위반


Beyond CIA

 

Authentication

나라는 것을 증명하는 과정: 로그인

서버 입장에서는 누구인지 묻는 것

 

인증 방법: 공동인증서, SMS 인증, OTP, 생체인증

 

- Entity Authentication

사람이나 기계 개체를 인증.

기계의 경우

드론 공격에 사용, 이게 내 편인지 적 편인지 인증

산불이 났을 때, 악의적인 사람이 뿌려놓은 센서의 영향을 안받도록 기계 간 인증

 

- Messege Authentication

보내는 사람이 실제로 그 사람이 보냈는지 아닌지 확인

은행 : 여러 단계에 거쳐서 인증을 함.. 멀티팩트 오센티케이션

 

오센티케이션은 1차 방어선..

보안이 강화 -> 불편해짐

 

* 패스워드와 생체인증의 장단점

생체인증: 외우고 다닐 필요 없음 / 오류가 날 수 있음 (지문 인식기 상태, 지문 자체 상태..)

패스워드: 외우고 다녀야 함 / 교체하기 쉬움

 

** 스태틱, 다이나믹 생체 인증

스태틱한 생체 인증: 지문

다이나믹한 생체 인증: 목소리, 걸음걸이

 

스탠드얼론 컴퓨터 환경 : 이정도면 충분할 것

문제: 네트워크 시큐리티 고려.. 와이어 태핑, 패킷 스니핑 -> 인증이 가짜면 어쩔 것이냐

도청을 대비하여 암호화 -> 안전한 프로토콜을 쓰느냐는 중요한 문제

물론 암호화해도 패킷 캡쳐는 가능하고 리플레이 어택이 들어올 수 있음 -> 챌린지 리스폰스, 타임 스탬프 사용

 

** 안전하지 않은 프로토콜

HTTP, tftp, telnet..

 

** 안전한 프로토콜

HTTPS(TLS 사용), IPSEC, SSH..

 

** 암호학은 비밀 유지도 되지만 사용자 인증에도 많이 사용됨 (비대칭 키 방식, Messge Authentication Code 같은 방법)

 

Athorization

권한 부여

사용자에게 어떤 일을 할 수 있도록 허가할수도 있고 거부할수도 있음

리눅스 시스템에서 ls -l 하면 권한을 볼 수 있다

** 사용자, 그룹, 크기, 시간 등도 알 수 있음

r: read w: write x: excute

(d는 디렉토리) 그 다음부터..

첫 세 비트 : 사용자 권한

가운데 세 비트 : 그룹

뒤에 세 비트 : 그 외

 

권한 상승 공격: 루팅, 혹은 setuid 공격

이걸 막기 위해 많이 쓰는 방법이 권한 부여(인가)

 

** s 권한

x 기본 역할을 보유한 채로, 실행하는 동안에는 루트의 권한을 가질 수 있음

이 프로그램을 공격하면 권한이 상승됨

이런 위험한 프로그램을 조심해야 함

 

왜 유저 수준을 나누어 두는가?

서버는 기본적으로 멀티 유저 시스템이기 때문

어드민, 일반 사용자, 게스트..

리드, 라이트, 크레에이트, 뷰 등 다양한 작업이 유저마다 허가되는 것이 달라야 함

 

멀티 유저 시스템

Access Control : Authentication + Athorization

이메일 같은 경우 로그인을 하고, 해도 볼 수 있는 건 내 이메일 뿐

클라우드도 마찬가지.

 

대부분의 접근 제어는 관리자(루트)만 바꿀 수 있음

역할 기반 접근 제어, 속성 기반 접근 제어...

* 임의 접근제어: 자기 꺼 자기가 수정

 

패스워드 저장

/etc/passwd

==> aaa:x:1001:1001::/home/aaa:/bin/sh

사용자id:비밀번호:uid:gid::홈디렉토리:쉘디렉토리

콜론이 구분자, 여기서 x가 비밀번호인데

다른 사용자가 보지 못하도록 /etc/shadow 로 암호화되어 옮겨짐

 

* su: switch user

 

로그인 시 방식은 여러가지

X.509 : 공동인증서 표준

ACLs : 액세스 컨트롤 리스트

 

Authentication : Who Are You

- 올바른 사용자가 접근하고 있는가

- 유저, 데이터가 인증 가능하고 정확하다

 

Athorization : What You Can Do

- 해당 행동이 허가받았는가

- 시스템 리소스와 관련된 액세스 레벨, 유저 권한을 정하는 보안 메커니즘


Non-repudiation

부인 방지

누군가 비방하고 문제되면 안한적하기, 송금해놓고 안했다 하기..

책임을 물어야 함

방식: 로깅

누가 언제 무엇을 했는지

 

전자 서명도 부인 방지를 위한 대표적 방식

서명을 했으면 그 사람이 한 것이라 확인이 되는 것. 오센티케이션, 부인방지 양 쪽으로 되는 것

 

* 암호화

송신자의 개인 키로 암호화, 검증은 공개키로 복호화

 

전자서명 생성 키: 개인키

전자서명 검증 키: 공개키

키 쌍을 관리하는 곳: 인증기관(트러스트 서드 파티, 공신력이 있는 3자..가 은행에 하청해줌)

 

** 인증 기관의 예시: 한국정보인증, 금융결제원

 

공개키는 누구나 얻을 수 있고, 보통 인증서 안에 들어가 있음

+ 인증 기관의 전자 서명이 있음

 

Acountability, 시스템이 모든 트랜잭션에 대해 audit trail을 제공할 수 있음을 의미

*audit trail : 모든 거래에 대해 기록을 남기는 것

 

리눅스 기준, last 명령어

마지막 로그인 기록, 얼마나 접속했는지 등에 대한 정보를 알려줌

디폴트 20명

 

/var/log/wtmp 에 압축되어 있음

압축 안되어 있으면 디스크가 감당을 못하고,

압축이 되어 있기 때문에 cat으로는 보이지 않음

 

last 명령을 쓰면 누가 휴가가서 접근했어도 알 수 있음

 

* pts는 원격, tts는 로컬

* 세션 유지 기간 나옴