네트워크 보안 이론 1
IT 기본 용어
1. MAC 주소
- MAC 주소: NIC(네트워크 인터페이스 카드)에 할당된 고유한 번호.
- 특징: 유일한 MAC 주소를 소유.
- 예시:
00-1A-2B-3C-4D-5E
- 명령어:
ipconfig /all
2. ARP (Address Resolution Protocol)
- 목적: IP 주소를 기준으로 MAC 주소를 확인하기 위한 프로토콜.
- 명령어:
arp -a [ip주소]
- 기능: IP 주소 → MAC 주소로 변환.
3. ICMP (Internet Control Message Protocol)
- 목적: 네트워크 장비 간의 오류 메시지 및 상태 확인을 위한 프로토콜.
명령어:
ping
- ICMP 상세 표기 항목
- 패킷 사이즈
- 32, 128 바이트: 윈도우
- 64 바이트: 리눅스
- TTL(Time To Live):
4. IP 개요
- IP 주소: 인터넷 환경에서 각 컴퓨터에 할당된 고유한 주소.
- 비유: 각 아파트에 할당된 고유한 주소와 동일.
5. PORT 개요
- PORT: 한 주소 내에서 여러 호수(서비스)에 데이터를 주고받기 위한 통로.
- 비유: 아파트 1동에 주소는 하나이지만 내부에 여러 개의 호수가 있는 것과 유사.
6. 라우팅 (Routing)
- 정의: 데이터를 목적지까지 전달하기 위해 경로를 지정하는 방법.
- 기능: 데이터가 올바른 경로로 전달되도록 함.
OSI 7계층
1. 응용 계층
- 사용자 인터페이스 제공, 데이터 표현 및 암호화
- 주요 프로토콜: HTTP, FTP, SMTP, DNS 등
- 기타 내용: API 및 웹 서비스 보안
2. 표현 계층
- 데이터 형식 변환, 압축 및 암호화
- 데이터 표현 방식: ASCII, Unicode, JPEG, MPEG 등
- 암호화 및 복호화 알고리즘
3. 세션 계층
- 통신 세션 설정, 관리 및 종료
- 세션 설정 및 관리 메커니즘: RPC, SSL/TLS 보안
4. 전송 계층
- 데이터 신뢰성 및 흐름 제어
- 주요 프로토콜: TCP, UDP
- 기타 내용: 포트 번호 및 소켓 프로그래밍, 흐름 제어 및 혼잡 제어 알고리즘
5. 네트워크 계층
- 논리 주소 지정 및 라우팅
- 주소 체계: IPv4, IPv6
- 라우팅 프로토콜: RIP, OSPF, BGP
- 기타 내용: 서브넷 마스크, CIDR, IPsec, VPN 보안
6. 데이터 링크 계층
- 물리 주소 지정 및 오류 검출
- 주요 개념: MAC 주소, Ethernet
- 기타 내용: Ethernet 프레임 구조, ARP, 스위치, VLAN, IEEE 802.11 무선 LAN
7. 물리 계층
- 데이터 비트 전송
- 주요 전송 매체: 케이블, 무선
- 기타 내용: 케이블 종류 및 특징, 신호 변조 방식, 전송 매체 및 장비
암호화 정의
- 암호학은 정보를 보호하기 위해 데이터를 변환하는 기술
- 쉽게 말해, 허가받지 않은 사람이 정보를 읽거나 이해할 수 없도록 만드는 방법
1. 목적
- 기밀성: 정보를 허가받은 사람만 접근할 수 있도록 보장
- 무결성: 정보가 변조되지 않았음을 보장
- 인 증: 정보의 출처를 확인하고, 정보를 보낸 사람이 실제로 그 사람이 맞는지 확인
- 부인방지: 정보를 보낸 사람이 나중에 정보를 보낸 사실을 부인할 수 없도록 확인
2. 암호의 역사
고대 암호
- 고대 이집트, 로마, 그리스 등에서 간단한 암호를 사용
- 문자를 다른 문자로 치환하는 단순 치환 암호
근대 암호
- 2차 세계 대전 중 독일군의 암호 기계 ‘에니그마’가 등장하면서 암호학이 급격히 발전
현대 암호
- 컴퓨터의 발전과 함께 암호학은 더욱 복잡해지고 정교해짐
- 현대 암호는 수학적 알고리즘을 기반으로 동작
3. 암호학의 기본 개념
- 평 문: 암호화되지 않은 원래 정보
- 암호문: 원래의 정보를 알아 볼 수 없도록 처리한 정보
- 암호화: 평문을 암호문으로 변환하는 과정
- 복호화: 암호문을 다시 평문으로 변환하는 과정
- 키: 암호화 및 복호화에 사용되는 비밀 정보
4. 암호 알고리즘의 종류
- 대칭키 암호화
- 비대칭키 암호화
- 암호화와 복호화에 서로 다른 키를 사용
- 공개키는 누구에게나 공개되고, 개인키는 비밀로 유지
- 대표 알고리즘: RSA, ECC
- 장점: 키 관리가 용이
- 단점: 대칭키 암호보다 느림
- 용도: 전자 서명, SSL/TLS 통신
- 해시 함수
- 임의의 길이의 데이터를 고정된 길이의 해시 값으로 변환하는 알고리즘
- 해시 값은 데이터의 ‘지문’과 같으며, 데이터가 조금만 변경되어도 해시 값은 완전히 달라짐.
- 역으로 복호화가 불가
- 대표 알고리즘: SHA-256, MD5
- 용도: 데이터 무결성 검증, 비밀번호 저장
- 솔트(salt)
- 암호화 과정에서 추가되는 임의의 데이터
비밀번호 무작위 공격 및 rainbow table 공격 방지
- 동작 원리
- 솔트 생성: 사용자가 비밀번호를 설정하면 시스템은 랜덤한 솔트 값을 생성
- 해시 계산: 비밀번호와 솔트를 결합하여 해시 함수를 통해 해시 값을 계산
- 저장: 솔트 값과 해시 값을 함께 데이터베이스에 저장
- 로그인 시: 사용자가 로그인할 때 입력한 비밀번호와 저장된 솔트를 결합하여 다시 해시 값을 계산하고, 저장된 해시 값과 비교하여 일치하면 로그인을 허용
활용 분야
- 인터넷 보안: 웹사이트 로그인, 온라인 뱅킹, 이메일 등 인터넷 통신의 보안에 암호학이 사용
- 디지털 서명: 전자 문서의 위변조를 방지하고, 문서 작성자를 확인하는 데 사용
- 가상 화폐: 블록체인 기술과 함께 암호학을 사용하여 거래의 안전성과 투명성을 보장
- 개인 정보 보호: 개인 정보를 암호화하여 저장하고 전송함으로써 개인 정보 유출을 방지
네트워크 보안 5대 요소
1. 기밀성 (Confidentiality)
- 설명: 허가받지 않는 사용자가 정보에 접근할 수 없도록 하는 것
- 클라이언트 ←→ 서버 또는 서버 ←→ 서버 사이에서 허가되지 않은 사용자가 내용을 알 수 없도록 예방
- 비유: 시건장치에 자물쇠를 채우는 것
- 중요성: 개인정보, 기업 기밀 등 중요 정보를 보호
- 예시: 온라인 쇼핑몰에서 결제 시 개인정보 암호화
2. 무결성 (Integrity)
- 설명: 중요 정보가 허가받지 않은 방식으로 변경되거나 파괴되지 않도록 하는 것
- 비유: 그림에 제3자가 수정하지 못하도록 방지하는 것
- 중요성: 데이터 위/변조 및 변조된 파일 실행 등으로 인한 피해 방지
- 예시: 은행 앱에서 송금 시 데이터 위/변조 방지
3. 가용성 (Availability)
- 설명: 허가받은 사용자가 필요할 때 정보에 접근할 수 있도록 보장하는 것
- 비유: 24시간 언제든 이용할 수 있도록 제공하는 서비스 (예: 편의점)
- 중요성: 서비스 중단으로 인한 업무 마비 방지
- 예시: 포털 사이트 접속 시 트래픽 과부하 방지
4. 서버 인증 (Server Authentication)
- 설명: 클라이언트가 접속하는 서버가 진짜인지 확인하는 것
- 비유: 믿을 수 있는 사람에게만 문을 열어주는 것
- 중요성: 피싱 사이트, 가짜 은행 앱 등으로 인한 정보 탈취 방지
- 예시: HTTPS 프로토콜을 통한 웹 사이트 접속 시 안정성 확보
5. 클라이언트 인증 (Client Authentication)
- 설명: 서버가 접속하는 클라이언트가 진짜인지 확인하는 것
- 비유: 신분증을 확인해서 본인 여부를 확인하는 것
- 중요성: 허가받지 않은 사용자의 시스템 접근 및 악의적인 행위 방지
- 예시: 기업 내부 시스템 접속 시 아이디/비밀번호, OTP 등을 통한 본인 확인
WHOIS
- 인터넷 자원에 대한 등록 정보를 확인할 수 있는 시스템
동사무소나 구청에서 출력할 수 있는 “등기부 등본”과 유사한 정보 확인이 가능
- 확인할 수 있는 정보
- 도메인 등록 및 관리 기관 정보
- 도메인 이름과 관련된 인터넷 자원 정보
- 네트워크 주소와 IP 정보
- 등록자, 관리자, 기술 관리자의 이름, 연락처, 이메일 계정
- 도메인 등록 시기와 갱신 시기
- DNS 서버 정보
- 지역 위치 등
- WHOIS 조회 방법
- 방법 #1
WHOIS 웹사이트에서 도메인 조회
예시:
example.com
조회
- 방법 #2
- Kali Linux에서 WHOIS 명령어 사용
1
whois example.com
IP 주소 추적 방법
1. 웹 사이트에서 직접 조회
- 접속 주소 : http://ipconfig.kr/
- 해당 웹사이트에서 자신의 IP 주소 및 기타 네트워크 정보를 확인 가능
2. 수신된 메일의 IP 주소 확인
- 지메일에서 확인하는 방법:
- 지메일 접속
- 수신된 이메일 열기
- 이메일의 “원본 보기” 선택
- “Received” 항목에서 수신된 IP 주소와 메일 서버 확인
3. TRACERT를 통한 IP 추적
- TRACERT: 라우팅 경로를 추적하는 명령어
- 명령어:
tracert [도메인 또는 IP 주소]
- 라우터 또는 방화벽에서 패킷을 차단하는 경우, 특정 구간에서 * 표기로 나타날 수 있음
- * 표시는 패킷이 차단되었음을 의미
- 명령어:
목록화 / 풋프린팅 → 정보 수집
- 풋프린팅 (Footprinting)
1. 개요
- 풋프린팅: 공격 대상에 대한 정보를 수집하는 과정
- 목적: 공격 대상의 취약점을 파악하고 공격 계획을 수립하는 데 활용
2. 수집 범위
- 네트워크 정보, 시스템 정보, 사용자 정보, 조직 정보 등
3. 중요성
- 공격 성공률 향상
- 공격 대상 파악
- 취약점 발견
- 풋프린팅(정보 수집) 기법
1. 수동적인 정보 수집
- 기법: 검색엔진, WHOIS 조회, 소셜 엔지니어링
- 사례: 세계적인 해커 케빈 미트닉(Kevin Mitnick)이 소셜 엔지니어링 기법을 통해 한 회사의 정보를 탈취
2. 능동적인 정보 수집
- 기법: 포트 스캐닝, 네트워크 스캐닝, 취약점 스캐닝
- 대응 방안
- 정보 노출 최소화
- 보안 교육 강화
- 보안 시스템 구축
- 목록화 (Enumeration)
- 정의: 수집한 정보를 정리하는 과정
CVE (Common Vulnerabilities and Exposures)
1. 개요
- CVE: 공개적으로 알려진 소프트웨어 및 하드웨어의 보안 취약점 목록
- CVE ID: 각 취약점은 CVE ID (예: CVE-2023-1234)라는 고유 식별자로 관리
2. 목적
- 취약점 정보의 표준화 및 공유: 다양한 보안 도구, 데이터베이스, 서비스 간에 취약점 정보를 일관되게 교환하고 관리
- 보안 위협 인지 및 대응: CVE 정보를 통해 잠재적인 보안 위험을 파악하고, 적절한 조치를 취하여 시스템을 보호
3. CVE 정보 구성 요소
- CVE ID: 취약점의 고유 식별자 (예: CVE-2023-1234)
- 설명: 취약점에 대한 간략한 설명
- 영향 범위: 취약점이 영향을 미치는 소프트웨어 또는 하드웨어 제품 및 버전
- 심각도: 취약점의 심각도를 나타내는 CVSS (Common Vulnerability Scoring System) 점수 (0.0 ~ 10.0)
- 참고 자료: 취약점 관련 정보를 제공하는 웹 페이지, 보안 권고문 등
4. CVE 취약점 난이도
- 낮음 (Low): 악용 가능성이 낮거나 시스템에 미치는 영향이 제한적인 취약점
- 중간 (Medium): 악용 가능성이 있거나 시스템에 어느 정도 영향을 미칠 수 있는 취약점
- 높음 (High): 악용 가능성이 높거나 시스템에 심각한 영향을 미칠 수 있는 취약점
- 치명적 (Critical): 시스템을 완전히 제어하거나 데이터 손실을 초래할 수 있는 매우 심각한 취약점
5. CVE 취약점 정보 활용
- 취약점 스캐너: CVE 데이터베이스를 활용하여 시스템의 취약점을 자동으로 탐지하고 보고
- 보안 업데이트: 소프트웨어 제조사에서 제공하는 보안 업데이트를 통해 CVE 취약점 해결
- 보안 권고문: CVE 관련 보안 권고문을 참고하여 취약점에 대한 상세 정보와 대응 방안을 확인
- 침입 탐지 시스템 (IDS): CVE 정보를 기반으로 알려진 공격 패턴을 탐지하고 차단
6. CVE 취약점 확인 방법
조회 사이트
- NVD (National Vulnerability Database): https://nvd.nist.gov/vuln/search
- 해당 문구 검색:
CVE-2024
취약점 검색 사이트
- Exploit Database: https://www.exploit-db.com
Criminal IP & Shodan을 이용한 정보 수집
1. Criminal IP
- 웹 사이트 주소: https://www.criminalip.io/
- 검색 문법: 검색 문법 안내
- 검색 예시:
domain_from_banner: naver.com
2. Shodan
- 웹 사이트 주소: https://www.shodan.io/dashboard
- 검색 문법: 검색 문법 예시
- 검색 예시:
hostname:game.com country:"KR" 200
스니핑(Sniffing) 공격
1. 개요
- 일반적으로 모든 PC(일반적인 통신 기기)에는 네트워크 카드가 있으며, 모두 IP 주소와 MAC 주소가 존재
즉, 자신에게 유입되는 것들 중 들어오는 패킷 이외에는 모두 차단
- 예:
1.1.1.1
>1.1.1.10
으로 요청 시,1.1.1.10
기기만 패킷을 정상적으로 유입시키며, 그 외의 모든 기기는 차단 처리됨
- 예:
스니핑 모드로 설정하는 경우 본인에게 들어오는 패킷 이외의 모든 패킷을 볼 수 있도록 설정할 수 있는 방안을 프로미스큐어스(Promiscuous) 모드라고 함
- 프로미스큐어스 모드로 설정하기 위해서, 리눅스 OS에서는 단순 명령으로 랜 카드 설정이 가능하지만, 윈도우는 별도로 드라이버를 설치해야 함