Journey to Security 154

Burp Suite와 FoxyProxy를 활용해서 Request/Response 가로채기

웹 애플리케이션 보안 점검의 가장 기본은 클라이언트와 서버 사이에 오가는 데이터를 확인하고 제어하는 것이다.이를 위해 필수적으로 사용되는 프록시(Proxy)의 개념을 정리하고, 대표적인 도구인 Burp Suite와 FoxyProxy를 이용해 실습 환경을 구축해본다. 1. 프록시(Proxy)란 무엇인가?프록시는 사전적 의미로 '대리' 또는 '대행'을 뜻한다.네트워크 환경에서 프록시 서버는 클라이언트(브라우저)와 서버 사이에서 중계자 역할을 수행한다.보안 점검에서는 이 프록시가 일종의 '검문소'가 된다.클라이언트가 보내는 Request(요청)와 서버가 되돌려주는 Response(응답)를 중간에서 가로채(Intercept), 데이터의 내용을 분석하거나 값을 변조하여 보안 취약점을 테스트할 수 있게 해준다. 2..

서브넷 마스크의 트래픽 관리 및 제어 역할

서브넷 마스크는 트래픽 관리 및 제어의 가장 기초적인 도구다.단순히 네트워크를 나누는 차원이 아니라, 실제 트래픽의 흐름을 물리적·논리적으로 규정할 수 있는 기법이다.서브넷에 대한 개념 설명과 서브넷 마스크 계산법은 아래 포스팅에 자세히 정리되어 있다.https://nanujahope.tistory.com/118 이번에는 서브넷 마스크가 어떻게 트래픽을 제어하는지 3가지 포인트로 알아본다.1. 로컬(Local)과 리모트(Remote)의 판별 기준컴퓨터가 데이터를 보낼 때, 목적지가 "우리 동네(Local)"인지 "옆 동네(Remote)"인지 판단하는 유일한 기준이 바로 서브넷 마스크다.동작 원리: 출발지 IP와 목적지 IP를 각각 자신의 서브넷 마스크와 AND 연산한다.결과:값이 같으면 로컬 트래픽: 게..

VMware Workstation에서 가상 네트워크 설정하기

1. 가상 네트워크를 구성하는 두 가지 요소 VMware Workstation은 VM을 생성할 때 물리 장비 없이 소프트웨어만으로 네트워크 환경을 만들어낸다. 이 가상 네트워크는 두 가지 핵심 구성요소로 이루어진다.1️⃣ 가상 스위치 (VMnet) 역할: 공유기 / 네트워크 스위치 VMware가 호스트 OS의 커널 안에 만든 소프트웨어 스위치다. VM들과 호스트 PC가 연결되는 네트워크 자체를 의미하며, 패킷을 실제로 전달하고 라우팅하는 역할을 한다. VMnet0, VMnet1, VMnet8 등이 각각 하나의 가상 스위치에 해당한다. 2️⃣ 가상 어댑터 (Virtual NIC) 역할:랜카드 (NIC) 가상 스위치에 연결하기 위한 소프트웨어 NIC(랜카드)다.호스트 PC 쪽에는 VMware가 자동으..

파이썬으로 소켓 통신 연결 구현하기

네트워크 프로그래밍이란 결국 프로세스 간의 통신을 의미하며, 이를 가능하게 하는 핵심 도구가 바로 소켓(Socket)이다.파이썬 socket 모듈을 활용하면 리눅스 환경에서 서버와 클라이언트를 직접 구현하고 데이터를 주고받는 과정을 명확히 이해할 수 있다. 1. 소켓 통신의 기본 개념소켓은 네트워크상의 두 프로그램이 서로 데이터를 주고받을 수 있도록 연결해 주는 통신 종착점(Endpoint)을 의미한다.서버와 클라이언트는 각각 역할에 맞는 소켓을 생성하여 통신에 참여한다.🟢 서버와 클라이언트의 역할서버(Server): 클라이언트의 연결 요청을 기다리다가 요청이 오면 수락하여 통신용 소켓을 생성한다. 연결을 기다리는 소켓을 리스닝 소켓, 연결된 클라이언트와 통신하는 소켓을 커넥션 소켓이라고 한다.클라이언..

구형 노트북에 Rocky Linux 9 서버 설치하기 (+wifi 연결)

