맨위로가기

임의 코드 실행

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

임의 코드 실행(RCE)은 공격자가 대상 시스템에서 악성 코드를 실행할 수 있게 하는 보안 취약점의 한 유형이다. 이는 메모리 안전성 취약점, 역직렬화, 타입 혼동, GNU ldd 임의 코드 실행 등 다양한 형태로 나타날 수 있으며, 실행 중인 프로세스의 명령어 포인터를 조작하여 악성 코드를 주입하는 방식으로 공격이 이루어진다. RCE 공격은 대상 프로세스와 동일한 권한을 부여하지만, 권한 상승 공격과 결합되어 시스템 전체를 제어할 수 있는 심각한 결과를 초래할 수 있다. 과거 고전 게임, 7-Zip, PHP, Log4j, OpenSSL 등 다양한 소프트웨어에서 RCE 취약점이 발견되었으며, 지속적인 보안 위협으로 작용하고 있다.

더 읽어볼만한 페이지

  • 취약점 공격 - 보안 취약점
    보안 취약점은 시스템의 설계, 구현, 운영, 관리상 결함이나 약점으로, 위협에 의해 악용되어 시스템 보안 정책을 위반할 수 있는 요소이며, ISO 27005, IETF RFC 4949, NIST SP 800-30, ENISA 등 다양한 기관에서 정의하고 있다.
  • 취약점 공격 - 인터넷 보안
    인터넷 보안은 사이버 위협, 악성 소프트웨어, 서비스 거부 공격 등으로부터 정보와 시스템을 보호하기 위해 네트워크 계층 보안, 다단계 인증, 방화벽 등 다양한 기술과 방법을 포괄한다.
  • 컴퓨터 보안 - 얼굴 인식 시스템
    얼굴 인식 시스템은 디지털 이미지나 비디오에서 사람 얼굴을 감지하고 식별하는 기술로, 다양한 알고리즘 발전을 거쳐 보안, 신원 확인 등에 활용되지만, 편향성, 개인 정보 침해, 기술적 한계와 같은 윤리적 문제도 야기한다.
  • 컴퓨터 보안 - 워터마크
    워터마크는 종이 제조 시 두께 차이를 이용해 만들어지는 표식으로, 위조 방지를 위해 지폐나 여권 등에 사용되며 댄디 롤 등의 제작 기법을 통해 만들어지고 컴퓨터 프린터 인쇄 기술로도 활용된다.
임의 코드 실행
임의 코드 실행 (ACE)
개요
정의임의 코드 실행(Arbitrary Code Execution, ACE)은 공격자가 시스템 또는 소프트웨어에서 임의의 코드를 실행할 수 있는 사이버 공격
보안
보호 방법시스템 패치
보안 소프트웨어 사용
같이 보기
관련 항목정보 보안
취약점
악성 소프트웨어

2. 취약점 유형

공격자가 임의의 명령이나 코드를 실행할 수 있게 하는 여러 종류의 취약점이 존재한다. 예를 들어 다음과 같다.


  • 역직렬화 취약점[3]
  • 타입 혼동 취약점[4][5]
  • GNU ldd 임의 코드 실행[6]


2. 1. 메모리 관련 취약점

공격자가 임의의 명령이나 코드를 실행할 수 있게 하는 여러 종류의 취약점이 존재한다. 예를 들어 메모리 안전성 취약점, 버퍼 오버플로우, 버퍼 오버리드가 있다.[3] 역직렬화 취약점, 타입 혼동 취약점[4][5] 등도 이에 해당한다.

2. 2. 기타 취약점


  • 메모리 안전성 취약점, 예를 들어 버퍼 오버플로우 또는 버퍼 오버리드가 있다.
  • 역직렬화 취약점이 있다.[3]
  • 타입 혼동 취약점이 있다.[4][5]
  • GNU ldd 임의 코드 실행 취약점이 있다.[6]

3. 공격 방법

