2018년도에 작성된 OWASP Internet of Things(IOT) TOP 10 1. 쉽게 추측할수있거나 하드코딩되어있는 비밀번호 2. 안전하지 않은 네트워크 서비스 3. 안전하지 않은 에코시스템 인터페이스 4. 취약한 업데이트 메카니즘 5. 취약하거나 업데이
임베디드 기기에 주로 사용되는 RISC 프로세서저전력을 사용하도록 설계됨 → 모바일 기기 또는 IoT 디바이스에 사용됨Thumb 모드 레지스터 : R0 ~ R7 (8개) 기계어 코드 길이 : 16bit(2byte) ARM 모드 레지스터 : R0 ~ R15 (16
현재 4학년인 난 졸업을 기다리며 취업을 준비해야하는 시기이다. 올해 정보처리기사 자격증을 땃지만 회사에서 원할정도로 준비가 되었다고 생각하지는 않았기 때문에 따로 공부를 하거나 부트캠프같은곳을 준비할려했었다. 기존에 BOB를 생각하고있었으나 여건상 학교 막학기를 다녔
스택 버퍼 오버플로우는 보안을 공부하지 않은 개발자들도 알만큼 유명하고 역사가 오래된 취약점이다. 스택 오버플로우와 스택 버퍼 오버플로우의 차이점스택의 버퍼에서 발생하는 오버 플로우를 뜻한다. 이를 이해하기 위해서는 먼저 버퍼와 오버플로우의 개념을 알아야한다.버퍼는 일
이번 회차에서는 RELRO 보호기법을 공부해볼 것이다. 이전에 배웠던 background:Library에서 ELF는 GOT를 활용하여 반복되는 라이브러리 함수의 호출 비용을 줄인다 배웠다. GOT를 채우는 방식은 다양한데, 전에 배운 방법은 처음 호출될때 함수의 주소를
방학이란 긴 시간동안 교수님이 내신 코드 문제를 풀고 남은 한달을 드림핵에서 시스템 해킹을 나름 열심히 이해하고 내껄로 만들려고 노력했다. 지금부터 정리하는건 이번 한달동안 내머리속에 습득했던것들을 안보고 기억나는대로 설명해볼것이다. 리눅스에서 쉘을 통해 명령어를 입력
스택의 반환 주소를 덮는 공격은 스택 카나리, NX, ASLR이 도입되며 점점 어려워졌다. 공격 기법은 셸 코드의 실행에서 라이브러리 함수의 실행으로, 그리고 다수의 리턴 가젯을 연결해서 사용하는 Return Orinted Programming(ROP)로 발전했다.NX
여태 공부했던 공격기법과 보호기법을 순서대로 정리해보면 다음과 같다.Return Address Overwrite : 반환 주소를 악성함수의 주소로 덮어서 셸 획득Stack Canary : 스택 프레임의 반환 주소 전에 랜덤한 카나리를 주입하여 반환 주소를 덮기 어렵게
라이브러리는 컴퓨터 시스템에서, 프로그램들이 함수나, 변수를 공유해서 사용할 수 있게 한다. 대개의 프로그램은 서로 공통으로 사용하는 함수들이 많다. 예를 들어, printf, scanf, strlen, memcpy, malloc등은 많은 C프로그래머들이 코드를 작성하
Address Space Layout Randomization(ASLR)은 바이너리가 실행될때마다 스택, 힙, 공유 라이브러리등을 임의의 주소에 할당하는 보호 기법이다.스택, 힙, 라이브러리 함수, 코드영역 함수, 라이브러리 매핑주소들을 보면 특징을 알수있다.코드영역의
RAO에서 스택의 반환 주소를 조작하여 실행 흐름을 획득하는 공격 기법을 배웠다. 스택 버퍼 오버플로우를 이용한 공격은 매우 강력하면서, 역사가 오래되었기 때문에 관련된 보호 기법도 등장했다. Canary는 스택 버퍼 오버플로우로부터 반환주소를 보호하는 기법이다.스택
함수 호출 규약은 함수의 호출 및 반환에 대한 약속이다. 한 함수에서 다른 함수를 호출할 떄, 프로그램의 실행 흐름은 다른 함수로 이동한다. 그리고 호출한 함수가 반환하면, 다시 원래 함수로 돌아와서 기존의 실행 흐름을 이어나간다. 그러믈호 함수를 호출할 때는 반환된
해킹분야에선 상대 시스템을 공격하는것을 익스플로잇(Exploit)이라고 부른다. 이 커리큘럼에서는 9가지 공격기법을 배우는데 이 코스에서는 셸코드를 소개한다.익스플로잇을 위해 제작된 어셈블리 코드 조각을 일컫습니다.일반적으로 셸을 획득하기 위한 목적으로 셸코드를 사용한
x64 아키텍쳐에서 다음의 명령어로 스택을 조작한다.push val : val을 스택 최상단에 쌓음밸류 0x31337을 0x7fffffffc400에서 연산인 8을 뺀 0x7fffffffc3f8(주소)에 넣는다.push reg : 스택 최상단의 값을 꺼내서 reg에 대입
기계어는 0과 1로 구성된다. 단어위주로 문장을 구사하는 우리한테는 이해하기 매우 어렵다. 그래서 과학자 중 한 명인 David Wheeler은 EDSAC를 개발 하면서 어셈블리어와 어셈블러를 고안해냈다.어셈블러는 개발자들이 어셈블리어(C언어 같은 프로그래밍 언어)로
CPU역할 : 실행할 명령어와 명령어 처리에 필요한 데이터를 메모리에서 읽고 ISA(Instruction Set Architecture, 명령어 집합 구조)에 따라 이를 처리합니다.그리고 연산의 결과를 다시 메모리에 적재한다.CPU의 동작과 메모리는 밀접한 관계를 가지