KR102299640B1 - Method and system for similarity analysis among kernel system calls using fuzz testing - Google Patents

Method and system for similarity analysis among kernel system calls using fuzz testing Download PDF

Info

Publication number
KR102299640B1
KR102299640B1 KR1020200137024A KR20200137024A KR102299640B1 KR 102299640 B1 KR102299640 B1 KR 102299640B1 KR 1020200137024 A KR1020200137024 A KR 1020200137024A KR 20200137024 A KR20200137024 A KR 20200137024A KR 102299640 B1 KR102299640 B1 KR 102299640B1
Authority
KR
South Korea
Prior art keywords
call
called
similarity
kernel
calls
Prior art date
Application number
KR1020200137024A
Other languages
Korean (ko)
Inventor
강병훈
박민준
최예슬
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020200137024A priority Critical patent/KR102299640B1/en
Application granted granted Critical
Publication of KR102299640B1 publication Critical patent/KR102299640B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Disclosed are a method and system for analyzing a kernel system call similarity using a fuzz testing. The method for analyzing a system call similarity according to one embodiment may comprise: a step of calling system calls, in a modulated kernel, by using a fuzz testing tool; and a step of classifying the called system calls through a similarity analysis for the called system calls. Therefore, the present invention is capable of reducing a possibility of a security accident from occurring.

Description

퍼즈 테스팅을 이용한 커널 시스템 콜 유사도 분석 방법 및 시스템{METHOD AND SYSTEM FOR SIMILARITY ANALYSIS AMONG KERNEL SYSTEM CALLS USING FUZZ TESTING}Kernel system call similarity analysis method and system using fuzz testing

아래의 설명은 커널 시스템 콜의 유사도를 자동으로 분석하는 효율적인 방법에 관한 것으로서, 더욱 상세하게는 분석자가 변조한 커널이 저장하는 기록을 분석하여 유사도를 수치화하는 방법에 관한 것이다.The following description relates to an efficient method for automatically analyzing the similarity of kernel system calls, and more particularly, to a method for quantifying the similarity by analyzing the records stored by the kernel modulated by the analyst.

컴퓨터 기술 발전에 따라 다양한 종류의 시스템들이 등장하고 있다. 이들 중, 컴퓨터 운영체제 혹은 운영체제와 유사한 기능 및 구조를 가진 시스템의 경우 시스템 콜이라고 불리는 실행 계층간 통신수단을 가지게 된다. 시스템을 설계하거나 관리하는 입장에서는 이 시스템 콜을 효율적으로 제어할 수단을 가지고 싶어하는데, 이때 자주 사용하는 방식이 시스템 콜을 분류하여 전체 시스템 콜의 개수를 줄이거나 혹은 유사한 종류의 시스템 콜은 한번에 묶어 제한하는 등의 관리를 하는 것이다. With the development of computer technology, various types of systems are emerging. Among them, in the case of a computer operating system or a system having a function and structure similar to that of the operating system, a communication means between execution layers called a system call is provided. System design or management wants to have a means to efficiently control this system call. In this case, the frequently used method is to reduce the total number of system calls by classifying system calls, or to bundle similar types of system calls at once. management of restrictions, etc.

보통 운영체제의 경우에 적게는 100개 단위에서 많게는 1000개 단위가 넘어가는 시스템 콜을 가지고 있다. 하지만 기존의 연구들은 시스템 콜의 분류를 수동으로 하고 있어 관리자의 미숙으로 인한 보안 사고가 일어날 가능성을 포함하고 있다. 대표적으로 linux에서 mmap과 read/write 시스템 콜이 그러한 경우인데, 파일 읽기/쓰기를 제한하는 경우에 read/write 혹은 관련 시스템 콜만 제한하였을 때 mmap 시스템 콜을 이용하여 우회가 가능하다는 것이 널리 알려져 있다. 수많은 시스템 콜들 간의 관계를 수동으로 정리하는 것은 효율성이 높다고 보기 어렵다.In the case of a normal operating system, there are at least 100 and as many as 1000 system calls. However, existing studies manually classify system calls, including the possibility of security incidents due to inexperienced administrators. Typically, mmap and read/write system calls in linux are such cases. It is widely known that when file read/write is restricted, it is possible to bypass using the mmap system call when only read/write or related system calls are restricted. Manually arranging the relationships between numerous system calls is difficult to see as highly efficient.

함수간의 유사도를 분석하는 선행 기술들이 다수 존재한다. 그러나 선행 연구들은 악성코드 분석이나 혹은 기술의 유출을 막기 위해 완전히 같은 소스 코드로부터 컴파일된 바이너리를 대상으로 분석을 하는 것이 대부분이다.There are a number of prior art techniques for analyzing the similarity between functions. However, most of the preceding studies analyze binaries compiled from the same source code to prevent malicious code analysis or technology leakage.

