>백엔드 개발 >PHP 튜토리얼 >이 취약점이 존재하는 이유는 무엇입니까? CVE-WP양식)

이 취약점이 존재하는 이유는 무엇입니까? CVE-WP양식)

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-24 22:24:19536검색

지난 며칠간 Wordpress WPForms 플러그인의 CVE-2024-11205(CVSS 8.5) 취약점이 많은 관심을 끌었다는 사실을 발견했습니다. 주로 3가지 이유가 있습니다:

  • WPForms는 널리 사용되는 플러그인으로 600만 개 이상의 활성 설치(이를 사용하는 사이트)가 있습니다
  • 치명도가 높은 취약점입니다
  • 이해하기가 이상할 정도로 간단합니다

원본 Wordfence 게시물은 이미 취약점과 그 결과를 훌륭하게 설명했습니다. 따라서 여기서 나의 목표는 다릅니다. 가장 많이 사용되는 Wordpress 플러그인 중 하나에서 이렇게 기이하고 단순한 취약점이 어떻게 1년 넘게 열려 있는지 이론화하는 것입니다.

취약점

원래 게시물의 정보를 상기해 보겠습니다. 플러그인은 ajax_single_pay_refund() 및 ajax_single_paid_cancel() 함수를 사용하여 Stripe 결제 작업을 처리합니다. 그러나 로그인한 사용자가 그러한 작업을 수행할 권한이 있는지 여부는 확인되지 않습니다 ⚰️. 게다가 기능은 일부 사람들이 생각하는 것처럼 사용자가 관리자인지 여부를 단순히 확인하지 않는 wpforms_is_admin_ajax 메소드에 의해 "보호"되었습니다.

Por que essa vulnerabilidade existe? CVE-WPForms)

고치다

취약점 완화를 시작으로 정식 수정은 1.9.2.2 버전으로 업데이트하는 것입니다. 이 버전의 코드에서는 ajax_single_지불_환불 및 ajax_single_지불_취소라는 두 가지 기능에 승인 유효성 검사가 추가되었습니다. 그런데 wpforms_is_admin_ajax는 그대로 유지됐죠?.

Por que essa vulnerabilidade existe? CVE-WPForms)

취약점은 언제 발생했습니까?

첫 번째 취약한 버전은 2023년 11월 28일에 출시된 WPForms 1.8.4입니다. 이 버전에는 "동기화된 스트라이프 대시보드" 및 "반복 결제 논리"를 포함한 "새로운 스트라이프 결제 도구"가 도입되었습니다.

Por que essa vulnerabilidade existe? CVE-WPForms)

변경 사항에 따라 업데이트로 15개의 새로운 파일이 추가되고, 64개의 파일이 삭제되고, 425개의 파일이 편집되었습니다. 누군가가 직접 검토할 수 있는 훌륭한 릴리스인 것 같습니다 ☠️.

Por que essa vulnerabilidade existe? CVE-WPForms)

취약점이 존재하는 이유는 무엇입니까?

자동화된 보안 도구가 감지할 수 있나요?

이 질문에 답하기 위해 저는 SAST Semgrep(제가 즐겨 사용하는 기능)과 Gepeto(일명 ChatGPT)를 테스트했습니다.

셈그렙

semgrep을 실행했습니다. 전체 프로젝트에서 그는 취약점을 감지하지 못했습니다.

Por que essa vulnerabilidade existe? CVE-WPForms)

Por que essa vulnerabilidade existe? CVE-WPForms)

결과는 예상대로입니다. 공식적으로 인증 실패 취약점은 비즈니스 로직 취약점으로 간주됩니다. 즉, 자동화된 도구로는 거의 감지되지 않습니다.

공통 약점 열거 CWE-862 권한 누락이 동의하는 것 같습니다.

Por que essa vulnerabilidade existe? CVE-WPForms)

제페토

ChatGPT에게 과거 코드에서 문제점을 확인할 수 있는지 물었습니다. 나는 그에게 ajax_single_paid_refund 및 wpforms_is_admin_ajax 메소드만 보냈습니다(그날 무료 ChatGPT를 모두 사용하고 싶지 않기 때문인가요?).

Por que essa vulnerabilidade existe? CVE-WPForms)

그리고 놀랍게도 그는 No Rate Limiting이나 Logging과 같은 이 코드의 다른 "가능한 취약점" 중에서 취약점을 식별하고 솔루션(실제 수정 사항과 매우 유사합니까?)을 지적했습니다.

Por que essa vulnerabilidade existe? CVE-WPForms)

“아, 근데 AI 디렉팅하면서 프로젝트 전체를 SAST로 돌렸잖아” 인생이 원래 그런 걸까요? ?‍♂️

취약점이 존재하는 이유는 무엇입니까?

보시다시피 기존 보안 도구는 인증 취약점을 거의 감지하지 못합니다.

CWE-862 권한 누락에 따르면 이 취약점은 코드 검토, 침투 테스트, 위협 모델링 등 수동 분석을 통해 탐지할 수 있습니다. 그리고 그 효율성은 "보통"으로만 간주됩니다.

Por que essa vulnerabilidade existe? CVE-WPForms)

인증 취약점에 대해 이야기하는 다른 자료는 이것이 다루기가 복잡하고 현실 세계에서 흔히 발생하는 취약점 클래스임을 강조합니다. 예를 들어 OWASP Top 10 API Security 2019 및 2023에서는 인증 취약점이 첫 번째와 세 번째로 있습니다. 입장.

또 다른 점은 이전에 유효성 검사로 사용된 방법(wpforms_is_admin_ajax)이 이름이 매우 나쁘고 개발자와 코드 검토자를 혼동하도록 설계되었다는 것입니다. 이 기능은 로그인한 사용자가 관리자인지 여부를 확인하지 않기 때문입니다.

제 이론에 따르면 이 취약점은 1) 수동 분석 없이는 탐지가 거의 불가능합니다. 2) wpforms_is_admin_ajax 방법은 코드를 분석하는 많은 리뷰어에게 혼란을 줄 수 있습니다.

앞으로 이런 분석도 또 나왔으면 좋겠습니다. 마음에 드셨다면 이모, 할머니에게 게시물을 공유해주세요. 의심이 듭니까? 저는 항상 Bluesky, Threads 및 Twitter를 사용하고 있습니다.

위 내용은 이 취약점이 존재하는 이유는 무엇입니까? CVE-WP양식)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.