SCW图标
英雄背景无分隔线
博客

코더즈 컨커 보안: 셰어 앤 런 시리즈 - 코드 인젝션

Jaap Karan Singh
发表于 2019 年 5 月 16 日
最后更新于 2026年3月9日

코드 인젝션 공격은 많은 웹 사이트와 애플리케이션에서 발생하는 가장 흔하고 가장 위험한 공격 중 하나입니다.이러한 공격은 정교함과 위험 측면에서 모두 뛰어나지만 사용자 입력을 받아들이는 거의 모든 사이트나 앱이 취약할 수 있습니다.사실 이런 종류의 공격은 거의 모든 사이버 보안 방어자가 경력의 어느 시점에서 처리해야 하는 공격이며, 아마도 여러 번 맞서게 될 것입니다.

코드 인젝션 공격은 애플리케이션이나 웹 사이트가 사용자의 입력을 받아들일 때마다 발생할 수 있습니다.이는 검색 기능을 제공하거나 사용자에게 식별 정보를 입력하도록 요청하는 것처럼 간단할 수 있습니다.이 공격은 악의적인 사용자가 일반 텍스트 입력 대신 오픈 필드에 코드를 입력할 때 발생합니다.이들의 목표는 서버가 입력 내용을 유효한 코드로 착각하도록 한 다음 공격자가 원하는 모든 기능을 실행하도록 하는 것입니다.

코드 인젝션 공격은 매우 흔하지만, 이를 막는 데 사용할 수 있는 방어 수단도 매우 흔합니다.이번 에피소드에서는 다음과 같은 내용을 살펴보겠습니다.

  • 작동 방식
  • 왜 그렇게 위험한가요?
  • 어떻게 하면 그들을 막을 수 있는 방어 시설을 마련할 수 있을까요?

공격자는 코드 인젝션을 어떻게 사용하나요?

코드 인젝션 공격에 대한 구체적인 세부 사항은 사용하는 프로그래밍 언어에 따라 다르지만 사용자가 데이터를 입력할 수 있는 한 모든 앱이나 웹 사이트는 취약할 수 있습니다.SQL, HTML, XML, CSS 및 기타 모든 일반 프로그래밍 언어에 대해 코드 인젝션 공격이 트리거되었습니다.

첫째, 공격자는 일반적으로 사용자가 직접 입력할 수 있는 애플리케이션 내에서 취약한 코드를 찾아야 합니다.예를 들어, 이 코드는 PHP eval () 함수를 가져와서 사용자에게 전달하여 수정할 수 있도록 합니다. 반환 문자열에 대한 어떤 종류의 유효성 검사도 필요하지 않습니다.

$myvar = “바네임”;
$x = $_GET [인수];
eval (“\ $myvar =\ $x;”);

영리한 공격자는 원하는 경우 시스템 명령을 실행하여 eval 함수에 자신의 문자열을 쉽게 추가할 수 있습니다.

/index.php?아르그=1; 시스템 (ID)

코드 인젝션 공격에는 시스템 명령 전송이 포함될 수 있지만 이러한 공격에만 국한되는 것은 아니라는 점에 유의해야 합니다.사실 코드 인젝션 공격의 경우 해커는 언어 자체의 기능에 의해서만 제약을 받습니다.이 예제에서 공격자는 PHP 프레임워크에서 허용하는 거의 모든 작업을 수행하도록 대상 시스템을 프로그래밍할 수 있습니다.

코드 인젝션 공격이 왜 그렇게 위험한가요?

코드 인젝션 공격은 공격자의 기술에 따라 잠재적으로 매우 위험할 수 있습니다.이들은 프로그래밍 언어가 허용하는 모든 작업을 수행할 수 있으므로 앱 프로그래머와 동일한 입장에 설 수 있습니다.공격자는 실제로 자신의 앱을 작성하여 대상 환경 내에서 실행하도록 할 수 있습니다.

숙련도가 낮은 공격자라도 위험할 수 있습니다.자체 애플리케이션 또는 코드 문자열을 작성하는 대신 대상 시스템에 사전 프로그래밍된 멀웨어를 수락하고 설치하도록 명령하기만 하면 됩니다.이로 인해 사이트 훼손, 랜섬웨어 공격이 발생할 수 있으며 심지어 사이트 사용자를 대상으로 한 피싱 캠페인의 기반이 될 수도 있습니다.