노트북에 리눅스 설치를 시도한 것은 사실 이번이 두번째다. 첫 설치 시도 중 노트북에 내장된 m-SATA가 죽어버렸기 때문이다...😅 SSD가 죽었다는 사실을 확인한 과정도 정말 지난했는데, 굳이 글로 기록하진 않겠지만 사진 한 장으로 요약이 가능할 것 같다. 그렇다고 이것 때문에 SSD를 사기에는... SSD가 생각보다 너무 비쌌다.이 상태로 설치를 중단하고 두어달 방치하고 있었는데, 이번에 동생에게 안 쓰는 노트북을 하나 달라고 해서 그 노트북 안에 있던 HDD를 하나 뜯어냈다. 요즘 아무리 옛날 노트북이라도 HDD는 보기 힘든데, 진짜 옛날 노트북이긴 한가보다.안타깝게도 SSD와 규격이 맞질 않으니 노트북 안에 넣을 수는 없고, 그냥 리더기를 하나 사서 외장으로 쓰기로 했다. 어쨌든 다시 한 번..

OpenSSL로 Apache HTTPS 인증서 생성하기 (2) 루트 인증서 등록

지난 포스팅에서는 자가 서명 인증 방식으로 단일 도메인 인증서와 멀티 도메인 인증서를 생성하는 방법을 알아보았다.자가 서명 인증서는 스스로 CA(Certificate Authority) 역할을 하기 때문에 기본적으로 클라이언트 사이드에 신뢰할 수 있는 루트 인증기관(CA) 인증서로 등록되어 있지 않다. 따라서 클라이언트 브라우저에서 '안전하다'고 인식하지 않아 다음과 같은 경고가 뜬다. 이러한 자가 서명 인증서도 '신뢰할 수 있는 루트 인증 기관'으로 수동 등록하면 브라우저에서 안전한 인증으로 인식할 수 있다. 5. 신뢰할 수 있는 루트 CA 인증서로 등록하기 1️⃣ 인증서 복사 (서버)클라이언트에서 서버의 인증서를 웹 경로로 다운받을 수 있도록 웹 디렉터리에 복사한다.cp /etc/pki/tls/ce..

OpenSSL로 Apache HTTPS 인증서 생성하기 (1) SAN, 와일드카드 인증서

웹 서비스를 운영할 때 HTTPS(HyperText Transfer Protocol Secure)는 필수다.HTTP는 데이터를 평문으로 전송하기 때문에 스니핑(Sniffing) 위협에 노출되어 있지만, HTTPS는 SSL/TLS 프로토콜을 통해 데이터를 암호화하여 보안성을 확보한다. Rocky Linux 9 환경에서 Apache 웹 서버를 이용해 단일 도메인, 멀티 도메인(SAN), 그리고 와일드카드(*) 인증서를 생성하고 적용하는 과정을 실습하고, 실무에서 인증서가 어떤 과정을 거쳐 발급되는지, 그리고 그 과정에서 핵심 역할을 하는 CSR(Certificate Signing Request)이 무엇인지도 살펴보자. 1. SSL/TLS 인증서의 기본 개념 및 체계인증서는 클라이언트(브라우저)와 서버 간의 ..

윈도우에서 DNS 서버 주소 설정하기 - ncpa.cpl

ncpa.cpl은 윈도우 운영체제에서 '네트워크 연결' 제어판 항목을 바로 실행해 주는 제어판 실행 파일(.cpl)이다. 네트워크 설정을 변경하거나 문제를 해결할 때 제어판으로 들어가는 대신 [Win + R]을 눌러 실행 창을 띄운 뒤 ncpa.cpl을 입력하여 빠르게 접근할 수 있다.파일 정보Full Name: Network Control Panel Applet파일 위치: C:\Windows\System32\ncpa.cpl DNS 서버를 구축하고 도메인 질의가 잘 되는지 확인하려면 아래와 같이 DNS 서버 주소를 임시로 변경해야 한다. 우클릭 후 속성으로 들어간다.> 인터넷 프로토콜 버전4(TCP/IPv4) 더블클릭 VMnet8 이더넷2

[시스템] C 프로그램으로 이해하는 멀티쓰레드

1. 쓰레드(Thread)란 무엇인가?쓰레드는 프로세스 내부에서 실제로 작업을 수행하는 실행 흐름의 단위다.프로세스가 운영체제로부터 자원을 할당받는 작업의 단위라면, 쓰레드는 그 자원을 이용하여 실제로 코드를 실행하는 주체다.멀티쓰레드의 필요성하나의 프로그램 안에서 다음과 같은 작업들을 동시에 수행해야 할 때 멀티쓰레드 구조를 사용한다.키보드 입력 대기화면 인터페이스(UI) 갱신네트워크 데이터 송수신대용량 파일 읽기/쓰기프로세스 vs 쓰레드구분프로세스 (Process)쓰레드 (Thread)정의실행 중인 프로그램의 인스턴스프로세스 내의 실행 흐름메모리독립된 메모리 공간을 가짐프로세스 내 메모리를 공유 (Stack 제외)자원 공유IPC(Inter-Process Communication) 필요직접 공유 가능 ..