RISS 학술연구정보서비스

검색
다국어 입력

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

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

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

    RISS 인기검색어

      기호실행 심볼릭 정보를 통한 시큐어코딩의 동시성 오류(concurrency error) 탐지 방법 = Detection methods about concurrency error of secure coding based on symbolic informartion of symbolic execution

      한글로보기

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

      • 저자
      • 발행사항

        서울 : 숭실대학교, 2018

      • 학위논문사항

        학위논문(박사) -- 숭실대학교 대학원 , IT정책경영학과 , 2018

      • 발행연도

        2018

      • 작성언어

        한국어

      • KDC

        325.1 판사항(6)

      • DDC

        658.4 판사항(23)

      • 발행국(도시)

        서울

      • 형태사항

        xi, 82장 : 삽화 ; 26 cm

      • 일반주기명

        지도교수: 전문석
        참고문헌: 장 76-82

      • 소장기관
        • 국립중앙도서관 국립중앙도서관 우편복사 서비스
        • 숭실대학교 도서관 소장기관정보
      • 0

        상세조회
      • 0

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

      부가정보

      다국어 초록 (Multilingual Abstract) kakao i 다국어 번역

      Detection Methods about Concurrency Error of Secure Coding based on Symbolic Information of Symbolic Execution

      Kim, Joon-Ho
      Department of IT Policy and Management
      Graduate School of Soongsil University

      As businesses develope and evolve, they are increasingly reliant on software. Almost all areas such as the Internet, home appliances, and smart devices are combined with software, making it difficult to imagine a world without software.
      However, the higher the reliance on software, the worse the side effects. The most common case is to exploit security weaknesses left in the software without being removed from the production process. Attackers try to take advantage of the security weaknesses left in the software to seize information and take monetary gain. It has become a situation where social confusion occur and even life might be dangerous.
      Creating secure software is more important than we thought, and it is directly related to our survival. In order to prevent attacks on software, it is important to completely eliminate security weaknesses in the source code and to properly control the development process for them. To this end, various software inspection methodologies are emerging. Among them, static analysis inspection methodology has many advantages and is effective. However, static analysis methodology is analyzed and checked only for source code, so there is a high possibility of false positives and false negatives. Failure to resolve many false positives and false negatives leads to less confidence in the inspection methodology. In particular, it is difficult to check for concurrency errors, which are an important issue in multi-threaded environments, using the static analysis methodology.
      To improve this situation, I propose a methodology for checking concurrency errors in static analysis methodology using symbolic execution. Symbolic execution differs greatly from the traditional methodologies of checking security weaknesses in a patterned manner. Symbolic Execution methodology added to the static analysis methodology can detect the correct security weaknesses against concurrency errors without false positives or false negatives. This is a advanced static analysis methodology that can help implementing more secure software. To prove this, I have used open source programs to inspect various codes.
      번역하기

      Detection Methods about Concurrency Error of Secure Coding based on Symbolic Information of Symbolic Execution Kim, Joon-Ho Department of IT Policy and Management Graduate School of Soongsil University As businesses develope and evolve, they are inc...

      Detection Methods about Concurrency Error of Secure Coding based on Symbolic Information of Symbolic Execution

      Kim, Joon-Ho
      Department of IT Policy and Management
      Graduate School of Soongsil University

      As businesses develope and evolve, they are increasingly reliant on software. Almost all areas such as the Internet, home appliances, and smart devices are combined with software, making it difficult to imagine a world without software.
      However, the higher the reliance on software, the worse the side effects. The most common case is to exploit security weaknesses left in the software without being removed from the production process. Attackers try to take advantage of the security weaknesses left in the software to seize information and take monetary gain. It has become a situation where social confusion occur and even life might be dangerous.
      Creating secure software is more important than we thought, and it is directly related to our survival. In order to prevent attacks on software, it is important to completely eliminate security weaknesses in the source code and to properly control the development process for them. To this end, various software inspection methodologies are emerging. Among them, static analysis inspection methodology has many advantages and is effective. However, static analysis methodology is analyzed and checked only for source code, so there is a high possibility of false positives and false negatives. Failure to resolve many false positives and false negatives leads to less confidence in the inspection methodology. In particular, it is difficult to check for concurrency errors, which are an important issue in multi-threaded environments, using the static analysis methodology.
      To improve this situation, I propose a methodology for checking concurrency errors in static analysis methodology using symbolic execution. Symbolic execution differs greatly from the traditional methodologies of checking security weaknesses in a patterned manner. Symbolic Execution methodology added to the static analysis methodology can detect the correct security weaknesses against concurrency errors without false positives or false negatives. This is a advanced static analysis methodology that can help implementing more secure software. To prove this, I have used open source programs to inspect various codes.

      더보기

      국문 초록 (Abstract) kakao i 다국어 번역

      기호실행 심볼릭 정보를 통한 시큐어코딩의 동시성 오류(Concurrency Error) 탐지 방법

      김준호
      IT정책경영학과
      숭실대학교 대학원

      비즈니스가 발전하고 진화함에 따라 소프트웨어에 대한 의존도가 높아지고 있다. 인터넷이나 가전, 스마트 기기 등 거의 모든 영역이 소프트웨어와 결합하고 있기 때문에 소프트웨어 없는 세계를 상상조차 힘들다.
      하지만, 소프트웨어에 대한 의존도가 높아질수록 부작용도 심해지는데, 대표적인 사례는 소프트웨어에 제작과정에서 제거되지 않고 남겨진 보안약점을 악용하는 것이다. 공격자(해커)는 소프트웨어 안에 남겨진 보안약점을 이용해서 정보를 탈취하고 금전적 이득을 취하려 한다. 심지어는 사회적 혼란을 유발되고 생명까지도 담보해야할 상황이 된 것이다.
      안전한 소프트웨어를 만드는 것은 생각보다 중요하고 우리 생존과 직결된다. 소프트웨어에 대한 공격을 사전차단하기 위해서는 소스코드에 보안약점을 완전하게 제거하고 이를 위한 개발과정을 적절하게 통제하는 것이 중요하다. 이를 위해 각종 소프트웨어 점검 방법론이 대두 되고 있는데, 그중에서 정적분석 점검 방법론은 장점이 많고 효과가 크다. 하지만 정적분석 방법론은 소스코드만을 대상으로 분석 및 점검을 실시하기 때문에 오탐과 미탐의 발생 가능성이 크다. 많은 오탐과 미탐의 문제를 해결하지 못하면 점검방법론의 신뢰가 떨어진다. 특히 그 중에서도 멀티쓰레드 환경의 중요한 이슈인 동시성 오류에 대해서는 정적분석 방법론으로 점검하기가 어렵다.
      이와 같은 상황을 개선하기 위해 정적분석 방법론에서 동시성 오류를 점검할 수 있는 방법론을 제안한다. 기호실행을 활용하는 방법인데, 기호실행은 소프트웨어 점검 시 상수값 대신 기호를 변수에 할당하는 방식으로 모든 실행경로에 대해 소프트웨어를 실행하는 것처럼 검증할 수 있는 장점이 있다.
      기호실행은 점검하는 방식은 패턴 방식으로 보안약점을 점검해내는 기존의 방식과 크게 차별화 된다. 하지만 기호실행 또한 몇몇 문제점으로 안고 있기 때문에 기존 방법론과 선택적 병행 사용이 좋은 결과는 내는 것 같다. 기호실행 활용한 방법론이 정적 분석 방법론에 추가되면 오탐이나 미탐 없이 동시성 오류에 대해 정확한 해당 보안약점을 점검해 낼 수 있다. 이는 진일보한 정적분석 방법론이고 이를 활용하면 좀 더 안전한 소프트웨어가 구현할 수 있다. 이를 증명하기 위해 다양한 코드를 대상으로 오픈소스를 사용해서 실증했다.
      번역하기

      기호실행 심볼릭 정보를 통한 시큐어코딩의 동시성 오류(Concurrency Error) 탐지 방법 김준호 IT정책경영학과 숭실대학교 대학원 비즈니스가 발전하고 진화함에 따라 소프트웨어에 대한 의존...

      기호실행 심볼릭 정보를 통한 시큐어코딩의 동시성 오류(Concurrency Error) 탐지 방법

      김준호
      IT정책경영학과
      숭실대학교 대학원

      비즈니스가 발전하고 진화함에 따라 소프트웨어에 대한 의존도가 높아지고 있다. 인터넷이나 가전, 스마트 기기 등 거의 모든 영역이 소프트웨어와 결합하고 있기 때문에 소프트웨어 없는 세계를 상상조차 힘들다.
      하지만, 소프트웨어에 대한 의존도가 높아질수록 부작용도 심해지는데, 대표적인 사례는 소프트웨어에 제작과정에서 제거되지 않고 남겨진 보안약점을 악용하는 것이다. 공격자(해커)는 소프트웨어 안에 남겨진 보안약점을 이용해서 정보를 탈취하고 금전적 이득을 취하려 한다. 심지어는 사회적 혼란을 유발되고 생명까지도 담보해야할 상황이 된 것이다.
      안전한 소프트웨어를 만드는 것은 생각보다 중요하고 우리 생존과 직결된다. 소프트웨어에 대한 공격을 사전차단하기 위해서는 소스코드에 보안약점을 완전하게 제거하고 이를 위한 개발과정을 적절하게 통제하는 것이 중요하다. 이를 위해 각종 소프트웨어 점검 방법론이 대두 되고 있는데, 그중에서 정적분석 점검 방법론은 장점이 많고 효과가 크다. 하지만 정적분석 방법론은 소스코드만을 대상으로 분석 및 점검을 실시하기 때문에 오탐과 미탐의 발생 가능성이 크다. 많은 오탐과 미탐의 문제를 해결하지 못하면 점검방법론의 신뢰가 떨어진다. 특히 그 중에서도 멀티쓰레드 환경의 중요한 이슈인 동시성 오류에 대해서는 정적분석 방법론으로 점검하기가 어렵다.
      이와 같은 상황을 개선하기 위해 정적분석 방법론에서 동시성 오류를 점검할 수 있는 방법론을 제안한다. 기호실행을 활용하는 방법인데, 기호실행은 소프트웨어 점검 시 상수값 대신 기호를 변수에 할당하는 방식으로 모든 실행경로에 대해 소프트웨어를 실행하는 것처럼 검증할 수 있는 장점이 있다.
      기호실행은 점검하는 방식은 패턴 방식으로 보안약점을 점검해내는 기존의 방식과 크게 차별화 된다. 하지만 기호실행 또한 몇몇 문제점으로 안고 있기 때문에 기존 방법론과 선택적 병행 사용이 좋은 결과는 내는 것 같다. 기호실행 활용한 방법론이 정적 분석 방법론에 추가되면 오탐이나 미탐 없이 동시성 오류에 대해 정확한 해당 보안약점을 점검해 낼 수 있다. 이는 진일보한 정적분석 방법론이고 이를 활용하면 좀 더 안전한 소프트웨어가 구현할 수 있다. 이를 증명하기 위해 다양한 코드를 대상으로 오픈소스를 사용해서 실증했다.

      더보기

      목차 (Table of Contents)

      • 국문초록 ⅵ
      • 영문초록 ⅷ
      • 제 1 장 서 론 1
      • 1.1. 연구 배경 1
      • 1.2. 연구 내용 및 범위 3
      • 국문초록 ⅵ
      • 영문초록 ⅷ
      • 제 1 장 서 론 1
      • 1.1. 연구 배경 1
      • 1.2. 연구 내용 및 범위 3
      • 1.3. 논문의 구성 4
      • 제 2 장 관련연구 6
      • 2.1. 시큐어코딩 6
      • 2.1.1. 보안약점과 보안취약점 6
      • 2.1.2. 시큐어코딩의 필요성 8
      • 2.1.3. 시큐어코딩 적용 12
      • 2.1.4. 시큐어코딩 적용 효과 12
      • 2.2. 주요 소프트웨어 보안약점 표준 13
      • 2.2.1. 보안약점 관련 주요 표준 13
      • 2.2.2. 주요 시큐어코딩 지표 17
      • 2.3. 시큐어코딩 점검 방법론 20
      • 2.3.1. 시큐어코딩 점검 20
      • 2.3.2. 정적도구를 활용한 점검 22
      • 2.3.3. 동적도구를 활용한 점검 25
      • 2.4. 점검방법론 활용방안 30
      • 2.5. 정적분석을 통한 시큐어코딩 점검시 난제 31
      • 2.5.1. 정적분석시 발생하는 오탐과 미탐 31
      • 2.5.2. 정적분석의 한계 32
      • 2.6. 동시성 오류 33
      • 2.6.1. 프로그램이 동시성을 지향하는 이유 33
      • 2.6.2. 동시성 처리의 딜레마 33
      • 2.6.3. 동시성 오류의 수정의 어려움 34
      • 2.6.4. 주요 동시성 오류 34
      • 2.6.5. 시큐어코딩과 동시성 오류 35
      • 2.6.6. 동시성 오류 탐지를 위한 정적분석 개선 36
      • 2.7. 기호실행 적용을 통한 정적분석 방법론 개선 38
      • 2.7.1. 기호실행 38
      • 2.7.2. 기호실행 동작원리 39
      • 2.7.3. 보안약점 검출을 위한 정적분석에 기호실행 적용 43
      • 2.8. 기호실행 적용 시 고려 사항 44
      • 2.8.1. 메모리 45
      • 2.8.2. 환경 45
      • 2.8.3. 상태 공간(State space) 확장 45
      • 2.8.4. 제한 해결 (Constraint solving) 45
      • 2.8.5. 점검 체커 구현 46
      • 2.9. 기호실행 활용 46
      • 제 3 장 동시성 오류 탐지를 위한 분석 기법 49
      • 3.1. 기호실행 심볼릭 정보를 활용한 정적분석 점검 방법론 49
      • 3.1.1. 일반적인 정적 분석 구성 49
      • 3.1.2. 제안시스템 구성 50
      • 3.2. 기호실행에 대한 분석체커 구현 52
      • 3.2.1. 중간 단계를 활용한 체커 개발 52
      • 3.2.2. 체커 구현을 위한 주요 모듈 53
      • 3.2.3. 심볼릭 정보를 활용한 경쟁상태 검출 57
      • 제 4 장 보안약점 점검도구 성능평가 및 비교분석 58
      • 4.1. 성능평가 환경 58
      • 4.1.1. 정적분석 오픈소스 - FindBugs 58
      • 4.1.2. 기호실행 오픈소스 - Java PathFinder 59
      • 4.1.3. 테스트 코드 60
      • 4.1.4. 경쟁상태를 위한 샘플코드 60
      • 4.1.5. 성능평가를 위한 시스템 사양 61
      • 4.2. 성능평가 실행과정 62
      • 4.2.1. FindBugs 실행 62
      • 4.2.2. JPF(Java Path Finder) 실행과정 65
      • 4.2.3. 실행결과 68
      • 4.3. 비교 분석 72
      • 제 5 장 결론 74
      • 참고문헌 76
      더보기

      참고문헌 (Reference)

      더보기

      분석정보

      View

      상세정보조회

      0

      Usage

      원문다운로드

      0

      대출신청

      0

      복사신청

      0

      EDDS신청

      0

      동일 주제 내 활용도 TOP

      더보기

      주제

      연도별 연구동향

      연도별 활용동향

      연관논문

      연구자 네트워크맵

      공동연구자 (7)

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

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

      나만을 위한 추천자료

      해외이동버튼