대부분의 경우 코드 인젝션 공격은 사용자 목록 및 암호와 같은 정보를 훔치거나 추가 침해 대상 시스템을 정찰하는 데 사용됩니다.하지만 코드 인젝션 공격은 숙련된 코더라면 거의 모든 것을 할 수 있다는 점에 유의하세요. 따라서 코드 인젝션 공격의 잠재적 인스턴스를 모두 발견하여 사용자 환경에서 제거하는 것이 중요합니다.

아무도 믿지 마세요!(또는 적어도 사용자는 아님)

코드 인젝션 공격 취약점을 제거할 때 가장 먼저 살펴봐야 할 곳은 사용자 입력을 요청하거나 허용하는 곳입니다.사용자가 입력한 내용은 어떤 상황에서도 신뢰할 수 없습니다.필터링이나 검사 없이 사용자 입력을 허용하면 기본적으로 공격자가 자신의 시스템이나 네트워크를 무단 손상시킬 수 있도록 유도하는 셈이 됩니다.

항상 가능한 것은 아니지만 코드 삽입 공격을 방지하는 가장 좋은 방법은 함수가 사용자 입력을 직접 실행하거나 해석하지 못하도록 하는 것입니다.사용자가 자유롭게 쿼리를 입력할 수 있는 대신 정적 옵션을 선택할 수 있을 수도 있습니다. 응용 프로그램은 이러한 제한된 선택 사항만 유효한 것으로 받아들이도록 프로그래밍되어 있습니다.그렇게 하는 것이 항상 적절한 것은 아니지만, 가능한 경우 이를 사용하면 시작하기 전에 코드 인젝션을 방지할 수 있습니다.

사용자가 직접 입력해야 하는 영역의 경우 해당 데이터를 엄격하게 제어해야 합니다.모든 것이 잠재적 공격이라고 가정하고 시작하는 것이 좋습니다.읽기 전용 사용자 액세스와 같은 최소 권한 정책을 클라이언트 측과 서버 측 모두에 적용하면 대부분의 코드가 실행되지 않을 수 있습니다.

또 다른 좋은 방어 방법은 모든 사용자가 입력하는 모든 것에 대해 애플리케이션 전체에 필터를 적용하고 위생 처리를 하는 것입니다.개발자들은 코드 인젝션 공격을 수년간 알고 있었으며, 모든 프레임워크와 언어에 대해 검증된 필터 라이브러리가 존재합니다.이러한 필터를 적용할 때는 명백한 사용자 입력 영역이나 Get 및 Post 명령과 같은 일반적인 매개 변수뿐만 아니라 쿠키 및 HTTP 헤더에 대해서도 적용해야 합니다.

코드 인젝션을 위한 수정 적용

환경에서 불필요한 사용자 입력 영역을 제거하고, 최소 권한 원칙을 적용하고, 최신 필터링 및 삭제 도구를 사용하여 잠재적 공격을 검사 및 탐지하면 이 위험한 취약점을 차단할 수 있습니다.사용자의 의견을 절대 신뢰하지 않는다는 마음가짐도 앞으로 나아가는 데 도움이 될 것입니다.이 모든 작업을 수행하면 이러한 위험한 유형의 공격에 한 발 앞서 나갈 수 있습니다.

자세한 내용은 OWASP를 참조하십시오. 에 대한 글 코드 인젝션.또한 다음과 같이 새로 발견한 방어 지식을 테스트할 수 있습니다. 무료 데모 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.

지금 바로 페이스 코드 인젝션을 정면으로게임화된 교육 플랫폼에서 도전해 보세요. [여기서 시작]

查看资源
查看资源

코드 인젝션 공격은 많은 웹 사이트와 애플리케이션에서 발생하는 가장 흔하고 가장 위험한 공격 중 하나입니다.이러한 공격은 정교함과 위험 측면에서 모두 뛰어나지만 사용자 입력을 받아들이는 거의 모든 사이트나 앱이 취약할 수 있습니다.