현재까지 커널 시스템 콜들의 분류를 수동으로 해왔던 문제를 해결하기 위해 창안되었다. 각 시스템 콜들은 임의의 함수로 분류할 수 있지만, 같은 시스템에서 이용된다는 점에서 완벽한 임의의 두 함수는 아니다. 시스템 콜들이 가지고 있는 공통점을 이용해 각 시스템 콜들 간의 유사도를 자동으로 검사하여 그 시간을 단축시키는 데에 목적이 있다.It was created to solve the problem of manually classifying kernel system calls until now. Each system call can be classified as an arbitrary function, but it is not completely arbitrary two functions in that they are used in the same system. The purpose is to shorten the time by automatically checking the similarity between each system call using the commonalities of the system calls.

시스템 콜 유사도 분석 방법은, 퍼즈 테스팅 툴(Fuzz Testing Tool)을 이용하여 변조된 커널에서 시스템 콜들을 호출하는 단계; 및 상기 호출된 시스템 콜들에 대한 유사도 분석을 통해 상기 호출된 시스템 콜들을 분류하는 단계를 포함할 수 있다. The system call similarity analysis method includes calling system calls in a kernel that has been modulated using a fuzz testing tool; and classifying the called system calls through similarity analysis for the called system calls.

상기 분류하는 단계는, 로컬 저장소에 저장된 시스템 콜들의 자료구조 정보에 기초하여 상기 호출된 시스템 콜들 간의 유사도를 분석하는 단계를 포함할 수 있다. The classifying may include analyzing a degree of similarity between the called system calls based on data structure information of the system calls stored in the local storage.

상기 분류하는 단계는, 상기 분석된 유사도를 수치로 정량화하여, 임의의 시스템 콜이 호출되었을 경우, 상기 호출된 임의의 시스템 콜을 상기 분석된 유사도에 기초하여 분류하는 단계를 포함할 수 있다. The classifying may include quantifying the analyzed similarity with a numerical value and, when a system call is called, classifying the called system call based on the analyzed similarity.

상기 호출하는 단계는, 커널 소스코드를 컴파일함에 따라 퍼즈 테스팅 툴을 이용하여 변조된 커널에 무작위 값을 대입하여 시스템 콜들을 호출하는 단계를 포함할 수 있다. The calling may include calling the system calls by substituting a random value into the kernel modulated using a fuzz testing tool as the kernel source code is compiled.

상기 호출하는 단계는, 상기 시스템 콜들을 호출함에 따라 변조된 커널에서 수행된 코드 수정을 통해 상기 호출된 시스템 콜들의 자료구조 정보를 기록하고, 상기 기록된 자료구조 정보를 로컬 저장소에 저장하는 단계를 포함할 수 있다. In the calling step, the data structure information of the called system calls is recorded through code modification performed in the kernel that is modulated as the system calls are called, and the recorded data structure information is stored in a local storage. may include

시스템 콜 유사도 분석 시스템은, 퍼즈 테스팅 툴(Fuzz Testing Tool)을 이용하여 변조된 커널에서 시스템 콜들을 호출하는 콜 호출부; 및 상기 호출된 시스템 콜들에 대한 유사도 분석을 통해 상기 호출된 시스템 콜들을 분류하는 콜 유사도 분석부를 포함할 수 있다. The system call similarity analysis system includes: a call call unit that calls system calls in a kernel modulated using a fuzz testing tool; and a call similarity analyzer for classifying the called system calls through similarity analysis for the called system calls.

상기 콜 유사도 분석부는, 로컬 저장소에 저장된 시스템 콜들의 자료구조 정보에 기초하여 상기 호출된 시스템 콜들 간의 유사도를 분석할 수 있다. The call similarity analyzer may analyze the similarity between the called system calls based on data structure information of the system calls stored in the local storage.

상기 콜 유사도 분석부는, 상기 분석된 유사도를 수치로 정량화하여, 임의의 시스템 콜이 호출되었을 경우, 상기 호출된 임의의 시스템 콜을 상기 분석된 유사도에 기초하여 분류할 수 있다. The call similarity analyzer may quantify the analyzed similarity as a numerical value and, when a system call is called, classify the called system call based on the analyzed similarity.

상기 콜 호출부는, 커널 소스코드를 컴파일함에 따라 퍼즈 테스팅 툴을 이용하여 변조된 커널에 무작위 값을 대입하여 시스템 콜들을 호출할 수 있다. The call calling unit may call the system calls by substituting a random value into the modulated kernel using a fuzz testing tool as the kernel source code is compiled.

상기 콜 호출부는, 상기 시스템 콜들을 호출함에 따라 변조된 커널에서 수행된 코드 수정을 통해 상기 호출된 시스템 콜들의 자료구조 정보를 기록하고, 상기 기록된 자료구조 정보를 로컬 저장소에 저장할 수 있다. The call calling unit may record data structure information of the called system calls through code modification performed in a kernel that is modulated as the system calls are called, and store the recorded data structure information in a local storage.

어떤 시스템에서 다수의 시스템 콜이 존재할 때, 시스템 콜 간의 유사도를 바탕으로 시스템 콜 분류를 자동으로 할 수 있게 돕는다. 이는 시스템 설계 및 관리에 도움을 주어 보안사고가 일어날 가능성을 줄이고 효율적인 작업을 가능하게 한다. When there are multiple system calls in a certain system, it helps to automatically classify system calls based on the similarity between system calls. This helps in system design and management, reducing the possibility of security incidents and enabling efficient work.

