SCW 아이콘
영웅 배경, 구분선 없음
블로그

시큐어 코딩 가이드라인의 진화

피터 드 크레머
게시일 : 2017년 9월 15일
마지막 업데이트: 2026년 3월 9일

지난 주에 필자는 보안 코딩 지침을 최신 상태로 유지하기 위해 Java Spring의 취약점을 조사했습니다.플랫폼의 기존 문제를 살펴보다가 XSS에서 JSP 페이지에 URL 매개 변수를 표시하는 과정에서 몇 가지 문제점을 발견했습니다.잘못된 코드 예제는 다음과 비슷할 것입니다.

<input type="text" name="username" value="${param.username}">

올바른 해결책은 URL 매개 변수를 완전히 제거하는 것이었으며 설명에는 URL 매개 변수를 올바른 방법으로 이스케이프하는 것도 안전하다고 언급되어 있습니다.

이제 제 일은 개발자들이 이해할 수 있는 방식으로 보안 코딩 가이드라인을 만들고 보안 코드를 작성하면서도 가능한 한 제한적으로 만드는 것입니다.이런 경우에는 개발자가 의도한 기능을 그대로 유지할 수 있도록 하고 URL 매개 변수를 이스케이프하여 안전하게 사용할 수 있도록 권장하고 싶습니다.이렇게 하면 코드에 더 이상 XSS 취약점이 포함되지 않습니다.위 예시는 다음과 같이 보안을 설정할 수 있습니다.

<input type="text" name="username" value="${fn:escapeXml(param.username)}">

그리고 이것은 며칠 동안 우리의 보안 코딩 지침이었는데, 제가 우연히 발견하게 될 때까지 표현식 언어 주입에 관한 OWASP 페이지.이 페이지에서는 스프링 표현식 언어 (SPEL) 가 어떻게 남용되어 원격 코드 실행을 포함하여 심각한 영향을 미칠 수 있는지 설명합니다.보안 코딩 가이드라인을 준수하는 코드가 여전히 이 취약점의 영향을 받을 수 있는 경우가 있는지 알아내는 것은 제 몫이었습니다.그래서 SpEL 표현식을 평가하는 간단한 테스트 애플리케이션을 작성하고, Xml 이스케이프를 사용하거나 사용하지 않고 입력값을 테스트하여 포착되지 않는 시나리오를 찾을 수 있는지 확인했습니다.그리고 실제로 해봤는데, XMLeScape에서 잡아낸 문자를 전혀 포함하지 않는 악의적인 표현식들도 있었습니다.저는 GitHub에 작업 데모를 게시했는데, 여기에서 찾을 수 있습니다. 이리.

물론 보안 코딩 가이드라인을 업데이트했습니다. 이 가이드라인에는 이제 “Spring Expression Language (SpLE) 를 사용하여 URL 매개변수를 표시하거나 평가하지 마십시오.”

이 문제가 미치는 전반적인 영향은 다음과 같습니다. - 공격자가 응용 프로그램 서버의 기능을 수정하고 호출할 수 있습니다. - 데이터 및 기능에 대한 무단 액세스, 계정 하이재킹 및 원격 코드 실행. - 성공적인 공격으로 인한 기밀성 및 무결성 문제.

https://www.owasp.org/index.php/Expression_Language_Injection

리소스 보기
리소스 보기

지난 주에 필자는 보안 코딩 지침을 최신 상태로 유지하기 위해 Java Spring의 취약점을 조사했습니다.

더 많은 것에 관심이 있으신가요?

응용 프로그램 보안 연구원 - R&D 엔지니어 - 박사 후보

더 알아보세요

Secure Code Warrior는 전체 소프트웨어 개발 라이프사이클에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 조직을 위해 여기 있습니다.AppSec 관리자, 개발자, CISO 또는 보안 관련 누구든 관계없이 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.

데모 예약
공유 대상:
링크드인 브랜드사회적x 로고
작성자
피터 드 크레머
게시일: 2017년 9월 15일

응용 프로그램 보안 연구원 - R&D 엔지니어 - 박사 후보

공유 대상:
링크드인 브랜드사회적x 로고

지난 주에 필자는 보안 코딩 지침을 최신 상태로 유지하기 위해 Java Spring의 취약점을 조사했습니다.플랫폼의 기존 문제를 살펴보다가 XSS에서 JSP 페이지에 URL 매개 변수를 표시하는 과정에서 몇 가지 문제점을 발견했습니다.잘못된 코드 예제는 다음과 비슷할 것입니다.

<input type="text" name="username" value="${param.username}">

올바른 해결책은 URL 매개 변수를 완전히 제거하는 것이었으며 설명에는 URL 매개 변수를 올바른 방법으로 이스케이프하는 것도 안전하다고 언급되어 있습니다.

이제 제 일은 개발자들이 이해할 수 있는 방식으로 보안 코딩 가이드라인을 만들고 보안 코드를 작성하면서도 가능한 한 제한적으로 만드는 것입니다.이런 경우에는 개발자가 의도한 기능을 그대로 유지할 수 있도록 하고 URL 매개 변수를 이스케이프하여 안전하게 사용할 수 있도록 권장하고 싶습니다.이렇게 하면 코드에 더 이상 XSS 취약점이 포함되지 않습니다.위 예시는 다음과 같이 보안을 설정할 수 있습니다.

