RISS 학술연구정보서비스

검색
다국어 입력

http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.

변환된 중국어를 복사하여 사용하시면 됩니다.

예시)
  • 中文 을 입력하시려면 zhongwen을 입력하시고 space를누르시면됩니다.
  • 北京 을 입력하시려면 beijing을 입력하시고 space를 누르시면 됩니다.
닫기
    인기검색어 순위 펼치기

    RISS 인기검색어

      KCI등재

      정적 오염 분석을 활용한 타입스크립트 코드의 보안 취약점 탐지

      한글로보기

      https://www.riss.kr/link?id=A107399845

      • 0

        상세조회
      • 0

        다운로드
      서지정보 열기
      • 내보내기
      • 내책장담기
      • 공유하기
      • 오류접수

      부가정보

      국문 초록 (Abstract)

      자바스크립트로 작성된 웹 어플리케이션에서 Cross-Site Scripting (XSS), SQL Injection과 같은 검증되지 않은 사용자 입력 데이터로 인해 발생하는 취약점을 탐지하기 위해 오염 분석 기법이 널리 사...

      자바스크립트로 작성된 웹 어플리케이션에서 Cross-Site Scripting (XSS), SQL Injection과 같은 검증되지 않은 사용자 입력 데이터로 인해 발생하는 취약점을 탐지하기 위해 오염 분석 기법이 널리 사용되고 있다. 이러한 취약점을 탐지하기 위해서는 사용자 입력 데이터에 영향을 받는 변수들을 추적하는 것이 중요하지만, 자바스크립트의 동적인 특성으로 인해 웹 어플리케이션을 실행해 보지 않고 그러한 변수들을 식별하는 것은 매우 어렵다. 때문에, 기존의 오염 분석 도구들은 대상 어플리케이션을 실행하는 오버헤드가 존재하는 동적 오염 분석을 사용하도록 개발되었다. 본 논문에서는 타입스크립트(자바스크립트의 상위집합) 컴파일러를 활용해 얻은 심볼 정보를 기반으로 데이터의 흐름을 정확히 추적하고, 타입스크립트 코드에서 보안 취약점을 발견하는 새로운 정적 오염 분석 기법을 제안하였다. 제안한 기법은 개발자가 검증되지 않은 사용자 입력 데이터를 포함할 수 있는 변수에 표시를 할 수 있도록 하며, 이를 활용해 사용자 입력 값에 영향을 받는 변수와 데이터를 추적한다. 제안한 기법은 TypeScript 컴파일러에 원활히 통합될 수 있기 때문에, 별도의 도구로 작동하는 기존 분석 도구와 달리 개발자가 개발 과정에서 취약점을 발견할 수 있게 한다. 제안한 기법의 유효성을 확인하기 위해 프로토타입을 구현하였으며, 취약점이 보고된 8개의 웹 어플리케이션을 선정하여 분석을 수행하여 성능을 평가한 결과 기존의 취약점을 모두 탐지할 수 있음을 확인하였다.

      더보기

      다국어 초록 (Multilingual Abstract)

      Taint analysis techniques are popularly used to detect web vulnerabilities originating from unverified user input data, such as Cross-Site Scripting (XSS) and SQL Injection, in web applications written in JavaScript. To detect such vulnerabilities, it...

      Taint analysis techniques are popularly used to detect web vulnerabilities originating from unverified user input data, such as Cross-Site Scripting (XSS) and SQL Injection, in web applications written in JavaScript. To detect such vulnerabilities, it would be necessary to trace variables affected by user-submitted inputs. However, because of the dynamic nature of JavaScript, it has been a challenging issue to identify those variables without running the web application code. Therefore, most existing taint analysis tools have been developed based on dynamic taint analysis, which requires the overhead of running the target application. In this paper, we propose a novel static taint analysis technique using symbol information obtained from the TypeScript (a superset of JavaScript) compiler to accurately track data flow and detect security vulnerabilities in TypeScript code. Our proposed technique allows developers to annotate variables that can contain unverified user input data, and uses the annotation information to trace variables and data affected by user input data. Since our proposed technique can seamlessly be incorporated into the TypeScript compiler, developers can find vulnerabilities during the development process, unlike existing analysis tools performed as a separate tool. To show the feasibility of the proposed method, we implemented a prototype and evaluated its performance with 8 web applications with known security vulnerabilities. We found that our prototype implementation could detect all known security vulnerabilities correctly.

      더보기

      목차 (Table of Contents)

      • 요약
      • ABSTRACT
      • Ⅰ. 서론
      • Ⅱ. 배경 지식
      • Ⅲ. 관련 연구
      • 요약
      • ABSTRACT
      • Ⅰ. 서론
      • Ⅱ. 배경 지식
      • Ⅲ. 관련 연구
      • Ⅳ. 제안 기법
      • Ⅴ. 평가
      • Ⅵ. 논의
      • 7. 결론 및 향후 계획
      • References
      더보기

      참고문헌 (Reference)

      1 "taser/new-lgtm-alerts.md"

      2 "spikebrehm/isomorphic-tutorial"

      3 "nhn/tui-editor #1022"

      4 "mysql2 - npm"

      5 "mnutt/davros"

      6 "halohalospecial/atom-elmjutsu"

      7 "giper45/DockerSecurityPlayground"

      8 R. Jahanshahi, "You shall not pass:Mitigating SQL Injection Attacks on Legacy Web Applications" 445-457, 2020

      9 "Use JSDoc: Index"

      10 "Usage statistics of server-side program ming languages for websites"

      1 "taser/new-lgtm-alerts.md"

      2 "spikebrehm/isomorphic-tutorial"

      3 "nhn/tui-editor #1022"

      4 "mysql2 - npm"

      5 "mnutt/davros"

      6 "halohalospecial/atom-elmjutsu"

      7 "giper45/DockerSecurityPlayground"

      8 R. Jahanshahi, "You shall not pass:Mitigating SQL Injection Attacks on Legacy Web Applications" 445-457, 2020

      9 "Use JSDoc: Index"

      10 "Usage statistics of server-side program ming languages for websites"

      11 "TypeScript: Typed JavaScript at Any Scale"

      12 "TypeScript Compiler Internals"

      13 W. Huang, "Type-Based Taint Analysis for Java Web Applications" 140-154, 2014

      14 Z. Gao, "To Type or Not to Type: QuantifyingDetectable Bugs in JavaScript" 758-769, 2017

      15 "The exponential cost of fixing bugs"

      16 R. Wang, "TT-XSS : A novel taint tracking based dynamic detection framework for DOM Cross-Site Scripting" 118 : 100-106, 2018

      17 "Static Code Analysis Control | OWASP Foundation"

      18 "State of JS 2020: JavaScript Flavors"

      19 "SonarQube - Code Quality and Code Security"

      20 C. Staicu, "SYNODE: Understanding and Automatically Preventing Injection Attacks on NODE.JS" 2018

      21 "SQL Injection | OWASP"

      22 S. F. Syed, "Removal of Web Application Vulnerabilities using Taint Analyzer and Code Corrector" 1-7, 2019

      23 B. Stock, "Precise Client-side Protection against DOM-based Cross-Site Scripting" 655-670, 2014

      24 S. Wei, "Practical blended taint analysis for JavaScript" 336-346, 2013

      25 R. Karim, "Platform-Independent Dynamic Taint Analysis for JavaScript" 46 (46): 1364-1379, 2020

      26 K. Cao, "PHP vulnerability detection based on taint analysis" 436-439, 2017

      27 "OWASP Top 10 Application Security Ris ks - 2017"

      28 "LGTM – Continuous security analysis"

      29 "Flow: A Static Type Checker for JavaScript"

      30 "FineUploader/server-examples"

      31 B. Livshits, "Finding Security Vulnerabilities in Java Applications with Static Analysis" 2005

      32 C. Staicu, "Extracting Taint Specifications for JavaScript Libraries" 198-209, 2020

      33 "Express - Node.js web application framework"

      34 M. Backes, "Efficient and Flexible Discovery of PHP Application Vulnerabilities" 334-349, 2017

      35 "DefinitelyTyped/DefinitelyTyped"

      36 "DeepSource: Automate code reviews with static analysis"

      37 "Declaration Files"

      38 "Cross Site Scripting (XSS) Software Attack | OWASP Foundation"

      39 "CVE-2019-1020008: stacktable.js before 1.0.4 allows XSS"

      40 J. Strimpel, "Building Isomorphic JavaScript Apps" O'Reilly Media, Inc 3-13, 2016

      41 "AmpersandJS/ampersand"

      42 S. Lekies, "25million flows later: large-scale detection of DOM-based XSS" 1193-1204, 2013

      더보기

      동일학술지(권/호) 다른 논문

      동일학술지 더보기

      더보기

      분석정보

      View

      상세정보조회

      0

      Usage

      원문다운로드

      0

      대출신청

      0

      복사신청

      0

      EDDS신청

      0

      동일 주제 내 활용도 TOP

      더보기

      주제

      연도별 연구동향

      연도별 활용동향

      연관논문

      연구자 네트워크맵

      공동연구자 (7)

      유사연구자 (20) 활용도상위20명

      인용정보 인용지수 설명보기

      학술지 이력

      학술지 이력
      연월일 이력구분 이력상세 등재구분
      2026 평가예정 재인증평가 신청대상 (재인증)
      2020-01-01 평가 등재학술지 유지 (재인증) KCI등재
      2017-01-01 평가 등재학술지 유지 (계속평가) KCI등재
      2013-01-01 평가 등재학술지 유지 (등재유지) KCI등재
      2010-01-01 평가 등재학술지 유지 (등재유지) KCI등재
      2008-01-01 평가 등재 1차 FAIL (등재유지) KCI등재
      2005-01-01 평가 등재학술지 선정 (등재후보2차) KCI등재
      2004-01-01 평가 등재후보 1차 PASS (등재후보1차) KCI등재후보
      2003-01-01 평가 등재후보학술지 선정 (신규평가) KCI등재후보
      더보기

      학술지 인용정보

      학술지 인용정보
      기준연도 WOS-KCI 통합IF(2년) KCIF(2년) KCIF(3년)
      2016 0.41 0.41 0.43
      KCIF(4년) KCIF(5년) 중심성지수(3년) 즉시성지수
      0.45 0.4 0.508 0.04
      더보기

      이 자료와 함께 이용한 RISS 자료

      나만을 위한 추천자료

      해외이동버튼