도 1은 일 실시예에 있어서, 커널 소스코드의 예이다.
도 2는 일 실시예에 따른 시스템 콜 유사도 분석 시스템에서 호출된 시스템 콜의 자료구조를 저장하는 동작을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 시스템 콜 유사도 분석 시스템에서 유사도 분석을 실시하는 동작을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 시스템 콜 유사도 분석 시스템의 구성을 설명하기 위한 블록도이다.
도 5는 일 실시예에 따른 시스템 콜 유사도 분석 시스템에서 시스템 콜 유사도 분석 방법을 설명하기 위한 흐름도이다.
1 is an example of a kernel source code according to an embodiment.
FIG. 2 is a diagram for explaining an operation of storing a data structure of a system call called in a system call similarity analysis system according to an embodiment.
3 is a diagram for explaining an operation of performing a similarity analysis in a system call similarity analysis system according to an embodiment.
4 is a block diagram illustrating the configuration of a system call similarity analysis system according to an embodiment.
5 is a flowchart illustrating a system call similarity analysis method in a system call similarity analysis system according to an embodiment.

이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

도 1은 일 실시예에 있어서, 커널 소스코드의 예이다. 1 is an example of a kernel source code according to an embodiment.

도 1을 참고하면, 커널 소스코드의 일부라고 가정하기로 한다. ksys_read라는 함수에서 struct fd 라는 이름의 자료구조를 사용하는 시점이 존재한다. 코드상에서 해당 자료구조를 사용하기 직전에 코드 수정 기법을 이용하여 커널이 특정 자료구조를 사용했다는 기록을 남길 수 있도록 한다. 코드 수정 기법이란 흔히 static instrumentation 이라고 부르는 것을 의미한다. 예를 들면, LLVM과 같은 자동화 도구에 의해 행해질 수도 있고, 수동으로 수정될 수도 있다. 이러한 코드 수정 기법을 통해 커널이 사용한 자료구조의 기록을 남기는 기능을 가지도록 커널이 수정될 수 있다. 코드 수정 기법은 LLVM/Clang 등 다양한 기법들이 존재하고 있으며 실시예에서는 상기 방식에 한정되는 것은 아니다. Referring to FIG. 1 , it is assumed that it is a part of the kernel source code. There is a point in time when a function named ksys_read uses a data structure named struct fd. Before using the data structure in the code, use the code modification technique so that the kernel can record that a specific data structure is used. Code modification technique refers to what is often called static instrumentation. For example, it may be done by an automated tool such as LLVM, or it may be modified manually. Through this code modification technique, the kernel can be modified to have a function to record the data structures used by the kernel. Various techniques such as LLVM/Clang exist for the code modification technique, and the embodiment is not limited thereto.

도 2는 일 실시예에 따른 시스템 콜 유사도 분석 시스템에서 호출된 시스템 콜의 자료구조를 저장하는 동작을 설명하기 위한 도면이다. FIG. 2 is a diagram for explaining an operation of storing a data structure of a system call called in a system call similarity analysis system according to an embodiment.

커널 소스코드를 컴파일하여 실행할 수 있는 상태로 만들 수 있다. 퍼즈 테스팅 툴(210)을 활용하여 변조된 커널(220)에 무작위 값을 대입한 시스템 콜이 다량 호출될 수 있다. 비특허문헌1<https://terms.naver.com/entry.nhn?docId=5670033&cid=42346&categoryId=42346>을 참고하면, 퍼즈 테스팅에 대한 설명이 언급되어 있다. 이러한 퍼즈 테스팅 또는 퍼징(fuzzing)은 소프트웨어 테스트 기법으로서, 컴퓨터 프로그램에 유효한, 예상치 않은 또는 무작위 데이터를 입력하는 것이다. 퍼즈 테스팅이란, 소프트웨어의 취약점을 찾기 위해 무작위로 데이터를 입력하여 예외 오류를 발생시킨 후 원인을 분석하는 시험을 의미한다. 주로 프로그램 충돌이나 소스 코드 내의 오류, 잠재적인 메모리 누수와 같은 예외적인 상황을 찾을 때 사용한다.You can compile the kernel source code and make it executable. A large number of system calls in which random values are substituted into the modulated kernel 220 by utilizing the fuzz testing tool 210 may be called. Referring to Non-Patent Document 1 <https://terms.naver.com/entry.nhn?docId=5670033&cid=42346&categoryId=42346>, a description of fuzz testing is mentioned. Such fuzz testing or fuzzing is a software testing technique in which valid, unexpected or random data is entered into a computer program. Fuzz testing means a test that analyzes the cause after generating an exception error by randomly inputting data to find software vulnerabilities. It is mainly used to find exceptional situations such as program crashes, errors in source code, and potential memory leaks.

