Journey to Security 154

[AWS] VPC 구조와 설계: 클라우드 사설 네트워크의 기본 개념

AWS VPC(Virtual Private Cloud)는 물리 장비로 구성하던 온프레미스 네트워크를 소프트웨어 정의 방식으로 재구성한 것에 해당한다. 이번 포스팅에서는 VPC를 구성하는 핵심 요소들(CIDR, 서브넷, 라우팅 테이블, 게이트웨이, 보안 계층 등)을 온프레미스 개념과 비교해서 살펴본다.1. VPC의 정의와 특성VPC는 AWS 클라우드 내부에 사용자가 정의하는 격리된 가상 네트워크다.온프레미스로 치면 자체 데이터센터의 사설 네트워크에 해당하며, 이 안에서 EC2, RDS, Lambda 등 컴퓨트·데이터·서버리스 리소스가 실행된다.물리 라우터·스위치·방화벽으로 구축하던 계층을 SDN(소프트웨어 정의 네트워크)으로 대체한 것이 VPC의 본질이다.VPC의 핵심 특성은 세 가지로 요약된다.논리적 ..

[AWS] IAM 사용자·그룹·MFA 설정 및 CLI 연동

AWS 계정을 처음 세팅할 때 가장 먼저 잡아야 하는 것은 접근 통제다.루트를 봉인하고 실습에 사용할 IAM 사용자를 최소 권한으로 만들고, CLI가 그 사용자로 서명하도록 연결해보자.리전: ap-northeast-2 (서울)CLI 환경: 리눅스 VM (Ubuntu 계열 기준)완료 후 상태: 루트 봉인 · IAM 사용자 콘솔·CLI 접근 · MFA 이중 등록1. 설정 순서CLI 설치 → 루트 MFA → IAM 사용자·그룹 생성 → 사용자 MFA → 액세스 키 발급 → CLI 연동 검증 2. AWS CLI 설치리눅스 VM에서 AWS API를 호출할 수 있게 CLI v2를 설치한다.apt로 설치되는 v1은 오래되었으므로 공식 바이너리를 사용한다.1️⃣ 필요 패키지 설치sudo apt updatesudo ap..

다형성 셸코드(Polymorphic Shellcode) - 시그니처 기반 탐지를 무력화하는 셸코드 변형 기법

1. 셸코드(Shellcode)셸코드는 익스플로잇 성공 후 타겟 시스템에서 실행시키는 작은 기계어 코드 조각이다.초기에 /bin/sh 셸을 실행하는 용도로 주로 사용되었지만 현재는 리버스 셸, 파일 다운로드, 권한 상승 등 다양한 동작을 수행하는 페이로드를 통칭하는 용어로 확장되었다.버퍼 오버플로우 같은 메모리 취약점을 이용해 프로그램의 실행 흐름을 탈취한 뒤, 탈취한 제어권으로 무엇을 실행할 것인지를 담고 있는 것이 셸코드다. 2. 바이트 패턴과 시그니처 기반 탐지1️⃣ 바이트 패턴이란셸코드는 CPU가 직접 해석하는 기계어 명령의 나열이다.예를 들어 Linux x86에서 /bin/sh를 실행하는 셸코드는 다음과 같은 고정된 바이트 시퀀스로 구성된다.\x31\xc0\x50\x68\x2f\x2f\x73\x..

역직렬화 취약점 - 객체 복원과 동시에 공격 코드가 실행되는 원리

1. 직렬화와 역직렬화 직렬화(Serialization)는 메모리상의 객체를 저장하거나 전송할 수 있는 형태, 즉 바이트 스트림으로 변환하는 과정이다.역직렬화(Deserialization)는 그 반대로, 저장되거나 전송된 바이트 스트림을 다시 메모리상의 객체로 복원하는 과정이다.이 메커니즘은 객체를 파일로 저장했다가 다시 불러오거나, 네트워크를 통해 객체를 그대로 주고받을 때 사용된다.User 객체를 디스크에 저장하고 나중에 동일한 상태로 복원하는 작업이 대표적이다. 🟢 직렬화-역직렬화의 데이터 흐름객체는 직렬화를 거쳐 바이트 스트림이 되고, 이 바이트 스트림은 파일·소켓·데이터베이스 어디로든 옮겨질 수 있다.수신 측은 역직렬화를 통해 동일한 구조의 객체를 다시 만든다. 2. 역직렬화가 위험한 이유..

Spring Boot 사내 포털 모의침투 - 공격 체인을 끊는 4단계 패치

이전 글에서 IntraPortal을 정찰부터 데이터 유출까지 8단계로 침투하고, 각 공격이 시작된 소스코드 라인까지 매핑했다.이번 글에서는 그 매핑 테이블을 기반으로 하드닝을 진행한다.공격자가 처음 닿는 외부 표면부터 차단함으로써 초기 침투 사슬을 끊어서 후속 단계가 연쇄적으로 무력화되는 것을 검증하는 것이 목표다. 외부에서 접근 가능한 표면을 먼저 닫으면 그 표면에 의존하던 RCE도, RCE에 의존하던 권한 상승도 시작점을 잃는다.따라서 외부 표면 → RCE 경로 → 크레덴셜 → OS 순서로 패치를 진행한다.Phase대상 파일대응 기법1. 외부 표면Actuator 노출, CSRF, SQLiSecurityConfig.java, application.properties, LoginController.jav..

