반응형


메모리 커럽션 취약점

Buffer Overflow

Out-Of-Boundary

Off-by-one

Format String Bug

Double Free / Use-After-Free

etc



Buffer Overflow

Buffer Overflow(BOF)는 메모리 커럽션 취약점 중 가장 대표적인 취약점입니다. 이는 프로그래머가 할당한 크기의 버퍼보다 더 큰 데이터를 입력받아 메모리의 다른 영역을 오염시킬 수 있는 취약점입니다. 버퍼 오버플로우는 발표된 지 30년에 가까운 시간이 흘렀지만, 아직도 공격에 자주 사용되는 취약점입니다.


Out-Of-Boundary

Out-Of-Boundary(OOB) 취약점은 버퍼의 길이 범위를 벗어나는 곳의 데이터에 접근할 수 있는 취약점입니다. 이 또한 버퍼 오버플로우와 마찬가지로 매우 강력한 취약점으로, 브라우저와 같은 대규모 최신 소프트웨어에서도 자주 발견되는 취약점입니다.


Off-by-one

Off-by-one은 경계 검사에서 하나 더 많은 값을 쓸 수 있을 때 발생하는 취약점입니다. 가령 32바이트 크기의 버퍼에 인덱스 32로 접근하는 것 같은 경우입니다. 이는 반복문을 순회할 때 잘못된 비교 연산자를 사용하거나 인덱스가 0부터 시작하는 것을 고려하지 못했을 때 자주 발생하는 취약점입니다.


Format String Bug

Format String Bug(FSB)는 printf나 sprintf와 같은 함수에서 포맷 스트링 문자열을 올바르게 사용하지 못해 발생하는 취약점입니다. 포맷 스트링 역시 매우 강력한 취약점이지만, 최신 컴파일러에서는 여러 가지 방법으로 이를 방어하고 있어 최근에는 잘 발생하지 않고 있습니다.


Double Free / Use-After-Free

Double Free와 Use-After-Free(UAF) 취약점은 동적 할당된 메모리를 정확히 관리하지 못했을 때 발생하는 취약점입니다. 이미 해제된 메모리를 다시 한번 해제하려고 시도하는 것을 Double Free, 해제된 메모리에 접근해 이를 사용하려고 하는 것을 Use-After-Free라고 합니다.




로지컬 버그

Command Injection

Race Condition

Path Traversal

etc



Command Injection

Command Injection은 사용자의 입력을 셸에 전달해 실행할 때 정확한 검사를 실행하지 않아 발생하는 취약점입니다. 이는 공격자가 원하는 명령을 실행할 수 있는 데 비해 익스플로잇이 어렵지 않아 매우 강력한 취약점입니다.


Race Condition

보안 취약점으로서의 Race Condition은 여러 스레드나 프로세스의 자원 관리를 정확히 수행하지 못해 데이터가 오염되는 취약점입니다. 레이스 컨디션은 발생 원인과 공격 방법에 따라 메모리 커럽션 취약점으로도, 로지컬 취약점으로도 분류할 수 있는 취약점입니다.


Path Traversal

Path Traversal은 프로그래머가 가정한 디렉토리를 벗어나 외부에 존재하는 파일에 접근할 수 있는 취약점입니다. 이는 주로 소스 코드에서 "../"와 같은 경로 문자를 검사하지 않아 발생합니다.




드림핵참고

https://dreamhack.io/lecture/courses/13


반응형

'보안 > 드림핵' 카테고리의 다른 글

셸코드  (1) 2020.07.20
gdb  (0) 2020.07.17
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기