퍼즈 테스팅 개념의 기원은 1950년대 펀치 카드에 데이터를 저장할 때 임의의 수를 입력하여 예기치 않은 반응을 보이는지 검사하고 수정하는 테스트에서 출발하였다. 1988년 위스콘신(Wisconsin) 대학교의 바턴 밀러(Barton Miller) 교수는 소스 코드의 오류들을 체계적으로 분석하고, 다양한 소프트웨어를 체계적으로 평가하기 위해 퍼즈 테스팅을 처음 개발하였다. 초기 퍼징 툴은 유닉스(Unix) 환경에서 명령줄(command-line) 파라미터로 무작위 데이터 파일을 입력하는 형태였으나, 후에 명령줄 애플리케이션 외에 네트워크 프로토콜, 웹 애플리케이션 등 다양한 형태의 퍼징 툴이 등장하였다. 퍼징은 테스트 데이터 발생 방법에 따라 변이 기반(Mutation-Based) 또는 생성 기반(Generation-Based) 퍼징 프로그램으로 구분될 수 있다. 변이 기반 방식은 기존 데이터 샘플을 변형시켜 만든 테스트 데이터로 시험하고, 생성 기반 방식은 입력 모델에 기반을 두어 새로 정의한 테스트 데이터를 실행시켜 소프트웨어의 취약점을 찾는다. 또한, 소프트웨어 내부 구조에 대한 지식 여부에 따라 화이트박스 테스팅(white-box testing), 그레이박스 테스팅(grey-box testing), 블랙박스 테스팅(black-box testing) 형태가 된다. 화이트박스 테스팅은 내부 구조를 아는 상태에서, 블랙박스 테스팅은 모르는 상태에서, 그레이박스 테스팅은 일부만 아는 상태에서 소프트웨어 동작을 시험한다. 보안 분야에서는 소스 코드의 취약점을 알아내기 위해 소스 코드 분석 대신 퍼징을 사용한다. 제로데이 공격(zero-day attack, 보안 취약점이 패치되기 전 이를 악용해 공격하는 해킹 기법)을 파악하는 데에도 사용하는 것으로 알려져 있다.The origins of the fuzz testing concept began in the 1950s when data was stored on a punch card, and a random number was entered and tested and corrected for unexpected response. In 1988, Professor Barton Miller of the University of Wisconsin first developed fuzz testing to systematically analyze source code errors and systematically evaluate various software. The initial fuzzing tool was a form of inputting a random data file as a command-line parameter in a Unix environment, but later, in addition to the command line application, various types of fuzzing tools such as a network protocol and a web application appeared. Fuzzing may be classified into a mutation-based or generation-based fuzzing program according to a method of generating test data. The mutation-based method tests with test data created by transforming existing data samples, and the generation-based method finds software vulnerabilities by executing newly defined test data based on the input model. In addition, depending on the knowledge of the internal structure of the software, white-box testing, gray-box testing, and black-box testing are available. White-box testing tests the software operation with knowing the internal structure, black-box testing without knowing it, and gray-box testing with only partial knowledge. In the field of security, fuzzing is used instead of source code analysis to find vulnerabilities in the source code. It is also known to be used to identify zero-day attacks (a hacking technique that exploits security vulnerabilities before they are patched).

이와 같이, 퍼즈 테스팅 툴(210)을 활용하여 변조된 커널(220)은 앞서 이루어진 코드 수정을 통해 호출된 시스템 콜이 어떠한 커널 자료구조를 활용하는지를 기록할 수 있다. 이때, 퍼즈 테스팅 툴(210)의 종류와 기록의 저장방식은 한정되지 않는다. 호출된 시스템 콜에서 활용된 커널 자료구조와 관련된 정보가 로컬 저장소(230)에 저장될 수 있다. 일례로, 호출된 시스템 콜에서 활용된 커널 자료구조의 구조체 명, 접근 횟수 등을 포함하는 커널 자료구조와 관련된 정보가 로컬 저장소에 저장될 수 있다. 이러한 커널 자료구조와 관련된 정보가 데이터베이스에 저장될 수 있다. In this way, the kernel 220 modulated by using the fuzz testing tool 210 may record which kernel data structure is utilized by the system call called through the code modification made above. In this case, the type of the fuzz testing tool 210 and the storage method of the record are not limited. Information related to the kernel data structure utilized in the called system call may be stored in the local storage 230 . For example, information related to the kernel data structure including the structure name of the kernel data structure used in the called system call, the number of accesses, etc. may be stored in the local storage. Information related to such a kernel data structure may be stored in a database.

도 3은 일 실시예에 따른 시스템 콜 유사도 분석 시스템에서 유사도 분석을 실시하는 동작을 설명하기 위한 도면이다. 3 is a diagram for explaining an operation of performing a similarity analysis in a system call similarity analysis system according to an embodiment.