您对更多内容感兴趣吗?

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

了解更多

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并帮助组织建立将网络安全置于首位的文化。无论您是应用安全管理员、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能协助您的组织降低与不安全代码相关的风险。

预约演示
共享对象:
领英品牌社交x 标志
作者
Jaap Karan Singh
2019年5月16日发布

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

共享对象:
领英品牌社交x 标志

코드 인젝션 공격은 많은 웹 사이트와 애플리케이션에서 발생하는 가장 흔하고 가장 위험한 공격 중 하나입니다.이러한 공격은 정교함과 위험 측면에서 모두 뛰어나지만 사용자 입력을 받아들이는 거의 모든 사이트나 앱이 취약할 수 있습니다.사실 이런 종류의 공격은 거의 모든 사이버 보안 방어자가 경력의 어느 시점에서 처리해야 하는 공격이며, 아마도 여러 번 맞서게 될 것입니다.

코드 인젝션 공격은 애플리케이션이나 웹 사이트가 사용자의 입력을 받아들일 때마다 발생할 수 있습니다.이는 검색 기능을 제공하거나 사용자에게 식별 정보를 입력하도록 요청하는 것처럼 간단할 수 있습니다.이 공격은 악의적인 사용자가 일반 텍스트 입력 대신 오픈 필드에 코드를 입력할 때 발생합니다.이들의 목표는 서버가 입력 내용을 유효한 코드로 착각하도록 한 다음 공격자가 원하는 모든 기능을 실행하도록 하는 것입니다.

코드 인젝션 공격은 매우 흔하지만, 이를 막는 데 사용할 수 있는 방어 수단도 매우 흔합니다.이번 에피소드에서는 다음과 같은 내용을 살펴보겠습니다.

  • 작동 방식
  • 왜 그렇게 위험한가요?
  • 어떻게 하면 그들을 막을 수 있는 방어 시설을 마련할 수 있을까요?

공격자는 코드 인젝션을 어떻게 사용하나요?

코드 인젝션 공격에 대한 구체적인 세부 사항은 사용하는 프로그래밍 언어에 따라 다르지만 사용자가 데이터를 입력할 수 있는 한 모든 앱이나 웹 사이트는 취약할 수 있습니다.SQL, HTML, XML, CSS 및 기타 모든 일반 프로그래밍 언어에 대해 코드 인젝션 공격이 트리거되었습니다.

첫째, 공격자는 일반적으로 사용자가 직접 입력할 수 있는 애플리케이션 내에서 취약한 코드를 찾아야 합니다.예를 들어, 이 코드는 PHP eval () 함수를 가져와서 사용자에게 전달하여 수정할 수 있도록 합니다. 반환 문자열에 대한 어떤 종류의 유효성 검사도 필요하지 않습니다.

$myvar = “바네임”;
$x = $_GET [인수];
eval (“\ $myvar =\ $x;”);

영리한 공격자는 원하는 경우 시스템 명령을 실행하여 eval 함수에 자신의 문자열을 쉽게 추가할 수 있습니다.

/index.php?아르그=1; 시스템 (ID)

코드 인젝션 공격에는 시스템 명령 전송이 포함될 수 있지만 이러한 공격에만 국한되는 것은 아니라는 점에 유의해야 합니다.사실 코드 인젝션 공격의 경우 해커는 언어 자체의 기능에 의해서만 제약을 받습니다.이 예제에서 공격자는 PHP 프레임워크에서 허용하는 거의 모든 작업을 수행하도록 대상 시스템을 프로그래밍할 수 있습니다.

코드 인젝션 공격이 왜 그렇게 위험한가요?

코드 인젝션 공격은 공격자의 기술에 따라 잠재적으로 매우 위험할 수 있습니다.이들은 프로그래밍 언어가 허용하는 모든 작업을 수행할 수 있으므로 앱 프로그래머와 동일한 입장에 설 수 있습니다.공격자는 실제로 자신의 앱을 작성하여 대상 환경 내에서 실행하도록 할 수 있습니다.

