Return-to-libc 공격

Return-to-libc attack

'리턴 투 libc' 공격은 보통 버퍼 오버플로에서 시작되는 컴퓨터 보안 공격입니다. 공격에서는 콜 스택상의 서브루틴 리턴 주소가 프로세스 실행 가능 메모리에 이미 존재하는 서브루틴 주소로 대체되어 실행 불가능 비트 기능(존재하는 경우)을 바이패스하여 공격자에게 i를 주입할 필요가 없어집니다.r 자체 코드.야생에서의 이 공격의 첫 번째 예는 1997년 [1]알렉산더 페슬랴크Bugtraq 메일링 리스트에 올린 것이다.

POSIX 준거 운영체제에서는 C 표준 라이브러리("")libcC 프로그래밍 언어로 작성된 프로그램의 표준 런타임 환경을 제공하기 위해 일반적으로 사용됩니다.공격자가 코드를 아무데서나 돌려보낼 수 있지만libc는 거의 항상 프로그램에 링크되어 공격자에게 유용한 콜을 제공하기 때문에 가장 가능성이 높은 타깃입니다(예:system셸 명령 실행에 사용되는 함수).

Return-to-libc 공격으로부터 보호

실행 불가능한 스택은 버퍼 오버플로우 부정 이용을 막을 수 있지만 Return-to-libc 공격에서는 기존 실행 가능한 코드만 사용되므로 Return-to-libc 공격을 방지할 수 없습니다.한편, 이러한 공격은, 기존의 함수만을 호출할 수 있습니다.스택 스매시 보호는 스택의 손상을 감지하여 손상된 세그먼트를 플러시할 수 있으므로 부정 이용을 방지하거나 방해할 수 있습니다.

「ASCII 아머링」은, 이러한 종류의 공격을 막기 위해서 사용할 수 있는 기술입니다.ASCII 아머링에서는 모든 시스템 라이브러리(libc 등) 주소에 NULL 바이트(0x00) 이것은 일반적으로 첫 번째에 배치함으로써 이루어집니다.0x01010101메모리의 바이트 수('ASCII armor region'이라고 불린다)는, 이 값까지의 모든 주소에는 적어도1개의 NULL 바이트가 포함되어 있습니다.이것에 의해, 다음과 같은 문자열 조작 기능을 사용해 이러한 주소를 포함한 코드를 배치할 수 없게 됩니다.strcpy()단, 공격자가 NULL 바이트를 스택에 오버플로우하는 방법이 있는 경우 이 기술은 작동하지 않습니다.프로그램이 너무 커서 처음 16MB에 맞지 않으면 보호가 [2]불완전할 수 있습니다.이 기술은 libc로 돌아가는 대신 위치 독립 코드(예: Return-to-plt)로 로드된 Procedure Linking Table(PLT; 프로시저 링크 테이블) 함수를 사용하는 것으로 알려진 다른 공격과 유사합니다.system@plt, execve@plt, sprintf@plt, strcpy@plt를 참조해 주세요.[3]

Address Space Layout Randomization(ASLR; 어드레스 공간 레이아웃 랜덤화)을 사용하면 함수의 메모리 위치가 랜덤하므로 64비트 머신에서 이러한 유형의 공격이 성공할 가능성이 매우 낮아집니다.단, 32비트 시스템의 경우 랜덤화에 사용할 수 있는 비트는 16비트밖에 없고 [4]몇 분 만에 무차별적인 힘으로 물리칠 수 있기 때문에 ASLR은 거의 이점이 없습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Solar Designer (10 Aug 1997). "Bugtraq: Getting around non-executable stack (and fix)".
  2. ^ David A. Wheeler (27 Jan 2004). "Secure programmer: Countering buffer overflows". IBM DeveloperWorks. Archived from the original on 2013-10-18.
  3. ^ Sickness (13 May 2011). "Linux exploit development part 4 - ASCII armor bypass + return-to-plt" (PDF).
  4. ^ Shacham, H.; Page, M.; Pfaff, B.; Goh, E. J.; Modadugu, N.; Boneh, D. (October 2004). "On the Effectiveness of Address-space Randomization". Proceedings of the 11th ACM Conference on Computer and Communications Security (PDF). pp. 298–307. doi:10.1145/1030083.1030124. ISBN 1-58113-961-6. S2CID 5864467.

외부 링크