Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

코드 설명

$ npm install adm-zip, semver, acorn, estraverse, @babel/parser, @babel/traverse, eslint-scope

  • main.js
    • 사용방법: $ node main.js <pkgName> <pkgVersion> <vulnFunc> <zipPath>
    • Input
      • pkgName: 취약점이 있는 패키지 이름 (= Upstream 이름)
      • pkgVersion: 취약점이 있는 패키지 버전 (= Upstream 버전)
      • vulnFunc: 취약점이 있는 vulnerable function
      • zipPath: 타겟 소프트웨어 (=Downstream source code zip 파일)
    • Output
      • reachability 여부를 확인 가능한 result.json 파일
    • 알고리즘 순서
      • 1단계: ManifestAnalyzer에서 메타데이터 분석
      • 2단계: StaticCallAnalyzer에서 AST 만들어 vulnFunc 사용여부 분석
      • 3단계: CallGraphPathFinder에서 Call grpah 생성
  • ManifestAnalyzer.js
    • package.json을 읽어 dependencies에 pkgName@pkgVersion에 해당되는 항목이 있는지 체크
  • StaticCallAnalyzer.js
    • zip 파일에 있는 모든 자바스크립트 파일에서 pkgName을 import하고 vulnFunc를 사용하고 있는지 체크
  • CallGraphPathFinder.js
    • Call grpah 생성

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages