본문 바로가기
  • 시 쓰는 개발자
CS 개념/컴퓨터 보안

컴퓨터보안 - 실습내용 간단 정리 (2)

by poetDeveloper 2024. 6. 11.

실습내용 정리

🥕 9주차

>> 와이어샤크 : 오픈소스 패킷 분석 프로그램. SW 및 통신 프로토콜 개발, 교육에 쓰이고 패킷 포착해서 읽을 수 있음
>> Scapy : 파이썬 기반 패킷 조작 도구. 간단하게 네트워크 트래픽을 생성, 캡쳐, 분석, 조작할 수 있다.

>> ipconfig : 기본 네트워크 인터페이스 구성 확인하는 명령어

>> ssh : 22번 포트

>> 패킷에 들어있는 내용 ★★★★
- TTL : 패킷이 네트워크에서 살아있을 수 있는 최대 시간을 나타낸다. TTL 수만큼의 라우터를 거칠 수 있고, 이를 초과하면 폐기됨
- Src : 패킷의 출발지 IP 주소
- Src port : 패킷을 보낸 출발지 포트번호
- Dst port : 패킷이 도착할 목적지 포트번호
- Header checksum : 패킷의 헤더가 올바르게 전송되었는지 확인하기 위한 값
- Payload : 패킷의 데이터 부분

>> FTP 패킷 분석 실습
- FTP(File Transfer Protocol)은 표준 네트워크 프로토콜 중 하나이며 application layer의 프로토콜이다.
- 암호화하지 않은 상태로 데이터를 주고받는다.

>> ICMP(Internet Control Message Protocol) 정보들
- ping의 역할 : 네트워크 진단 도구, 네트워크 상태와 품질 테스트함. 핑으로 요청 보내고 응답으로 연결성, RTT, 패킷 손실, 네트워크 경로 등의 정보를 받음.
- ping 실행방법 : ping <ip address> 혹은 ping <도메인주소> 를 입력

- Traceroute의 역할
1. 경로 추적 : 데이터 패킷이 출발지에서 목적지까지 도달하기까지의 경로를 시각화한다. 
2. 네트워크 지연 진단 : 각 라우터에서의 지연 시간을 측정하여, 네트워크 지연이 발생하는 위치를 식별할 수 있다. 
3. 네트워크 문제 해결 : 특정 라우터에서 패킷 손실이 발생하거나 예상치 못한 라우트 변경이 있을 때 이를 식별할 수 있다. 
4. 네트워크 성능 평가 : 전체 네트워크 또는 특정 세그먼트의 성능을 평가하는 데사용될 수 있다. Traceroute를 통해 각 라우터의 응답 시간을 비교함으로써 네트워크의 상태와 품질을 평가할 수 있다.
- Traceroute 실행방법 : tracert <ip address> 혹은 tracert <도메인주소> 를 입력
------------------------------------------------------------------------------
🥕 10주차

>> 스노트 (Snort) : 오픈 소스인데 네트워크 침입 차단 시스템이자, 네트워크 침입 탐지 시스템이다.

- 스니퍼 모드 : 프로그램은 네트워크 패킷을 읽고 콘솔에 보여준다
- 패킷 로거 모드 : 패킷을 디스크에 기록
- 네트워크 침입 탐지 모드 : 네트워크 트래픽을 모니터하고 사용자에 의해 정의된 규칙에 반하는지를 분석

>> 스노트 명령어
snort -W : 센서에 설치할 수 있는 어댑터 목록을 확인
snort -v -ix : 스노트 실행, x는 실행할 어뎁터 인덱스번호

>> Vistumbler : 와이파이 탐색 툴, 신호세기, SSID, Mac 주소 등 확인할 수 있음.
- 주로 CCMP를 암호화 기법 사용함. CCMP는 Wi-Fi 보안 프로토콜인 WPA2에서 사용되는 암호화 및 인증 방법이다. AES기법 써서 기밀성, 무결성, 리플레이 어택 방지 제공함

- WiFi 탐색툴이 제공하는 데이터와 기능은 ?
Authentication : 무선 네트워크의 인증 방법
Channel : 무선 네트워크가 사용하는 무선 채널 번호
Encryption : 무선 네트워크의 암호화 유형
Network Type : 무선 네트워크의 유형
SSID : 무선 네트워크의 식별자
RSSI : 무선 네트워크의 수신 신호 강도를 dBm 단위로 나타냄
------------------------------------------------------------------------------
🥕 11주차

>> 방화벽
방화벽은 외부에서 내부 서버에 접근하는 것을 차단하고 있어서 Telnet, FTP같은 서버 접근이 필요한 서비스는 허가된 사용자들만 사용할 수 있다.

>> XSS
크로스 사이트 스크립팅(XSS)은 공격자가 웹 애플리케이션에서 생성한 페이지에 스크립트 코드를 삽입하는 공격이다. 이로 인해 피싱, 세션 하이재킹, 사용자 설정 변경, 쿠키 도난, 허가되지 않은 코드 실행 등 문제가 발생할 수 있다.
------------------------------------------------------------------------------
🥕 12주차

>> SQL Injection
입력된 데이터에 대한 유효성검사를 하지 않을 경우, 공격자가 입력 폼 및 URL입력창에 SQL 문장을 삽입하여 DB로부터 정보를 열람하거나
조작할 수 있는 보안 약점이다.

>> SQL Injection 대응방안 ★★★★
- 입력된 데이터에 대한 유효성검증을 한다.
- 허용 가능한 입력 list를 생성하여, 여기 없는 입력은 거부 or 입력값 변환
ex. 따옴표는 null로 바꿔버림
- 컴파일된 SQL 문장을 사용하는PreparedStatement 인터페이스를 활용하는 방안이 있음

>> SQL 주입 공격법
- 로그인 ID를 Admin' # 으로 해서 뒤에 주석처리해버림
- 커멘드라인에서 URL 인코딩 매핑으로 공격
ex. Admin’ #은 url 인코딩으로 매핑될 때 Admin%27%20%23 이렇게 넘어가는 것을 이용함

>> Prepared Statement 방식 : SQL 쿼리를 미리 컴파일하고, 실행 시점에만 사용자 입력을 쿼리에 바인딩함
- prepare() : SQL 쿼리를 준비하고, 쿼리에 포함될 파라미터를 물음표로 표시한다.
- bind_param() : 각 물음표에 해당하는 변수를 쿼리에 안전하게 바인딩한다.
- execute() : 쿼리를 데이터베이스에 전송하고 실행한다.
------------------------------------------------------------------------------
🥕 13주차

>> OpenSSL : 오픈 소스 암호화 라이브러리
- 주로 인터넷 통신 보안을 위해 사용되며, SSL과 TLS 프로토콜을 지원
- 암호화, 복호화, 키 생성 및 인증서 관리 등 다양한 암호화 작업을 수행할 수 있는 기능

>> AES : 암호화는 128bit 블록 고정, 키는 128, 192, 256bit 가능
- IV : CBC, CTR에서 초기 블록을 암호화하는 키