새로운 ODGen 도구는 Node.js 라이브러리 PlatoBlockchain 데이터 인텔리전스에서 180개의 제로 데이를 발굴합니다. 수직 검색. 일체 포함.

새로운 ODGen 도구, Node.js 라이브러리에서 180개의 제로데이 발견

Johns Hopkins University의 연구원들은 최근 ODGen이라는 목적을 위해 특별히 개발한 새로운 코드 분석 도구를 사용하여 수천 개의 Node.js 라이브러리에서 놀라운 180개의 제로데이 취약점을 발견했습니다.

이러한 결함 중 XNUMX개는 이후 공통 취약점 및 노출(CVE) 식별자를 받았습니다. 여기에는 명령 주입 결함, 경로 탐색 취약성, 임의 코드 실행 문제 및 사이트 간 스크립팅 취약성이 포함되며 그 중 일부는 널리 사용되는 응용 프로그램에 있습니다.

이달 초 Usenix Security Symposium에서 발표된 논문에서 Song Li, Mingqing Kang, Jianwei Hou 및 Yinzhi Cao와 같은 Johns Hopkins 연구원은 ODGen이 현재 코드 분석 및 소위 그래프 쿼리 기반의 더 나은 대안이라고 설명했습니다. Node.js 취약점을 찾기 위한 접근 방식.

프로그램 분석 기반 접근 방식은 JavaScript의 코드 삽입 결함과 같은 개별 취약점 유형을 감지하는 데 유용한 것으로 입증되었습니다. 그러나 Node.js 플랫폼에 존재할 수 있는 모든 종류의 취약점을 탐지하도록 쉽게 확장할 수는 없다고 연구원들은 말했습니다. 마찬가지로 그래프 기반 코드 분석 방법(코드가 먼저 그래프로 표시된 다음 특정 코딩 오류에 대해 쿼리됨)은 C++ 및 PHP와 같은 환경에서 잘 작동합니다. 그러나 그래프 기반 접근 방식은 프로그래밍 언어가 동적 기능을 광범위하게 사용하기 때문에 JavaScript 취약점을 마이닝하는 데 효율적이지 않다고 그들은 지적했습니다.

JavaScript 취약점을 찾기 위한 '새로운' 접근 방식

그래서 연구자들은 대신 그들이 기술한 것을 개발했습니다. ODG(Object Dependence Graph)라는 "참신한" 더 나은 방법 Node.js 취약점을 감지하는 데 사용할 수 있습니다. 그들은 ODGen을 구현하여 취약점을 감지하는 Node.js 프로그램용 "ODG"를 생성했다고 말했습니다.

Johns Hopkins University의 컴퓨터 과학 조교수이자 연구 보고서의 공동 저자인 Cao는 일반적으로 그래프 기반 코드 분석과 제안된 객관적 종속성 그래프를 설명하기 위해 몇 가지 비유를 사용합니다. Cao는 "취약점을 특정 패턴(예: 빨간색 노드에 연결된 녹색 노드와 검은색 노드)으로 간주하면 그래프 기반 코드 분석 도구가 먼저 프로그램을 많은 노드와 가장자리가 있는 그래프로 변환합니다"라고 말합니다. . "그런 다음 도구는 그래프에서 이러한 패턴을 찾아 취약점을 찾습니다."

연구원들이 제안한 개체 종속성 그래프는 JavaScript 개체를 노드로 표시하고 프로그래밍 언어에 특정한 개체 간의 종속성을 포함하여 기능을 추가한 다음 오류를 쿼리하여 이 접근 방식을 개선합니다. Cao는 한 움큼의 쌀에 있는 곡물을 사용하여 방법이 어떻게 작동하는지 설명합니다. 끓이기 전에는 모든 곡물이 똑같아 보이지만 끓인 후 두 가지 다른 색조(하나는 좋은 곡물을 나타내고 다른 하나는 나쁜 곡물을 나타냄)를 가정하면 더 쉽게 식별하고 잡초를 제거할 수 있습니다. 나쁜 곡물. "추상적 해석은 쌀을 끓이는 과정과 비슷합니다. 즉, 프로그램을 다양한 색상의 물체로 변환합니다." 그래서 오류를 더 쉽게 발견할 수 있다고 Cao는 말합니다.

다양한 버그

그들의 접근 방식이 작동하는지 확인하기 위해 연구원들은 먼저 노드 패키지 관리자(npm) 저장소의 Node.js 패키지에서 이전에 보고된 330개의 취약점 샘플에 대해 ODGen을 테스트했습니다. 이 테스트는 스캐너가 302개의 취약점 중 330개를 올바르게 식별하는 것으로 나타났습니다. 비교적 높은 정확도에 힘입어 연구원들은 npm에서 약 300,000개의 Java 패키지에 대해 ODGen을 실행했습니다. 스캐너는 패키지 전체에서 총 2,964개의 잠재적인 취약점을 보고했습니다. 연구원들은 그 중 264개(모두 주당 평균 1,000회 이상 다운로드)를 확인했으며 180개가 합법적인 취약점임을 확인할 수 있었습니다. 그 중 122개는 응용 프로그램 수준에 있었고 15개는 다른 응용 프로그램이나 코드에서 가져온 패키지에 있었고 나머지 XNUMX개는 간접 패키지에 있었습니다.

ODGen이 감지한 확인된 취약점 중 다수(80)는 공격자가 취약한 애플리케이션을 통해 운영 체제 수준에서 임의의 코드를 실행할 수 있는 명령 주입 흐름이었습니다. 24개는 경로 순회 결함이었습니다. 19개는 코드 변조를 가능하게 했고 XNUMX개는 프로토타입 오염이라는 특정 유형의 명령 주입 공격을 포함했습니다.

타임 스탬프 :

더보기 어두운 독서