임의 코드 실행은 일반적으로 실행 중인 프로세스의 명령어 포인터(점프 또는 분기와 같은)를 제어하여 수행된다.[7] 명령어 포인터는 실행될 프로세스의 다음 명령어를 가리킨다. 따라서 명령어 포인터 값을 제어하면 다음에 실행될 명령어가 제어된다. 임의 코드를 실행하기 위해 많은 익스플로잇은 코드를 입력 버퍼에 저장되는 입력을 전송하여 RAM에 저장하는 방식으로 프로세스에 주입한다. 그리고 취약점을 사용하여 명령어 포인터를 변경하여 주입된 코드를 가리키도록 한다. 그러면 주입된 코드가 자동으로 실행된다. 이러한 유형의 공격은 대부분의 컴퓨터(폰 노이만 구조 사용)가 코드와 데이터를 일반적인 방식으로 구분하지 않는다는 사실을 악용한다.[7][8] 악성 코드는 무해한 입력 데이터로 위장될 수 있다. 많은 새로운 CPU는 실행 불가 비트와 같이 이를 더 어렵게 만드는 메커니즘을 갖추고 있다.[9][10]

3. 1. 권한 상승 공격과의 결합

단독으로 사용되는 임의 코드 실행 공격은 공격자에게 취약한 대상 프로세스와 동일한 권한을 부여한다.[11] 예를 들어, 웹 브라우저의 결함을 악용하는 경우, 공격자는 사용자와 동일하게 행동하여 개인용 컴퓨터 파일을 수정하거나 뱅킹 정보에 접근하는 등의 작업을 수행할 수 있지만, 시스템 수준의 작업을 수행할 수는 없다(해당 사용자가 해당 접근 권한을 가지고 있지 않는 한).

이러한 제약을 극복하기 위해, 공격자가 대상 시스템에서 임의의 코드를 실행할 수 있게 되면 추가적인 제어를 얻기 위해 종종 권한 상승 공격을 시도한다. 이는 커널 자체 또는 관리자, SYSTEM 또는 root와 같은 계정을 포함할 수 있다. 이러한 향상된 제어 기능을 갖거나 갖추지 못하더라도, 공격은 심각한 피해를 입히거나 컴퓨터를 좀비로 만들 가능성이 있다. 하지만 권한 상승은 시스템의 합법적인 관리자로부터 공격을 숨기는 데 도움이 된다.

4. 사례

레트로 게임에서 임의 코드 실행 취약점이 발견된 사례 외에도, 다양한 소프트웨어에서 취약점이 발견되었다.


  • 2018년 5월 1일, 7-Zip 파일 압축기에서 ACE 취약점이 발견되었다.[14]
  • 2018년 6월 12일, Windows 10에서 ACE 취약점이 발견되었다.[13]
  • PHP는 여러 ACE 취약점의 대상이었다.[15][16][17]
  • 2021년 12월 9일, Log4j에서 "Log4Shell"이라 불리는 취약점이 발견되어 iCloud, ''Minecraft: Java Edition'', Steam 등 여러 서비스에 영향을 미쳤다.[18][19]
  • OpenSSL의 ASN.1 구현에서 "negative zero 문제" 취약점이 발견되었다.[22]
  • GNU Bash 구현에서 "셸 쇼크" 취약점이 발견되었다.[23]

4. 1. 고전 게임

레트로 게임 애호가들은 고전 비디오 게임에서 임의의 코드를 실행할 수 있는 취약점을 찾아냈는데, 일반적으로 도구 보조 슈퍼플레이에서 정확한 버튼 입력 시퀀스를 사용하여 버퍼 오버플로우를 일으켜 보호된 메모리에 쓸 수 있도록 한다. Awesome Games Done Quick 2014에서 스피드런 애호가 그룹은 Super Mario World[12] 사본에서 사용자 제어 버퍼를 가리키는 함수 포인터의 범위를 벗어난 읽기를 활용하여 ''Pong''과 ''Snake''의 버전을 코딩하고 실행했다.

4. 2. 주요 소프트웨어 취약점

레트로 게임 애호가들은 고전 비디오 게임에서 임의의 코드를 실행할 수 있는 취약점을 찾아냈는데, 일반적으로 도구 보조 슈퍼플레이에서 정확한 버튼 입력 시퀀스를 사용하여 버퍼 오버플로우를 일으켜 보호된 메모리에 쓸 수 있도록 한다. Awesome Games Done Quick 2014에서 스피드런 애호가 그룹은 Super Mario World[12] 사본에서 사용자 제어 버퍼를 가리키는 함수 포인터의 범위를 벗어난 읽기를 활용하여 ''Pong''과 ''Snake''의 버전을 코딩하고 실행했다.

2018년 5월 1일, 한 보안 연구원이 7-Zip 파일 압축기에서 ACE 취약점을 발견했다.[14]

