• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    An Integration Testing Framework and Evaluation Metric for Vulnerability Mining Methods

    2018-03-13 06:26:30JinLiJinfuChenMinhuanHuangMinminZhouWanggenXieZhifengZengShujieChenZufaZhangNationalkeylaboratoryofscienceandtechnologyoninformationsystemsecurityBeijinginstituteofsystemengineeringBeijing000ChinaSchoolofComputerScien
    China Communications 2018年2期

    Jin Li, Jinfu Chen*, Minhuan Huang, Minmin Zhou Wanggen Xie Zhifeng Zeng Shujie Chen Zufa Zhang National key laboratory of science and technology on information system security,Beijing institute of system engineering, Beijing, 000, China School of Computer Science and Communication Engineering, Jiangsu University, Zhenjiang, 03, China

    I. INTRODUCTION

    Vulnerability refers to some of the functional or security logic defects that exist in the system, including all the factors which may lead to any threat or damage to the computer system security. It can also be regarded as the deficiencies that exist in computer system consisting of the hardware, software, and the specific implementation of protocols or even the system security policy [1]. Software vulnerabilities are usually caused by the potential insecurity of the system due to some intentional or unintentional errors during the design and implementation of the software. Vulnerabilities can be divided into functional logic vulnerabilities and security logic vulnerabilities [2]. Functional logic vulnerability means the adverse effects on the normal function of software, such as the error execution resultsand the error execution process. Security logic vulnerability usually does not affect the normal function of the software. However, once the security logic vulnerability is successfully exploited by the attacker, it may cause the software to run incorrectly or even execute a malicious code. For example, buffer overflows vulnerability, cross-site scripting vulnerability in the site (XSS), SQL injection vulnerability,and so on. [3][4].

    Nowadays, the main factors that affect the security of information system are the loopholes existing in the operating system, application software and various communication security protocols [5]. Attackers can make some corresponding attack on the information system by exploiting and manipulating these vulnerabilities, and may cause various degrees of damage to the information system. At the same time, with the high societal transition to the use of information technology in all areas, a large variety of application software has emerged. The actual quality of the software varies greatly. What’s more, most of the software has not been rigorously tested or reviewed before delivery, with a large number of potentially serious vulnerabilities that can be exploited [6][7]. The existences of these vulnerabilities in applications are the biggest security risk of information systems. For a variety of reasons, the existence of vulnerabilities is inevitable. Once some of the serious vulnerabilities are found by attackers, it is quite possible to be exploited leading to threat or damage to the computer system under unauthorized access. A timely discovery and repair of these loopholes before they are exploited by attackers can effectively reduce the threat on the network [8] [9]. Therefore, it is of great significance to explore and analyze the system security loopholes. The search on loopholes is divided into two parts: vulnerability mining and vulnerability analysis. Vulnerability mining technology is devoted to exploring as many as possible potential vulnerabilities in software with comprehensive application of various technologies and tools. Vulnerability analysis technology is used to make an indepth analysis of the details of the discovered loopholes and to pave the way for the use of loopholes and the measures for loopholes remediation [10] [11].

    Therefore, providing a more accurate and complete analysis and evaluation for these tools and methods is quite necessary for settling the present problem. In this paper, we proposed an evaluation metric for the mining methods, and also designed an integration testing framework based on different software environments and scenarios. This testing framework generates the testing analysis reports by testing and evaluating the existing typical vulnerability detection methods and tools along with making comparison analysis.The final testing results can be used to guide people to select the most appropriate and effective methods or tools in real vulnerability detection activity.

    The remainder of this paper is organized as follows. These typical methods of software vulnerabilities detection are described in Section II. The software vulnerability detection tools are introduced in Section III. The evaluation metric is showed in Section IV. The integration testing framework is presented in Section V. The results of our empirical studies and experimental analysis are reported in Section VI. And the conclusion and future work are presented in Section VII.

    II. SOFTWARE VULNERABILITIES DETECTION METHODS

    The mainstream software for the detection of vulnerabilities currently are fuzzing technology, security scanning technology, static analysis technology, binary detection technology,dynamic analysis technology and so on. The detailed introduction and explanation of these vulnerability detection methods are as following.

    2.1 Fuzzing

    Fuzzing [12] is a security testing approach based on injecting invalid or random inputs into a program in order to obtain an unexpect-ed behavior and identify errors and potential vulnerabilities. There is no single better fuzzing testing method; this is because fuzzing has no precise rules. Its efficiency depends on the creativity of the author. Its key idea is to generate appropriate tests that are able to crash the target and to choose the most appropriate tools to monitor the process. Fuzzed data generation can be performed in two ways. They can be generated randomly by modifying correct data without requiring any knowledge of the application details. This method is known as Blackbox fuzzing and was the first fuzzing concept.On the other hand, Whitebox fuzzing consists of generating tests by assuming a complete knowledge of the application code and behavior. The third type is Graybox fuzzing which stands between the two methods aiming to take advantages of both. It uses only a minimal knowledge of the target application’s behavior. It is thus the most appropriate method.

    Bekrar et al. [12] suggested in their paper that the most effective way to identify software vulnerabilities is by using fuzzing testing. This allows the robustness of the software to be tested against invalid inputs that play on implementation limits or data boundaries.

    A high number of random combinations of such inputs are sent to the system through its interfaces. Although fuzzing was identified as a fast technique which detects real errors, the paper also enumerated some drawbacks that if corrected can improve its efficiency.

    Among some of the main drawbacks of fuzz testing are its poor coverage which involves missing many errors, and the quality of tests. Enhancing fuzzing with advanced approaches such as data tainting and coverage analysis would improve its efficiency.

    2.2 Security scanning technology

    Security scanning is yet another method used in detecting vulnerabilities in software applications, it is also known as vulnerability assessment. Scanning vulnerability means scanning and checking the ports information of the computer to find out whether the vulnerability existing in the port that can be exploited [13].The results of the vulnerability scanning only indicate which attacks are possible and which ports are possibly exploited and invaded by hackers [14]. In essence, it is just a security evaluation of the computer system and vulnerability scanning technology is built upon the port scanning technology. On the view of the invasion analysis and the loopholes collection,the vast majority of this kind of technologies is for some particular network service, especially for each specific port.

    The principle of vulnerability scanning is to check whether the known security vulnerabilities existed in the target host through initiating a variety of simulated attacks. After the port scanning, we can get the opening ports on the target host and the network service on the port.The next task is to match the relevant information with the vulnerability database provided by the network vulnerability scanning system in order to check for any security vulnerability that meets the matching conditions. So far, the security scanning technology has reached a very mature point [15].

    A security scanner is a program that automatically detects remote or local host security vulnerabilities by collecting information from the system. The security scanner adopts the simulated attack to check the known security vulnerabilities which may exist in the target.And the target can be a variety of objects such as workstations, servers, switches, databases,and so on. In general, the security scanner will provide the system administrator with a thorough and reliable security analysis report based on the scan results, which provides an important basis for improving the overall level of network security. Among the various objects of attacks, the security scanning technology has been effectively applied in the field of vulnerability detection in web application.

    Black-box web application vulnerability scanners are automated tools that probe web applications for security vulnerabilities, without access to source code used to build the applications. Though there are some intrinsic limitations in black box tools, in comparison with code walkthrough, automated source code analysis tools, and procedures carried out by red teams, automated black-box tools also have advantages. Black-box scanners simulate the external attacks from hackers. They also provide cost-effective methods for detecting a range of important vulnerabilities and may configure and test defenses such as web application firewalls. The effectiveness of blackbox web scanners is directly related to the web developers’ ability and interest in detecting vulnerabilities. This paper [16] measures its effectiveness around the following factors:

    ? Elapsed scanning time

    ? Scanner-generated network traffic,

    ? Scanners for vulnerability detection

    ? False positive performance.

    We therefore focused primarily on the detection performance of the scanners as a group of different vulnerability classifications. We observed that no individual scanner always had the best performance in every vulnerability classification. Often, scanners with a leading detection rate in one vulnerability category lagged in other categories. For example, the leading scanner in both the XSS and SQL Injection categories was among the bottom three in detecting Session Management vulnerabilities, while the leader for Session Vulnerabilities lagged in XSS and SQLI. This makes us believe that scanner vendors may benefit from a cross-vendor pollination as a community. Reiterating briefly from the false positive results, we did find that scanners with high detection rates were able to effectively control false positives, and that scanners with low detection rates could produce many false positives.

    2.3 Static analysis

    In recent years, static analysis technology has rapidly developed from early lexical analysis to formal verification method and its detection capability has also been improved [17]. It is an effective detection technique that can be used in detecting vulnerabilities in software application to improve the security of the software.

    The tools and techniques currently been used in static code analysis are lexical analysis, type inference, theorem proving, data flow analysis, model checking and symbolic execution. The key aspect of static analysis method is that, the code of the program under test is not executed but through direct analysis of the code to detect loopholes. It is simple, fast and can effectively be used in detecting bugs in the code. We observed that the constant indepth analysis and research of static analysis algorithm, its models and tools has made it a more powerful technique. The first static analysis tool is known as FlexeLint and was used around 1980s; it used pattern matching method to identify gaps. In recent years, a number of complex and powerful static analysis tools began to appear. But few studies have analyzed and evaluated different static analysis tools, so it is quite negative to promote and apply static analysis tools.

    Static detection techniques analyze binary code or source code of the application programs by using program analysis techniques.The static detection techniques detect and scan the source code of the tested program, and understand the program behavior from its semantics and syntax so as to analyze the characteristics of the tested program. Finally, the exception which may result in errors will be detected. The static analysis process is shown in Figure 1 below.

    Fig. 1. Static analysis flow chart.

    Wagner et al. developed a system for detecting buffer overflows statically in C programs [18]. The approach treats C strings as an abstract data type accessed through the library routines and models buffers as pairs of integer ranges (size and current length), while the detection problem is formulated as an integer constraint problem. The library functions are modeled in terms of how they modify the size and length of strings. By trading precision for scalability their implemented tool gives both false positives and false negatives.

    2.4 Binary comparison

    The binary comparison technique, which is also known as the patch comparison technique, is mainly used to exploit known vulnerabilities. In a certain sense, it can be considered as a vulnerability analysis technology.It is a vulnerability analysis technique that locates and finds the cause of the vulnerability by comparing the original binary files and the patched ones. Security personnel can locate vulnerability code by patch comparison analysis, and hence use simple data flow analysis to get the attack codes of the vulnerability exploit quickly. The binary comparison analysis technique can quickly locate the differences between the codes before and after the patch is released, and it can locate where the code in the source program is modified. That is to say, it can locate the code which contains the vulnerabilities in the source program precisely, and it also provides important clues for the subsequent exploitation of the vulnerabilities[19]. Therefore, the binary comparison analysis technique is the basic method against the rapid exploitation of vulnerabilities. Based on the common implementation process of the binary code comparison technique, it can be summarized as shown in the Figure 2.

    The primary goal of binary code comparison is to find the differences in the program before and after the patch. Concerning which differences and how these differences are detected and located is based on the specific implementation principle.

    Integer-based vulnerability is an extremely dangerous bug for programs written in languages such as C/C++. However, very few software security tools can efficiently detect and accurately locate such vulnerability in practice. In addition, previous methods largely depended on source code analysis and recompilation which are impractical when protecting the program without source code.

    Fig. 2. Flow chart of binary comparison technology implementation.

    Chen et al. [20] investigated and proposed the design, implementation, and evaluation of BRICK (Binary Run-time Integer-based vulnerability Checker), a tool for run-time detection and location of integer-based vulnerability. Given an integer-based vulnerability exploit, BRICK is able to catch the value which falls out of the range of its corresponding type,then finds the root cause for this vulnerability, and finally locates the vulnerability code and gives a warning, based on its checking scheme. BRICK is implemented based on the dynamic binary instrumentation framework Valgrind and its type inference plug-in: Catchconv. Preliminary experimental results are quite promising: BRICK can detect and locate most of integer-based vulnerabilities in real software, and has very low false positives and false negatives.

    2.5 Dynamic analysis

    Dynamic analysis technique is a dynamic detecting technique. It runs the target program in the debugger and observes the running state of the program, the memory usage, and the value of the register to identify potential problems and find bugs. Dynamic analysis technique starts with both code flow and data flow: by setting the breakpoint, it dynamically traces code flow of the target program to detect the defective function call and its parameters; it analyzes data flow bi-directionally. By constructing special data, it can trigger potential errors and analyze the results. Dynamic analysis requires a debugger tools; SoftIce, OllyD-bg, WinDbg, etc are powerful dynamic tracing debuggers.

    Dynamic detecting technology for computer security vulnerability, detects computer program defects mainly when the source code is unchanged. It has a requirement for running environment processes, so the environment process for the computer needs to be modified.Dynamic buffer overflow vulnerabilities are usually detected with dynamic analysis techniques.

    Despite previous efforts in auditing software manually and automatically, buffer overruns are still being discovered in programs in use. A dynamic bounds checker detects buffer overruns in erroneous software before it occurs and thereby prevents attacks from corrupting the integrity of the system. Dynamic buffer overrun detectors have not been adopted widely because they either: (1) Cannot guard against all buffer overrun attacks, (2)break existing code, or (3) incur too high an overhead. This paper presents a practical detector called CRED (C Range Error Detector)that avoids each of these deficiencies. CRED finds all buffer overrun attacks as it directly checks for the bounds of memory accesses.

    Unlike the original referent-object based bounds-checking technique, CRED does not break existing code because it uses a novel solution to support program manipulation of out-of-bounds addresses. Finally, by restricting the bounds it checks strings in the program.

    CRED’s overhead is greatly reduced without sacrificing protection in the experiments we performed. CRED is implemented as an extension of the GNU C compiler version 3.3.1. The simplicity of our design makes it’s possible a robust implementation that has been tested on over 20 open-source programs,comprising over 1.2 million lines of C code.CRED proved effective in detecting buffer overrun attacks on programs with known vulnerabilities, and is the only tool found to guard against a test bed of 20 different buffer overflow attacks [19]. Finding overruns only on strings impose an overhead of less than 26%for 14 of the programs, and an overhead of up to 130% for the remaining six, while the previous state-of the- art bounds checker by Jones and Kelly breaks 60% of the programs and is 12 times slower. Incorporating well-known techniques for optimizing bounds checking into CRED could lead to further performance improvements.

    Table 1 shows a summary of the vulnerability detection methods and their effectiveness based on some evaluation metrics.

    Table I. Comparison for different security detecting approaches (L-Low, H-High).

    III. SOFTWARE VULNERABILITY DETECTION TOOLS

    3.1 Software assurance tools

    There are many software assurance (SA) tools in the market. Some are commercially available, others are open source. Some of the tools are designed to be used during particular system development life cycle. These tools also support varieties of features. The purpose of the tool survey is to help answer the following questions:

    ? What are the common features among tools of the same type?

    ? Where are the gaps in capabilities among the same types of tools?

    ? How could a purchaser know which tool is the right one for their level of software security assurance?

    ? Should developers of tools provide some kind of “assurance label” to their product that defines what their tool can and cannot do?

    ? What might an “assurance label” look like(for example, on the back of a source code scanner software package)?

    There are many ways to classify software assurance tools. One classification is “where”in the software development life cycle the tool is used:

    ? Requirements capture, design, specification tools

    ? Software design/modeling verification tools

    ? Implementation or production testing tools

    ? Operational testing tools This paper[20] focuses on SA tools used during software implementation and production. Some tools specialize in identifying vulnerabilities within a specific type of application. The taxonomy used for the survey of SA tools was delivered from Defense Information Systems Agency’s (DISA) “Application Security Assessment Tool Market Survey,” Version 3.0, July 29, 2004 [21]. This taxonomy is also used to identify SA functions.

    3.2 Static analysis techniques and tools for software vulnerability

    The advent of computer systems and ever increasing number of software applications makes information security an issue of concern to end-users. In general, the software security problem is caused by software vulnerabilities;these vulnerabilities could be caused by flaws in developer designs or deficiencies within the programming language itself, or may be back doors which developers left behind. According to statistics, the vast majority of hacking attacks are caused by software vulnerabilities.Network worms and Trojans are powerful malware that exploit the flaws in software to comprise computers resulting in information disclosure, systems running slow or even total collapse of the computer system. The general concern of users is how to locate or find these loopholes in software development and applications as well as fixing these vulnerabilities.There are many ways to improve software security [22], such as raising the safety awareness of programmers, using strict development model to design software, making software run in a safe environment and so on. However in recent years, the most efficient technique or procedure used by people for analyzing software vulnerabilities is the static analysis technology [23]. Static analysis method does not require running the program, but through direct code analysis to detect loopholes.

    Static analysis is simple, fast and can be effective in finding bugs in code. Therefore,many software analysis tools are designed and achieved with static analysis technology.The first static analysis tool is FlexeLint in the 1980s, which used pattern matching method to identify gaps. Recently, there are a number of complex and very powerful static analysis tools been developed. Some researchers have evaluated their security by looking at some software vulnerabilities.

    But few studies have analyzed and evaluated different static analysis tools, so it is quite negative for the promotion and application of the static analysis tools. Generally, no tool can find all the defects in the software under test.Each tool has different advantages in finding vulnerabilities [24]. Jaspan and Chen et al.designed a coverage model of the defects and selected several tools that will complement each other into the model [25-27], which can improve performance to some extent. Static analysis technology has many advantages, but some software vulnerabilities cannot be found by static analysis.

    In this paper, we selected some wellknown, publicly available static analysis tools. The study focused on identifying static analysis functionality provided by the tools and surveying the underlying supporting technology. This paper discussed commonly-used static analysis techniques and tools, and then compared these tools from a technical point of view. After that, we analyzed the characteristics of these tools through experiments.Finally, we proposed an efficient method for software vulnerability detection combining dynamic analysis.

    3.3 Static analysis tools

    We present eight widely used open source software vulnerabilities static analysis tools which were chosen for our analysis and comparison. First the main features of these tools are briefly described, then compared from a technical perspective.

    3.3.1 SPLINT

    SPLINT (Secure Programming Lint) [16] is the expansion of LCLINT tool (for detecting buffer overflows and other security threats).It employs several lightweight static analyses. SPLINT needs to use notes to perform cross-program analysis. SPLINT sets up models for control flow and loop structure by using heuristic technology.

    3.3.2 FindBugs

    FindBugs [20] is an open source static detection tool, which checks the class or JAR files.FindBugs can detect potential problems by comparing binarycodes with the defect model set. FindBugs is not to find loopholes through analyzing the form and structure of class files,but by the use of visitor pattern. Currently, the tool contains about 50 error pattern detectors at present.

    3.3.3 PMD

    PMD is an open source, and rule-based static detection tool. PMD scans Java source codes to finds some potential problems, such as wrong code, duplicate code, fussy code and code to be further optimized. PMD includes a default rule set. In addition, it allows users to develop new rules and apply them.

    3.3.4 FlawFinder

    FlawFinder is an open source static analysis tool, which is based on lexical analysis technique. It maintains a vulnerability database to read out the content of the database and can scan through the database within the shorted possible time. It can quickly find the existing problems according to the vulnerability level in the code loopholes.

    3.3.5 CppChecker

    Cppcheck is a static code analysis tool. Generally, it can check non-standard code. Because of its support for the vast majority of static checks, it can be performed at a source code level. The procedure in the static analysis check is very strict.

    Table 2 shows the comparison of the tools from a technical point of view.

    3.4 Dynamic analysis tools

    Dynamic analysis is an important part of vulnerability detection technology and an integral component of vulnerability discovery and utilization. In this paper, we present a detail description of dynamic vulnerability detection technology, detections tools and finally analyze and compare these tools.

    3.4.1 MiniFuzz

    MiniFuzz is a dynamic vulnerability detection tool that is designed for fuzzing method and runs on windows systems by modifying the seed file. It works by creating a number of random changes on the temporal test file to generate the target test program process. When the test program behaves abnormally, we can then determine the existence of exceptions in the test files and program.

    Table II. Comparison for these different tools.

    MInifuzz is a fuzzy test tool that completely uses randomly generated algorithm to generate test cases. In the process of executing the target process, the processes will be created and destructed all over again. Restarting process consumes a lot of time as the tool uses the method making the test process very slow.However the test tool is able to detect vulnerabilities as long there is enough time.

    3.4.2 AFL (American Fuzzy Lop)

    AFL-fuzz is a fuzzy test vulnerability tool for detecting vulnerabilities in file formats, protocols in the Linux platform, while WinAFL is the Windows version for AFL-fuzz. AFL uses the dynamic binary instrumentation technology, to insert the analyzed code into the target procedure during the execution of the target program in order to achieve the real-time monitoring of the target procedure. It then determines the code segment, it performs the loop like “execution” - “recovery the Pre-register status before the code segment execution “-“execute “, repeats the cycle while testing, so that this tool may be able to achieve dynamic automation vulnerability testing.

    Dynamic binary instrumentation technology gets rid of the dependence of source code in the processing of the vulnerability detection,so that the procedures with code and data separated can be effectively detected. However,because of dynamic binary instrumentation,the program will be lost in the process of running at a fastest rate. This type of flaw ensures that, we manually locate the sensitive function of the program offset address, this makes WinAFL semi-automatic.

    By locating the offset address of the critical memory code segment of the tested program,the target program needs to start only once and hence every time we only need to restore the value of the register and modify the parameters passed when the program executes code segment. As a result, the program can be re-executed from the function. This method improves the efficiency of the execution of the program and speeds of vulnerability detection.

    3.4.3 Pintools

    Pin is proprietary software developed by Intel, offering non-commercial use and it is a set of reference tools for free. It was initially designed as a tool for computer architecture analysis, its flexible APIs and active communities (called “Pinheads”) create a variety of tools for security, simulation, and parallel program analysis.

    The tools created with Pin are called Pintools and can be used to perform program analysis on user space applications in Linux and Windows. As a dynamic binary vulnerability detection tool, Pintools takes the dynamic taint analysis technology, and allows arbitrary code (written in C or C ++) to be inserted anywhere in the executable file to detect compiled binaries at running time. Therefore, it does not need to recompile the source code, and it can support the dynamic generation of code testing procedures. At the same time,the tool can also use symbol implementation technology.A variety of technical options available in the program makes its implementation easy and highly efficient. Thanks to Intel’s continuous support, Pintool has good adaptability and and will still be in existence. Credit to Intel’s continuous support, Pintool has great adaptability and remains an active tool.

    Table 3 shows the comparison of the tools from a technical point of view.

    IV. EVALUATION METRIC

    To analyze the vulnerability mining methods,an evaluation metric is proposed in this study.The main software vulnerability mining techniques are evaluated based on their characteristics. The evaluation method is designed by taking into account the following evaluation factors: vulnerability detection capability, total time cost, accuracy, false positive rate, recall rate, resource overhead and utilization effect,etc. Below we give the description of some of evaluation factors employed by the proposed evaluation metric in analyzing software vulnerability mining methods.

    4.1 Main evaluation factors

    Definition 1 Detection capability: refers to the ability of a vulnerability mining method to detect vulnerabilities. This is usually represented by the number of vulnerabilities discovered.

    Table III. The comparison for dynamic analysis tools.

    The detection ability of vulnerability mining method mainly refers to the number of vulnerabilities that a mining method can find.The more loopholes that a mining method can find, the stronger the detection capability of the mining method will be, and hence its detection efficiency will be higher as well. Without considering the accuracy of the detection and the false positive rate, we only consider the proportion of vulnerabilities found in the total number of software vulnerabilities. Because the vulnerabilities of large software are often more than those of small software, we do not consider the number of vulnerabilities mined. For vulnerability technology analysis,the detection capability is one of the most important indicators for evaluating the technology, and the detection of vulnerabilities in order to carry out the next series of operations.

    Calculation formula:the total number of vulnerabilities detected / the total number of vulnerabilities existing in the software.

    Implementation steps:(1) Get the total number of vulnerabilities in the vulnerability sample by conducting artificial vulnerability mining to the vulnerability sample.

    (2) For static analysis methods, first select the mining method, then select the test case.After running, the total number of vulnerabilities detected can be displayed in the results.

    (3) For dynamic analysis methods, there are two cases. One way is to test multiple target programs at once. First of all, count the number of detected vulnerabilities and then count the total number of test programs. Another way is to test only one target program at a time. You first count the number of the unusual situations, and then count the total number of tests.

    Definition 2 false positive rate:refers to the probability of the vulnerability mining technology finding incorrect vulnerabilities.The false positive rate is calculated as the ratio between the number of negative events wrongly categorized as positive (false positives) and the total number of detected vulnerabilities.

    Security oriented static analysis tools often produce large amounts of redundant or useless information. The detected vulnerabilities will not be readily available in practice. If the false positive rate of the test results is high, it will not only affect the reliability of the results, but also bring a lot of unnecessary trouble to the software developers. After all, they need to take the time to look for misinformation in the huge test results. Therefore, we should reduce the false positive rate as much as possible, and improve the detection efficiency of mining methods.

    Calculation formula:the number of vulnerabilities detected / the total number of vulnerabilities detected.

    Implementation steps:(1) For static analysis methods, the total number of vulnerabilities detected has been shown directly in the execution results.

    (2) The number of vulnerability can be detected can be detected by comparing the results of the test with those found in the vulnerability sample.

    (3) For dynamic analysis methods, the false positive rate is calculated according to whether the test results are consistent with the expected results by giving different input data several times.

    Definition 3 Recall rate: refers to the level of accuracy of vulnerability detection by a vulnerability mining technology. The higher the degree of accuracy of a vulnerability mining technology, the more credible the detection results; therefore, testers and developers can spend less extra effort in mining vulnerabilities, thereby improving efficiency as a whole.

    Calculation formula: the correct number of vulnerabilities detected / the total number of vulnerabilities existing in the software.

    Implementation steps: (1) Get the total number of vulnerabilities in the sample by conducting an artificial vulnerability mining.

    (2) For static analysis methods, the correct number of vulnerabilities can be detected by comparing the results of the test with the vulnerabilities found in previously known test cases.

    (3) For dynamic analysis methods, the test results can only show whether an exception can be detected or cause a program to crash.Therefore, we can get the accuracy by using the same method with the false positive rate.

    Definition 4Resource overhead: refers to the specific environment, resources and so on when the vulnerability mining technology is used to detect vulnerabilities.

    Computer resources generally include computer hardware resources, computer peripheral resources, as well as software and various electronic data resources. While discussing the resource environment needed for vulnerability mining, we mainly consider the occupancy rate of CPU and the memory utilization. For different vulnerability mining methods, the runtime required varying system resources,such as CPU usage and memory utilization.Therefore, the lower the runtime CPU and memory footprint, we assume that the resource overhead of the vulnerability mining approach is smaller.

    Calculation formula: (CPU usage rate +memory usage rate) /2

    Implementation steps: During program execution, the CPU usage and memory usage of the program are viewed through the task manager, or by using monitoring software such as CPU-Z, HWiNFO32.

    Definition 5Time overhead: refers to the time required to discover vulnerabilities,which also called the time cost.

    The time cost of vulnerability discovery is an effective measure to determine the efficiency of a vulnerability mining method. The shorter the time required, the faster the vulnerability detection, and the higher the efficiency;otherwise, the efficiency is lower.

    Calculation formula: the difference between the start time and end time of the executing mining method / the maximum time used by all mining methods.

    Implementation steps: After selecting the appropriate vulnerability mining method and the corresponding vulnerability samples, we need to record the start time and end time of the program and calculate the time difference,and finally calculate the time overhead.

    4.2 Evaluation model and formula

    Based on the evaluation factors, an evaluation model is designed to evaluate vulnerability mining methods quantitatively. With more evaluation factors including detection capability(C), false positive rate(F), recall rate(A),time cost(T), resource overhead(R), resource requirements(R), application domains(P),utilization effect(U), technical requirements(E), advantages(V), and shortcoming (D), the quantitative evaluation can be made.

    According to the evaluation factors listed above, an evaluation model is designed:VEM= {C, F, A, T, R, P, U, E, V, D}.

    Definition and verification of formula:Based on the evaluation model VEM, the quantitative evaluation formula is designed to reflect the effect of mining methods. Let VMM represent vulnerability mining methods, and EFF represent the evaluation score of any mining method (where vmmi∈VMM).The basic quantitative evaluation formula can be expressed as: EFF(vmmi) = Γ(C, F, A, T,R, P, U, E, V, D). Γ represents a computation function and can usually be represented by a weighted sum of coefficients, that is:

    Γ(C,F,A,T,R,P,U,E,V,D)=C*ξ1+F*ξ2+A*ξ3+T*ξ4+R*ξ5+P*ξ6+U*ξ7+E*ξ8+V*ξ9+D*ξ10, where ξ represents different weights,and ξ1+ξ2+ξ3+ξ4+ξ5+ξ6+ξ7+ ξ8+ξ9+ξ10=1.

    However, in actual situation, the false positive rate (F), the recall rate (A), the time cost (T), the required resource (R) and the utilization effect (U) are the main contributing indexes in the quantitative evaluation formula.In view of these five important indexes, we design the following formula:

    EFF(vmmi)={(1-F)*30%+A*30%+(1-T)*10%+(1-R)*10%+U*20%}.

    Examples are given to illustrate the use of the formula and the significance of the results:

    For example, assuming that a vulnerability mining technology is used to detect vulnerabilities in a software containing a total of 15 vulnerabilities. However, a total of 10 vulnerabilities are found, of which 8 are correct,and 2 are false positives. The time used is 50s,while the five vulnerability mining methods generally use at most 60s. Memory utilization rate is 20% and CPU occupancy rate is 30%,and hence five users score 0.3, 0.4, 0.3, 0.5 and 0.2 respectively. Therefore, the false positive rate is 2/10, the recall rate is 8/15, and the time cost is 50/60. Also, the resource overhead is (20%*50%+30%*50%), and the utilization effect is (0.3+0.4+0.3+0.5+0.2)/5. Thus we can get the score of the vulnerability mining method as follows:

    4.3 Evaluation algorithm

    To sum up, there are currently five kinds of vulnerability mining methods; with respect to the technologies they employ. They are security scanning technology, Fuzzing technology,binary comparison technology, static analysis technology and dynamic analysis technology.To evaluate these vulnerability mining methods, each method is tested on a number of test cases and the results obtained, which is usually a series of data, is analyzed. Therefore, we design a vulnerability mining technology evaluation algorithm, herein referred to as VDTE algorithm.

    The design idea of VDTE algorithm is as follows. First, we select the test cases to be tested and add them to the candidate test case set. Then, we select a vulnerability mining method to test the test case set. From the test results, we can find the number of vulnerabilities, the number of false positives, the required time, the data occupation rate and other data.From these data, we can get the detection capability, false positive rate, accuracy, time cost and resource overhead of the vulnerability mining technology. The user then makes relevant evaluation. Finally, the evaluation reports of vulnerability mining are generated according to these results. From the report, we can clearly see the quantitative evaluation of the indicators and obtain the final evaluation scores by the quantitative indicators. But the VDTE algorithm has its limitations. Example,we cannot get their quantitative evaluation for the application domains and technical requirements, while they can only be evaluated qualitatively.

    V. THE DESIGN OF INTEGRATION TESTING FRAMEWORK

    Based on the system of vulnerability detection method evaluation standards, we established the testing process model of the vulnerability detection methods; this can make vulnerability detection method work more automatically.In order to make the vulnerability detection method more automated, we also developed a vulnerability detection test model. The system is mainly divided into three modules, the control modules, the monitoring module, the statistical analysis and storage module. Figure 3 depicts the structure of the model.

    The control module first generates the test case, then loads it into the detection method environment, and finally informs the detection method module to start the mining work.The monitoring module mainly monitors the running status of program and the output information in the detection environment. The vulnerability detection method is normally divided into dynamic and static method. In the dynamic detection method, the monitoring module is responsible for monitoring the detection state of the goal program state. While in the static detection method, the monitoring module mainly monitors the output information of the detection method environment.When the monitoring module finds that the specified vulnerability of test case is triggered,it will trigger the statistical analysis and storage module, and instantly provide feedback information to the control module. After the statistical analysis and storage module receives the notification information of the monitoring module, the module analyzes the output information of the goal program status and the detection method environment, determines the specific parameters of the possible vulnerability detection information, and saves the evaluation parameters and so on.

    VDTE algorithm Input: TestMethod, TestedFile, P, U and R;//TestMethod represents testing methods, TestedFile represents the vulnerability sample set, P represents the application domain evaluation, U represents user utility scores, and R represents the technical requirements evaluation.Output: TestReport, Score;// TestReport represents the test report, and Score represents the final evaluation score for the vulnerability mining method 1: TestReport = {};2: count=0;3: while(count<k)4: {5: TestCase t = SelectTestCase();// Select k vulnerability samples 6: TestedFile.add(t);// Add k vulnerability samples to the set 7: }8: end while;9: Matching different test methods to test the k vulnerability samples, the test method finds a number of vulnerabilities and other related information.10: C = FindBug/ExistBug;//C indicates detection capability, and FindBug indicates vulnerabilities found by the method. ExistBug represents vulnerabilities in the system and is obtained by manually mining vulnerabilities prior to testing 11: F = 1-FalseBug/FindBug;// F stands for false positive rate, and FalseBug means the vulnerability found that were not actually vulnerabilities.12: A = TrueBug/FindBug;//A stands for accuracy, and TrueBug indicates correctly found vulnerabilities.13: T = 1-(EndTime-StartTime)/MaxTime;//T is the time cost, EndTime is the end time, StartTime is the start time, and the maximum time T for the 5 techniques is MaxTime 14: R = 1-MemoryUsage*0.5 + CPUUsage*0.5;// R represents resource overhead, MemoryUsage represents memory usage rate,and CPUUsage represents CPU usage rate.15: U = (U1+U2+…+Un)/n// U represents ease of use, and U1, U2, and Unevaluate scores for users, and n is the number of users 16: TestReport = <C,F,A,T,R,P,U,E>;// P, U, E are entered by the user respectively 17: Score=C*30%+(1-F)*30%+(1-T/MaxTime)*15%+(1-R)*15%+U *10%;18: CGrade (int C);19: FGrade (int F);20: AGrade (int );21: TGrade (int T)22: RGrade (int R);23: UGrade (int U);// According to the detection capacity, false positive rate, accuracy rate, time cost,resource cost and usability score, the corresponding evaluation grades are obtained 24: The advantages and disadvantages of the application domains and the corresponding technical requirements are obtained 25: TestReport.add(C,F,A,T,R,U, Score);// Add indexes to the output report 26: output TestReport;

    5.1 Test case set framework of vulnerability detection method

    In order to evaluate the vulnerability detection method, we designed a test suite framework with active source code software, passive code software and network protocol, which includes the design scheme of test set framework, the design method of test case and the specific test sets. In order to facilitate the test evaluation,the attribute of each test case needs to include the information of its input, running platform, vulnerability type, vulnerability trigger conditions, vulnerability location range. The attribute description of test case is detailed in Table 4.

    5.1.1 Active code software test case set framework

    Considering that the analysis of active code software test cases with the vulnerability detection method is usually static analysis method or a combination of static and dynamic methods. Therefore, this type of test case framework mainly focuses on the logic of vulnerability.

    Active code test case software mainly con-tains key data code and logic analysis code,the key data code refers to the relevant variables, constants and other data code that can trigger the vulnerability, while the logic analysis code refers to the code which analyzes and processes the key data. Typically, the logic analysis code contains the vulnerability code.

    5.1.2 Passive code software test case set framework

    The vulnerability detection method of passive code software test case analysis generally uses dynamic analysis method as such the test case is mainly concerned with the program input and processing.

    The first stage of the passive code test case is to read the input data, it then extracts the input information, conduct data processing and finally in the processing of extraction and processing the vulnerability code may be implemented.

    5.1.3 Network protocol test case set framework

    Vulnerability detection method for network protocol testing mainly refers to the testing of the loopholes may be contained in the specific field on the tested network protocol. Therefore, this type of test case is mainly concerned with the processing of the protocol.

    The general process of this detection method is that, the network protocol test case are first of all initialized, once this is done the monitor module listens to the port to receive the connection. It will then enter the data reception, protocol analysis and extraction,protocol processing, data return and other cycle stage. It finally disconnects and re-waits for the connection again. The most significant concept about this method is that, the location of the loopholes is the process of data reception, protocol analysis extraction, protocol processing, and data return.

    5.2 Test case set management platform for vulnerability detection method

    In this paper, we designed and implemented a test case set management platform for vulnerability detection method in order to achieve the control of the test process and the collection of the evaluation indicators. The corresponding description of the design of management platform is given as following.

    Fig. 3. The vulnerability detection test process model.

    5.2.1 The general structure

    The test case set management platform for vulnerability detection method was designed by CS. Due to the different platforms; the client is divided into the Windows client and the Linux client. Once the client receives the command and the test information from the server, the client will generate the test case for response, control the start of test process, collect the evaluation indicators, and hence it will upload the collected information to the server.After the test process is completed, the server automatically generates test reports through statistical analysis. As shown in Figure 4.

    Fig. 4. The overall structure of the test case set management platform.

    Fig. 5. The design of server structure.

    Fig. 6. The design of the client structure.

    5.2.2 The design of platform

    a) the design of the server

    The server mainly includes user interface(UI), command distribution, collection information and analysis. After user configures the command, the server sends the command and the information of test sets to the response client, and then it waits for the client to upload the acquisition parameters. Finally, the server will summarize the analysis and generate the report according to all indicators. The design of server is shown in Figure 5.

    b) the design of the client

    The client receives the server command and the information of test case set first, then it will generate the test case set as well as start the test method. According to the model designed in Figure 3, the control module controls the start of the program cycle of the detection method, the monitoring module monitors the state of measured program or output information of test method, then statistical analysis and storage module collects the attack path of the detected program and the evaluation parameter information such as the address range of the vulnerability, and then the client will upload all the collected information to the server after completing the test results of the given test case set. The design of the client is shown in Figure 6.

    5.2.3 Usage instructions

    ? User opens the system interface;

    ? Create new test items and the basic information of configuration project;

    ? Configure the detection method information, including input, output and operation of the detection method, and deploy the excavation method program onto the client;

    ? Select test case set information, including test type (active code software, passive code software, network protocol software),specific vulnerability test case set and so on;

    ? Start the project, wait for the completion of project command distribution;

    ? After the successful start of the project, user must wait for the completion of the project progress, you can view the progress bar in time;

    ? After the completion of test, click the project test report, you can view the test report of the vulnerability detection method.

    The general process is shown in Figure 7.

    Fig. 7. The overall process chain of the test case set management platform.

    VI. EXPERIMENT ANALYSIS

    In order to further verify the feasibility and effectiveness of the proposed framework, subsection A describes the implementation system for the proposed framework: vulnerability detection approach testing platform VMATP. By analyzing and testing the typical vulnerability test suites, subsection B ‘Experiment Analysis’further verify the effectiveness of the proposed framework.

    6.1 System implementation

    Based on the evaluation method and proposed framework above, we have implemented a testing platform for software vulnerability mining VMATP with Python2.7 on the Linux and Windows operating system. A system snapshot is shown in the Figure 8.

    The menu bar of the system includes two main menu options: File and Help. File is mainly used to add test cases and testing methods. It also provides saving, printing and other functions. Firstly, users select the routines of the test cases to import the test cases.Then, users select different types, different languages and different vulnerability detection methods to test the cases. After testing, we can get corresponding evaluation metrics such as time cost, accuracy, detection ability and so on. Finally, by analyzing testing results of the vulnerabilities, the platform will make an evaluation of the corresponding vulnerability exploitation methods.

    6.2 Experiment analysis

    Fig. 8. System snapshot.

    Table V. Information of test case sets.

    To further analyze the effectiveness of the testing platform for vulnerability detection methods, we collected six test case sets to evaluate the framework and these methods: pathtraver,hash, xss, sqli, crypto and weakrand [28]. The information of the six test case sets is shown in Table 5. We compared three test tools which aim at Java: findbugs, PMD and findsecbugs.The experiment results are given in Table 6.

    Table VI. Experiment results (FP: False Positive, TP: True Positive).

    Fig. 9. The comparison for the detection capabilities of different detection methods.

    From Table 4 we can observe that findsecbugs performed best among these three methods, followed by findbugs, and PMD performed worse. Some of the causes for this phenomenon are related to the selection of the test case set. However, in general, we can find that the vulnerability exploitation ability of findbugs which is based on java codes is more powerful. That is to say, this tool can find more defects and potential performance problem, followed by findbugs and PMD.

    Depending on the data from Table 5 and Table 6, we can get the detection ability for each method that corresponds to different test case sets, shown in the Figure 9. The detection ability is equal to the number of true positive divided by the total number of the actual vulnerabilities. From Table 6 and Figure 9, we can see that findecbugs has the best detection ability, but it also has the largest number of false positive loopholes. Followed by findbugs, with certain detection ability as well as some false positive loopholes existed. In addition, PMD cannot detect any loopholes. The main reason is that the PMD detection rules cannot be applied to some given test case set.

    VII. CONCLUSIONS AND FUTURE WORK

    Software vulnerability mining is an important way to detect the existing loopholes in the software. Firstly, this paper focused on the analysis of several common techniques for vulnerability detection, and pointed out that various methods have their own advantages and disadvantages. In order to accurately exploit software vulnerabilities, all the methods can be used synthetically in the actual testing.Considering different types of vulnerability detection methods, we present the corresponding testing methods for vulnerability exploitation and build the evaluation testing model for the vulnerability testing methods. Finally,we also formed the evaluation criteria for the vulnerability mining methods. Meanwhile, the test suits and the corresponding testing management platform also have been provided.

    In this paper, we analyzed some common vulnerability mining methods. Except for these common methods discussed in this paper, there are some other vulnerability mining methods that still need to be further researched. In addition, we need further research the quantitative and qualitative evaluation metrics for vulnerability mining methods in future.

    ACKNOWLEDGEMENTS

    This work is partly supported by National Natural Science Foundation of China (NSFC grant numbers: 61202110 and 61502205), and the project of Jiangsu provincial Six Talent Peaks (Grant numbers: XYDXXJS-016).

    [1] A.M Osman, A. Dafa-Allah, A.AM Elhag, “Proposed security model for web based applications and services,”P(pán)roc.International Conference on Communication Control, Computing and Electronics Engineering, 2017, pp. 1-6.

    [2] M. Huang, Q. Zeng, “Research on classification and features of Software Vulnerability,”Computer engineering, vol. 36, no. 1, 2010, pp. 184-186.(in Chinese)

    [3] B. Liu, L. Shi, Z. Cai, and M. Li, “Software vulnerability discovery techniques: A survey,”P(pán)roc.the fourth International Conference on Multimedia Information Networking and Security, 2013, pp.152-156.

    [4] Y. Song, “Security Vulnerability Analysis and Mining Technology,”China Software Security Summit, 2008. (in Chinese)

    [5] Q. Chi, H. Luo, X.D Qiao, “Overview of Vulnerability Mining and Analysis Technology,”Computer and Information Technology, 2009.

    [6] F. Yamaguchi, N. Golde, D. Arp et al. “Modeling and Discovering Vulnerabilities with Code Property Graphs,”P(pán)roc.Security and Privacy, 2014,pp. 590-604.

    [7] N. Nethercote, J. Seward, “Valgrind: a framework for heavyweight dynamic binary instrumentation,”ACM SIGPLAN Notices, vol. 42, no.6, 2007, pp.89-100.

    [8] Y. Xu, “Vulnerability-based Model Checking of Security Vulnerabilities Mining Method,”Netinfo Security,2011. (in Chinese)

    [9] R. Telang, S. Wattal, “An empirical analysis of the impact of software vulnerability announcements on firm stock price,”IEEE Transactions on Software Engineering, vol.33, no. 8, 2007, pp.544-557.

    [10] D. Moore, V. Paxson, S. Savage, C. Shannon,S. Staniford, N. Weaver, “Inside the slammer worm,”IEEE Security & Privacy, vol. 1, no. 4,2003, pp.33-39.

    [11] S. Staniford, V. Paxson, N. Weaver, “How to Own the Internet in Your Spare Time,”P(pán)roc.USENIX Security Symposium, 2002, pp. 149-167.

    [12] S. Bekrar, et al, “Finding software vulnerabilities by smart fuzzing,”P(pán)roc.Software Testing, Verification and Validation (ICST), IEEE Fourth International Conference, 2011, pp. 427-430.

    [13] P. Mell, K. Scarfone, S. Romanosky, “A complete guide to the common vulnerability scoring system version 2.0,”P(pán)roc. FIRST-Forum of Incident Response and Security Teams, 2007, pp. 1-23.26.

    [

    14] T. Wang, T. Wei, Z. Lin, W. Zou, “IntScope: Automatically Detecting Integer Overflow Vulnerability In X86 Binary Using Symbolic Executions,”P(pán)roc.Proceedings of the 16th Annual Network and Distributed System Security Symposium,2009.

    [15] P. Kapur, V. S. Yadavali, A. Shrivastava, “A comparative study of vulnerability discovery modeling and software reliability growth modeling,”P(pán)roc.Futuristic Trends on Computational Analysis and Knowledge Management, 2015, pp. 246-251.

    [16] J. Bau, et al, “State of the art: Automated blackbox web application vulnerability testing,”IEEE Symposium on Security and Privacy, vol.41, no.3,2010, pp. 332-345.

    [17] P. Li, B. Cui, “A comparative study on software vulnerability static analysis techniques and tools,”P(pán)roc.IEEE International Conference on Information Theory and Information Security,2010, pp. 521-524.

    [18] M. Zhivich, T. Leek, R. Lippmann, “Dynamic buffer overflow detection,”Workshop on the evaluation of software defect detection tools,2005.

    [19] Z. Li, J. Zhang, X. Liao, J. Ma, “Survey of Software Vulnerability Detection Techniques,”Chinses Journal of Computers, vol.38,no. 3, 2015, pp.717-732. (in Chinese)

    [20] P. Chen, et al, “Brick: A binary tool for run-time detecting and locating integer-based vulnerability,”P(pán)roc. the Forth International Conference on Availability, Reliability and Security, 2009, pp.208-215.

    [21] J. Wilander, M. Kamkar, “A Comparison of Publicly Available Tools for Dynamic Buffer Overflow Prevention,”P(pán)roc.NDSS, 2003, pp 45-50.

    [22] P. E. Black, E.Fong, “Proceedings of Defining the State of the Art in Software Security Tools Workshop,”NIST Special Publication, vol.500,2005, pp 264.

    [23] E. Fong, V. Okun, “Web application scanners:definitions and functions,”P(pán)roc.Hawaii International Conference on System Sciences, 2007, pp.280.

    [24] O. Vadim, “Web application scanners: Definitions and functions,”P(pán)roc.Hawaii International Conference on System Sciences, 2007, pp. 280-280.

    [25] J. Viega, “CLASP Reference Guide: Volume 1.1 Training Manual,”Secure Software, 2005.

    [26] J. Chen, L. Zhu, Z. Xie, et al. “An Eff ective Long String Searching Algorithm towards Component Security Testing,”China Communications,vol. 13, no. 11, 2016, pp.153-169.

    [27] J. Chen, J. M. Chen, R. Huang, et al. “An approach of security testing for third﹑arty component based on state mutation,”Security &Communication Networks, vol.9, no. 15, 2016,pp.2827-2842.

    [28] “Benchmark-OWASP”, https://www.owasp.org/index.php /Benchmark#tab =Test_Cases, 2017.

    免费人成在线观看视频色| 91午夜精品亚洲一区二区三区| 一级爰片在线观看| 联通29元200g的流量卡| 美女被艹到高潮喷水动态| 欧美高清成人免费视频www| 国产成人午夜福利电影在线观看| 91狼人影院| 天堂网av新在线| 国产精品人妻久久久久久| 国产在线男女| 欧美变态另类bdsm刘玥| 久久亚洲国产成人精品v| 看黄色毛片网站| 欧美高清成人免费视频www| 国产毛片a区久久久久| 看十八女毛片水多多多| 老司机影院毛片| 一个人看的www免费观看视频| 国产精品99久久久久久久久| 免费大片黄手机在线观看| 国产白丝娇喘喷水9色精品| 国产白丝娇喘喷水9色精品| 国产有黄有色有爽视频| av天堂中文字幕网| 精品熟女少妇av免费看| 老司机影院毛片| 九九在线视频观看精品| 国产男女超爽视频在线观看| 国产成人精品福利久久| 国产高清不卡午夜福利| 国内精品美女久久久久久| 最近中文字幕2019免费版| 人人妻人人澡人人爽人人夜夜| 欧美日韩一区二区视频在线观看视频在线 | 日本欧美国产在线视频| videossex国产| 亚洲色图综合在线观看| 激情 狠狠 欧美| 欧美zozozo另类| 毛片一级片免费看久久久久| 色婷婷久久久亚洲欧美| 国产成人aa在线观看| 免费看av在线观看网站| 直男gayav资源| 秋霞伦理黄片| 一个人看视频在线观看www免费| 久久亚洲国产成人精品v| 亚洲国产精品999| 日韩,欧美,国产一区二区三区| 国产精品一区二区三区四区免费观看| 国产有黄有色有爽视频| 国产色爽女视频免费观看| 国产精品麻豆人妻色哟哟久久| 国产成人a区在线观看| 日韩欧美一区视频在线观看 | 亚洲精品国产色婷婷电影| 狂野欧美激情性xxxx在线观看| 色哟哟·www| 噜噜噜噜噜久久久久久91| 亚洲精品国产成人久久av| 亚洲最大成人av| 亚洲av一区综合| 欧美成人一区二区免费高清观看| 欧美日韩国产mv在线观看视频 | videossex国产| 校园人妻丝袜中文字幕| 卡戴珊不雅视频在线播放| 久久久久网色| 亚洲欧美一区二区三区国产| 少妇人妻精品综合一区二区| 99热这里只有精品一区| 中文字幕久久专区| 国产精品人妻久久久久久| 成人免费观看视频高清| 高清视频免费观看一区二区| 国产欧美亚洲国产| .国产精品久久| 天堂中文最新版在线下载 | 大片电影免费在线观看免费| 精品久久久久久久久av| 深爱激情五月婷婷| 性插视频无遮挡在线免费观看| 男人和女人高潮做爰伦理| 啦啦啦啦在线视频资源| 国产久久久一区二区三区| 成人午夜精彩视频在线观看| 91狼人影院| 欧美区成人在线视频| 成年女人看的毛片在线观看| 2022亚洲国产成人精品| 男女下面进入的视频免费午夜| 久久久久久九九精品二区国产| 国产伦精品一区二区三区四那| 在线免费观看不下载黄p国产| 国产高清国产精品国产三级 | 国产欧美另类精品又又久久亚洲欧美| 18禁裸乳无遮挡动漫免费视频 | 精品久久久精品久久久| 最近中文字幕高清免费大全6| 午夜激情久久久久久久| 亚洲天堂av无毛| 永久网站在线| 日日撸夜夜添| 亚洲av成人精品一二三区| 精品久久国产蜜桃| 国产成人免费无遮挡视频| 一二三四中文在线观看免费高清| 亚洲精品第二区| 久久精品国产亚洲av天美| 成人午夜精彩视频在线观看| 久久久久国产网址| 永久网站在线| 欧美亚洲 丝袜 人妻 在线| 欧美bdsm另类| 国产亚洲最大av| 一区二区三区乱码不卡18| 精品人妻熟女av久视频| 高清毛片免费看| 久久鲁丝午夜福利片| 自拍偷自拍亚洲精品老妇| 久久精品人妻少妇| 国产成人免费观看mmmm| 亚洲精品国产成人久久av| 亚洲国产最新在线播放| 热re99久久精品国产66热6| av在线老鸭窝| 亚洲,欧美,日韩| 一级毛片黄色毛片免费观看视频| 日产精品乱码卡一卡2卡三| www.色视频.com| a级毛片免费高清观看在线播放| 能在线免费看毛片的网站| 国产一级毛片在线| av专区在线播放| 肉色欧美久久久久久久蜜桃 | 啦啦啦啦在线视频资源| 国产精品麻豆人妻色哟哟久久| 黄色一级大片看看| 久久精品人妻少妇| 97超视频在线观看视频| 亚洲欧美日韩卡通动漫| 日韩一区二区三区影片| 成年女人在线观看亚洲视频 | 欧美激情在线99| 亚洲欧美日韩另类电影网站 | 看十八女毛片水多多多| 丝袜喷水一区| 免费av不卡在线播放| 黄片wwwwww| 国产爽快片一区二区三区| 免费看日本二区| 老女人水多毛片| 免费大片黄手机在线观看| 亚洲av国产av综合av卡| 欧美精品国产亚洲| 亚洲国产最新在线播放| 国产精品久久久久久久久免| 午夜精品一区二区三区免费看| 亚洲性久久影院| 国产乱人视频| 国产亚洲91精品色在线| 插阴视频在线观看视频| 男人狂女人下面高潮的视频| a级一级毛片免费在线观看| 三级国产精品欧美在线观看| 亚洲精品色激情综合| 午夜老司机福利剧场| 蜜桃久久精品国产亚洲av| 亚洲国产日韩一区二区| 国产精品福利在线免费观看| 久久人人爽人人爽人人片va| 欧美激情在线99| 成年免费大片在线观看| 精品久久久久久久人妻蜜臀av| 国产老妇女一区| 欧美日韩精品成人综合77777| 欧美少妇被猛烈插入视频| 一区二区三区免费毛片| 蜜桃亚洲精品一区二区三区| 国产综合懂色| av福利片在线观看| 久久久久久伊人网av| 久久韩国三级中文字幕| 亚洲精品456在线播放app| 国产精品不卡视频一区二区| 成人毛片60女人毛片免费| 久久久成人免费电影| 欧美少妇被猛烈插入视频| 久久国内精品自在自线图片| 高清毛片免费看| 人人妻人人爽人人添夜夜欢视频 | 日韩欧美精品免费久久| 91精品国产九色| 日韩,欧美,国产一区二区三区| 国产黄频视频在线观看| 午夜亚洲福利在线播放| 亚洲精品中文字幕在线视频 | 亚洲怡红院男人天堂| 校园人妻丝袜中文字幕| 亚洲国产色片| 丰满人妻一区二区三区视频av| 日韩成人av中文字幕在线观看| 狂野欧美激情性bbbbbb| 国产爽快片一区二区三区| 精品少妇黑人巨大在线播放| 男女边摸边吃奶| 日韩三级伦理在线观看| 日日摸夜夜添夜夜爱| 特大巨黑吊av在线直播| 国产精品99久久久久久久久| 亚洲真实伦在线观看| 夫妻午夜视频| 麻豆成人午夜福利视频| 亚洲av成人精品一区久久| 大陆偷拍与自拍| 国产精品秋霞免费鲁丝片| 亚洲aⅴ乱码一区二区在线播放| 久久精品久久久久久久性| 欧美老熟妇乱子伦牲交| 国产黄色免费在线视频| 国产精品三级大全| 国产精品99久久99久久久不卡 | 大香蕉97超碰在线| 涩涩av久久男人的天堂| .国产精品久久| 久久精品国产自在天天线| 久久97久久精品| 晚上一个人看的免费电影| 精品少妇黑人巨大在线播放| 久久99蜜桃精品久久| 听说在线观看完整版免费高清| 午夜激情福利司机影院| 国产午夜精品一二区理论片| 午夜福利高清视频| 欧美国产精品一级二级三级 | 精品久久久久久久久亚洲| 深爱激情五月婷婷| 热99国产精品久久久久久7| 亚洲精品乱码久久久v下载方式| 日本熟妇午夜| 中文欧美无线码| av在线天堂中文字幕| 久久国内精品自在自线图片| 国产色爽女视频免费观看| 国产免费福利视频在线观看| 97超视频在线观看视频| 99久国产av精品国产电影| 久久久a久久爽久久v久久| 全区人妻精品视频| 中国三级夫妇交换| 亚洲va在线va天堂va国产| 亚洲国产精品国产精品| 欧美最新免费一区二区三区| 七月丁香在线播放| 亚洲婷婷狠狠爱综合网| 亚洲精品一区蜜桃| 日本免费在线观看一区| 亚洲自偷自拍三级| 国产在视频线精品| tube8黄色片| 国产女主播在线喷水免费视频网站| 亚洲国产欧美在线一区| 在线 av 中文字幕| 秋霞伦理黄片| 2022亚洲国产成人精品| 欧美一区二区亚洲| 亚洲国产av新网站| 综合色丁香网| 欧美日韩亚洲高清精品| av在线亚洲专区| 哪个播放器可以免费观看大片| 久久6这里有精品| 极品少妇高潮喷水抽搐| 国产熟女欧美一区二区| 18禁裸乳无遮挡动漫免费视频 | 三级男女做爰猛烈吃奶摸视频| 草草在线视频免费看| 午夜福利视频1000在线观看| 久久久a久久爽久久v久久| 九草在线视频观看| 高清日韩中文字幕在线| 亚洲综合精品二区| 又爽又黄a免费视频| 日本-黄色视频高清免费观看| 日韩大片免费观看网站| 春色校园在线视频观看| 久热这里只有精品99| 亚洲av国产av综合av卡| 国产黄片视频在线免费观看| 欧美成人精品欧美一级黄| 国产欧美亚洲国产| 99久久中文字幕三级久久日本| 国产亚洲精品久久久com| 黄色欧美视频在线观看| 久久热精品热| 久久ye,这里只有精品| 国产精品伦人一区二区| 久久精品国产亚洲av涩爱| 26uuu在线亚洲综合色| 亚洲婷婷狠狠爱综合网| 又黄又爽又刺激的免费视频.| 1000部很黄的大片| 在线观看国产h片| 亚洲国产精品国产精品| 日产精品乱码卡一卡2卡三| 美女内射精品一级片tv| 国产日韩欧美在线精品| 欧美日韩在线观看h| 国产在视频线精品| 可以在线观看毛片的网站| 亚洲精品视频女| 日日摸夜夜添夜夜爱| 老师上课跳d突然被开到最大视频| 两个人的视频大全免费| 国产精品爽爽va在线观看网站| 亚洲精品中文字幕在线视频 | 日韩av免费高清视频| 国产中年淑女户外野战色| 亚洲国产日韩一区二区| 日韩制服骚丝袜av| 国产精品嫩草影院av在线观看| 国产在线男女| 黄片无遮挡物在线观看| 91精品伊人久久大香线蕉| 亚洲人成网站高清观看| 交换朋友夫妻互换小说| 99九九线精品视频在线观看视频| 嘟嘟电影网在线观看| .国产精品久久| 国国产精品蜜臀av免费| 国产美女午夜福利| 亚洲精品一区蜜桃| 国产精品一区二区性色av| 嫩草影院精品99| 欧美极品一区二区三区四区| 熟女电影av网| 在线观看国产h片| 亚洲精品乱码久久久v下载方式| 国产免费一级a男人的天堂| 我要看日韩黄色一级片| 精品亚洲乱码少妇综合久久| 日本黄大片高清| 99九九线精品视频在线观看视频| 免费黄网站久久成人精品| 国内精品美女久久久久久| 亚洲av一区综合| 久久精品国产鲁丝片午夜精品| 91久久精品电影网| 最近中文字幕高清免费大全6| 国产亚洲av片在线观看秒播厂| 中文天堂在线官网| 国精品久久久久久国模美| 国产日韩欧美亚洲二区| 亚洲激情五月婷婷啪啪| 久久99热这里只频精品6学生| av线在线观看网站| 免费观看av网站的网址| 久久久久久国产a免费观看| 蜜桃亚洲精品一区二区三区| 国产老妇女一区| 国产精品三级大全| 女人被狂操c到高潮| 插逼视频在线观看| 精品一区在线观看国产| 成年av动漫网址| 交换朋友夫妻互换小说| 一级毛片久久久久久久久女| 直男gayav资源| 亚洲av中文av极速乱| 天天躁日日操中文字幕| 波多野结衣巨乳人妻| 亚洲欧美成人综合另类久久久| 好男人在线观看高清免费视频| 一个人看视频在线观看www免费| 亚洲伊人久久精品综合| 国产精品99久久99久久久不卡 | 中文字幕制服av| 国产免费一级a男人的天堂| 久久人人爽av亚洲精品天堂 | 国产色爽女视频免费观看| 久久99精品国语久久久| 最后的刺客免费高清国语| 色5月婷婷丁香| 各种免费的搞黄视频| 国产精品国产三级国产专区5o| 三级经典国产精品| 欧美另类一区| av线在线观看网站| 午夜福利在线在线| 亚洲,一卡二卡三卡| 成人综合一区亚洲| 亚洲精品,欧美精品| 国产亚洲av嫩草精品影院| 亚洲最大成人中文| 国产成人精品婷婷| 亚洲精品456在线播放app| 成人毛片60女人毛片免费| av卡一久久| 欧美变态另类bdsm刘玥| eeuss影院久久| 水蜜桃什么品种好| 国产男女超爽视频在线观看| 欧美少妇被猛烈插入视频| 老师上课跳d突然被开到最大视频| 免费大片黄手机在线观看| 日产精品乱码卡一卡2卡三| 最近手机中文字幕大全| 在线精品无人区一区二区三 | 日本猛色少妇xxxxx猛交久久| 中文字幕免费在线视频6| 久久久久久九九精品二区国产| 国产成人a∨麻豆精品| 成人午夜精彩视频在线观看| 日韩伦理黄色片| 亚洲成人久久爱视频| 国产白丝娇喘喷水9色精品| 国产亚洲午夜精品一区二区久久 | 亚洲av成人精品一二三区| a级毛色黄片| 欧美三级亚洲精品| 听说在线观看完整版免费高清| 99热这里只有是精品50| 男女下面进入的视频免费午夜| 国产中年淑女户外野战色| 欧美三级亚洲精品| 久久韩国三级中文字幕| 国产精品不卡视频一区二区| 自拍欧美九色日韩亚洲蝌蚪91 | 国产黄a三级三级三级人| 亚洲图色成人| 国产极品天堂在线| 插阴视频在线观看视频| 精品少妇黑人巨大在线播放| 高清av免费在线| 亚洲久久久久久中文字幕| 一区二区三区精品91| 99久久精品国产国产毛片| 五月开心婷婷网| 欧美一区二区亚洲| 大又大粗又爽又黄少妇毛片口| 久久久久久国产a免费观看| 国产午夜精品久久久久久一区二区三区| 久久精品久久精品一区二区三区| 成人综合一区亚洲| 国产成人免费观看mmmm| 女的被弄到高潮叫床怎么办| 日本与韩国留学比较| av在线天堂中文字幕| 日韩视频在线欧美| 久久99热这里只有精品18| 欧美成人精品欧美一级黄| 久久久午夜欧美精品| 久久久久网色| 亚洲av二区三区四区| 天美传媒精品一区二区| 一级毛片aaaaaa免费看小| 久久99热这里只有精品18| 国产精品伦人一区二区| 亚洲真实伦在线观看| 简卡轻食公司| 人妻制服诱惑在线中文字幕| 搡老乐熟女国产| 国产午夜精品一二区理论片| 高清av免费在线| 中文在线观看免费www的网站| 久久久久精品久久久久真实原创| 日韩一区二区三区影片| 国产高潮美女av| 毛片女人毛片| 老司机影院毛片| 在线观看免费高清a一片| 人妻制服诱惑在线中文字幕| 久久ye,这里只有精品| 秋霞伦理黄片| 欧美精品国产亚洲| 国产一区有黄有色的免费视频| 一区二区av电影网| 欧美极品一区二区三区四区| 91aial.com中文字幕在线观看| 日韩一区二区三区影片| 日韩人妻高清精品专区| 男人和女人高潮做爰伦理| 亚洲国产高清在线一区二区三| 少妇猛男粗大的猛烈进出视频 | 搡老乐熟女国产| 波多野结衣巨乳人妻| 国产黄a三级三级三级人| 成人综合一区亚洲| 五月玫瑰六月丁香| 丝袜喷水一区| 色吧在线观看| 丝瓜视频免费看黄片| 少妇丰满av| 亚洲精品456在线播放app| 国产精品无大码| 成人二区视频| 街头女战士在线观看网站| 一级黄片播放器| 国内少妇人妻偷人精品xxx网站| 99久国产av精品国产电影| 夫妻性生交免费视频一级片| 69av精品久久久久久| 少妇高潮的动态图| 最近中文字幕高清免费大全6| 欧美+日韩+精品| 偷拍熟女少妇极品色| 欧美高清成人免费视频www| 一级毛片电影观看| 欧美变态另类bdsm刘玥| 国产一区二区亚洲精品在线观看| 男女无遮挡免费网站观看| 午夜激情久久久久久久| 老女人水多毛片| 爱豆传媒免费全集在线观看| 高清在线视频一区二区三区| 国产精品av视频在线免费观看| 亚洲图色成人| 搡女人真爽免费视频火全软件| 精品99又大又爽又粗少妇毛片| av免费观看日本| 欧美日韩亚洲高清精品| 欧美日韩视频精品一区| 麻豆精品久久久久久蜜桃| 国产黄色免费在线视频| 免费黄色在线免费观看| 久久久亚洲精品成人影院| 国产精品久久久久久精品电影小说 | 国产成人aa在线观看| 国产爱豆传媒在线观看| 亚洲国产精品成人久久小说| 麻豆久久精品国产亚洲av| 热99国产精品久久久久久7| 亚洲国产高清在线一区二区三| 久久久久九九精品影院| 肉色欧美久久久久久久蜜桃 | 五月开心婷婷网| 丝袜美腿在线中文| 国产精品不卡视频一区二区| 搡老乐熟女国产| 久久久久久久久久成人| 久久久久久久精品精品| 日韩国内少妇激情av| 99热网站在线观看| 成年av动漫网址| 亚洲怡红院男人天堂| 精品人妻一区二区三区麻豆| 欧美bdsm另类| 熟妇人妻不卡中文字幕| 草草在线视频免费看| 亚洲国产精品国产精品| 亚洲av男天堂| 丝袜喷水一区| 大片电影免费在线观看免费| 亚洲人成网站高清观看| 国产成人精品婷婷| 午夜免费观看性视频| 久久ye,这里只有精品| 麻豆成人av视频| 嫩草影院新地址| 看免费成人av毛片| 亚洲国产精品成人综合色| 成人亚洲精品一区在线观看 | 亚洲国产精品专区欧美| 观看免费一级毛片| 自拍欧美九色日韩亚洲蝌蚪91 | 卡戴珊不雅视频在线播放| 国产精品一区二区在线观看99| 欧美成人一区二区免费高清观看| 九九在线视频观看精品| 在现免费观看毛片| 久久精品人妻少妇| a级毛色黄片| 精品国产乱码久久久久久小说| 亚洲精品乱码久久久v下载方式| 七月丁香在线播放| 精品一区二区三卡| 丰满乱子伦码专区| 久久久久久久久久成人| 在线观看免费高清a一片| 美女脱内裤让男人舔精品视频| 亚洲av免费高清在线观看| 亚洲精品乱码久久久久久按摩| 在线免费观看不下载黄p国产| 黄片无遮挡物在线观看| 午夜精品国产一区二区电影 | 六月丁香七月| 国产熟女欧美一区二区| 久久久久网色| 久久久午夜欧美精品| 91精品国产九色| 99久久精品热视频| 国产高清三级在线| 国产一区二区亚洲精品在线观看| 国产毛片在线视频| 国产精品久久久久久av不卡| 国产熟女欧美一区二区| 黄色视频在线播放观看不卡| 欧美日韩在线观看h| 国产91av在线免费观看| 国产精品国产三级国产av玫瑰| 欧美97在线视频| 青春草亚洲视频在线观看| 欧美激情久久久久久爽电影| 97热精品久久久久久| 国产免费一级a男人的天堂| 国产中年淑女户外野战色| 97人妻精品一区二区三区麻豆| 国产在线一区二区三区精| 各种免费的搞黄视频| 秋霞伦理黄片| 黄色怎么调成土黄色| 在线a可以看的网站| 亚洲四区av| 亚洲av国产av综合av卡|