<input type="text" name="username" value="${fn:escapeXml(param.username)}">

그리고 이것은 며칠 동안 우리의 보안 코딩 지침이었는데, 제가 우연히 발견하게 될 때까지 표현식 언어 주입에 관한 OWASP 페이지.이 페이지에서는 스프링 표현식 언어 (SPEL) 가 어떻게 남용되어 원격 코드 실행을 포함하여 심각한 영향을 미칠 수 있는지 설명합니다.보안 코딩 가이드라인을 준수하는 코드가 여전히 이 취약점의 영향을 받을 수 있는 경우가 있는지 알아내는 것은 제 몫이었습니다.그래서 SpEL 표현식을 평가하는 간단한 테스트 애플리케이션을 작성하고, Xml 이스케이프를 사용하거나 사용하지 않고 입력값을 테스트하여 포착되지 않는 시나리오를 찾을 수 있는지 확인했습니다.그리고 실제로 해봤는데, XMLeScape에서 잡아낸 문자를 전혀 포함하지 않는 악의적인 표현식들도 있었습니다.저는 GitHub에 작업 데모를 게시했는데, 여기에서 찾을 수 있습니다. 이리.

물론 보안 코딩 가이드라인을 업데이트했습니다. 이 가이드라인에는 이제 “Spring Expression Language (SpLE) 를 사용하여 URL 매개변수를 표시하거나 평가하지 마십시오.”

이 문제가 미치는 전반적인 영향은 다음과 같습니다. - 공격자가 응용 프로그램 서버의 기능을 수정하고 호출할 수 있습니다. - 데이터 및 기능에 대한 무단 액세스, 계정 하이재킹 및 원격 코드 실행. - 성공적인 공격으로 인한 기밀성 및 무결성 문제.

https://www.owasp.org/index.php/Expression_Language_Injection

리소스 보기
리소스 보기

보고서를 다운로드하려면 아래 양식을 작성하세요.

귀하의 동의를 구하여 당사 제품 및/또는 관련 보안 코딩 주제에 대한 정보를 보내드릴 수 있도록 하겠습니다. 당사는 항상 귀하의 개인정보를 최대한의 주의를 기울여 취급하며, 마케팅 목적으로 다른 회사에 절대 판매하지 않습니다.

제출
scw 성공 아이콘
scw 오류 아이콘
양식을 제출하려면 'Analytics' 쿠키를 활성화하십시오. 완료되면 언제든지 다시 비활성화할 수 있습니다.

지난 주에 필자는 보안 코딩 지침을 최신 상태로 유지하기 위해 Java Spring의 취약점을 조사했습니다.플랫폼의 기존 문제를 살펴보다가 XSS에서 JSP 페이지에 URL 매개 변수를 표시하는 과정에서 몇 가지 문제점을 발견했습니다.잘못된 코드 예제는 다음과 비슷할 것입니다.

<input type="text" name="username" value="${param.username}">

올바른 해결책은 URL 매개 변수를 완전히 제거하는 것이었으며 설명에는 URL 매개 변수를 올바른 방법으로 이스케이프하는 것도 안전하다고 언급되어 있습니다.

이제 제 일은 개발자들이 이해할 수 있는 방식으로 보안 코딩 가이드라인을 만들고 보안 코드를 작성하면서도 가능한 한 제한적으로 만드는 것입니다.이런 경우에는 개발자가 의도한 기능을 그대로 유지할 수 있도록 하고 URL 매개 변수를 이스케이프하여 안전하게 사용할 수 있도록 권장하고 싶습니다.이렇게 하면 코드에 더 이상 XSS 취약점이 포함되지 않습니다.위 예시는 다음과 같이 보안을 설정할 수 있습니다.

<input type="text" name="username" value="${fn:escapeXml(param.username)}">

그리고 이것은 며칠 동안 우리의 보안 코딩 지침이었는데, 제가 우연히 발견하게 될 때까지 표현식 언어 주입에 관한 OWASP 페이지.이 페이지에서는 스프링 표현식 언어 (SPEL) 가 어떻게 남용되어 원격 코드 실행을 포함하여 심각한 영향을 미칠 수 있는지 설명합니다.보안 코딩 가이드라인을 준수하는 코드가 여전히 이 취약점의 영향을 받을 수 있는 경우가 있는지 알아내는 것은 제 몫이었습니다.그래서 SpEL 표현식을 평가하는 간단한 테스트 애플리케이션을 작성하고, Xml 이스케이프를 사용하거나 사용하지 않고 입력값을 테스트하여 포착되지 않는 시나리오를 찾을 수 있는지 확인했습니다.그리고 실제로 해봤는데, XMLeScape에서 잡아낸 문자를 전혀 포함하지 않는 악의적인 표현식들도 있었습니다.저는 GitHub에 작업 데모를 게시했는데, 여기에서 찾을 수 있습니다. 이리.

