SK shieldus Rookies 9기/시스템 ,네트워크 보안

시스템/네트워크 보안 기술 수업 4일차 (22/09/20)

ksh_5 2022. 9. 27. 00:40
  • 공개키 방식

 

- 개인키(Private Key)와 공개키(Public Key) 한쌍으로 이루어져 있음

- 개인키는 자기 혼자만 보유, 공개키는 누구에게나 제공 가능

- 개인키로 공개키를 연산해 내는 것은 쉬운데, 공개키로 개인키를 알아내는 것은 불가능

 

1) Diffie-Hellman

- 대칭키 교환 문제를 해결 : 서로 공개키를 교환하고, 자신의 개인키와 연산해 대칭키(세션키) 생성

- 이산대수의 어려움에 근거 : 한쪽 방향으로 계산하기 쉬움 (검증), 반대 방향으로는 계산하기 어려움

 

2) RSA (Rivest, Shamir, Adleman)

- 기밀성 : 수신자의 공개키로 암호화해 보냄

- 인증 : 송신자의 개인키로 암호화해서 보냄

- 소인수분해의 어려움

- 특징 : Boss (개인키,공개키) , Killer (개인키, 공개키)

 

3) ECC (Elliptic Curve Cryptography, 타원곡선 암호화)

- 이산대수의 어려움에 근거한 방식

- 짧은 키 길이로 강력한 암호화 제공 (키가 길수록 연산량이 많아짐 → CPU/Memory/Power 소모량 증가)

- Mobile 환경에 적합 → 인스타그램, 유튜브, 페이스북

 

 

  • Hash Function

 

- 고정길이 출력 : 원문의 길이와 관계없이 고정길이로 출력

- 일방향 함수 : 원문으로 해시값을 계산하는 것은 매우 쉽지만, 해시값으로 원문을 알아내는 것은 거의 불가능

- 충돌 방지 : 해시값이 같은 원문은 거의 존재X

- 취약한 해시함수 : MD5, SHA-1 → 더 이상 사용하면 안 됨 (충돌쌍을 찾곤 한다)

- 안전한 해시함수 : SHA-256 이상 사용

 

 

  • 전자서명

 

- 생성 : 원문의 해시값에 송신자의 개인키로 암호화(서명)해서 원문에 붙여서 보냄

- 검증 : 서명된 해시값을 송신자의 공개키로 복호화해서 원문의 해시값과 비교해봄 → 일치하면 무결성 증명, 일치하지 않으면 변조

 

 

  • 인증서(Certificate)

 

- 생성 : 공개키의 해시값에 인증기관의 개인키로 암호화(서명)

- 검증 : 서명된 해시값을 인증기관의 공개키로 복호화해 공개키의 해시값과 비교해봄

 

 

  • PKI

 

- 최상위 인증기관 (Root CA) : 인증기관 관리

- 인증기관(CA) : 인증서 발급하는 곳

- 등록기관(RA) : 인증서 신청한 조직 (회사, 기관 등)을 검증하고 접수 받음

 

 

  • SSL/TLS

 

- 웹에서 암호화 통신을 하기 위해 사용하는 프로토콜

- 대칭키, 공개키, 해시함수도 사용 → Web Browser와 Web Server가 어떤 암호화 방식을 사용할 건지 협의 (우선순위 존재)

- 핵심 원리

  웹서버가 자신의 공개키를 인증서 형식으로 제공

  웹브라우저는 세션키를 생성해 웹서버의 공개키로 암호화해서 웹서버에게 보냄 → 웹서버는 자신의 개인키로 복호화(세션키 나옴) 웹브라우저와 웹서버는 데이터를 보낼 때 세션키로 암호화해 보냄 → 상대방에게 받은 암호문은 세션키로 복호화

 

※ 참고) OpenSSL 이용해 자가 인증서 생성 (RootCA생성 → 인증서 생성)

https://wnw1005.tistory.com/457

 

[Ubuntu 20.04 - Apache2 서버]자체서명 SSL/TLS 인증서를 이용한 https:// 프로토콜 연결 구축

[관련 게시물] 2020/11/10 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] 가상호스트(VirtualHost) 설정 2020/11/12 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버]자체서명 SSL/T..

