본 포스팅은 DreamHack 사이트의 시스템 해킹 기초 강의 내용을 요약한 것입니다.

이 글은 저의 취향에 맞춘 정리글이므로 Dreamhack 사이트의 내용을 보시기 바랍니다.

https://dreamhack.io/

 

해커들의 놀이터, DreamHack

해킹과 보안에 대한 공부를 하고 싶은 학생, 안전한 코드를 작성하고 싶은 개발자, 보안 지식과 실력을 업그레이드 시키고 싶은 보안 전문가까지 함께 공부하고 연습하며 지식을 나누고 실력 향상을 할 수 있는 공간입니다.

dreamhack.io


 

해킹의 분류

1. 웹 해킹: 웹 사이트를 공격함

2. 네트워크 해킹: 네트워크를 공격함

3. 시스템 해킹: 프로그램의 약점을 공격함

해킹: 단순히 규칙을 창조적으로 활용해 의도치 않은 결과를 얻어내는 일련의 행위

소프트웨어 버그: 프로그램이 잘못된 결과를 내거나, 오류를 발생하는 등의 의도치 않은 동작을 수행하게 되는 문제

소프트웨어 취약점: 공격자가 주어진 권한 이상의 권한을 획득하거나 프로그래머가 의도하지 않은 동작을 수행할 수 있도록 하는 소프트웨어 버그

소프트웨어 취약점이 발생하는 원인

-프로그래머의 실수

-개발자의 잘못된 가정(항상 올바른 입력이 들어올 것이라는 잘못된 믿음)

ex) 하트블리드 취약점

Exploit: 취약점을 이용해 공격자가 의도한 동작을 수행하게 하는 코드 or 이를 이용한 공격행위

소프트웨어 버그의 분류

Bug: 프로그래머가 의도하지 않은 동작 수행

Vulnerability: Bug 중 보안에 영향을 미칠 수 있는 Bug

Exploitable Vunerability: 취약점 중 공격자가 의도한 동작을 수행할 수 있는 Bug

Reliably Exploitable Vunerability: Exploite 가능한 취약점 중 매우 높은 확률로 공격에 성공할 수 있는 버그

Attack Vector: 공격자가 소프트웨어와 상호 작용할 수 있는 곳

ex) 입력창

Attack Surface: Attack Vector의 집합

취약점의 분류

1. 메모리 커럽션 취약점: C/C++과 같은 저수준 언어에서 메모리를 조작해 공격

-Buffer Overflow: 프로그래머가 할당한 크기의 버퍼보다 더 큰 데이터를 입력받아 메모리의 다른 영역을 오염시킬 수 있음

-Out Of Boundary: 버퍼의 길이범위를 벗어나는 곳의 데이터에 접근할 수 있는 취약점

-Off by One: 경계 검사에서 하나 더 많은 값을 쓸 수 있을 때 발생하는 취약점, 반복문을 순회할 때 잘못된 비교연산자를 사용하거나 인덱스가 0부터 시작하는 것을 고려하지 못했을 때 자주 발생

-Format String Bug: printf/scanf와 같은 함수에서 포멧 스트링 문자열을 올바르게 사용하지 못해 발생

-Double Free / Use After Free: 동적 할당된 메모리를 정확하게 관리하지 못했을 때 발생

-etc...

2. 로지컬 취약점: 메모리를 조작할 필요 없이 공격 가능

-Command Injection: 사용자의 입력을 셸에 전달해 실행할 때 검사를 실행하지 않아 발생

-Race Condition: 여러 스레드나 프로세스의 자원 관리를 정확히 수행하지 못해 데이터가 오염됨.

-Path Traversal: 프로그래머가 가정한 디렉토리를 벗어나 외부에 존재하는 파일에 접근할 수 있는 취약점.

-etc...

미티게이션: 취약점의 공격을 어렵게 만드는 일을 함.

ex) Stack Smashing Protector(SSP) 버퍼 오버플로우 방지

'Hacking-기초 > Pwnable' 카테고리의 다른 글

Linux Exploitation & Mitigation Part 1 (1)  (1) 2020.04.13
Memory Corruption - C (2) FSB 문제해설  (1) 2020.04.11
Buffer Overflow Attack 기초(1)  (0) 2020.04.11
Memory Corruption - C (2)  (1) 2020.04.11
Memory Corruption - C (1)  (0) 2020.04.11

+ Recent posts