전체 글 259

[AWS] EC2에 Spring Boot 앱 배포하기

이전 실습에서는 EC2 인스턴스를 생성했다. 이번에는 생성된 인스턴스의 상태를 확인하고, SSH 접속을 해서 Spring Boot 기반 IntraPortal 앱 배포까지 진행한다.인스턴스가 running 상태로 전환된 시점부터 브라우저에서 로그인 화면이 뜨는 것까지 확인하는 것이 이번 실습의 목표다. 1. 인스턴스 생성 확인EC2 인스턴스 생성 직후에는 콘솔과 CLI 양쪽에서 상태를 확인하는 것이 좋다.콘솔에서는 UI 렌더링 지연으로 상태가 아직 반영되지 않은 경우가 있고, CLI에서는 쿼리 필터를 잘못 쓰면 결과가 빈 테이블로 나올 수 있다. describe-instances에 태그 필터를 걸어 securedeploy-* 패턴에 해당하는 인스턴스만 조회한다.--query 옵션은 JMESPath 표현식으..

[AWS] 웹 애플리케이션 배포를 위한 EC2 인스턴스 생성

이번에는 지난 실습에서 구성한 VPC 위에 실제 애플리케이션이 올라갈 EC2 인스턴스를 생성한다.1. AMI 선택 — 개발 환경과 동일한 OS 이미지 확보EC2 인스턴스의 OS 이미지(AMI)를 고를 때 가장 중요한 기준은 앱이 실제로 검증된 환경과 동일한 이미지를 사용하는 것이다.이번에 배포할 IntraPortal 앱의 개발·테스트 환경은 Ubuntu 26.04 LTS (Resolute Raccoon)에서 구동 중이며, setup.sh와 OS 하드닝 스크립트도 모두 26.04에서 검증된 상태이다.$ cat /etc/os-releasePRETTY_NAME="Ubuntu 26.04 LTS"VERSION="26.04 LTS (Resolute Raccoon)" 개발 환경이 Ubuntu인데 EC2를 Amazon..

[AWS] 온보딩 활동으로 크레딧 벌기 - AWS Budgets 설정

1. 온보딩 활동이란AWS는 신규 가입자에게 주요 서비스를 체험시키기 위해 가이드형 미니 과제를 제공하는데, 이것을 "온보딩 활동"이라고 한다.콘솔 홈 대시보드의 AWS 살펴보기(Explore AWS) 위젯을 보면 5개의 활동이 나와 있는데, 각 활동을 완료할 때마다 $20 크레딧이 적립된다. 5개 활동을 모두 완료하면 총 $100을 추가로 받을 수 있다.Free Tier 기준으로 계정 생성 시 $100이 기본 제공되므로, 온보딩 활동까지 전부 마치면 총 $200 크레딧을 확보할 수 있는 셈이다.🚨주의사항온보딩 활동에는 몇 가지 제약 조건이 있다.활동은 계정 생성 후 6개월 이내에 완료해야 한다. 기한을 넘기면 크레딧을 받을 수 없다.AWS Organization에 가입하거나 AWS Control To..

[AWS] EC2 인스턴스 접속을 위한 키 페어 생성

VPC 퍼블릭 네트워크 구성까지 마쳤다면, 다음 단계는 그 네트워크 위에 EC2 인스턴스를 올리고 접속하는 것이다.EC2 인스턴스를 생성하기 전에 반드시 먼저 해두어야 하는 작업이 있는데, 바로 키 페어 생성이다.1. 키 페어의 개념키 페어(key pair)는 퍼블릭 키(public key)와 프라이빗 키(private key) 두 개로 구성되는 보안 자격 증명 집합이다.EC2 인스턴스에 접속할 때 "접속하려는 사람이 정당한 소유자인지"를 증명하는 데 사용된다.Linux 인스턴스에서는 이 키 페어로 SSH 접속을 인증하고, Windows 인스턴스에서는 관리자 암호를 복호화하는 데 프라이빗 키를 사용한다.퍼블릭 키 : 인스턴스 쪽에 저장된다. 잠금장치에 해당하며, 공개되어도 무방하다. AWS가 인스턴스 안..

[AWS] 퍼블릭 VPC 네트워크 구성하기 (프리티어 기준)

이전 포스팅에서는 AWS의 VPC 개념과 구조에 대해 알아보았다.이번에는 지난 번 생성한 IAM 계정에서 인터넷과 통신 가능한 퍼블릭 VPC 네트워크 골격을 AWS 콘솔 또는 CLI로 구성하는 방법을 알아본다.VPC부터 서브넷, 인터넷 게이트웨이, 라우팅 테이블, 보안 그룹까지 순서대로 만들고, 그 위에 EC2만 배치하면 곧바로 외부와 통신할 수 있는 상태까지 완성해 본다. 이번 실습에서 만드는 자원은 전부 요금이 발생하지 않는 AWS 프리티어 범위 안에서 구성했다.NAT Gateway, VPC Endpoint, Elastic IP, VPC Flow Logs 같은 유료 자원은 여기서는 사용하지 않는다. 보안 그룹은 의도적으로 느슨하게 구성한다.추후 이 네트워크 위에 EC2를 올리고 웹 애플리케이션을 배포..

[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..