로컬 저장소에 저장된 기록을 토대로 유사도 분석이 실시될 수 있다. 일례로, read 시스템 콜과 write 시스템 콜의 유사도 분석이 실시될 수 있다. 일례로, 각각의 시스템 콜에서 사용된 자료구조를 각각 비교함에 따라 일치하는 자료구조(명)가 추출됨으로써 1차적으로 유사도가 분석될 수 있다. 이후, 시스템 콜 각각에서 일치하는 자료구조의 개수 또는 자료구조의 접근 횟수를 각각 비교하여 2차적으로 유사도가 분석될 수 있다. 이때, 유사도 분석의 결과는 백분율로 수치화될 수 있다. 예를 들면, 로컬 저장소에 저장된 read 시스템 콜과 write 시스템 콜 각각에서 활용되는 자료구조와 관련된 정보가 비교될 수 있다. read 시스템 콜에서 사용되는 자료구조와 write 시스템 콜에서 사용되는 자료구조 중 일치하는 자료구조가 추출될 수 있다. read 시스템 콜에서 struct fd, struct file 이라는 자료구조가 사용될 수 있고, write 시스템 콜에서 struct fd, struct file 이라는 자료구조가 사용될 수 있다. A similarity analysis may be performed based on the records stored in the local storage. As an example, a similarity analysis between the read system call and the write system call may be performed. For example, by comparing the data structures used in each system call, matching data structures (names) are extracted, so that the similarity can be analyzed primarily. Thereafter, the similarity can be analyzed secondarily by comparing the number of data structures matching each system call or the number of accesses of the data structures. In this case, the result of the similarity analysis may be quantified as a percentage. For example, information related to a data structure utilized in each of the read system call and the write system call stored in the local storage may be compared. The matching data structure among the data structure used in the read system call and the data structure used in the write system call can be extracted. Data structures called struct fd and struct file can be used in the read system call, and data structures called struct fd and struct file can be used in the write system call.

도 3에 도시된 바와 같이, read 시스템 콜에서 struct fd이라는 자료구조에 접근된 횟수가 3번, struct file 이라는 자료구조에 접근된 횟수가 5번이고, write 시스템 콜에서 struct fd이라는 자료구조가 접근된 횟수가 3번, struct file이라는 자료구조가 접근된 횟수가 6번일 수 있다. 이때, 각각의 시스템 콜에서 일치하는 또는 유사한 자료구조의 구조체 명 또는 접근 횟수를 각각 비교함으로써 유사도 분석이 수행될 수 있다. 또한, 유사도 분석에 활용될 수 있는 여러 알려진 통계적 방법들이 있는 바, 이에 한정되지는 않는다. As shown in Fig. 3, the number of times that the data structure called struct fd was accessed 3 times in the read system call, the number of times that the data structure called struct file was accessed 5 times, and the data structure struct fd was accessed in the write system call. It can be accessed 3 times, and the data structure called struct file can be accessed 6 times. In this case, similarity analysis may be performed by comparing the structure names or access counts of identical or similar data structures in each system call. In addition, there are several known statistical methods that can be used for similarity analysis, but the present invention is not limited thereto.

유사도 분석은 임의의 복수의 시스템 콜 간(예를 들면, 두 개의 시스템 콜 간)의 관계를 수치로 정량화하여 보여주어야 한다. 예를 들면, 유사도 분석을 위한 수학식을 이용하여 유사도가 수치화될 수 있다. The similarity analysis should quantify and show the relationship between a plurality of arbitrary system calls (eg, between two system calls). For example, the similarity may be quantified using an equation for the similarity analysis.

수학식: Formula:

Figure 112020111751136-pat00001
Figure 112020111751136-pat00001

시스템 콜에 대하여 커널 구조체 i를 사용한 개수를 반환하는 함수를 numi라고 한다. 하나의 시스템 콜(시스템 콜 A)에 대하여 다른 시스템 콜(시스템 콜 B)과의 관계를 나타내는 함수를

Figure 112020111751136-pat00002
라고 한다. 시스템 콜 A가 아닌 다른 시스템 콜에 대하여 상기 수학식을 적용한 결과를 내림차순으로 정렬하면, 그 결과가 시스템 콜 A에 대한 유사도 순 정렬이 된다. 만일, 상기 수학식의 결과가 동일한 경우, 대상으로 하는 시스템 콜이 이용하는 커널 구조체의 이용 횟수가 적은 순으로 우선순위를 둘 수 있다. 또는, 로컬 저장소에 저장된 각각의 시스템 콜에서 활용되는 자료구조와 관련된 정보에 기초하여 일치하는 자료구조와 관련된 정보의 비율을 통해 유사도가 수치화될 수 있다. 이와 같이, 수치화된 유사도가 유사도 분석 결과로서 출력될 수 있다. 이를 토대로 임의의 시스템 콜(새로운 임의의 시스템 콜)이 주어졌을 때, 유사한 시스템 콜을 일차적으로 정렬할 수 있게 된다. A function that returns the number of kernel structures i used for system calls is called num i. A function representing the relationship with another system call (system call B) for one system call (system call A).
Figure 112020111751136-pat00002
It is said When the results of applying the above equation to system calls other than system call A are arranged in descending order, the result is sorted in order of similarity to system call A. If the results of the above equations are the same, priority may be given in the order of the number of times of use of the kernel structure used by the target system call is small. Alternatively, the similarity may be quantified through a ratio of information related to a data structure that is matched based on information related to a data structure used in each system call stored in the local storage. In this way, the quantified similarity may be output as a similarity analysis result. Based on this, when a random system call (a new random system call) is given, similar system calls can be sorted primarily.