2018년 6월 12일, 모질라(Mozilla)의 보스니아 보안 연구원 장-이브 아베나르(Jean-Yves Avenard)는 Windows 10에서 ACE 취약점을 발견했다.[13]

PHP는 수많은 ACE 취약점의 대상이 되어왔다.[15][16][17]

2021년 12월 9일, "Log4Shell"이라고 불리는 RCE 취약점이 인기 있는 로깅 프레임워크 Log4j에서 발견되었으며, iCloud, ''Minecraft: Java Edition'' 및 Steam을 포함한 많은 서비스에 영향을 미쳤으며 "지난 10년 동안 가장 크고 가장 중요한 단일 취약점"으로 특징지어졌다.[18][19]

  • '''negative zero 문제''' - OpenSSL의 ASN.1 구현에서 임의 코드 실행이 가능한 취약점[22]
  • '''셸 쇼크''' 사건 - GNU Bash 구현에서 임의 코드 실행이 가능한 취약점[23]

5. 대한민국의 대응

(이전 출력이 없으므로, 수정할 내용이 없습니다. 원본 소스와 함께 다시 요청해주세요.)

참조

[1] 웹사이트 Remote code execution attack: what it is, how to protect your systems https://blog.kernelc[...] 2021-01-25
[2] 간행물 Intrinsic Propensity for Vulnerability in Computers? Arbitrary Code Execution in the Universal Turing Machine 2021
[3] 웹사이트 Deserialization of untrusted data https://www.owasp.or[...]
[4] 웹사이트 Understanding type confusion vulnerabilities: CVE-2015-0336 https://www.microsof[...] 2015-06-18
[5] 웹사이트 Exploiting CVE-2018-19134: remote code execution through type confusion in Ghostscript https://lgtm.com/blo[...] 2019-02-05
[6] 웹사이트 LDD arbitrary code execution https://catonmat.net[...]
[7] 서적 Computer Architecture: A Minimalist Perspective https://books.google[...] Springer Science & Business Media 2003-03-31
[8] 서적 Milestones in Computer Science and Information Technology https://archive.org/[...] Greenwood Publishing Group 2003
[9] 웹사이트 Tech Insight: Execute Disable Bit (XD-Bit) http://www.toshiba.p[...] 2018-10-31
[10] 웹사이트 AMD has you covered. https://www.amd.com/[...] 2012
[11] 웹사이트 Remote Code Execution - an overview https://www.scienced[...] 2021-12-05
[12] 웹사이트 How an emulator-fueled robot reprogrammed ''Super Mario World'' on the fly https://arstechnica.[...] 2016-07-27
[13] 웹사이트 Microsoft Windows CVE-2018-8213 Arbitrary Code Execution Vulnerability https://www.broadcom[...] 2018-10-31
[14] 웹사이트 A Vulnerability in 7-Zip Could Allow for Arbitrary Code Execution https://its.ny.gov/s[...] 2018-10-31
[15] 웹사이트 NVD - CVE-2017-12934 https://nvd.nist.gov[...] 2018-10-31
[16] 웹사이트 File Operation Induced Unserialization via the "phar://" Stream Wrapper https://cdn2.hubspot[...] 2018
[17] 웹사이트 NVD - CVE-2017-12933 https://nvd.nist.gov[...] 2018-10-31
[18] 웹사이트 Zeroday in ubiquitous Log4j tool poses a grave threat to the Internet https://arstechnica.[...] 2021-12-11
[19] 웹사이트 Recently uncovered software flaw 'most critical vulnerability of the last decade' https://www.theguard[...] 2021-12-11
[20] 서적 Get! CompTIA Security+ セキュリティ社会の必修科目(試験番号:SY0-401) 翔泳社 2019-06-29
[21] 웹사이트 「FF5」と「FF6」のTAS記録が大幅更新 「サブフレームリセット」「任意コード実行」の合わせ技でゲーム大崩壊 https://nlab.itmedia[...] 2021-08-16
[22] 웹사이트 JVNDB-2016-002475 https://jvndb.jvn.jp[...] 情報処理推進機構 2019-06-29
[23] 웹사이트 JVNDB-2014-004410 https://jvndb.jvn.jp[...] 정보처리추진기구 2019-06-29
[24] 웹인용 Remote code execution attack: what it is, how to protect your systems https://blog.kernelc[...] 2021-09-22



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com