숙련도가 낮은 공격자라도 위험할 수 있습니다.자체 애플리케이션 또는 코드 문자열을 작성하는 대신 대상 시스템에 사전 프로그래밍된 멀웨어를 수락하고 설치하도록 명령하기만 하면 됩니다.이로 인해 사이트 훼손, 랜섬웨어 공격이 발생할 수 있으며 심지어 사이트 사용자를 대상으로 한 피싱 캠페인의 기반이 될 수도 있습니다.

대부분의 경우 코드 인젝션 공격은 사용자 목록 및 암호와 같은 정보를 훔치거나 추가 침해 대상 시스템을 정찰하는 데 사용됩니다.하지만 코드 인젝션 공격은 숙련된 코더라면 거의 모든 것을 할 수 있다는 점에 유의하세요. 따라서 코드 인젝션 공격의 잠재적 인스턴스를 모두 발견하여 사용자 환경에서 제거하는 것이 중요합니다.

아무도 믿지 마세요!(또는 적어도 사용자는 아님)

코드 인젝션 공격 취약점을 제거할 때 가장 먼저 살펴봐야 할 곳은 사용자 입력을 요청하거나 허용하는 곳입니다.사용자가 입력한 내용은 어떤 상황에서도 신뢰할 수 없습니다.필터링이나 검사 없이 사용자 입력을 허용하면 기본적으로 공격자가 자신의 시스템이나 네트워크를 무단 손상시킬 수 있도록 유도하는 셈이 됩니다.

항상 가능한 것은 아니지만 코드 삽입 공격을 방지하는 가장 좋은 방법은 함수가 사용자 입력을 직접 실행하거나 해석하지 못하도록 하는 것입니다.사용자가 자유롭게 쿼리를 입력할 수 있는 대신 정적 옵션을 선택할 수 있을 수도 있습니다. 응용 프로그램은 이러한 제한된 선택 사항만 유효한 것으로 받아들이도록 프로그래밍되어 있습니다.그렇게 하는 것이 항상 적절한 것은 아니지만, 가능한 경우 이를 사용하면 시작하기 전에 코드 인젝션을 방지할 수 있습니다.

사용자가 직접 입력해야 하는 영역의 경우 해당 데이터를 엄격하게 제어해야 합니다.모든 것이 잠재적 공격이라고 가정하고 시작하는 것이 좋습니다.읽기 전용 사용자 액세스와 같은 최소 권한 정책을 클라이언트 측과 서버 측 모두에 적용하면 대부분의 코드가 실행되지 않을 수 있습니다.

또 다른 좋은 방어 방법은 모든 사용자가 입력하는 모든 것에 대해 애플리케이션 전체에 필터를 적용하고 위생 처리를 하는 것입니다.개발자들은 코드 인젝션 공격을 수년간 알고 있었으며, 모든 프레임워크와 언어에 대해 검증된 필터 라이브러리가 존재합니다.이러한 필터를 적용할 때는 명백한 사용자 입력 영역이나 Get 및 Post 명령과 같은 일반적인 매개 변수뿐만 아니라 쿠키 및 HTTP 헤더에 대해서도 적용해야 합니다.

코드 인젝션을 위한 수정 적용

환경에서 불필요한 사용자 입력 영역을 제거하고, 최소 권한 원칙을 적용하고, 최신 필터링 및 삭제 도구를 사용하여 잠재적 공격을 검사 및 탐지하면 이 위험한 취약점을 차단할 수 있습니다.사용자의 의견을 절대 신뢰하지 않는다는 마음가짐도 앞으로 나아가는 데 도움이 될 것입니다.이 모든 작업을 수행하면 이러한 위험한 유형의 공격에 한 발 앞서 나갈 수 있습니다.

자세한 내용은 OWASP를 참조하십시오. 에 대한 글 코드 인젝션.또한 다음과 같이 새로 발견한 방어 지식을 테스트할 수 있습니다. 무료 데모 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.

지금 바로 페이스 코드 인젝션을 정면으로게임화된 교육 플랫폼에서 도전해 보세요. [여기서 시작]

查看资源
查看资源

要下载报告,请填写以下表格。