wnw1005.tistory.com

 

 

  • 전자봉투

 

- 생성 : 원문의 해시값에 송신자의 개인키로 서명하고 원문 및 송신자의 공개키까지 첨부해서 세션키로 암호화, 세션키는 수신자의 공개키로 암호화해 첨부 (오프라인 전송 가능)

- 특징 : 기밀성, 무결성, 송신자에 대한 인증 및 부인봉쇄까지 모두 가능

 

 

  • Exploit

 

- Asset (자산)

유형자산 : 컴퓨터, 회사건물, 공장, 인력, 고객 등

무형자산 : 브랜드 이미지, 데이터, 저작권, 특허, 평판 등

자산에는 약점 존재 : 현금, 보석, 무기명 채권 등의 약점 : 도난 및 분실 등

 

- 취약점은 특정 버전에만 존재하는 것

취약점이 존재하면 패치를 적용하면 해결됨 → 버전 달라짐

취약점 분석은 어떤 버전인지만 알면 됨 +그 버전에서 갖고 있는 취약점이 무엇인지 어떤 버전인지 확인(진단 기능) : SW로 해결 그 버전에서 가지고 있는 취약점이 무엇인지(지식) : 클라우드에서 해결 가능, 검색(모르면 구글)

 

Q. 패치가 나올 때까지 걸리는 평균 기간 (기준: 미국, 2018년 기준)은?

① 일주일  ② 한 달  ③ 두 달  ④ 6개월

더보기

A. 25일.... 45~60일

 

Q. 해킹을 당하고 그 사실을 인지하는 데 걸리는 기간은?

① 일주일 이내  ② 한 달 이내  ③ 3개월 이내  ④ 6개월 이내  ⑤ 6개월 이상

더보기

A. 6개월 이상

 

 

  • Zeroday Exploit

 

- 패치가 배포되기 전에, Exploit code를 먼저 만들어 공격하는 사례

- 무방비 상태에서 공격 가능, 대응할 방법이 없는 상태임

- 알려지지 않은 취약점이라는 의미 → DarkWeb에서 거래가 되기도 함

 

 

  • Oneday Exploit

 

- 알려진 취약점, 패치가 배포되었지만 아직 설치하지 않은 상태 (의존성 문제로 동작에 영향이 있을까 봐 우려되어)

- 패치를 설치하지 않은 시스템만 골라서 공격 가능

- 알려진 취약점 → 공격 방법도 유튜브, 블로그, SNS 등에 나와있음

 

 

  • 약점(Weakness) 공식 번호 (CWE)

 

 - CWE-nnnnn : Common Weakness Enumeration (보편적인 약점 목록화)

- http://cwe.mitre.org (약점 관리 공식기관) The CWE Top 25(2022)

 

CWE - Common Weakness Enumeration

CWE™ is a community-developed list of software and hardware weakness types. It serves as a common language, a measuring stick for security tools, and as a baseline for weakness identification, mitigation, and prevention efforts. Viewing Customized CWE in

cwe.mitre.org

 

 

  • 취약점 공식 번호

 

- CVE-YYYY-NNNNnnn (NNNN(4자리부터) ~ NNNNnnn(7자리까지) 번호 부여)

- http://cve.mitre.org : 취약점을 관리하는 공식기관

 

CVE - CVE

The mission of the CVE® Program is to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities.

cve.mitre.org

 

Q. MS 직원 중에 Tester의 비율은?

   ① 10%  ② 30%  ③ 50%

더보기

A. 50%

 

 

  • Metasploitable2

 

- 각종 취약한 버전을 골라서 설치한 Victim용 실습 이미지 → Aexploit 가능

- Rapid7이라는 회사에서 Metasploit(공격도구)를 팔고 있는데, 테스트해보기 위해서 metasploitable2를 만듦

 

$ sudo ls ( PW : msfadmin ) $ sudo adduser ive

  // adduser를 사용하면 마법사를 이용해서 PW, 전화번호 등 물어봄, 홈 디렉터리 만듦

 

$ sudo useradd astro // 계정만 만듦, 홈 디렉터리를 만들지 않음 → FTP 사용할 수 없음