검색 여닫기
검색
메뉴 여닫기
501
215
4
1.9천
noriwiki
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
파일 올리기
환경 설정 메뉴 여닫기
notifications
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
user-interface-preferences
한국어
개인 도구
로그인
Control flow integrity 문서 원본 보기
noriwiki
문서 공유하기
다른 명령
←
Control flow integrity
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
[[분류: 시스템 보안]] == 개요 == Control flow integrity (CFI)는 컴퓨터 보안에서 flow of execution즉 코드의 실행에 관한 보안을 지칭한다. == Background == Control flow란 컴퓨터 프로그램에서 Decision을 나타낸다. 이러한 Control flow는 Direct, 즉 Address를 직접 참고 하여 실행 될 수 있거나, In-direct, 즉 Address에 대한 간접 참조로 접근하는 두 모델을 가르킨다. 대부분의 함수 콜에서 프로그램은 Direct call을 수행하고 [[Stack]]에 Return하는 함수의 콜 주소를 참조하여 다시 원래의 함수로 돌아온다. 그러나, 이 상황에서 Atacker는 프로그램 코드의 임의의 부분으로 점프할 수 있는 Return함수의 콜 스택을 변조를 시도할 수 있다. 이를 통하여 Attacker는 임의의 함수를 실행, 메모리를 탈취하거나, 권한없는 함수를 실행시킬 수 도 있다. 자세한 내용은 [[ROP]]참고. == 주요 개념 == ; Control flow graph (CFG) : CFI는 프로그램의 정상적인 실행 흐름을 나타내는 제어 흐름 그래프(CFG)를 생성하여, 프로그램이 실행 중에 이 CFG를 벗어나지 않도록 보장한다. ; Verification : 프로그램이 실행 중 특정 지점에서 수행할 수 있는 제어 흐름(예: 함수 호출, 반환)이 CFG에 정의된 범위 내에 있는지 확인한다. ; Indirect Branch Protection : 함수 포인터, 가상 함수 테이블(vtable), 반환 주소와 같이 공격자가 조작할 가능성이 있는 간접 제어 흐름을 보호한다. 이상, code-pointer separation, code-pointer integrity, stack canaries, shadow stacks, vtable pointer verification등등 다양한 기법들이 존재한다.
Control flow integrity
문서로 돌아갑니다.