我们请求您的同意,以便向您发送有关本公司产品及/或相关安全编码主题的信息。我们始终以最高标准谨慎处理您的个人信息,且绝不会出于营销目的向其他公司出售您的信息。

提交
scw 成功图标
SCW 错误图标
要提交表单,请启用'Analytics' Cookie。完成后,您可随时将其重新禁用。

코드 인젝션 공격은 많은 웹 사이트와 애플리케이션에서 발생하는 가장 흔하고 가장 위험한 공격 중 하나입니다.이러한 공격은 정교함과 위험 측면에서 모두 뛰어나지만 사용자 입력을 받아들이는 거의 모든 사이트나 앱이 취약할 수 있습니다.사실 이런 종류의 공격은 거의 모든 사이버 보안 방어자가 경력의 어느 시점에서 처리해야 하는 공격이며, 아마도 여러 번 맞서게 될 것입니다.

코드 인젝션 공격은 애플리케이션이나 웹 사이트가 사용자의 입력을 받아들일 때마다 발생할 수 있습니다.이는 검색 기능을 제공하거나 사용자에게 식별 정보를 입력하도록 요청하는 것처럼 간단할 수 있습니다.이 공격은 악의적인 사용자가 일반 텍스트 입력 대신 오픈 필드에 코드를 입력할 때 발생합니다.이들의 목표는 서버가 입력 내용을 유효한 코드로 착각하도록 한 다음 공격자가 원하는 모든 기능을 실행하도록 하는 것입니다.

코드 인젝션 공격은 매우 흔하지만, 이를 막는 데 사용할 수 있는 방어 수단도 매우 흔합니다.이번 에피소드에서는 다음과 같은 내용을 살펴보겠습니다.

  • 작동 방식
  • 왜 그렇게 위험한가요?
  • 어떻게 하면 그들을 막을 수 있는 방어 시설을 마련할 수 있을까요?

공격자는 코드 인젝션을 어떻게 사용하나요?

코드 인젝션 공격에 대한 구체적인 세부 사항은 사용하는 프로그래밍 언어에 따라 다르지만 사용자가 데이터를 입력할 수 있는 한 모든 앱이나 웹 사이트는 취약할 수 있습니다.SQL, HTML, XML, CSS 및 기타 모든 일반 프로그래밍 언어에 대해 코드 인젝션 공격이 트리거되었습니다.

첫째, 공격자는 일반적으로 사용자가 직접 입력할 수 있는 애플리케이션 내에서 취약한 코드를 찾아야 합니다.예를 들어, 이 코드는 PHP eval () 함수를 가져와서 사용자에게 전달하여 수정할 수 있도록 합니다. 반환 문자열에 대한 어떤 종류의 유효성 검사도 필요하지 않습니다.

$myvar = “바네임”;
$x = $_GET [인수];
eval (“\ $myvar =\ $x;”);

영리한 공격자는 원하는 경우 시스템 명령을 실행하여 eval 함수에 자신의 문자열을 쉽게 추가할 수 있습니다.

/index.php?아르그=1; 시스템 (ID)

코드 인젝션 공격에는 시스템 명령 전송이 포함될 수 있지만 이러한 공격에만 국한되는 것은 아니라는 점에 유의해야 합니다.사실 코드 인젝션 공격의 경우 해커는 언어 자체의 기능에 의해서만 제약을 받습니다.이 예제에서 공격자는 PHP 프레임워크에서 허용하는 거의 모든 작업을 수행하도록 대상 시스템을 프로그래밍할 수 있습니다.

코드 인젝션 공격이 왜 그렇게 위험한가요?

코드 인젝션 공격은 공격자의 기술에 따라 잠재적으로 매우 위험할 수 있습니다.이들은 프로그래밍 언어가 허용하는 모든 작업을 수행할 수 있으므로 앱 프로그래머와 동일한 입장에 설 수 있습니다.공격자는 실제로 자신의 앱을 작성하여 대상 환경 내에서 실행하도록 할 수 있습니다.

숙련도가 낮은 공격자라도 위험할 수 있습니다.자체 애플리케이션 또는 코드 문자열을 작성하는 대신 대상 시스템에 사전 프로그래밍된 멀웨어를 수락하고 설치하도록 명령하기만 하면 됩니다.이로 인해 사이트 훼손, 랜섬웨어 공격이 발생할 수 있으며 심지어 사이트 사용자를 대상으로 한 피싱 캠페인의 기반이 될 수도 있습니다.

