전체 글 58

S3 & Cloudfront

Cloud Storage를 통해서 사용자는 데이터와 파일을 인터넷에 저장하고 엑세스할 수 있다. 이를 통해, 비용을 효율적으로 사용/민첩성 향상/더 빠른 배포/ 효율적 데이터 관리를 할 수 있다.  종류는 Block storage, File storage, Object storage가 있다.  1.Block storage데이터를 블록 형태로 저장하여 빠른 검색 및 저장을 위해서 블록에 고유한 식별자를 부여하여 지연시간이 짧다.종류로는 DAN, SAN, Amazon EBS가 있다.   2. File storage데이터를 파일 및 폴더의 계층 구조로 저장하며, 어플리케이션에 가장 널리 사용된다. 네트워크 환경에서의 해당 storage는 NAS기술을 사용하며, 로컬디스크와 유사한 방식으로 엑세스한다.종류로는 ..

Cloud 2025.03.26

AWS docker-compose를 통한 서비스 구축

Docker란?Host OS의 자원 위에 docker engine을 통해 다양한 어플리케이션 실행이 가능한  container를 구현할 수 있는 기술이다. (추가)클라우딩 컴퓨팅 용어 정리컨테이너 기반 가상화OS를 통째로 가상화하는 것이 아닌, 어플리케이션이 실행되는 환경을 가상화하는 기술이다. APP실행에 필요한 요소들을 container라는 독립적인 단위로 패키징하며, kernel을 공유하며 필요한 환경만 가상화한다. 리소스를 덜 사용하므로 빠르고 가볍다 !(HW >> Host OS >> Container runtime engine >> container)예 ) K8s, docker  하이퍼바이저 기반 가상화하이퍼바이저는 하나의 OS에서 여러 개의 가상머신(VM)을 실행할 수 있도록 하는 소프트웨어 ..

클라우드 서비스와 보안의 이해

클라우드 서비스SaaS(software as a service)사용자가 별도로 설치할 필요 없이, 인터넷을 통해 소프트웨어를 서비스 형태로 제공하는 모델Gmail, Outlook Google Drive, Dropbox Slack, Microsoft Teams PaaS애플리케이션을 개발하고 실행할 수 있는 플랫폼을 제공하는 모델AWS Elastic Beanstalk Heroku IaaS서버, 스토리지, 네트워크 등 IT 인프라를 가상화하여 제공하는 모델Amazon EC2Microsoft Azure Virtual MachinesFaaS서버를 직접 관리하지 않고, 코드(함수) 단위로 실행할 수 있는 서비스AWS Lambda Google Cloud Functions   AWS 공동 책임 모델 (IaaS)고객사 ..

VPC와 Route 53

Route 53AWS의 DNS 서비스로 다음의 기능을 구현한다.     ● DNS(네임서버) + port 모니터링(Health Check) + L4(Failover 기능)+ GSLB(라우팅 정책)    ● 도메인을 타겟으로 분산 처리 (load balancing) 통신 과정 ● client가 네트워크 접속 후에  aws.amazon.com 접속 시도DHCP →  ARP  →  DNS →  TCP → HTTP/HTTPS DHCP를 통해 기기에 고유한 IP를 할당하여 네트워크에 접속한 후에ARP를 통해 해당 IP와 MAC주소를 mapping한다.  이후, client가 aws.amazon.com 접속 시도 시에 DNS 서버를 통해 해당 사이트의 IP를 할당받는다. 이떄, DNS는 분산형 데이터베이스 시스템으..

Cloud 2025.03.19

VPC, Route 53

