IT 기초: 보안
4주 과정, 하루 1시간

IT 기초: 보안

보안을 처음 배우는 사람이 CIA, 암호화, 인증, 흔한 공격과 막는 법, 규정, 구글 클라우드 보안 서비스까지 고객에게 쉽게 설명할 수 있게 됩니다. 위에서부터 하나씩 체크하세요.

다음 할 일

…

실습 방법 보기
전체 진행0 / 0
진행 상황: 이 브라우저에 저장

공부하는 방법

매일 1시간몰아서 8시간보다 매일 1시간이 오래 남습니다. 과제마다 예상 시간이 적혀 있습니다.
읽기 20%, 손 80%개념을 읽었으면 바로 WSL 터미널에서 직접 쳐 봅니다. 모든 실습은 내 컴퓨터 안에서만 하고, 남의 시스템에는 절대 시도하지 않습니다.
일부러 부수기설정을 틀리게 바꾸고, 에러 메시지만 보고 원인을 찾습니다.
소리 내 설명하기단계 끝의 자가 점검에 답을 보지 않고 말해 봅니다. 막히면 그 과제로 돌아갑니다.
맥북에서 실습하기Windows에서 한다면 건너뛰세요

맥에서는 Ubuntu 가상 머신(VM)을 하나 띄워 그 안에서 실습합니다. 그러면 이 사이트의 명령을 Windows(WSL)와 똑같이 쓸 수 있습니다. 사이트에 "WSL Ubuntu 터미널"이라고 나오면 "VM 터미널"로 읽으세요.

  1. Homebrew 설치 (맥용 설치 관리자)회사 맥이면 설치 전에 IT팀 승인을 확인하세요.
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. Ubuntu 가상 머신 만들고 들어가기Multipass는 무료입니다. 이 VM이 Windows의 WSL 역할을 합니다.
    brew install --cask multipass                                  # 가상 머신 관리 도구 설치
    multipass launch --name ubuntu --cpus 2 --memory 4G --disk 20G  # Ubuntu VM 만들기 (쿠버네티스는 --memory 8G 권장)
    multipass shell ubuntu                                          # VM 터미널로 들어가기
    # 여기서부터 사이트의 "WSL Ubuntu 터미널" 명령을 그대로 실행
  3. 맥 브라우저에서 VM 안의 서비스 열기WSL과 달리 localhost가 자동으로 연결되지 않습니다.
    multipass info ubuntu | grep IPv4  # VM의 IP 확인 (예: 192.168.64.5)
    # 브라우저에서 localhost 대신 http://<VM IP>:<포트> 로 접속
    # kubectl port-forward 는 --address 0.0.0.0 을 붙여야 맥에서 열림
  4. 끝나면 정리VM은 켜 두면 맥의 메모리를 계속 씁니다.
    multipass stop ubuntu            # VM 끄기 (내용은 남음)
    multipass start ubuntu           # 다시 켜기
    multipass delete --purge ubuntu  # 완전히 삭제

Git과 Python은 VM 없이 맥에서 바로 해도 됩니다 (xcode-select --install, brew install python). 서버, 네트워크, DB처럼 리눅스 명령이 나오는 사이트는 VM에서 하세요.

WSL 설치, PowerShell 명령건너뜁니다. 위 2번 VM이 대신합니다.
Apple Silicon(M1 이후) 맥VM에서 uname -m이 aarch64면 다운로드 주소의 amd64를 arm64로 바꿉니다. arm64 버전이 없는 이미지는 exec format error가 날 수 있습니다.
Docker Desktop맥도 큰 회사는 유료입니다. VM 안의 Docker Engine을 쓰고, 맥에서 직접 쓰려면 무료인 Colima를 씁니다.
파일 주고받기multipass transfer 파일 ubuntu: 또는 multipass mount ~/study ubuntu:/home/ubuntu/study
브라우저로 열기localhost 대신 VM IP를 씁니다 (위 3번).

VM 없이 맥에서 바로 하고 싶다면 brew install kubectl kind helm colima docker 로 도구를 깔 수 있습니다. 단, 리눅스 내부(namespace, cgroup, systemd, iptables)를 들여다보는 실습은 VM에서만 됩니다.

처음 보는 용어

CIA기밀성(Confidentiality), 무결성(Integrity), 가용성(Availability). 보안이 지키려는 세 가지입니다.
위험(Risk)위협, 취약점, 영향이 함께 만드는 사고 가능성과 피해 크기입니다. 셋 중 하나를 줄이면 위험이 줄어듭니다.
심층 방어여러 겹의 보안 대책을 쌓아 한 겹이 뚫려도 다음 겹이 막게 하는 방식입니다.
최소 권한일에 꼭 필요한 권한만 주는 원칙입니다. 사고가 나도 피해 범위가 작아집니다.
제로 트러스트네트워크 위치만으로 믿지 않고, 요청마다 사용자와 기기를 확인해 필요한 만큼만 허락하는 보안 모델입니다.
해시데이터를 정해진 길이의 지문으로 바꾸는 한 방향 함수입니다. 되돌릴 수 없고 변조 확인에 씁니다.
솔트비밀번호를 해시하기 전에 섞는 사용자별 무작위 값입니다. 같은 비밀번호도 다른 해시가 되게 합니다.
대칭키 암호화잠글 때와 열 때 같은 키를 쓰는 암호화입니다. 빠르며 대표 방식은 AES입니다.
공개키 암호화공개키와 개인키 한 쌍을 쓰는 암호화입니다. 공개키는 나눠 주고 개인키는 나만 가집니다.
전자서명개인키로 문서 해시에 도장을 찍고, 공개키로 누구나 진짜인지와 변조 여부를 확인하는 방법입니다.
인증서와 PKI인증서는 공개키의 주인을 인증기관(CA)이 보증하는 전자 신분증이고, PKI는 이를 발급하고 믿는 사슬 구조 전체입니다.
TLS인터넷 통신을 암호화하고 상대를 확인하는 규약입니다. HTTPS의 S가 TLS입니다.
MFA비밀번호에 휴대폰, 보안 키, 생체 정보 같은 다른 요소를 더해 두 가지 이상으로 확인하는 인증입니다.
SSO한 번 로그인으로 여러 서비스를 쓰는 방식입니다. SAML이나 OIDC 표준으로 구현합니다.
OAuth 2.0과 OIDCOAuth 2.0은 비밀번호 없이 권한을 빌려주는 인가 표준, OIDC는 그 위에 누구인지 알려 주는 로그인 표준입니다.
SQL 인젝션입력값이 SQL 명령으로 해석되는 취약점입니다. 매개변수 쿼리로 막습니다.
XSS입력한 글이 다른 사람 브라우저에서 스크립트로 실행되는 취약점입니다. 출력 이스케이프와 CSP로 막습니다.
CVE공개된 소프트웨어 취약점마다 붙는 고유 번호입니다. 심각도는 CVSS 점수로 나타냅니다.
SIEM여러 곳의 로그를 모아 분석해 공격 징후를 찾고 경보를 내는 보안 관제 시스템입니다.
공동 책임 모델클라우드 보안을 사업자와 고객이 나눠 맡는 모델입니다. 데이터와 권한 설정은 늘 고객 책임입니다.

계속 쓰게 될 자료