대부분의 경우 코드 인젝션 공격은 사용자 목록 및 암호와 같은 정보를 훔치거나 추가 침해 대상 시스템을 정찰하는 데 사용됩니다.하지만 코드 인젝션 공격은 숙련된 코더라면 거의 모든 것을 할 수 있다는 점에 유의하세요. 따라서 코드 인젝션 공격의 잠재적 인스턴스를 모두 발견하여 사용자 환경에서 제거하는 것이 중요합니다.

아무도 믿지 마세요!(또는 적어도 사용자는 아님)

코드 인젝션 공격 취약점을 제거할 때 가장 먼저 살펴봐야 할 곳은 사용자 입력을 요청하거나 허용하는 곳입니다.사용자가 입력한 내용은 어떤 상황에서도 신뢰할 수 없습니다.필터링이나 검사 없이 사용자 입력을 허용하면 기본적으로 공격자가 자신의 시스템이나 네트워크를 무단 손상시킬 수 있도록 유도하는 셈이 됩니다.

항상 가능한 것은 아니지만 코드 삽입 공격을 방지하는 가장 좋은 방법은 함수가 사용자 입력을 직접 실행하거나 해석하지 못하도록 하는 것입니다.사용자가 자유롭게 쿼리를 입력할 수 있는 대신 정적 옵션을 선택할 수 있을 수도 있습니다. 응용 프로그램은 이러한 제한된 선택 사항만 유효한 것으로 받아들이도록 프로그래밍되어 있습니다.그렇게 하는 것이 항상 적절한 것은 아니지만, 가능한 경우 이를 사용하면 시작하기 전에 코드 인젝션을 방지할 수 있습니다.

사용자가 직접 입력해야 하는 영역의 경우 해당 데이터를 엄격하게 제어해야 합니다.모든 것이 잠재적 공격이라고 가정하고 시작하는 것이 좋습니다.읽기 전용 사용자 액세스와 같은 최소 권한 정책을 클라이언트 측과 서버 측 모두에 적용하면 대부분의 코드가 실행되지 않을 수 있습니다.

또 다른 좋은 방어 방법은 모든 사용자가 입력하는 모든 것에 대해 애플리케이션 전체에 필터를 적용하고 위생 처리를 하는 것입니다.개발자들은 코드 인젝션 공격을 수년간 알고 있었으며, 모든 프레임워크와 언어에 대해 검증된 필터 라이브러리가 존재합니다.이러한 필터를 적용할 때는 명백한 사용자 입력 영역이나 Get 및 Post 명령과 같은 일반적인 매개 변수뿐만 아니라 쿠키 및 HTTP 헤더에 대해서도 적용해야 합니다.

코드 인젝션을 위한 수정 적용

환경에서 불필요한 사용자 입력 영역을 제거하고, 최소 권한 원칙을 적용하고, 최신 필터링 및 삭제 도구를 사용하여 잠재적 공격을 검사 및 탐지하면 이 위험한 취약점을 차단할 수 있습니다.사용자의 의견을 절대 신뢰하지 않는다는 마음가짐도 앞으로 나아가는 데 도움이 될 것입니다.이 모든 작업을 수행하면 이러한 위험한 유형의 공격에 한 발 앞서 나갈 수 있습니다.

자세한 내용은 OWASP를 참조하십시오. 에 대한 글 코드 인젝션.또한 다음과 같이 새로 발견한 방어 지식을 테스트할 수 있습니다. 무료 데모 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.

지금 바로 페이스 코드 인젝션을 정면으로게임화된 교육 플랫폼에서 도전해 보세요. [여기서 시작]

观看网络研讨会
开始
了解更多

点击下方链接下载此资源的PDF文件。

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并帮助组织建立将网络安全置于首位的文化。无论您是应用安全管理员、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能协助您的组织降低与不安全代码相关的风险。

查看报告预约演示
查看资源
共享对象:
领英品牌社交x 标志
您对更多内容感兴趣吗?

