전체 글
-
네트워크 통신 흐름Network 2021. 5. 2. 23:01
통신 흐름을 보기 전에 네트워크 계층 개념을 정리한 포스팅을 먼저 보는 것을 권장한다. 사용자가 웹 브라우저에 url을 입력하는 순간부터 데이터가 어떻게 흘러가는지, 네트워크 통신 흐름을 정리하였다. 1. 웹 브라우저가 http 메세지를 만든다. ① 사용자가 입력한 url 해독 브라우저는 사용자가 입력한 url에 대해서 해독을 한다. ② http 프로토콜 사용하여 웹 서버에 액세스 #1 c → s 요청 M 만들기 '무엇을' '어떻게 해서' 하겠다 라는 메세지를 만든다. '무엇을'은 uri로, 액세스 대상을 총칭하며, '어떻게 해서' 는 메소드로, 웹서버에 어떤 동작을 하고 싶은 지를 의미한다. http 메소드에는 get / post / put / delete 가 있다. * get과 post 메소드의 차이..
-
네트워크 계층 개념 정리(OSI 7계층)Network 2021. 4. 6. 17:06
네트워크 계층 # OSI 7계층 패킷 송수신 동작을 설명하기에 앞서, osi 7계층을 정리해보고 가보자. osi 7계층은 네트워크 통신이 이루어지는 단계를 7단계로 나눈 것이다. 또한 네트워크 통신을 위한 부품들의 표준이 된다. 서로 다른 부품들을 가지고서 하나의 네트워크를 구성하기 위해서 필요한 개념인 것이다. 예를 들어 A사 자동차의 바퀴가 고장났을 때 B사의 바퀴로 교체해 수리할 수 있는 것처럼, 네트워크의 일부분이 고장이 났을 때 OSI 7계층의 표준을 갖춰서 오류를 고치면 된다는 것이다. 사용자가 데이터를 전송한다고 하면, app단에서의 데이터가 각 레이어마다 인식할 수 있는 헤더를 붙이며 점점 1계층으로 가는 과정을 Encapsulation 이라 한다. 그 반대로 데이터를 수신하는 과정은 De..
-
[Linux Exploitation & Mitigation]-ASLR / PLT,GOTSystem Security/dreamhack 2021. 3. 16. 00:24
* 드림핵 공부한 후 정리한 내용이다. 1. ASLR Address Space Layout Randomization은 바이너리가 실행될 때마다 라이브러리, 힙, 스택 영역 등의 주소가 랜덤하게 바뀌도록 해 RTL처럼 고정된 주소값을 이용하는 공격을 막기 위한 메모리 보호 기법이다. aslr은 서버의 설정 파일에 의해 보호 기법 적용이 결정된다. 더보기 /proc/sys/kernel/randomize_va_space 를 확인해 적용 여부를 확인할 수 있다. 0 : 적용 x 1: 스택, 힙 메모리 랜덤화 2: 스택, 힙, 라이브러리 메모리 랜덤화 aslr을 적용시켜 스택, 힙 , 라이브러리 메모리 주소는 랜덤화 시킬 수 있지만 코드 영역의 주소는 변하지 않는다. 이를 이용해 aslr 보호 기법을 우회해 익스..
-
[Linux Exploitation & Mitigation] NX bit / RTLSystem Security/dreamhack 2021. 3. 15. 15:12
* 드림핵 공부한 후 정리한 내용이다. 1. NX bit의 등장 return addr overwrite과 nop sled 에서는 버퍼 오버플로우 취약점을 이용해 스택에 쉘코드를 넣어 해당 쉘코드가 실행될 수 있도록 실행 흐름을 조작하는 방법을 다뤘다. 하지만 일반적인 프로그램에서는 스택을 프로그램을 실행하는 용도로 사용하지 않고 일시적으로 데이터를 읽고 쓰는 데 사용되기 때문에 실행권한이 필요하지 않다. 따라서 공격을 어렵게하기 위하여 메모리에 대해 쓰고 읽는 권한을 주지 않는 No-eXecute bit (NX bit)가 등장하였다. example2.c는 쉘코드를 데이터 영역에 저장한 후 실행시키는 예제이다. 서로 다른 컴파일 옵션을 통해 nx bit 보호 기법을 적용한 example2_nx 바이너리와,..
-
함수의 프롤로그, 에필로그개념 정리 2021. 3. 11. 15:50
1. 스택프레임 스택프레임 개념을 정리해보자. 스택 프레임이란 함수가 호출되면 스택에 쌓이는 정보들로, 함수 인자, return addr, sfp, 지역함수가 있다. 이를 스택 프레임이라 한다. 그렇다면 함수가 호출되는 과정에 대해 알아보자. 2. 함수의 호출과정 (1) 사용할 인자 값을 스택에 넣고 함수 시작 주소로 jump (2) 스택 프레임 생성 = 함수 실행 준비 과정 = 프롤로그 (3) 함수 기능 수행 (4) 사용한 스택 복원 = 자신을 호출한 곳으로 돌아가기 = 에필로그 그렇다면 프롤로그와 에필로그란 무엇인가? 자세히 알아보도록 하자. # 함수의 프롤로그 프롤로그란 호출된 함수가 실행할 준비를 하는 과정으로, 다음 명령어를 실행한다. ㅡㅡㅡㅡㅡㅡㅡㅡㅡ | push ebp | | mov ebp,..
-
시스템 해킹 기초System Security/dreamhack 2021. 3. 9. 22:38
드림핵 system exploitation fundamental을 공부하고 정리한 내용이다. 1. 취약점의 분류 익스플로잇 : 악용; 취약점을 이용해 공격자가 의도한 동작을 수행하게 하는 코드 혹은 이를 공격한 공격 행위 소프트웨어 버그 분류 버그 : 프로그래머가 의도하지 않은 동작을 수행하는 소프트웨어 버그 취약점 : 그러한 버그 중 보안에 영향을 줄 수 있는 버그 익스플로잇 가능한 취약점 : 그러한 취약점 중 이를 이용해 공격자가 의도한 동작을 수행할 수 있는 버그 안정적으로 익스플로잇 가능한 취약점 : 매우 높은 확률로 공격에 성공할 수 있는 버그 모든 sw 취약점은 sw와 공격자가 상호작용하는 곳인 사용자의 입력 에서부터 발생한다. 공격자가 sw와 상호작용할 수 있는 곳을 attack vector..