시스템 해킹 보안 기초
해킹이란?
컴퓨터의 SW, HW, NW, website 등 각정 정보 체계에서 주어진 권한 이상을 얻거나 의도하지 않은 동작을 일으키는 행위를 의미
시스템 해킹이란?
컴퓨터와 컴퓨터가 연결되는 네트워크를 공격하는 네트워크 해킹, 프로그램의 약점을 공격하는 행위
소프트웨어 취약점이란?
공격자가 주어진 권한 이상의 권한을 획득하거나 프로그래머가 의도하지 않은 동작을 수행할 수 있도록하는 소프트웨어 버그를 의미
Attack Vector
[이미지 출처] 드림핵 - 시스템 해킹 기초 강좌
소프트웨어 취약점은 공격자와 소프트웨어가 상호 작용하는 곳, 즉 사용자의 입력으로부터 발생하는데 이때 상호작용하는 곳을 공격 벡터(Attack vector)라고 부른다. 그리고 이런 공격 벡터의 집합을 Attack Surface 라고 한다.
메모리 커럽션 취약점
사용중인 메모리가 다른 곳에 덮어쓰이거나 들어가지 말아야할 주소에 데이터가 들어가서 발생하는 취약점
- Buffer overflow
프로그래머가 할당한 크기의 버퍼보다 더 큰 데이터를 입력 받아 메모리의 다른 영역을 오염 시키는 취약점이다
- Out of boundary
버퍼의 길이 범위를 벗어나는 곳의 데이터에 접근할 수 있는 취약점이다
- Off by one
경계 검사에서 하나 더 많은 값을 쓸 수 있을 때 발생하는 취약점이다
- Format string bug
printf나 sprintf와 같은 함수에서 포맷 스트링 문자열을 올바르게 사용하지 못해서 발생하는 취약점이다
- Double free / Use after free
동적 할당된 메모리를 정확히 관리하지 못해 발생하는 취약점, 이미 해제된 메모리를 다시 해제하려고 하는 공격을 Double free. 해제된 메모리에 접근해 이를 사용하려고 하는 것을 Use after free라고 한다
로지컬 버그 취약점
즉시 인식되지는 않지만 의도치 않은 또는 바라지 않은 결과나 다른 행동을 유발하는 취약점
- Command Injection
사용자의 입력을 셸에 전달해 실행할 때 정확한 검사를 실행하지 않아 발생하는 취약점이다
- Race condition
여러 스레드나 프로세스의 자원 관리를 정확히 수행하지 못해 데이터가 오염되는 취약점, 발생 원인과 공격 방법에 따라 메모리 커렵션 취약점으로도, 로지컬 취약점으로도 분류할 수 있는 취약점이다
- Path traversal
소스코드에서 "../"와 같은 경로 문자를 검사하지 않아 발생하는 취약점. 프로그래머가 가정한 디렉토리를 벗어나 외부에 존재하는 파일에 접근할 수 있다
'보안' 카테고리의 다른 글
ARQ란? (0) | 2022.10.12 |
---|---|
2021. 01. 18 _ 리버스 엔지니어링이란 (0) | 2021.01.18 |
파이썬 IndentationError: unindent does not match any outer indentation level 오류 (0) | 2020.06.11 |
파이썬 ModuleNotFoundError (0) | 2020.06.05 |
파이썬 오차역 전파법 구현하기 (0) | 2020.06.05 |