가. VPC 구성우리가 구성할 아키텍쳐는 다음과 같다. 1. VPC생성2. 해당 VPC내에 2개의 AZ(2a,2c) 생성 후, 각각의 영역에 2개의 subnet (public/private) 생성 3. AZ-2a에 public/private EC2 인스턴스 생성 4. IGW 생성 및 VPC에 연결IGW를 통해 VPC와 외부 연결 5. 라우팅 테이블 생성각각의 서브넷에 라우팅 테이블 생성public 서브넷에 public 서브넷 삽입 6. Public 라우팅테이블에 IGW 추가 나. Nat Gateway을 통해 Private Subnet에서 인터넷 통신 구현0. 통신 흐름2c AZ의 인스턴스 >> Nat Gateway >> IGW >> 외부 인터넷 1. NAT gateway생성2c의 public su..

Cloud/ACC 2025.03.18

ptmalloc2 allocator | Heap Allocator Exploit

ptmalloc2의 구현 목표  1. 메모리 낭지 방지-  메모리 할당 요청이 발생하면, 먼저 해제된 메모리 공간 중에서 재사용할 수 있는 공간이 있는지 탐색한다.- 해제된 메모리 공간들 중 동일한 사이즈의 메모리가 요청되면 재사용하며, 작은 크기의 할당이 요청되면 해제된 메모리 공간을 나누어 주기도 한다. 2. 빠른 메모리 재사용-  특 정 메모리 공간을 해제한 이후에 이를 빠르게 재사용하려면 해제된 메모리 공간의 주소를 기억하고 있어야 한다.이를 위해 ptmalloc은 메모리 공간 해제 시, tcache 또는  bin이라는 연결 리스트에 해제된 공간의 정보를 저장한다. 3. 메모리 단편화 방지- 내부/외부 단편화를 줄이기 위해 정렬, 병합, 분할을 사용한다.- ptmalloc은 64bit 환경 기준,..

System Hacking 2024.05.11

_IO_FILE

(+ubuntu 18.04 환경 구축) _IO_FILE 리눅스 시스템의 표준 라이브러리에 속하는 내부 구조체이며 파일 스트림을 나타내기 위한 구조체 : fopen 함수 사용 시, _IO_FILE은 heap 영역에 할당 : fopen >> 파일 포인터 반환 >> 인자로 사용 struct _IO_FILE_plus { FILE file; const struct _IO_jump_t *vtable; }; struct _IO_FILE { int _flags;/* High-order word is _IO_MAGIC; rest is flags. */ /* The following pointers correspond to the C++ streambuf protocol. */ char *_IO_read_ptr;/* Cu..

System Hacking 2024.03.30

SigReturn-Oriented Programming

Signal 시그널 프로세스에 특정 정보를 전달하는 매개체 : signal 발생 >> 해당 코드가 커널 모드에서 실행 >> 유저 모드 복귀 (운영체제 :: 커널 / 유저 모드가 상호작용하며 프로세스 생성 및 실행) *+--------------------+------------------+ *| POSIX signal | default action | *+--------------------+------------------+ *| SIGHUP | terminate| *| SIGINT |terminate| *| SIGQUIT |coredump | *| SIGILL |coredump | *| SIGTRAP |coredump | *| SIGABRT/SIGIOT |coredump | *| SIGBUS |cor..

System Hacking 2024.03.30

linux library exploit :: __environ

환경변수 : 시스템의 정보를 가지고 있는 동적인 값, 사용자가 추가 및 수정, 삭제 가능 : 환경변수에 대한 정보는 스택 영역에 존재 : 명령어 > 환경변수에 명시된 "/bin", "/usr/bin" 등의 디렉터리를 통해 명령어 접근 및 실행 라이브러리 실행 시에도 환경변수를 참조 (== 포인터 선언 존재) >> 스택 주소 획득 ! (바이너리 내에서 스택 주소를 찾는 것은 거의 불가능) 전역 변수 __environ : execve 계열 함수와 getenv 등 혼경변수와 관련된 함수에서 참조하는 변수 __environ - amd64-64 - full RELRO, canary, nx, pie 싹 다 적용 코드 #include #include #include #include #include void sig_h..

System Hacking 2024.03.29