일 실시예에 따르면, 운영체제 시스템에서 이용할 수 있고, 가공을 통하여 구조체의 종류가 다양한 프로그램의 경우 일반적인 프로그램에서도 활용할 수 있다. 또한, IT/SW 기업에서는 실시예에서 제시하는 기술을 바탕으로 해당 기업이 판매하는 상품으로 인해 발생하는 보안사고를 줄일 수 있어 기업 제품의 신뢰도를 높일 수 있다.According to an embodiment, it can be used in an operating system system, and in the case of a program having various types of structures through processing, it can be used in a general program. In addition, the IT/SW company can reduce security accidents caused by products sold by the company based on the technology presented in the examples, thereby increasing the reliability of the company's products.

도 4는 일 실시예에 따른 시스템 콜 유사도 분석 시스템의 구성을 설명하기 위한 블록도이고, 도 5는 일 실시예에 따른 시스템 콜 유사도 분석 시스템에서 시스템 콜 유사도 분석 방법을 설명하기 위한 흐름도이다. 4 is a block diagram illustrating a configuration of a system call similarity analysis system according to an embodiment, and FIG. 5 is a flowchart illustrating a system call similarity analysis method in the system call similarity analysis system according to an embodiment.

시스템 콜 유사도 분석 시스템(400)의 프로세서는 콜 호출부(410) 및 콜 유사도 분석부(420)를 포함할 수 있다. 이러한 프로세서의 구성요소들은 작업 오프로딩 시스템에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다. 프로세서 및 프로세서의 구성요소들은 도 5의 시스템 콜 유사도 분석 방법이 포함하는 단계들(510 내지 520)을 수행하도록 시스템 콜 유사도 분석 시스템을 제어할 수 있다. 이때, 프로세서 및 프로세서의 구성요소들은 메모리가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다.The processor of the system call similarity analysis system 400 may include a call calling unit 410 and a call similarity analysis unit 420 . These processor components may be representations of different functions performed by the processor according to control instructions provided by program code stored in the task offloading system. The processor and components of the processor may control the system call similarity analysis system to perform steps 510 to 520 included in the system call similarity analysis method of FIG. 5 . In this case, the processor and components of the processor may be implemented to execute instructions according to the code of the operating system and the code of at least one program included in the memory.

프로세서는 시스템 콜 유사도 분석 방법을 위한 프로그램의 파일에 저장된 프로그램 코드를 메모리에 로딩할 수 있다. 예를 들면, 시스템 콜 유사도 분석 시스템(400)에서 프로그램이 실행되면, 프로세서는 운영체제의 제어에 따라 프로그램의 파일로부터 프로그램 코드를 메모리에 로딩하도록 시스템 콜 유사도 분석 시스템(400)을 제어할 수 있다. 이때, 프로세서 및 프로세서가 포함하는 프로세서는 콜 호출부(410) 및 콜 유사도 분석부(420) 각각은 메모리에 로딩된 프로그램 코드 중 대응하는 부분의 명령을 실행하여 이후 단계들(510 내지 520)을 실행하기 위한 프로세서의 서로 다른 기능적 표현들일 수 있다.The processor may load the program code stored in the file of the program for the system call similarity analysis method into the memory. For example, when a program is executed in the system call similarity analysis system 400 , the processor may control the system call similarity analysis system 400 to load a program code from a file of the program into the memory according to the control of the operating system. At this time, the processor and the processor included in the processor execute the following steps 510 to 520 by executing the instructions of the corresponding portions of the program code loaded in the memory, respectively, in the call calling unit 410 and the call similarity analysis unit 420 . They may be different functional representations of a processor for execution.

단계(510)에서 콜 호출부(410)는 퍼즈 테스팅 툴(Fuzz Testing Tool)을 이용하여 변조된 커널에서 시스템 콜들을 호출할 수 있다. 콜 호출부(410)는 커널 소스코드를 컴파일함에 따라 퍼즈 테스팅 툴을 이용하여 변조된 커널에 무작위 값을 대입하여 시스템 콜들을 호출할 수 있다. 콜 호출부(410)는 시스템 콜들을 호출함에 따라 변조된 커널에서 수행된 코드 수정을 통해 호출된 시스템 콜들의 자료구조 정보를 기록하고, 기록된 자료구조 정보를 로컬 저장소에 저장할 수 있다.In step 510 , the call calling unit 410 may call system calls in the modulated kernel using a fuzz testing tool. The call calling unit 410 may call system calls by substituting a random value into the modulated kernel using a fuzz testing tool as the kernel source code is compiled. The call call unit 410 may record data structure information of system calls called through code modification performed in a kernel modulated as the system calls are called, and store the recorded data structure information in a local storage.

