보안 코딩 가이드라인의 발전 과정

지난주에 보안 코딩 가이드라인을 최신 상태로 업데이트하기 위해 Java Spring의 취약점을 조사했습니다. 플랫폼에 있는 기존 챌린지를 검토하던 중 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 페이지를 발견하게 되었습니다. 이 페이지는 Spring 표현식 언어(SpEL)가 원격 코드 실행을 포함한 심각한 영향을 미치는 주입 공격에 어떻게 악용될 수 있는지 설명합니다. 보안 코딩 가이드라인을 준수하는 코드라도 이 취약점의 영향을 받을 수 있는 사례가 있는지 확인하는 것이 제 과제였습니다. 그래서 SpEL 표현식을 평가하는 간단한 테스트 애플리케이션을 작성하고, Xml 이스케이프 처리 여부에 따른 입력을 테스트하여 탐지되지 않는 시나리오가 있는지 확인했습니다. 실제로 XmlEscape로 걸러지지 않는 악성 표현식이 존재했습니다. 작동하는 데모를 저희 깃허브에 게시했으며, 여기에서 확인하실 수 있습니다.
물론 보안 코딩 가이드라인도 다음과 같이 업데이트했습니다. "Spring 표현식 언어(SpEL)를 사용하여 URL 매개변수를 표시하거나 평가하지 마십시오."
이 문제의 전반적인 영향도는 높음(High)이며, 이유는 다음과 같습니다. - 공격자가 애플리케이션 서버의 기능을 수정하고 호출할 수 있음. - 데이터 및 기능에 대한 무단 액세스, 계정 탈취 및 원격 코드 실행 가능. - 공격 성공 시 기밀성 및 무결성 문제 발생.
https://www.owasp.org/index.php/Expression_Language_Injection
배포 전 AI 기반 개발 거버넌스 확보
AI 기반 위험을 측정하고, 커밋 시점에 보안 코딩 정책을 적용하며, SDLC 전반에 걸쳐 안전한 소프트웨어 제공 속도를 높이세요.
더 많은 블로그 살펴보기
보안 코딩, AI 거버넌스, 소프트웨어 리스크 관리에 관한 전문가 콘텐츠를 확인해 보세요.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
배포 전 AI 기반 개발 보안 확보
소프트웨어 개발 수명 주기 전반에서 개발자 리스크를 파악하고, 정책을 시행하며, 취약점을 예방하세요.



.avif)