물론 보안 코딩 가이드라인을 업데이트했습니다. 이 가이드라인에는 이제 “Spring Expression Language (SpLE) 를 사용하여 URL 매개변수를 표시하거나 평가하지 마십시오.”

이 문제가 미치는 전반적인 영향은 다음과 같습니다. - 공격자가 응용 프로그램 서버의 기능을 수정하고 호출할 수 있습니다. - 데이터 및 기능에 대한 무단 액세스, 계정 하이재킹 및 원격 코드 실행. - 성공적인 공격으로 인한 기밀성 및 무결성 문제.

https://www.owasp.org/index.php/Expression_Language_Injection

웨비나 보기
시작하기
더 알아보세요

아래 링크를 클릭하고 이 리소스의 PDF를 다운로드하십시오.

Secure Code Warrior는 전체 소프트웨어 개발 라이프사이클에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 조직을 위해 여기 있습니다.AppSec 관리자, 개발자, CISO 또는 보안 관련 누구든 관계없이 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.

보고서 보기데모 예약
리소스 보기
공유 대상:
링크드인 브랜드사회적x 로고
더 많은 것에 관심이 있으신가요?

공유 대상:
링크드인 브랜드사회적x 로고
작성자
피터 드 크레머
게시일: 2017년 9월 15일

응용 프로그램 보안 연구원 - R&D 엔지니어 - 박사 후보

공유 대상:
링크드인 브랜드사회적x 로고

지난 주에 필자는 보안 코딩 지침을 최신 상태로 유지하기 위해 Java Spring의 취약점을 조사했습니다.플랫폼의 기존 문제를 살펴보다가 XSS에서 JSP 페이지에 URL 매개 변수를 표시하는 과정에서 몇 가지 문제점을 발견했습니다.잘못된 코드 예제는 다음과 비슷할 것입니다.

<input type="text" name="username" value="${param.username}">

올바른 해결책은 URL 매개 변수를 완전히 제거하는 것이었으며 설명에는 URL 매개 변수를 올바른 방법으로 이스케이프하는 것도 안전하다고 언급되어 있습니다.

이제 제 일은 개발자들이 이해할 수 있는 방식으로 보안 코딩 가이드라인을 만들고 보안 코드를 작성하면서도 가능한 한 제한적으로 만드는 것입니다.이런 경우에는 개발자가 의도한 기능을 그대로 유지할 수 있도록 하고 URL 매개 변수를 이스케이프하여 안전하게 사용할 수 있도록 권장하고 싶습니다.이렇게 하면 코드에 더 이상 XSS 취약점이 포함되지 않습니다.위 예시는 다음과 같이 보안을 설정할 수 있습니다.

<input type="text" name="username" value="${fn:escapeXml(param.username)}">

그리고 이것은 며칠 동안 우리의 보안 코딩 지침이었는데, 제가 우연히 발견하게 될 때까지 표현식 언어 주입에 관한 OWASP 페이지.이 페이지에서는 스프링 표현식 언어 (SPEL) 가 어떻게 남용되어 원격 코드 실행을 포함하여 심각한 영향을 미칠 수 있는지 설명합니다.보안 코딩 가이드라인을 준수하는 코드가 여전히 이 취약점의 영향을 받을 수 있는 경우가 있는지 알아내는 것은 제 몫이었습니다.그래서 SpEL 표현식을 평가하는 간단한 테스트 애플리케이션을 작성하고, Xml 이스케이프를 사용하거나 사용하지 않고 입력값을 테스트하여 포착되지 않는 시나리오를 찾을 수 있는지 확인했습니다.그리고 실제로 해봤는데, XMLeScape에서 잡아낸 문자를 전혀 포함하지 않는 악의적인 표현식들도 있었습니다.저는 GitHub에 작업 데모를 게시했는데, 여기에서 찾을 수 있습니다. 이리.

물론 보안 코딩 가이드라인을 업데이트했습니다. 이 가이드라인에는 이제 “Spring Expression Language (SpLE) 를 사용하여 URL 매개변수를 표시하거나 평가하지 마십시오.”

이 문제가 미치는 전반적인 영향은 다음과 같습니다. - 공격자가 응용 프로그램 서버의 기능을 수정하고 호출할 수 있습니다. - 데이터 및 기능에 대한 무단 액세스, 계정 하이재킹 및 원격 코드 실행. - 성공적인 공격으로 인한 기밀성 및 무결성 문제.

https://www.owasp.org/index.php/Expression_Language_Injection

목차

PDF 다운로드
리소스 보기
더 많은 것에 관심이 있으신가요?

응용 프로그램 보안 연구원 - R&D 엔지니어 - 박사 후보

더 알아보세요

Secure Code Warrior는 전체 소프트웨어 개발 라이프사이클에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 조직을 위해 여기 있습니다.AppSec 관리자, 개발자, CISO 또는 보안 관련 누구든 관계없이 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.

데모 예약다운로드
공유 대상:
링크드인 브랜드사회적x 로고
리소스 허브

시작하는 데 도움이 되는 리소스

더 많은 게시물
리소스 허브

시작하는 데 도움이 되는 리소스

더 많은 게시물