단계(520)에서 콜 유사도 분석부(420)는 호출된 시스템 콜들에 대한 유사도 분석을 통해 호출된 시스템 콜들을 분류할 수 있다. 콜 유사도 분석부(420)는 로컬 저장소에 저장된 시스템 콜들의 자료구조 정보에 기초하여 호출된 시스템 콜들 간의 유사도를 분석할 수 있다. 콜 유사도 분석부(420)는 분석된 유사도를 수치로 정량화하여, 임의의 시스템 콜이 호출되었을 경우, 호출된 임의의 시스템 콜을 분석된 유사도에 기초하여 분류할 수 있다.In operation 520, the call similarity analyzer 420 may classify the called system calls through similarity analysis of the called system calls. The call similarity analyzer 420 may analyze the similarity between the called system calls based on the data structure information of the system calls stored in the local storage. The call similarity analyzer 420 may quantify the analyzed similarity as a numerical value, and, when an arbitrary system call is called, classify the called arbitrary system call based on the analyzed similarity.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented as a hardware component, a software component, and/or a combination of the hardware component and the software component. For example, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA). , a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. may be embodied in The software may be distributed over networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible from the above description by those skilled in the art. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (10)

시스템 콜 유사도 분석 방법에 있어서,
퍼즈 테스팅 툴(Fuzz Testing Tool)을 이용하여 변조된 커널에서 시스템 콜들을 호출하는 단계; 및
상기 호출된 시스템 콜들에 대한 유사도 분석을 통해 상기 호출된 시스템 콜들을 분류하는 단계
를 포함하고,
상기 호출하는 단계는,
커널 소스코드를 컴파일함에 따라 퍼즈 테스팅 툴을 이용하여 변조된 커널에 무작위 값을 대입하여 시스템 콜들을 호출하고, 상기 시스템 콜들을 호출함에 따라 변조된 커널에서 수행된 코드 수정을 통해 상기 호출된 시스템 콜들의 자료구조 정보를 기록하고, 상기 기록된 자료구조 정보를 로컬 저장소에 저장하는 단계
를 포함하는 시스템 콜 유사도 분석 방법.
In the system call similarity analysis method,
Invoking system calls in the modulated kernel using a fuzz testing tool; and
Classifying the called system calls through similarity analysis for the called system calls
including,
The calling step is
As the kernel source code is compiled, system calls are called by substituting random values into the modulated kernel using a fuzz testing tool, and the system calls are called through code modification performed in the modulated kernel as the system calls are called. Recording the data structure information of the data structure, and storing the recorded data structure information in a local storage
A system call similarity analysis method comprising a.
제1항에 있어서,
상기 분류하는 단계는,
로컬 저장소에 저장된 시스템 콜들의 자료구조 정보에 기초하여 상기 호출된 시스템 콜들 간의 유사도를 분석하는 단계
를 포함하는 시스템 콜 유사도 분석 방법.
According to claim 1,
The classification step is
Analyzing the similarity between the called system calls based on the data structure information of the system calls stored in the local storage
A system call similarity analysis method comprising a.
제2항에 있어서,
상기 분류하는 단계는,
상기 분석된 유사도를 수치로 정량화하여, 임의의 시스템 콜이 호출되었을 경우, 상기 호출된 임의의 시스템 콜을 상기 분석된 유사도에 기초하여 분류하는 단계
를 포함하는 시스템 콜 유사도 분석 방법.
3. The method of claim 2,
The classification step is
Quantifying the analyzed similarity with a numerical value, and when a system call is called, classifying the called system call based on the analyzed similarity.
A system call similarity analysis method comprising a.
삭제delete 삭제delete 시스템 콜 유사도 분석 시스템에 있어서,
퍼즈 테스팅 툴(Fuzz Testing Tool)을 이용하여 변조된 커널에서 시스템 콜들을 호출하는 콜 호출부; 및
상기 호출된 시스템 콜들에 대한 유사도 분석을 통해 상기 호출된 시스템 콜들을 분류하는 콜 유사도 분석부
를 포함하고,
상기 콜 호출부는,
커널 소스코드를 컴파일함에 따라 퍼즈 테스팅 툴을 이용하여 변조된 커널에 무작위 값을 대입하여 시스템 콜들을 호출하고, 상기 시스템 콜들을 호출함에 따라 변조된 커널에서 수행된 코드 수정을 통해 상기 호출된 시스템 콜들의 자료구조 정보를 기록하고, 상기 기록된 자료구조 정보를 로컬 저장소에 저장하는
시스템 콜 유사도 분석 시스템.
In the system call similarity analysis system,
a call call unit that calls system calls in a kernel that has been modulated using a fuzz testing tool; and
A call similarity analyzer for classifying the called system calls through similarity analysis for the called system calls
including,
The call calling unit,
As the kernel source code is compiled, system calls are called by substituting random values into the modulated kernel using a fuzz testing tool, and the system calls are called through code modification performed in the modulated kernel as the system calls are called. to record their data structure information, and to store the recorded data structure information in a local storage
System call similarity analysis system.
제6항에 있어서,
상기 콜 유사도 분석부는,
로컬 저장소에 저장된 시스템 콜들의 자료구조 정보에 기초하여 상기 호출된 시스템 콜들 간의 유사도를 분석하는
것을 특징으로 하는 시스템 콜 유사도 분석 시스템.
7. The method of claim 6,
The call similarity analysis unit,
Analyze the similarity between the called system calls based on the data structure information of the system calls stored in the local storage
System call similarity analysis system, characterized in that.
제7항에 있어서,
상기 콜 유사도 분석부는,
상기 분석된 유사도를 수치로 정량화하여, 임의의 시스템 콜이 호출되었을 경우, 상기 호출된 임의의 시스템 콜을 상기 분석된 유사도에 기초하여 분류하는
것을 특징으로 하는 시스템 콜 유사도 분석 시스템.
8. The method of claim 7,
The call similarity analysis unit,
Quantifying the analyzed similarity with a numerical value and classifying the called arbitrary system call based on the analyzed similarity when an arbitrary system call is called
System call similarity analysis system, characterized in that.
삭제delete 삭제delete
KR1020200137024A 2020-10-21 2020-10-21 Method and system for similarity analysis among kernel system calls using fuzz testing KR102299640B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200137024A KR102299640B1 (en) 2020-10-21 2020-10-21 Method and system for similarity analysis among kernel system calls using fuzz testing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200137024A KR102299640B1 (en) 2020-10-21 2020-10-21 Method and system for similarity analysis among kernel system calls using fuzz testing