Spring Boot 사내 포털 모의침투 - MITRE ATT&CK 기반 공격 시나리오

이번 실습에서는 의도적으로 취약하게 구성한 Spring Boot 기반의 사내 포털을 대상으로 nmap 스캔부터 데이터 유출까지 공격자의 동선을 그대로 재현해본다.실습 대상은 IntraPortal이라는 가상의 사내 포털이다.코드 골격은 Claude Code로 구현했다. (github.com/Cordilog/aws-pentest-lab에서 클론하여 구축할 수 있다.)공격의 흐름은 MITRE ATT&CK의 tactic 순서를 따르도록 설계했다. 8단계 공격 동선침투는 한 단계가 다음 단계의 전제 조건을 만들어주는 방식으로 이어진다.단계 ATT&CK ID 전술(Tactic) 행위 대상 1T1046Discovery포트 스캔 + 서비스 식별nmap → 8080/tcp open2T1190Initial Acces..

시스템 계정의 공격 표면과 차단 전략 - 대화형 로그인의 위험성

웹 서버 한 대가 뚫리는 것과 시스템 전체가 장악되는 것 사이에는 보통 "셸을 잡았는가"라는 분기점이 있다.공격자가 코드 실행에 성공해도, 거기서 대화형 셸을 띄울 수 없다면 공격 체인은 그 자리에서 멈춘다.시스템 계정의 로그인 셸 하나를 /sbin/nologin으로 바꾸는 단순한 작업이 방어선으로서 의미를 갖는 이유다.대화형 로그인의 정의부터 시스템 계정에 이것이 허용될 때 발생하는 구체적 위험, 그리고 실무에서의 차단 방법을 알아보자.1. 대화형 로그인 개념1️⃣ 대화형 로그인대화형 로그인(Interactive Login)은 사람이 터미널, 콘솔, SSH 등을 통해 키보드로 직접 인증하고 셸을 획득하는 방식이다. 인증에 성공하면 /bin/bash 같은 로그인 셸이 할당되고, 사용자는 그 셸에서 임의의..

리눅스 싱글모드 - GRUB2 보안 설정과 다계층 방어의 중요성

1. 싱글 유저 모드(Single User Mode)란?리눅스의 싱글 유저 모드는 시스템이 최소한의 서비스만 올린 채 root 권한으로 부팅되는 복구용 모드다.네트워크 서비스, 인증 데몬 등이 시작되기 전에 root 셸이 열리기 때문에, 원래 목적은 관리자가 비밀번호를 분실했을 때 시스템을 복구하는 용도다.문제는 이 복구 경로가 공격자에게도 동일하게 열려 있다는 점이다.물리적 접근만 가능하면 인증 없이 root 비밀번호를 변경할 수 있으므로, KISA 주요정보통신기반시설 보안 가이드 등 주요 보안 진단 항목에 "싱글모드 부팅 시 인증 요구" 항목이 포함되어 있다. 2. 공격 시나리오: rd.break를 이용한 root 비밀번호 초기화1️⃣ rd.break란?rd.break는 리눅스 커널 파라미터로, in..

리눅스 rescue mode에서 chroot /sysroot 동작 원리

리눅스 서버가 정상적으로 부팅되지 않을 때 관리자는 응급 복구 모드(Rescue Mode)에 진입해 시스템을 복구한다.이 때 chroot /sysroot 명령어를 사용해 현재 프로세스가 인식하는 루트 파일 시스템을 교체해야 한다.initramfs 부팅 단계의 구조와 함께 /sysroot 디렉터리와 chroot 명령어의 동작 원리를 알아보자. 1. /sysroot/sysroot는 리눅스 부팅 초기 단계에서 사용되는 마운트 포인트로, initramfs 환경이 실제 디스크의 루트 파일 시스템(/)을 임시로 마운트하기 위한 위치다.1️⃣ 정상 부팅 과정에서의 /sysroot부팅이 시작되면 커널은 initramfs 환경을 메모리에 로드하고, 이 환경에서 실제 디스크의 루트 파일 시스템을 /sysroot에 마운트한..

SOAR 구축 실습: Snort 경보 기반 자동 침해대응 플레이북 엔진

Snort IPS가 공격을 탐지하면 로그를 확인해서 수동으로 차단 규칙을 넣고, 팀에 알리고, 인시던트 티켓을 만드는일반적인 운영 흐름을 SOAR(Security Orchestration, Automation and Response)로 자동화할 수 있다. 이번 실습에서는 Python Flask 기반의 "Mini-SOAR" 플레이북 엔진을 구축해 본다.Snort alert가 발생하면 자동으로 iptables 차단, Slack 알림, Notion 인시던트 티켓 생성까지 이어지는 전체 파이프라인을 단계별로 실습한다. 1. 전체 아키텍처와 네트워크 구성실습의 전체 아키텍처는 아래와 같다. Kali(공격자)가 외부에서 DMZ(웹서버)을 공격하면, 방화벽/IPS 서버의 Snort IPS가 이를 탐지하고 alert..