共享对象:
领英品牌社交x 标志
作者
Jaap Karan Singh
2019年5月16日发布

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

共享对象:
领英品牌社交x 标志

코드 인젝션 공격은 많은 웹 사이트와 애플리케이션에서 발생하는 가장 흔하고 가장 위험한 공격 중 하나입니다.이러한 공격은 정교함과 위험 측면에서 모두 뛰어나지만 사용자 입력을 받아들이는 거의 모든 사이트나 앱이 취약할 수 있습니다.사실 이런 종류의 공격은 거의 모든 사이버 보안 방어자가 경력의 어느 시점에서 처리해야 하는 공격이며, 아마도 여러 번 맞서게 될 것입니다.

코드 인젝션 공격은 애플리케이션이나 웹 사이트가 사용자의 입력을 받아들일 때마다 발생할 수 있습니다.이는 검색 기능을 제공하거나 사용자에게 식별 정보를 입력하도록 요청하는 것처럼 간단할 수 있습니다.이 공격은 악의적인 사용자가 일반 텍스트 입력 대신 오픈 필드에 코드를 입력할 때 발생합니다.이들의 목표는 서버가 입력 내용을 유효한 코드로 착각하도록 한 다음 공격자가 원하는 모든 기능을 실행하도록 하는 것입니다.

코드 인젝션 공격은 매우 흔하지만, 이를 막는 데 사용할 수 있는 방어 수단도 매우 흔합니다.이번 에피소드에서는 다음과 같은 내용을 살펴보겠습니다.

  • 작동 방식
  • 왜 그렇게 위험한가요?
  • 어떻게 하면 그들을 막을 수 있는 방어 시설을 마련할 수 있을까요?

공격자는 코드 인젝션을 어떻게 사용하나요?

코드 인젝션 공격에 대한 구체적인 세부 사항은 사용하는 프로그래밍 언어에 따라 다르지만 사용자가 데이터를 입력할 수 있는 한 모든 앱이나 웹 사이트는 취약할 수 있습니다.SQL, HTML, XML, CSS 및 기타 모든 일반 프로그래밍 언어에 대해 코드 인젝션 공격이 트리거되었습니다.

첫째, 공격자는 일반적으로 사용자가 직접 입력할 수 있는 애플리케이션 내에서 취약한 코드를 찾아야 합니다.예를 들어, 이 코드는 PHP eval () 함수를 가져와서 사용자에게 전달하여 수정할 수 있도록 합니다. 반환 문자열에 대한 어떤 종류의 유효성 검사도 필요하지 않습니다.

$myvar = “바네임”;
$x = $_GET [인수];
eval (“\ $myvar =\ $x;”);

영리한 공격자는 원하는 경우 시스템 명령을 실행하여 eval 함수에 자신의 문자열을 쉽게 추가할 수 있습니다.

/index.php?아르그=1; 시스템 (ID)

코드 인젝션 공격에는 시스템 명령 전송이 포함될 수 있지만 이러한 공격에만 국한되는 것은 아니라는 점에 유의해야 합니다.사실 코드 인젝션 공격의 경우 해커는 언어 자체의 기능에 의해서만 제약을 받습니다.이 예제에서 공격자는 PHP 프레임워크에서 허용하는 거의 모든 작업을 수행하도록 대상 시스템을 프로그래밍할 수 있습니다.

코드 인젝션 공격이 왜 그렇게 위험한가요?

코드 인젝션 공격은 공격자의 기술에 따라 잠재적으로 매우 위험할 수 있습니다.이들은 프로그래밍 언어가 허용하는 모든 작업을 수행할 수 있으므로 앱 프로그래머와 동일한 입장에 설 수 있습니다.공격자는 실제로 자신의 앱을 작성하여 대상 환경 내에서 실행하도록 할 수 있습니다.

숙련도가 낮은 공격자라도 위험할 수 있습니다.자체 애플리케이션 또는 코드 문자열을 작성하는 대신 대상 시스템에 사전 프로그래밍된 멀웨어를 수락하고 설치하도록 명령하기만 하면 됩니다.이로 인해 사이트 훼손, 랜섬웨어 공격이 발생할 수 있으며 심지어 사이트 사용자를 대상으로 한 피싱 캠페인의 기반이 될 수도 있습니다.

