Iconos SCW
héroe bg sin separador
Blog

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

Jaap Karan Singh
Publicado el 16 de mayo de 2019
Última actualización el 9 de marzo de 2026

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

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

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

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

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

코드 인젝션 공격에 대한 구체적인 세부 사항은 사용하는 프로그래밍 언어에 따라 다르지만 사용자가 데이터를 입력할 수 있는 한 모든 앱이나 웹 사이트는 취약할 수 있습니다.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 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.

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

Ver recursos
Ver recursos

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

¿Le interesa saber más?

Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.

Más información

Secure Code Warrior está aquí para ayudar a las organizaciones a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura que priorice la ciberseguridad. Ya seas administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudarte a reducir los riesgos asociados al código inseguro en tu organización.

Reserva de demostración
Destinatarios:
marcas de LinkedInSocialx logotipo
Autor
Jaap Karan Singh
Publicado el 16 de mayo de 2019

Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.

Destinatarios:
marcas de LinkedInSocialx logotipo

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

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

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

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

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

코드 인젝션 공격에 대한 구체적인 세부 사항은 사용하는 프로그래밍 언어에 따라 다르지만 사용자가 데이터를 입력할 수 있는 한 모든 앱이나 웹 사이트는 취약할 수 있습니다.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 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.

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

Ver recursos
Ver recursos

Para descargar el informe, rellene el siguiente formulario.

Solicitamos su consentimiento para enviarle información sobre nuestros productos y/o temas relacionados con la codificación de seguridad. Siempre tratamos su información personal con el máximo cuidado y nunca la vendemos a otras empresas con fines de marketing.

Enviar
Icono de éxito de SCW
Icono de error scw
Para enviar el formulario, active la cookie «Analytics». Una vez completado, puede desactivarla en cualquier momento.

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

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

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

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

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

코드 인젝션 공격에 대한 구체적인 세부 사항은 사용하는 프로그래밍 언어에 따라 다르지만 사용자가 데이터를 입력할 수 있는 한 모든 앱이나 웹 사이트는 취약할 수 있습니다.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 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.

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

Ver seminario web
Empezar
Más información

Haga clic en el siguiente enlace y descargue el PDF de este recurso.

Secure Code Warrior está aquí para ayudar a las organizaciones a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura que priorice la ciberseguridad. Ya seas administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudarte a reducir los riesgos asociados al código inseguro en tu organización.

Ver informeReserva de demostración
Ver recursos
Destinatarios:
marcas de LinkedInSocialx logotipo
¿Le interesa saber más?

Destinatarios:
marcas de LinkedInSocialx logotipo
Autor
Jaap Karan Singh
Publicado el 16 de mayo de 2019

Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.

Destinatarios:
marcas de LinkedInSocialx logotipo

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

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

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

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

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

코드 인젝션 공격에 대한 구체적인 세부 사항은 사용하는 프로그래밍 언어에 따라 다르지만 사용자가 데이터를 입력할 수 있는 한 모든 앱이나 웹 사이트는 취약할 수 있습니다.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 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.

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

Índice

Descargar PDF
Ver recursos
¿Le interesa saber más?

Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.

Más información

Secure Code Warrior está aquí para ayudar a las organizaciones a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura que priorice la ciberseguridad. Ya seas administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudarte a reducir los riesgos asociados al código inseguro en tu organización.

Reserva de demostraciónDescargar
Destinatarios:
marcas de LinkedInSocialx logotipo
Centro de recursos

Recursos útiles para empezar

Más publicaciones
Centro de recursos

Recursos útiles para empezar

Más publicaciones