Publications (1)

Publication Number Publication Date
KR102299640B1 true KR102299640B1 (en) 2021-09-08

Family

ID=77787688

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200137024A KR102299640B1 (en) 2020-10-21 2020-10-21 Method and system for similarity analysis among kernel system calls using fuzz testing

Country Status (1)

Country Link
KR (1) KR102299640B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116560998A (en) * 2023-05-16 2023-08-08 中国人民解放军国防科技大学 I/O (input/output) sequence-oriented database performance problem detection method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170088074A (en) * 2016-01-22 2017-08-01 김동완 Apparatus, method and system of reverse engineering collaboration for software analsis
KR101904911B1 (en) * 2017-10-13 2018-10-08 한국인터넷진흥원 Method for Automatically Detecting Security Vulnerability Based on Hybrid Fuzzing, and Apparatus thereof
KR20190041912A (en) * 2018-09-28 2019-04-23 한국인터넷진흥원 System for detecting security vulnerability based on binary, method and program thereof
KR20190065841A (en) * 2017-12-04 2019-06-12 한국과학기술원 Memory error detection method
KR20200056647A (en) * 2018-11-15 2020-05-25 한국인터넷진흥원 Method and apparatus for monitoring security velnerabile firmware

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170088074A (en) * 2016-01-22 2017-08-01 김동완 Apparatus, method and system of reverse engineering collaboration for software analsis
KR101904911B1 (en) * 2017-10-13 2018-10-08 한국인터넷진흥원 Method for Automatically Detecting Security Vulnerability Based on Hybrid Fuzzing, and Apparatus thereof
KR20190065841A (en) * 2017-12-04 2019-06-12 한국과학기술원 Memory error detection method
KR20190041912A (en) * 2018-09-28 2019-04-23 한국인터넷진흥원 System for detecting security vulnerability based on binary, method and program thereof
KR20200056647A (en) * 2018-11-15 2020-05-25 한국인터넷진흥원 Method and apparatus for monitoring security velnerabile firmware

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116560998A (en) * 2023-05-16 2023-08-08 中国人民解放军国防科技大学 I/O (input/output) sequence-oriented database performance problem detection method
CN116560998B (en) * 2023-05-16 2023-12-01 中国人民解放军国防科技大学 I/O (input/output) sequence-oriented database performance problem detection method

Similar Documents

Publication Publication Date Title
CN107368417B (en) Testing method of vulnerability mining technology testing model
US20100192222A1 (en) Malware detection using multiple classifiers
US11048798B2 (en) Method for detecting libraries in program binaries
Li et al. A novel approach for software vulnerability classification
Choudhary et al. A simple method for detection of metamorphic malware using dynamic analysis and text mining
US10599558B1 (en) System and method for identifying inputs to trigger software bugs
US9792102B2 (en) Identifying issues prior to deploying software
US20210334384A1 (en) Detecting a potential security leak by a microservice
CN109101815B (en) Malicious software detection method and related equipment
Tung et al. An integrated security testing framework for secure software development life cycle
Wang et al. A combinatorial approach to detecting buffer overflow vulnerabilities
JP6282217B2 (en) Anti-malware system and anti-malware method
CN110633211A (en) Multi-interface testing method, device, server and medium
US9842044B2 (en) Commit sensitive tests
US20180341770A1 (en) Anomaly detection method and anomaly detection apparatus
US10685298B2 (en) Mobile application compatibility testing
Seacord et al. A structured approach to classifying security vulnerabilities
US20230289444A1 (en) Data traffic characterization prioritization
CN110287700B (en) iOS application security analysis method and device
KR102299640B1 (en) Method and system for similarity analysis among kernel system calls using fuzz testing
US10275595B2 (en) System and method for characterizing malware
Nadeem et al. High false positive detection of security vulnerabilities: a case study
CN111783094A (en) Data analysis method and device, server and readable storage medium
US20220261481A1 (en) Software packer-agnostic unpacking of packed executables
Bhardwaj et al. Fuzz testing in stack-based buffer overflow

Legal Events

Date Code Title Description
GRNT Written decision to grant