블로그

안전한 코딩 가이드라인이 어떻게 진화하는가

피터 드 크레머
게시일: 2017년 9월 15일

지난 주 나는 우리의 보안 코딩 지침을 최신 상태로 가지고 자바 봄의 취약점을 연구했다. 나는 우리의 플랫폼에서 기존의 도전을 겪고 있었고 JSP 페이지에 URL 매개 변수를 표시하여 XSS에서 몇 가지를 발견했다. 잘못된 코드 예제는 다음과 유사한 것으로 보입니다.

   <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에 작업 데모를 게시 .

그리고 물론 나는 지금 읽는 우리의 보안 코딩 지침을 업데이트 : "표시하거나 스프링 표현 언어 (SpEL)를 사용하여 URL 매개 변수를 평가하지 마십시오."

공격자가 응용 프로그램 서버에서 기능을 수정하고 호출할 수 있습니다. - 데이터 및 기능에 대한 무단 액세스뿐만 아니라 계정 납치 및 원격 코드 실행. - 성공적인 공격의 기밀성 및 무결성 우려.

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

리소스 보기
리소스 보기

지난 주 나는 우리의 보안 코딩 지침을 최신 상태로 가지고 자바 봄의 취약점을 연구했다.

더 알고 싶으신가요?

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

Secure Code Warrior 는 전체 소프트웨어 개발 수명 주기에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 도와드립니다. 앱 보안 관리자, 개발자, CISO 등 보안과 관련된 모든 사람이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.

데모 예약
공유하세요:
저자
피터 드 크레머
게시일: 2017년 9월 15일

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

공유하세요:

지난 주 나는 우리의 보안 코딩 지침을 최신 상태로 가지고 자바 봄의 취약점을 연구했다. 나는 우리의 플랫폼에서 기존의 도전을 겪고 있었고 JSP 페이지에 URL 매개 변수를 표시하여 XSS에서 몇 가지를 발견했다. 잘못된 코드 예제는 다음과 유사한 것으로 보입니다.

   <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에 작업 데모를 게시 .

그리고 물론 나는 지금 읽는 우리의 보안 코딩 지침을 업데이트 : "표시하거나 스프링 표현 언어 (SpEL)를 사용하여 URL 매개 변수를 평가하지 마십시오."

공격자가 응용 프로그램 서버에서 기능을 수정하고 호출할 수 있습니다. - 데이터 및 기능에 대한 무단 액세스뿐만 아니라 계정 납치 및 원격 코드 실행. - 성공적인 공격의 기밀성 및 무결성 우려.

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

리소스 보기
리소스 보기

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

우리는 당신에게 우리의 제품 및 / 또는 관련 보안 코딩 주제에 대한 정보를 보낼 수있는 귀하의 허가를 바랍니다. 우리는 항상 최대한의주의를 기울여 귀하의 개인 정보를 취급 할 것이며 마케팅 목적으로 다른 회사에 판매하지 않을 것입니다.

전송
양식을 제출하려면 '분석' 쿠키를 활성화하세요. 완료되면 언제든지 다시 비활성화할 수 있습니다.

지난 주 나는 우리의 보안 코딩 지침을 최신 상태로 가지고 자바 봄의 취약점을 연구했다. 나는 우리의 플랫폼에서 기존의 도전을 겪고 있었고 JSP 페이지에 URL 매개 변수를 표시하여 XSS에서 몇 가지를 발견했다. 잘못된 코드 예제는 다음과 유사한 것으로 보입니다.

   <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에 작업 데모를 게시 .

그리고 물론 나는 지금 읽는 우리의 보안 코딩 지침을 업데이트 : "표시하거나 스프링 표현 언어 (SpEL)를 사용하여 URL 매개 변수를 평가하지 마십시오."

공격자가 응용 프로그램 서버에서 기능을 수정하고 호출할 수 있습니다. - 데이터 및 기능에 대한 무단 액세스뿐만 아니라 계정 납치 및 원격 코드 실행. - 성공적인 공격의 기밀성 및 무결성 우려.

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

리소스에 접근

아래 링크를 클릭하여 이 자료의 PDF를 다운로드하세요.

Secure Code Warrior 는 전체 소프트웨어 개발 수명 주기에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 도와드립니다. 앱 보안 관리자, 개발자, CISO 등 보안과 관련된 모든 사람이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.

보고서 보기데모 예약
PDF 다운로드
리소스 보기
공유하세요:
더 알고 싶으신가요?

공유하세요:
저자
피터 드 크레머
게시일: 2017년 9월 15일

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

공유하세요:

지난 주 나는 우리의 보안 코딩 지침을 최신 상태로 가지고 자바 봄의 취약점을 연구했다. 나는 우리의 플랫폼에서 기존의 도전을 겪고 있었고 JSP 페이지에 URL 매개 변수를 표시하여 XSS에서 몇 가지를 발견했다. 잘못된 코드 예제는 다음과 유사한 것으로 보입니다.

   <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에 작업 데모를 게시 .

그리고 물론 나는 지금 읽는 우리의 보안 코딩 지침을 업데이트 : "표시하거나 스프링 표현 언어 (SpEL)를 사용하여 URL 매개 변수를 평가하지 마십시오."

공격자가 응용 프로그램 서버에서 기능을 수정하고 호출할 수 있습니다. - 데이터 및 기능에 대한 무단 액세스뿐만 아니라 계정 납치 및 원격 코드 실행. - 성공적인 공격의 기밀성 및 무결성 우려.

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

목차

PDF 다운로드
리소스 보기
더 알고 싶으신가요?

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

Secure Code Warrior 는 전체 소프트웨어 개발 수명 주기에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 도와드립니다. 앱 보안 관리자, 개발자, CISO 등 보안과 관련된 모든 사람이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.

데모 예약다운로드
공유하세요:
리소스 허브

시작할 수 있는 리소스

더 많은 게시물
리소스 허브

시작할 수 있는 리소스

더 많은 게시물