목차
16 처지: 메모리 보안, 객체 (컴퓨터 과학), 객체 지향 프로그래밍, 가상 메소드 테이블, 가상 함수, 버퍼 오버플로, 권한 확대, 깨진 링크, 널 포인터, 포인터 (프로그래밍), 참조 횟수 계산 방식, 컴퓨터 프로그래밍, 쓰레기 수집 (컴퓨터 과학), 세그멘테이션 오류, LLVM, Valgrind.
- 소프트웨어 버그
- 취약점 공격
메모리 보안
메모리 보안(Memory safety)은 소프트웨어 개발에서 고려하는 것으로서, 버퍼 오버플로와 허상 포인터 같은 (RAM 접근을 다루는) 보안 취약점을 유발시킬 수 있는 소프트웨어 버그들을 회피할 목적으로 이루어.
객체 (컴퓨터 과학)
학에서 객체 또는 오브젝트(object)는 저장공간에서 할당되어 값을 가지거나 식별자에 의해 참조되는 공간을 의미하며, 변수, 자료 구조, 함수 또는 메소드가 될 수 있. 프로그래밍 언어는 변수를 이용해 객체에 접근하므로 객체와 변수라는 용어는 종종 함께 사용.
객체 지향 프로그래밍
객체 지향 프로그래밍()은 컴퓨터 프로그래밍의 패러다임의 하나이.
가상 메소드 테이블
상 메소드 테이블(virtual method table, virtual function table, virtual call table, 디스패치 테이블, vtable, 또는 vftable)은 동적 디스패치(또는 런타임 메소드 바인딩)를 지원하기 위해 프로그래밍 언어에서 사용되는 메커니즘이.
가상 함수
객체 지향 프로그래밍에서, 가상 함수(virtual function 또는 virtual method)는 상속하는 클래스 내에서 같은 시그니처의 함수로 오버라이딩 될 수 있는 함수 또는 메소드이.
버퍼 오버플로
버퍼 오버플로() 또는 버퍼 오버런(buffer overrun)은 메모리를 다루는 데에 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점이.
권한 확대
확대 (privilege excalation)는 보통 애플리케이션이나 사용자에 대해 보호되는 자원들에 대한 상승된 접근을 얻기 위해서 운영체제나 소프트웨어 애플리케이션에서 버그나 설계결함, 또는 설정을 익스플로잇하는 행동을 말. 이것에 의한 결과는 애플리케이션이 개발자나 시스템 관리자가 의도한 것보다 높은 수준의 권한을 얻어서 비허가 행동을 할 수 있.
깨진 링크
링크(broken link) 또는 죽은 링크(dead link)는 영구적으로 이용할 수 없는 웹 페이지나 서버를 가리키고 있는 월드 와이드 웹 상의 링크를 말. 깨진 링크에 들어갈 때의 가장 일반적인 결과는 바로 웹 서버가 응답하지만 특정한 페이지를 찾을 수 없을 때에 나타나는 404 오류이.
널 포인터
인터(null pointer)는 유효한 객체를 참조하지 않는 포인터를 나타내기 위해 예약된 값을 갖. 프로그램들은 일상적으로 알려지지 않은 길이를 가진 리스트의 끝이나 특정한 행동 수행 실패 같은 조건들을 표현하기 위해 널 포인터를 사용한다; 널 포인터들의 이러한 사용은 Nullabe 타입들, 옵션 타입에서의 Nothing 값과 비교될 수 있.
포인터 (프로그래밍)
인터(pointer)는 프로그래밍 언어에서 다른 변수, 혹은 그 변수의 메모리 공간주소를 가리키는 변수를 말. 포인터가 가리키는 값을 가져오는 것을 역참조.
참조 횟수 계산 방식
조 횟수 계산 방식(reference counting)은 메모리를 제어하는 방법 중 하나로, 쓰레기 수집의 한 방식이.
컴퓨터 프로그래밍
밍() 또는 간단히 프로그래밍(programming) 혹은 코딩(coding)은 하나 이상의 관련된 추상 알고리즘을 특정한 프로그래밍 언어를 이용해 구체적인 컴퓨터 프로그램으로 구현하는 기술을 말. 프로그래밍은 기법, 과학, 수학, 공학적 속성들을 가지고 있.
쓰레기 수집 (컴퓨터 과학)
쓰레기 수집(가비지 컬렉션, GC)은 메모리 관리 기법 중의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능이.
세그멘테이션 오류
세그멘테이션 결함(Segmentation Fault)은 컴퓨터 소프트웨어의 실행 중에 일어날 수 있는 특수한 오류이.
LLVM
LLVM(이전 이름: Low Level Virtual Machine)은 컴파일러의 기반구조이.
보다 허상 포인터와 LLVM
Valgrind
Valgrind(밸그라인드)는 리눅스 기반의 오픈소스 (GPL 라이선스) DBI 도구이.
참고하세요
소프트웨어 버그
- 2000년 문제
- 2003년 미국 북동부 대정전
- 2038년 문제
- Bush hid the facts
- 경쟁 상태
- 교착 상태
- 글리치
- 매리너 1호
- 메모리 누수
- 메모리 보안
- 무한 루프
- 버퍼 오버리드
- 버퍼 오버플로
- 버퍼 오버플로 보호
- 보안 버그
- 셸쇼크
- 소프트웨어 버그
- 스택 버퍼 오버플로
- 스택 오버플로
- 스테이지프라이트
- 클라우드블리드
- 하이젠버그
- 하트블리드
- 핸들 누수
- 허상 포인터
취약점 공격
- DNS 스푸핑
- NOP 슬라이드
- Return-to-libc 공격
- 가상 머신 탈출
- 경쟁 상태
- 널 문자
- 널 세션
- 동적 링커
- 드라이브 바이 다운로드
- 레지스터 스프링
- 메모리 보안
- 멜트다운 (버그)
- 반환 지향형 프로그래밍
- 버퍼 오버리드
- 버퍼 오버플로
- 버퍼 오버플로 보호
- 보이스 피싱
- 부적절한 입력 검증
- 셸쇼크
- 스택 버퍼 오버플로
- 스테이지프라이트
- 스펙터 (버그)
- 워 드라이빙
- 워너크라이
- 이터널블루
- 취약점 공격
- 취약점 공격 도구
- 취약점 관리
- 컴퓨터 바이러스
- 클라우드블리드
- 파밍
- 페이로드 (컴퓨팅)
- 포맷 스트링 버그
- 포트 스캔
- 하트블리드
- 허상 포인터
- 힙 오버플로