대부분의 경우 코드 인젝션 공격은 사용자 목록 및 암호와 같은 정보를 훔치거나 추가 침해 대상 시스템을 정찰하는 데 사용됩니다.하지만 코드 인젝션 공격은 숙련된 코더라면 거의 모든 것을 할 수 있다는 점에 유의하세요. 따라서 코드 인젝션 공격의 잠재적 인스턴스를 모두 발견하여 사용자 환경에서 제거하는 것이 중요합니다.

아무도 믿지 마세요!(또는 적어도 사용자는 아님)

코드 인젝션 공격 취약점을 제거할 때 가장 먼저 살펴봐야 할 곳은 사용자 입력을 요청하거나 허용하는 곳입니다.사용자가 입력한 내용은 어떤 상황에서도 신뢰할 수 없습니다.필터링이나 검사 없이 사용자 입력을 허용하면 기본적으로 공격자가 자신의 시스템이나 네트워크를 무단 손상시킬 수 있도록 유도하는 셈이 됩니다.

항상 가능한 것은 아니지만 코드 삽입 공격을 방지하는 가장 좋은 방법은 함수가 사용자 입력을 직접 실행하거나 해석하지 못하도록 하는 것입니다.사용자가 자유롭게 쿼리를 입력할 수 있는 대신 정적 옵션을 선택할 수 있을 수도 있습니다. 응용 프로그램은 이러한 제한된 선택 사항만 유효한 것으로 받아들이도록 프로그래밍되어 있습니다.그렇게 하는 것이 항상 적절한 것은 아니지만, 가능한 경우 이를 사용하면 시작하기 전에 코드 인젝션을 방지할 수 있습니다.

사용자가 직접 입력해야 하는 영역의 경우 해당 데이터를 엄격하게 제어해야 합니다.모든 것이 잠재적 공격이라고 가정하고 시작하는 것이 좋습니다.읽기 전용 사용자 액세스와 같은 최소 권한 정책을 클라이언트 측과 서버 측 모두에 적용하면 대부분의 코드가 실행되지 않을 수 있습니다.

또 다른 좋은 방어 방법은 모든 사용자가 입력하는 모든 것에 대해 애플리케이션 전체에 필터를 적용하고 위생 처리를 하는 것입니다.개발자들은 코드 인젝션 공격을 수년간 알고 있었으며, 모든 프레임워크와 언어에 대해 검증된 필터 라이브러리가 존재합니다.이러한 필터를 적용할 때는 명백한 사용자 입력 영역이나 Get 및 Post 명령과 같은 일반적인 매개 변수뿐만 아니라 쿠키 및 HTTP 헤더에 대해서도 적용해야 합니다.

코드 인젝션을 위한 수정 적용

환경에서 불필요한 사용자 입력 영역을 제거하고, 최소 권한 원칙을 적용하고, 최신 필터링 및 삭제 도구를 사용하여 잠재적 공격을 검사 및 탐지하면 이 위험한 취약점을 차단할 수 있습니다.사용자의 의견을 절대 신뢰하지 않는다는 마음가짐도 앞으로 나아가는 데 도움이 될 것입니다.이 모든 작업을 수행하면 이러한 위험한 유형의 공격에 한 발 앞서 나갈 수 있습니다.

자세한 내용은 OWASP를 참조하십시오. 에 대한 글 코드 인젝션.또한 다음과 같이 새로 발견한 방어 지식을 테스트할 수 있습니다. 무료 데모 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.

지금 바로 페이스 코드 인젝션을 정면으로게임화된 교육 플랫폼에서 도전해 보세요. [여기서 시작]

目录

查看资源
您对更多内容感兴趣吗?

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

了解更多

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并帮助组织建立将网络安全置于首位的文化。无论您是应用安全管理员、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能协助您的组织降低与不安全代码相关的风险。

预约演示下载
共享对象:
领英品牌社交x 标志
资源中心

有助于开始的资源

更多帖子
资源中心

有助于开始的资源

更多帖子