먼저 문제 파일로 주어진 ssp_000.c 파일의 코드 분석을 진행했다. ✅ 문제 코드 분석initialize() 함수: 입력 및 출력 버퍼를 비활성화하고, SIGALRM 시그널을 처리하는 alarm_handler() 함수를 넣어준다. 이 시그널 핸들러는 "TIME OUT" 메시지를 출력하고 프로그램을 종료한다.get_shell() 함수: /bin/sh 쉘을 실행하는 system() 함수를 호출한다.main() 함수: 초기화를 수행하고, 0x40 바이트 크기의 버퍼인 buf를 선언합니다. 그 후, 사용자로부터 최대 0x80 바이트를 읽어 buf에 저장하고 있다.위 함수를 바탕으로 사용자로부터 메모리 주소와 값을 입력받아 해당 메모리 주소에 값을 쓰고 있다. 이때, 해당 부분에서 사용자가 임의의 메모리 주..
어셈블리어와 x86-64(1) 어셈블리 언어기계어와 치환되는 언어로, CPU에 사용되는 ISA (명령어 집합구조)의 종류만큼 많은 수의 어셈블리어가 존재한다. (2) x86-64 어셈블리✅ 기본구조: x64 어셈블리 언어는 우리가 사용하는 한국어보다는 훨씬 단순한 문법 구조를 지닌다.▶ 동사에 해당하는 명령어(Opcode), 목적어에 해당하는 피연산자(Operand)로 구성된다. ✅ 명령어데이터 이동 : mov, lea산술 연산 : inc, dec, add, sub논리 연산 : and, or, xor, not비교 : cmp, test분기 : jmp, je, jg스택 : push, pop프로시져 : call, ret, leave시스템 콜 : syscall (3) 피연산자✅ 피연산자의 종류상수레지스터메모리..
리눅스 프로세스의 메모리 구조(1) 세그먼트: 리눅스에서는 프로세스의 메모리를 크게 5가지의 세그먼트로 구분한다.(** 세그먼트 : 적재되는 데이터의 용도별로 메모리의 구획을 나눈 것) 세그먼트의 장점)- 운영체제가 메모리를 용도별로 나누면, 각 용도에 맞게 적절한 권한을 부여할 수 있다- 권한은 읽기, 쓰기, 그리고 실행이 존재하며, CPU는 메모리에 대해 권한이 부여된 행위만 할 수 있다 1. 코드 세그먼트실행 가능한 기계 코드가 위치하는 영역으로 텍스트 세그먼트라고도 불림프로그램이 동작하려면 코드를 실행할 수 있어야 하므로 이 세그먼트에는 읽기 권한과 실행 권한이 부여됨반면 쓰기 권한이 있으면 공격자가 악의적인 코드를 삽입하기가 쉬워지므로, 대부분의 현대 운영체제는 이 세그먼트에 쓰기 권한을 제거..
컴퓨터 구조와 명령어 집합 구조(1) 컴퓨터 구조[ 컴퓨터 구조(Computer Architecture)란? ]컴퓨터가 효율적으로 작동할 수 있도록 하드웨어 및 소프트웨어의 기능을 고안하고, 이들을 구성하는 방법 1. 기능 구조의 설계: 컴퓨터가 효율적인 연산을 위해 어떤 기능들이 필요한지 고민하고 설계종류) 폰 노이만 구조, 하버드 구조, 수정된 하버드 구조 2. 명령어 집합구조: CPU가 처리해야하는 명령어를 설계하는 분야종류) ARM, MIPS, AVR, 인텔의 x86 및 x86-64 3. 마이크로 아키텍처 → CPU의 하드웨어적 설계: 명령어 집합을 효율적으로 처리할 수 있도록, CPU의 회로를 설계종류) 캐시 설계, 파이프라이닝, 슈퍼 스칼라, 분기 예측, 비순차적 명령어 처리 4. 하드웨어 및..
AWS: CredentialsAWS 자격 증명✅ AWS 사용자루트 사용자 : AWS 서비스 및 AWS 계정에 관한 모든 권한을 가짐 → AWS 계정 폐쇄도 가능IAM 사용자 : AWS IAM으로 생성되는 계정으로, 루트 사용자 또는 IAM 권한을 가진 IAM 사용자가 생성 가능 ✅ 접근 정책1. 자격 증명 기반 정책 (Identity-based Policy): 주체가 할 수 있는 행동을 정의하는 것으로, 생성된 정책은 특정 주체와 연결되어 대상의 행동을 제어할 수 있음 ▶ AWS Identity Access Management (IAM)에서 자격 증명 기반 정책 설정가능[ 구성 요소 ]사용자 : IAM 사용자사용자 그룹 : 정책 관리자가 생성하는 사용자 계정의 집합 → 그룹에 정책 설정 시, 해당 그룹 ..
Amazon Web ServiceAWS의 인프라를 활용하면 사용자는 높은 가용성과 뛰어난 네트워크 접근성을 지닌 애플리케이션을 구축할 수 있다.AWS는 기초적인 IaaS부터 높은 수준의 PaaS에 이르기까지 매우 많은 수의 클라우드 서비스를 제공하고 있다.AWS의 각 서비스는 다양한 보안 규정을 준수하도록 설계되었으며, 아마존은 이들에 대해 높은 가용성, 보안성, 확장성 등을 보장하고 있다.만약 AWS의 잘못된 서비스 구현으로 인해 보안 사고가 발생한다면, 그 책임은 AWS에게 있다. 그러나 사용자의 잘못된 클라우드 사용으로 인해 보안 사고가 발생한다면, 그 책임은 사용자에게 있다. 핵심 서비스연산Amazon EC2 : AWS를 대표하는 IaaS 서비스로, 사용자가 요청하는 사양의 서버를 프로비져닝 해..