LAND ATTACK 이란? 인위적으로 송신지 IP 주소 및 포트를 목적지의 것과 동일하게 설정하여 트래픽을 전송하는 공격 SYN FLOODING 처럼 사용자 수가 계속해서 증가한다. 응답을 보내줘야 하는데 자기 자신이 송신자로 지정돼있으니 응답을 계속해서 자신에게 보내주면서 CPU 부하가 걸림 -> 서비스를 받을 수 없게됨 보안대책 SYN FLOODING 처럼 TCP 패킷을 분석 해줘야 하고 SYN COOKIE(SYN 차단 시스템)을 이용해 차단 해주어야 한다.
DOS공격이란? 쉽게 말해서 서비스 거부 공격으로 시스템이나 네트워크 자원을 소모하도록 해 서비스를 불가능하게 하는 공격이다. ex) Syn attack, DDOS, LAND ATTACK 오늘 정리해볼건 TCP SYN ATTACK - SYN FLOODING 이다. TCP SYN ATTACK (SYN FLOODING) SYN FLOODING 과 같은 뜻 쉽게 말하면 다량의 SYN 패킷을 서버로 전달하여 서버의 대기큐를 가득채워 새로운 클라이언트와의 연결요청을 무시하도록 장애를 유발시키는 기법으로 서버의 half-open 상태를 야기시킨다. 여기서 half-open 상태란 tcp 의 통신 방법인 3 way-hand shaking 방법에서 두 호스트가 정상적으로 동기화 되지 않은 상태를 말한다. 정상적인 상태..
CPU의 명령 실행주기 명령어 처리란? - 하나의 명령어 실행이 끝난 후, 다음 명령어의 수행이 시작돼 끝날때까지 걸리는 시간을 말한다 - 한 명령이 실행되고 다음 명령의 인출이 시작되는 주기이다 이런 실행주기를 Instrucktion Cycle 이라고 하고 이에는 4계의 단계가 있다. 기능 부가설명 FETCH(인출) 메모리에서 명령을 읽어 명령어 레지스터에 저장한다 -> 다음 명령어를 실행하기 위해 카운터(PC)를 증가시킨다. INDIRECT(간접) 명령어를 수행하기 전에 실제 데이터가 저장된 주기억장치의 유효주소를 한번 더 읽어 옴 간접주소 방식을 사용할때 실행 EXECUTION(실행) 인출한 명령어를 해독, 제어신호를 발생시켜 명령어 실행 INTERRUPT(인터럽트) 실행 사이클이 끝나고 인터럽트 ..
일단 먼저 본론으로 들어가기 전에 시스템이란 하드웨어, 소프트웨어의 결합체다. 그리고 하드웨어의 구성 요소에는 메모리, 프로세서(CPU), 주변장치, 시스템 버스 등으로 구성돼 있는데 이 중 중앙처리 장치에 대해 알아보려고 한다. 중앙처리장치 - 프로세서(CPU) CPU 는 운영체제와 가장 밀접한 장치로서 컴퓨터의 모든 장치의 동작을 제어하고 연산을 수행한다. 또한 4대 주요 기능으로는 연산,제어,기억,해석이 있다. 그렇다면 이런 CPU는 어떻게 구성돼있을까? -> 크게 레지스터, ALU, 시스템 버스로 이루어져 있는데 먼저 레지스터 부터 보겠다. 레지스터 용도에 따른 분류 전용 레지스터 범용 레지스터 정보 변경 가능 여부에 따른 분류 사용자 가시 레지스터 사용자 불가시 레지스터 저장하는 정보의 종류에 ..
1. AWS Conginto API를 이용한 계정 획득 https://hackerone.com/reports/1342088 Flickr disclosed on HackerOne: Flickr Account Takeover using AWS... hackerone.com https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/ Flickr Account Takeover This post gives a deep dive into a critical security flaw that was present in Flickr’s login flow. The authentication at identity.flickr.com is implem..
알아볼 명령어 pwd, ls, touch, mkdir, cd, cat, rm, rmdir A. pwd pwd 는 현재 디렉토리 위치를 출력해준다. B. ls ls 는 기본적으로 디렉토리 내용을 출력해주는 명령어로 기본 구조는 ls [옵션] [위치] 입니다. 1. ls -a : 디렉토리의 숨겨진 파일을 포함하여 모두 출력 2. ls -l : 디렉토리의 세부사항까지 출력 3. ls -R : 현재 디렉토리의 하위 디렉토리파일까지 함께 출력 C. cd cd 는 파일을 이동하는 명령어로 cd [이동할 위치] 형식으로 사용합니다. 현재 디렉토리 안에서 하위 디렉토리의 파일이름을 입력하거나 절대경로와 상대경로를 통해서 이동도 가능합니다. 1. cd ~ : home 디렉토리로 이동 2. cd ../ : 상위 디렉토리로..
구조체는 왜 사용하는가? 코드를 짜게 될때 지금까지 우리가 아는 상식으론 여러 정보를 입력받고 싶다면 받고싶은 정보마다 배열을 짜야합니다. 이럴경우 변수도 너무 많이 선언해야하고 메모리도 너무 많이 차지하게 됩니다. 따라서 이런 문제를 해결하고자 구조체를 이용합니다. 구조체 선언과 이용 구조체는 위의 코드 사진처럼 struct 구조체 이름 { 안의 인자값; 안의 인자값; }; 이런 형식으로 선언하게 된다. 또한 사용할때는 위의 사진처럼 선언해줄때처럼 struct 구조체 이름을 쓴 후 사용할 구조체 변수를 써준다. 또한 안의 구조체 인자값에 접근하기 위해 '.' 을 사용해준다. 포인터 변수도 선언해줄 수 있는데 그것은 다음에 다루도록 하겠다. struct 선언해준 구조체 이름 구조체 변수 이름; 구조체 변..
스택프레임이란? 스택프레임이란 함수마다 가지는 별도의 스택 공간으로 메모리 스택은 높은 주소에소 낮은 주소로 내려간느 스택 구조를 지닙니다. 또한 rsp가 아니 rbp를 이용하여 디버깅할때 스택 내의 지역 변수, 파라미터, 복귀 주소에 접근하는 기법을 말합니다. (( rsp, rbp 레지스터에 대한 내용은 전 글 어셈블리어 레지스터에 정리돼있습니다. )) 스택 프레임의 레지스터 구성 rbp, rsp , sfp, rip,ret 등이 있습니다. 전 글에 정리돼 있지않는 레지스터만 설명하도록 하겠습니다. sfp : 함수 에필로그에서 rbp가 push 할 때 이전 rbp 값을 저장해놓는 장소. ret : 함수 호출 다음에 실행할 코드의 주소를 담고 있는 있는 값입니다. ret는 pop rip,jmp rip로 구..
레지스터란 CPU 내에서 데이터를 일시적으로 저장하는 작고 빠른 저장 장소(기억 장치)로 다양한 종류가 있다. 범용레지스터 먼저 레시스터들 중 범용레지스터란 말 그대로 용도를 특별히 정해두지않고 다양하게 쓸 수 있는 레지스터를 뜻한다. 범용레지스터에는 8개(x64 에서는 16개)의 종류가 있고 운영체제에 따라 이름이 조금씩 변하는데 16bit일 경우 : ax,bx,cx,dx ~ 32bit일 경우 : eax,ebx,ecx,edx ~ 64bit일 경우 : rax,rbx,rcx,rdx ~ 이런식으로 표기하게 된다. x64의 구조로 레지스터들의 역할을 알아보겠다. rax : 함수가 실행된 후 리턴값을 저장합니다. → 반환되기 전까지 범용 레지스터로 자유롭게 사용된다. rcx,rdx,r8,r9 : 범용 레지스터들..