Virtual device identification method and device, electronic device, computer medium and program product
By reading the risk keywords in the local mounting information file on the client device, determining whether the device has a virtual device installed, the problem of inaccurate identification of virtual devices in the prior art is solved, and a more accurate and stable identification effect is achieved.
Patent Information
- Application Number
- CN202411885841.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-19
- Publication Date
- 2025-04-04
- Estimated Expiration
- 2044-12-19
AI Technical Summary
The prior art is difficult to accurately identify whether virtual devices are installed on client devices, especially when faced with disguise and simulation of bad virtualization technologies.
By obtaining the preset keyword database, it contains multiple risk keywords, and is associated with containerized creation of virtual devices, reading the local mount information file to determine whether these risk keywords exist, and then determining whether there are virtual devices installed on the client device.
It realizes effective identification of virtual devices, avoids the disguise and simulation of bad virtualization technology, and improves the comprehensiveness and stability of identification.
Smart Images

Figure CN119760053A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the fields of computer technology and network security technology, and in particular to the field of device virtualization technology, and specifically to a virtual device identification method, apparatus, electronic device, computer-readable storage medium, and computer program product. Background Art
[0002] With the rapid development of computer technology, device virtualization technologies have been widely used. These technologies provide new means for various types of automated operations, but also bring challenges to the security of computer systems and mobile Internet.
[0003] The methods described in this section are not necessarily methods that have been previously conceived or employed. Unless otherwise indicated, it should not be assumed that any method described in this section is considered to be prior art simply because it is included in this section. Similarly, unless otherwise indicated, the issues mentioned in this section should not be considered to have been recognized in any prior art. Summary of the invention
[0004] The present disclosure provides a virtual device identification method, apparatus, electronic device, computer-readable storage medium, and computer program product.
[0005] According to one aspect of the present disclosure, a virtual device identification method is provided, which is applied to a client device, including: in response to determining whether a virtual device is installed on the client device, obtaining a preset keyword library, wherein the preset keyword library includes multiple risk keywords, and at least one risk keyword of the multiple risk keywords is associated with a virtual device created via containerization on the client device; reading a local mount information file to determine whether there is at least one risk keyword in the local mount information file; and in response to determining that there is at least one risk keyword in the local mount information file, determining that a virtual device is installed on the client device.
[0006] According to another aspect of the present disclosure, a virtual device identification method is provided, which is applied to a server device, including: providing a preset keyword library, wherein the preset keyword library includes multiple risk keywords, and at least one risk keyword of the multiple risk keywords is used to determine whether a virtual device is created via containerization on a client device that is communicatively connected to the server device; determining whether tag information indicating that a virtual device is installed on the client device is received; and in response to receiving the tag information, determining the client device as a risky device so that a function associated with the virtual device installed on the client device is disabled.
[0007] According to another aspect of the present disclosure, a virtual device identification apparatus is provided, which is applied to a client device and includes: a library acquisition module, configured to acquire a preset keyword library in response to determining whether a virtual device is installed on the client device to be identified, wherein the preset keyword library includes multiple risk keywords, and at least one risk keyword of the multiple risk keywords is associated with a virtual device created via containerization on the client device; a hit determination module, configured to read a local mount information file to determine whether there is at least one risk keyword in the local mount information file; and a result determination module, configured to determine whether a virtual device is installed on the client device in response to determining that there is at least one risk keyword in the local mount information file.
[0008] According to another aspect of the present disclosure, there is provided a virtual device identification apparatus, which is applied to a server device, and includes: a library providing module, configured to provide a preset keyword library, wherein the preset keyword library includes multiple risk keywords, and at least one risk keyword of the multiple risk keywords is used to determine whether a virtual device is created via containerization on a client device that is communicatively connected to the server device; a result receiving module, configured to determine whether tag information indicating that a virtual device is installed on the client device is received; and a risk avoidance module, configured to determine the client device as a risky device in response to receiving the tag information so that a function associated with the virtual device installed on the client device is disabled.
[0009] According to another aspect of the present disclosure, an electronic device is provided, comprising at least one processor; and a memory communicatively connected to the at least one processor; the memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the virtual device identification method of the present disclosure as described above.
[0010] According to another aspect of the present disclosure, a non-transitory computer-readable storage medium storing computer instructions is provided, where the computer instructions are used to enable a computer to execute the virtual device identification method described above in the present disclosure.
[0011] According to another aspect of the present disclosure, a computer program product is provided, including a computer program, and when the computer program is executed by a processor, the virtual device identification method described above in the present disclosure is implemented.
[0012] According to one or more embodiments of the present disclosure, virtual devices may be effectively and accurately identified.
[0013] It should be understood that the content described in this section is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The accompanying drawings exemplarily illustrate the embodiments and constitute a part of the specification, and together with the text description of the specification, are used to explain the exemplary implementation of the embodiments. The embodiments shown are for illustrative purposes only and do not limit the scope of the claims. In all drawings, the same reference numerals refer to similar but not necessarily identical elements.
[0015] Figure 1 A schematic diagram showing an exemplary system in which various methods described herein may be implemented according to an embodiment of the present disclosure;
[0016] Figure 2 A flowchart of a virtual device identification method applied to a client device according to an embodiment of the present disclosure is shown;
[0017] Figure 3 A schematic diagram showing a process of constructing a keyword library according to an embodiment of the present disclosure;
[0018] Figure 4 A flowchart of a virtual device identification method applied to a server device according to an embodiment of the present disclosure is shown;
[0019] Figure 5 A schematic diagram showing a method for identifying a virtual device applied by a system including a client device and a server device according to an embodiment of the present disclosure is shown;
[0020] Figure 6 A structural block diagram of a virtual device identification apparatus applied to a client device according to an embodiment of the present disclosure is shown;
[0021] Figure 7 A structural block diagram of a virtual device identification apparatus applied to a client device according to another embodiment of the present disclosure is shown;
[0022] Figure 8 A structural block diagram of a virtual device identification apparatus applied to a server device according to an embodiment of the present disclosure is shown;
[0023] Fig. 9 A structural block diagram of a virtual device identification apparatus applied to a server device according to another embodiment of the present disclosure is shown;
[0024] Fig.10 A structural block diagram of an exemplary electronic device that can be used to implement the embodiments of the present disclosure is shown. DETAILED DESCRIPTION
[0025] The following is a description of exemplary embodiments of the present disclosure in conjunction with the accompanying drawings, including various details of the embodiments of the present disclosure to facilitate understanding, which should be considered as merely exemplary. Therefore, it should be recognized by those of ordinary skill in the art that various changes and modifications may be made to the embodiments described herein without departing from the scope of the present disclosure. Similarly, for the sake of clarity and conciseness, the description of well-known functions and structures is omitted in the following description.
[0026] In the present disclosure, unless otherwise specified, the use of the terms "first", "second", etc. to describe various elements is not intended to limit the positional relationship, temporal relationship, or importance relationship of these elements, and such terms are only used to distinguish one element from another element. In some examples, the first element and the second element may refer to the same instance of the element, and in some cases, based on the description of the context, they may also refer to different instances.
[0027] The terms used in the description of various examples in this disclosure are only for the purpose of describing specific examples and are not intended to be limiting. Unless the context clearly indicates otherwise, if the number of elements is not specifically limited, the element can be one or more. In addition, the term "and / or" used in this disclosure covers any one of the listed items and all possible combinations.
[0028] In related technologies, researchers and developers have proposed a variety of forensic methods to identify and prevent virtual devices, such as hardware fingerprint detection, system attribute inspection, network interface analysis, and specific file or directory inspection. Although these methods can identify virtual devices to a certain extent, they may still not be accurately identified due to disguise and simulation by bad virtualization technology.
[0029] To this end, an embodiment of the present disclosure provides a virtual device identification method based on mounting features, which can effectively identify whether a virtual device is installed on a client device.
[0030] The embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings.
[0031] Figure 1 FIG. 1 is a schematic diagram of an exemplary system 100 in which various methods and apparatuses described herein may be implemented according to an embodiment of the present disclosure. Figure 1 , the system 100 includes one or more client devices 101, 102, 103, 104, 105, and 106, a server 120, and one or more communication networks 110 coupling the one or more client devices to the server 120. The client devices 101, 102, 103, 104, 105, and 106 may be configured to execute one or more applications.
[0032] In an embodiment of the present disclosure, the server 120 may run one or more services or software applications that enable execution of a virtual device identification method.
[0033] In some embodiments, server 120 may also provide other services or software applications, which may include non-virtualized environments and virtualized environments. In some embodiments, these services may be provided as web-based services or cloud services, such as provided to users of client devices 101, 102, 103, 104, 105, and / or 106 under a software as a service (SaaS) model.
[0034] exist Figure 1 In the configuration shown, the server 120 may include one or more components that implement the functions performed by the server 120. These components may include software components, hardware components, or a combination thereof that can be executed by one or more processors. Users operating client devices 101, 102, 103, 104, 105, and / or 106 may in turn utilize one or more client applications to interact with the server 120 to utilize the services provided by these components. It should be understood that a variety of different system configurations are possible, which may differ from the system 100. Therefore, Figure 1 is one example of a system for implementing the various methods described herein and is not intended to be limiting.
[0035] The user may use client devices 101, 102, 103, 104, 105 and / or 106 to send a virtual device identification request. The client device may provide an interface that enables a user of the client device to interact with the client device. The client device may also output information to the user via the interface. Figure 1 Only six client devices are depicted, but one skilled in the art will appreciate that the present disclosure may support any number of client devices.
[0036] Client devices 101, 102, 103, 104, 105 and / or 106 may include various types of computer devices, such as portable handheld devices, general-purpose computers (such as personal computers and laptop computers), workstation computers, wearable devices, smart screen devices, self-service terminal devices, service robots, game systems, thin clients, various messaging devices, sensors or other sensing devices, etc. These computer devices may run various types and versions of software applications and operating systems, such as MICROSOFT Windows, APPLE iOS, UNIX-like operating systems, Linux or Linux-like operating systems (such as GOOGLE Chrome OS); or include various mobile operating systems, such as MICROSOFT Windows Mobile OS, iOS, Windows Phone, Android. Portable handheld devices may include cellular phones, smart phones, tablet computers, personal digital assistants (PDAs), etc. Wearable devices may include head-mounted displays (such as smart glasses) and other devices. Game systems may include various handheld game devices, Internet-enabled game devices, etc. Client devices are capable of executing various different applications, such as various Internet-related applications, communication applications (such as email applications), short message service (SMS) applications, and may use various communication protocols.
[0037] The network 110 may be any type of network known to those skilled in the art that may support data communications using any of a variety of available protocols, including but not limited to TCP / IP, SNA, IPX, etc. By way of example only, the one or more networks 110 may be a local area network (LAN), an Ethernet-based network, a token ring, a wide area network (WAN), the Internet, a virtual network, a virtual private network (VPN), an intranet, an extranet, a blockchain network, a public switched telephone network (PSTN), an infrared network, a wireless network (e.g., Bluetooth, WIFI), and / or any combination of these and / or other networks.
[0038] Server 120 may include one or more general purpose computers, dedicated server computers (e.g., PC (personal computer) servers, UNIX servers, mid-range servers), blade servers, mainframe computers, server clusters, or any other suitable arrangement and / or combination. Server 120 may include one or more virtual machines running virtual operating systems, or other computing architectures involving virtualization (e.g., one or more flexible pools of logical storage devices that may be virtualized to maintain a server's virtual storage device). In various embodiments, server 120 may run one or more services or software applications that provide the functionality described below.
[0039] The computing units in the server 120 may run one or more operating systems including any of the above operating systems and any commercially available server operating systems. The server 120 may also run any of a variety of additional server applications and / or middle-tier applications, including HTTP servers, FTP servers, CGI servers, JAVA servers, database servers, etc.
[0040] In some implementations, server 120 may include one or more applications to analyze and consolidate data feeds and / or event updates received from users of client devices 101, 102, 103, 104, 105, and / or 106. Server 120 may also include one or more applications to display data feeds and / or real-time events via one or more display devices of client devices 101, 102, 103, 104, 105, and / or 106.
[0041] In some embodiments, the server 120 may be a server of a distributed system, or a server combined with a blockchain. The server 120 may also be a cloud server, or an intelligent cloud computing server or intelligent cloud host with artificial intelligence technology. A cloud server is a host product in a cloud computing service system to solve the defects of difficult management and weak business scalability in traditional physical hosts and virtual private servers (VPS) services.
[0042] The system 100 may also include one or more databases 130. In some embodiments, these databases may be used to store data and other information. For example, one or more of the databases 130 may be used to store information such as audio files and video files. The databases 130 may reside in various locations. For example, the database used by the server 120 may be local to the server 120, or may be remote from the server 120 and may communicate with the server 120 via a network-based or dedicated connection. The databases 130 may be of different types. In some embodiments, the databases used by the server 120 may be, for example, relational databases. One or more of these databases may store, update, and retrieve data to and from the databases in response to commands.
[0043] In some embodiments, one or more of the databases 130 may also be used by applications to store application data. The databases used by the applications may be different types of databases, such as a key-value store, an object store, or a conventional store backed by a file system.
[0044] Figure 1The system 100 may be configured and operated in various ways to enable the application of various methods and apparatuses described in the present disclosure.
[0045] Various aspects of the virtual device identification method according to an embodiment of the present disclosure will be described in detail below.
[0046] Figure 2 A flowchart of a virtual device identification method 200 applied to a client device according to an embodiment of the present disclosure is shown.
[0047] In this embodiment, the client device may be Figure 1 The client device may be connected to a server device for communication, and the server device may be, for example, Figure 1 The server 120 shown in .
[0048] The virtual device referred to in this article is a device simulated by software. It functionally imitates the behavior and characteristics of real hardware devices, but there is no actual physical hardware.
[0049] like Figure 2 As shown, method 200 includes steps S201, S202 and S203.
[0050] In step S201, in response to determining whether a virtual device is installed on a client device, a preset keyword library is obtained, which includes multiple risk keywords, at least one of which is associated with a virtual device created on the client device via containerization.
[0051] In the example, the client device may be pre-installed with a plug-in or application that can provide a virtual device identification service, with the help of which the user can initiate identification of the virtual device on the client device, or the server device can send a request for identification of the virtual device to the client device so that the user can determine whether to perform the corresponding operation.
[0052] In the example, the preset keyword library can be stored on the server device. When it is necessary to identify whether a virtual device is installed on the client device, the keyword library can be sent from the server device to the client device locally, or the client device can remotely access the keyword library.
[0053] In the example, the keyword library may also be referred to as a mount feature library, because the multiple risk keywords included in the keyword library are related to mount features. Risk keywords may be, for example, "docker", "container", etc. Mount features refer to trace information left in the mount information file when a virtual device is created via containerization on a client device.
[0054] In an operating system developed based on Linux, such as Android, a mount information file is a file used to record the mount status of a file system, which can provide information about how a specific process (identified by a process ID, i.e., PID) accesses the file system, so that the mount behavior of the process can be debugged and monitored or the performance of the file system can be optimized through the mount information file. The mount information file can record the mount point, such as listing all currently mounted file systems and their corresponding mount points, and can also record the type of file system of each mount point, and can also record the mount source, such as for a network file system, the mount source may be the address and shared path of a remote server, etc. Accordingly, the mount information file can generally include multiple fields, such as mount ID, parent mount ID, mount point, mount source, etc.
[0055] Therefore, if a virtual device is created on a client device via containerization, corresponding trace information, i.e., mount features, will be left in the mount information file. Such mount features are expressed as risk keywords, so once the corresponding risk keywords can be found in the mount information file, it can be reflected that a virtual device is created on the client device via containerization.
[0056] In step S202, the local mount information file is read to determine whether the local mount information file contains the at least one risk keyword.
[0057] In an example, the client device may be installed with an Android operating system, and the local mount information file may be used for the Android operating system and stored on the client device.
[0058] In the example, for each risk keyword in the keyword library, the local mount information file may be parsed line by line to determine whether the corresponding risk keyword is hit.
[0059] In step S203, in response to determining that the at least one risk keyword exists in the local mounting information file, it is determined that a virtual device is installed on the client device.
[0060] In the example, the virtual device may include an emulator, such as a game emulator, a cloud emulator, and a virtual machine. The emulator is generally packaged using container technology on a development board. Container technology achieves isolation by using the mount namespace mechanism in the Linux kernel's namespaces. This isolation enables the container to have a different and independent operating environment from the host system while sharing the same operating system kernel. The use of mount namespaces can isolate mount points, allowing the container to have a different file system layout from the host system, so that the container can mount its own file system without affecting the host system.
[0061] Therefore, when a mount feature with containerization traces exists in the local mount information file of a client device, it means that a virtual device must have been created on the client device through containerization. On the contrary, a client device that has not normally created a virtual device should not have any mount features in its local mount information file.
[0062] In the virtual device identification method 200 applied to the client device according to the embodiment of the present disclosure, starting from the perspective of whether the mount feature is left in the mount information file, it is indirectly determined whether the client device is installed with the help of determining whether the corresponding mount feature exists in the local mount information file of the client device. Since the client device can obtain a keyword library that reflects the mount feature through risk keywords, it is possible to effectively and accurately identify the virtual device by identifying the corresponding risk keywords in the local mount information file, avoiding the disguise and simulation designed by the bad virtualization technology to avoid identification, and improving the comprehensiveness and stability of identification.
[0063] In the disclosed technical solutions, the collection, storage, use, processing, transmission, provision and disclosure of user personal information involved are in compliance with relevant laws and regulations and do not violate public order and good morals.
[0064] In some embodiments, the plurality of risk keywords may be determined based on a first test client device on which a virtual device is installed. A first mount information file of the first test client device may be read so that a plurality of candidate keywords associated with containerization of the virtual device in the first mount information file are obtained as the plurality of risk keywords.
[0065] In the example, a known specific virtual device (e.g., a known virtual device manufacturer or model) may be installed on the first test client device. In this case, the local mount information file of the first test client device, i.e., the first mount information file, may be read, and suspicious items about the mount features may be searched in the first mount information file. Such suspicious items are keywords associated with the containerization of virtual devices, i.e., candidate keywords.
[0066] In the example, the number of the first test client devices may be one or more, which means that the above-mentioned multiple risk keywords may be obtained based on the first mounting information file in one first test client device, or may be obtained based on multiple first mounting information files corresponding to multiple first test client devices. In addition, when multiple first test client devices are used, the multiple first test client devices may be respectively installed with different virtual devices, or some of them may be installed with the same virtual device.
[0067] Through the above method, by using the first test client device with a virtual device installed as a sample to obtain risk keywords reflecting the mounting characteristics, it is possible to comprehensively accumulate prior knowledge related to the mounting characteristics to enrich and complete the keyword library, thereby facilitating the effective and accurate identification of the virtual device.
[0068] In some embodiments, at least one candidate keyword among the plurality of candidate keywords that is present in a second mounting information file of a second test client device on which no virtual device is installed may be removed.
[0069] In the example, as mentioned above, there should not be any mount feature in the local mount information file of a client device that has not normally created a virtual device. Therefore, the local mount information file of the second test client device, a normal client device that has not installed a virtual device, i.e., the second mount information file, will not have a mount feature, which means that if any candidate keyword among the above-mentioned multiple candidate keywords appears in the second mount information file of the second test client device, it may not actually be a risk keyword related to the mount feature. Therefore, the second mount information file of the second test client device can be used to verify this.
[0070] If any candidate keyword appears in both the first mounting information file of the first test client device and the second mounting information file of the second test client device, the candidate keyword can be removed. Conversely, if any candidate keyword that appears in the first mounting information file of the first test client device does not appear in the second mounting information file of the second test client device, the candidate keyword can be retained.
[0071] Therefore, by using the local mount information file of a normal client device to verify the previously accumulated risk keywords, accurate screening of risk keywords can be achieved, avoiding the mistaken inclusion of keywords that are actually not related to the mount features into the keyword library as risk keywords, thereby helping to improve the accurate identification of virtual devices.
[0072] In some embodiments, each of the plurality of candidate keywords may have an expanded candidate keyword obtained by expansion. When both the candidate keyword and the expanded candidate keyword appear in the second mounting information file of the second test client device, the candidate keyword may be determined to exist in the second mounting information file of the second test client device.
[0073] In the example, some keywords related to the mounting feature (such as "virtual") may also appear in the second mounting information file of the second test client device, which is a normal client device, because they may have a high frequency of use or a high possibility of use. In this case, if they are excluded according to the method of the aforementioned embodiment, it is likely that risk keywords that are actually related to the mounting feature will be missed. Therefore, it is possible to double-verify whether the candidate keyword is indeed related to the mounting feature by extending the candidate keyword. For example, if the candidate keyword is "virtual", the corresponding extended candidate keyword may be "virtual box", and accordingly, only when the candidate keyword "virtual" and the extended candidate keyword "virtual box" both appear in the second mounting information file of the second test client device, the candidate keyword "virtual" is actually determined to exist in the second mounting information file of the second test client device.
[0074] In this way, it is possible to avoid missing keywords that should be included in the keyword library as risk keywords, thereby further improving the accuracy of risk keywords, which in turn helps to further improve the accurate identification of virtual devices.
[0075] Figure 3 FIG. 3 is a schematic diagram showing a process 300 of building a keyword library according to an embodiment of the present disclosure.
[0076] like Figure 3 As shown, in process 300, firstly, a first test client device 301 with a virtual device installed and a second test client device 302 without a virtual device installed may be accessed to read the corresponding first mounting information file 3011 and second mounting information file 3021 respectively.
[0077] Next, the first mount information file 3011 of the first test client device 301 may be searched for suspicious items associated with the containerization of the virtual device, namely, candidate keywords 3011a. At this time, the candidate keywords 3011a may be used as risk keywords, and the accuracy of the candidate keywords 3011a may be further verified.
[0078] For verification, the second mounting information file 3021 of the second test client device 302 may be searched to determine whether the candidate keyword 3011a exists. If not, the candidate keyword 3011a may be retained as a risk keyword, and if present, the candidate keyword 3011a may be removed. This verification process may prevent keywords that do not have mounting characteristics from being included in the keyword library.
[0079] In addition, before removing the candidate keyword 3011a, further verification can be performed by expanding the candidate keyword 3011a, that is, determining whether the candidate keyword 3011a and the expanded candidate keyword 3011a' both appear in the second mounting information file 3021 of the second test client device 302. If both appear, the candidate keyword 3011a is determined to exist in the second mounting information file 3021 of the second test client device 302, and therefore it can be determined that the candidate keyword 3011a is removed.
[0080] Thus, a keyword library 303 can be constructed, and the keyword library 303 can be stored in the server device or the keyword library 303 can be remotely accessed by the server device. In practical applications, the keyword library 303 can be verified online, that is, as the number of client devices that can be accessed by the server device increases, the number of samples that can be used as the first test client devices also increases accordingly, which means that the keyword library 303 can be dynamically increased, deleted or modified.
[0081] In some embodiments, Figure 2 The illustrated method 200 may also include: generating tag information indicating that a virtual device is installed on the client device; and providing the tag information so that a function associated with the virtual device installed on the client device is disabled.
[0082] In an example, the client device may generate tag information locally and report it to the server device. The tag information may indicate information related to the manufacturer and model of the virtual device. After receiving the tag information, the server may determine whether the virtual device involves any bad technology and has illegal attributes. If so, the client device may be instructed to disable the functions associated with the virtual device or the client device may be remotely controlled.
[0083] By the above method, timely measures can be taken to avoid risks when identifying virtual devices with illegal attributes. At the same time, since the client device is marked with label information of the virtual device installed, the client device can also be used as the first test client device to participate in the construction and subsequent expansion of keywords.
[0084] In some embodiments, each of the multiple risk keywords may include at least one of a first feature keyword indicating that the virtual device is containerized or a second feature keyword indicating the manufacturer of the virtual device. For example, each risk keyword may be the first feature keyword, the second feature keyword, or a combination of the first feature keyword and the second feature keyword.
[0085] In the example, the first characteristic keyword may be "docker", "container", etc., as described above. Such keywords can directly reflect that the virtual device is created using containerization technology. In some cases, keywords related to the manufacturer of the virtual device may also appear in the mount information file, so such second characteristic keywords can also be used as risk keywords.
[0086] Through the above method, by estimating the style, type or attribute of the keywords that may appear in the mount information file, the risk keywords related to the mount characteristics can be more comprehensively included, which helps to enrich and complete the keyword library to effectively and accurately identify the virtual device.
[0087] Figure 4 A flowchart of a virtual device identification method 400 applied to a server device according to an embodiment of the present disclosure is shown.
[0088] like Figure 4 As shown, method 400 includes steps S401, S402 and S403.
[0089] In step S401, a preset keyword library is provided, the preset keyword library includes a plurality of risk keywords, at least one of the plurality of risk keywords is used to determine whether a virtual device is created via containerization on a client device that is communicatively connected to a server device.
[0090] In the example, a server device may store a preset keyword library. When identifying whether a virtual device is installed on a client device, the keyword library may be sent by the server device to the client device, or the client device may access the keyword library remotely.
[0091] In the example, as mentioned above, the preset keyword library can also be called a mount feature library. The mount feature refers to the trace information left in the mount information file when a virtual device is created through containerization on a client device. Therefore, the multiple risk keywords included in the keyword library are related to the mount feature.
[0092] In step S402, it is determined whether tag information indicating that a virtual device is installed on the client device is received.
[0093] In the example, the tag information can indicate information related to the manufacturer and model of the virtual device. When the server device receives the tag information uploaded by the client device, it can determine whether there is a virtual device on the client device based on the content of the tag information, and can also determine whether the virtual device involves any bad technology and has illegal attributes.
[0094] In step S403 , in response to receiving the tag information, the client device is determined to be a risky device so that functions associated with the virtual device installed on the client device are disabled.
[0095] In the example, if the tag information received by the server device indicates that a virtual device is installed on the client device, the client device can be identified as a risky device. At the same time, the server device can take corresponding measures, such as disabling the virtual device's access to storage resources, isolating the virtual device from normal devices, or restricting the network access of the virtual device to ensure the security of the system.
[0096] Therefore, in the virtual device identification method 400 applied to the server device according to the embodiment of the present disclosure, since the server device can provide the client device with a keyword library for determining whether a virtual device is created on the client device through containerization, it can help the client device identify the corresponding risk keywords to effectively and accurately identify the virtual device, avoiding the disguise and simulation designed by the bad virtualization technology to avoid identification, and improving the comprehensiveness and stability of identification. In addition, the server device can process the client device in a timely manner according to the reporting results to prevent the virtual device from interfering with the normal operation of other systems or services or causing security risks, thereby improving the security of the information system.
[0097] In some embodiments, Figure 4 The illustrated method 400 may further include: in response to receiving a request to identify whether a virtual device is installed on the client device, determining whether to enable a control policy; and in response to determining to enable the control policy, providing a preset keyword library.
[0098] In the example, the request to identify whether a virtual device is installed on the client device can come from the security monitoring mechanism inside the client device system, the triggering of specific business logic, or other scenarios where the authenticity of the client device needs to be confirmed. The server can determine whether to enable the control policy based on a series of factors. These factors may include the current system's security policy, resource status, business needs, legal policy requirements, and assessments of potential security risks. For example, if the system currently has sufficient resources and the business requires that the existence of virtual devices is strictly prohibited, the server can decide to enable the control policy; conversely, if the system resources are tight, the identification needs are not urgent, or there are other special circumstances, the server can choose not to enable the control policy for the time being. Once the server determines to enable the control policy, it can start the process of identifying whether there is a virtual device on the client device. At this time, the server can provide a preset keyword library.
[0099] Therefore, by flexibly determining whether to enable the control strategy, not only can precise control of whether the identification strategy is enabled be achieved, but also accurate judgment basis can be provided when virtual devices are identified because a preset keyword library can be provided when it is enabled, thereby avoiding waste of resources and improving system resource utilization.
[0100] Figure 5 A schematic diagram of a system application virtual device identification method including a client device 520 and a server device 510 according to an embodiment of the present disclosure is shown.
[0101] like Figure 5 As shown, the left side represents the server device 510 and the corresponding steps executed by it, and the right side represents the client device 520 and the corresponding steps executed by it.
[0102] In step S501, the client device 520 may send a request to the server device 510 to identify whether a virtual device is installed on the client device 520. In step S502, the server device 510 may enable a control policy based on, for example, a security policy or a preset condition. In step S503, the server device 510 may provide the client device 520 with a preset keyword library, which is used to identify whether a virtual device exists on the client device 520.
[0103] In step S504, after receiving the preset keyword library, the client device 520 can read and parse the local mount information file to determine whether there is at least one risk keyword included in the preset keyword library. In step S505, if the at least one risk keyword exists in the local mount information file, it can be confirmed that a virtual device is installed on the client device 520. In step S506, once it is confirmed that a virtual device is installed on the client device 520, corresponding tag information can be generated.
[0104] In step S507, the client device 520 may send the tag information to the server device 510. In step S508, after receiving the tag information, the server device 510 may evaluate whether the client device 520 is a risky device according to the tag information. In step S509, if the client device 520 is evaluated as a risky device, certain risk functions related to virtual devices on the client device 520 may be disabled to prevent illegal or unauthorized virtual devices from accessing system resources.
[0105] According to an embodiment of the present disclosure, a virtual device identification apparatus applied to a client device is also provided.
[0106] Figure 6 A structural block diagram of a virtual device identification apparatus applied to a client device according to an embodiment of the present disclosure is shown.
[0107] like Figure 6 As shown, the apparatus 600 includes a library acquisition module 601, a hit determination module 602, and a result determination module 603. The library acquisition module 601 is configured to, in response to determining whether a virtual device is installed on a client device, acquire a preset keyword library, the preset keyword library including a plurality of risk keywords, at least one of the plurality of risk keywords being associated with a virtual device created via containerization on the client device. The hit determination module 602 is configured to read a local mount information file to determine whether there is at least one risk keyword in the local mount information file. The result determination module 603 is configured to, in response to determining that at least one risk keyword exists in the local mount information file, determine that a virtual device is installed on the client device.
[0108] The operations of the library acquisition module 601, the hit determination module 602 and the result determination module 603 may correspond to the following: Figure 2 The operations of steps S201, S202 and S203 are shown in FIG. Therefore, the details of each aspect thereof will not be repeated here.
[0109] In some embodiments, the above-mentioned multiple risk keywords can be determined based on a first test client device, on which a virtual device is installed, wherein a first mount information file of the first test client device can be read so that multiple candidate keywords associated with the containerization of the virtual device in the first mount information file are obtained as the above-mentioned multiple risk keywords.
[0110] In some embodiments, at least one candidate keyword among the plurality of candidate keywords that is present in the second mounting information file of the second test client device may be removed, and no virtual device is installed on the second test client device.
[0111] In some embodiments, each of the above-mentioned multiple candidate keywords may have an extended candidate keyword obtained by expansion, wherein, when the candidate keyword and the extended candidate keyword both appear in the second mounting information file of the second test client device, the candidate keyword can be determined to exist in the second mounting information file of the second test client device.
[0112] Figure 7 A structural block diagram of a virtual device identification apparatus 700 applied to a client device according to another embodiment of the present disclosure is shown.
[0113] like Figure 7As shown, the apparatus 700 may include a library acquisition module 701, a hit determination module 702, a result determination module 703, a label generation module 704, and a label providing module 705. The library acquisition module 701, the hit determination module 702, and the result determination module 703 may correspond to the following respectively: Figure 6 The library acquisition module 601, the hit determination module 602, and the result determination module 603 are shown. The tag generation module 704 can be configured to generate tag information for indicating that a virtual device is installed on the client device. The tag providing module 705 can be configured to provide tag information so that the function associated with the virtual device installed on the client device is disabled.
[0114] In some embodiments, each of the plurality of risk keywords may include at least one of a first characteristic keyword indicating that the virtual device is containerized or a second characteristic keyword indicating a manufacturer of the virtual device.
[0115] According to an embodiment of the present disclosure, a virtual device identification apparatus applied to a server device is also provided.
[0116] Figure 8 A structural block diagram of a virtual device identification apparatus 800 applied to a server device according to an embodiment of the present disclosure is shown.
[0117] like Figure 8 As shown, the apparatus 800 includes a library providing module 801, a result receiving module 802, and a risk avoidance module 803. The library providing module 801 is configured to provide a preset keyword library, which includes a plurality of risk keywords, at least one of which is used to determine whether a virtual device is created via containerization on a client device that is communicatively connected to a server device. The result receiving module 802 is configured to determine whether tag information indicating that a virtual device is installed on the client device is received. The risk avoidance module 803 is configured to determine the client device as a risky device in response to receiving the tag information so that the function associated with the virtual device installed on the client device is disabled.
[0118] The operations of the library providing module 801, the result receiving module 802 and the risk avoiding module 803 may correspond to the following: Figure 4 The operations of steps S401, S402 and S403 are shown in FIG. Therefore, the details of each aspect thereof will not be repeated here.
[0119] Fig. 9 A structural block diagram of a virtual device identification apparatus 900 applied to a server device according to another embodiment of the present disclosure is shown.
[0120] like Fig. 9As shown, the apparatus 900 may include a library providing module 901, a result receiving module 902, a risk avoidance module 903, an opening confirmation module 904, and an opening execution module 905. The library providing module 901, the result receiving module 902, and the risk avoidance module 903 may correspond to the following respectively: Figure 8 The library providing module 801, the result receiving module 802, and the risk avoiding module 803 are shown. The opening confirmation module 904 can be configured to determine whether to open the control strategy in response to receiving a request to identify whether a virtual device is installed on the client device. The opening execution module 905 can be configured to instruct the library providing module to provide a preset keyword library in response to determining to open the control strategy.
[0121] According to an embodiment of the present disclosure, an electronic device is also provided, comprising at least one processor; and a memory communicatively connected to the at least one processor, wherein the memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the method as described above.
[0122] According to an embodiment of the present disclosure, a non-transitory computer-readable storage medium storing computer instructions is also provided, wherein the computer instructions are used to enable a computer to execute the method as described above.
[0123] According to an embodiment of the present disclosure, a computer program product is also provided, including a computer program, wherein the computer program implements the method as described above when executed by a processor.
[0124] refer to Fig.10 , a block diagram of an electronic device 1000 that can be used as a server or client of the present disclosure will now be described, which is an example of a hardware device that can be applied to various aspects of the present disclosure. The electronic device is intended to represent various forms of digital electronic computer devices, such as laptop computers, desktop computers, workbenches, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present disclosure described and / or required herein.
[0125] like Fig.10As shown, the electronic device 1000 includes a computing unit 1001, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 1002 or a computer program loaded from a storage unit 1008 into a random access memory (RAM) 1003. In the RAM 1003, various programs and data required for the operation of the electronic device 1000 can also be stored. The computing unit 1001, the ROM 1002, and the RAM 1003 are connected to each other via a bus 1004. An input / output (I / O) interface 1005 is also connected to the bus 1004.
[0126] Multiple components in the electronic device 1000 are connected to the I / O interface 1005, including: an input unit 1006, an output unit 1007, a storage unit 1008, and a communication unit 1009. The input unit 1006 can be any type of device that can input information to the electronic device 1000. The input unit 1006 can receive input digital or character information, and generate key signal input related to user settings and / or function control of the electronic device, and can include but is not limited to a mouse, a keyboard, a touch screen, a track pad, a track ball, a joystick, a microphone, and / or a remote controller. The output unit 1007 can be any type of device that can present information, and can include but is not limited to a display, a speaker, a video / audio output terminal, a vibrator, and / or a printer. The storage unit 1008 can include but is not limited to a disk and an optical disk. The communication unit 1009 allows the electronic device 1000 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks, and may include but is not limited to a modem, a network card, an infrared communication device, a wireless communication transceiver and / or a chipset, such as a Bluetooth device, an 802.11 device, a WiFi device, a WiMax device, a cellular communication device and / or the like.
[0127] The computing unit 1001 may be a variety of general and / or special processing components with processing and computing capabilities. Some examples of the computing unit 1001 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, digital signal processors (DSPs), and any appropriate processors, controllers, microcontrollers, etc. The computing unit 1001 performs the various methods and processes described above. For example, in some embodiments, the method may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as a storage unit 1008. In some embodiments, part or all of the computer program may be loaded and / or installed on the electronic device 1000 via ROM 1002 and / or communication unit 1009. When the computer program is loaded into RAM 1003 and executed by the computing unit 1001, one or more steps of the method described above may be performed. Alternatively, in other embodiments, the computing unit 1001 may be configured to perform the method described above in any other appropriate manner (e.g., by means of firmware).
[0128] Various implementations of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include: being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.
[0129] The program code for implementing the method of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that the program code, when executed by the processor or controller, enables the functions / operations specified in the flow chart and / or block diagram to be implemented. The program code may be executed entirely on the machine, partially on the machine, partially on the machine and partially on a remote machine as a stand-alone software package, or entirely on a remote machine or server.
[0130] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0131] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).
[0132] The systems and techniques described herein can be implemented in a computing system that includes backend components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes frontend components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such backend components, middleware components, or frontend components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), the Internet, and a blockchain network.
[0133] A computer system may include a client and a server. The client and the server are generally remote from each other and usually interact through a communication network. The relationship of client and server is generated by computer programs running on respective computers and having a client-server relationship with each other. The server may be a cloud server, a server of a distributed system, or a server combined with a blockchain.
[0134] It should be understood that the various forms of processes shown above can be used to reorder, add or delete steps. For example, the steps described in this disclosure can be performed in parallel, sequentially or in different orders, as long as the desired results of the technical solutions disclosed in this disclosure can be achieved, and this document does not limit this.
[0135] Although the embodiments or examples of the present disclosure have been described with reference to the accompanying drawings, it should be understood that the above-mentioned methods, systems and devices are merely exemplary embodiments or examples, and the scope of the present invention is not limited by these embodiments or examples, but only by the claims after authorization and their equivalent scope. Various elements in the embodiments or examples can be omitted or replaced by their equivalent elements. In addition, each step can be performed in an order different from that described in the present disclosure. Further, the various elements in the embodiments or examples can be combined in various ways. It is important that with the evolution of technology, many elements described herein can be replaced by equivalent elements that appear after the present disclosure.
Claims
1. A virtual device identification method, applied to a client device, the method comprising: In response to determining whether a virtual device is installed on the client device, obtaining a preset keyword library, wherein the preset keyword library includes a plurality of risk keywords, and at least one risk keyword of the plurality of risk keywords is associated with the virtual device created via containerization on the client device; Reading a local mount information file to determine whether the at least one risk keyword exists in the local mount information file; and In response to determining that the at least one risk keyword exists in the local mount information file, it is determined that the virtual device is installed on the client device.
2. The method according to claim 1, wherein: The multiple risk keywords are determined based on a first test client device, on which the virtual device is installed, wherein a first mount information file of the first test client device is read so that multiple candidate keywords associated with containerization of the virtual device in the first mount information file are obtained as the multiple risk keywords.
3. The method according to claim 2, wherein: At least one candidate keyword among the plurality of candidate keywords that exists in the second mounting information file of the second test client device is removed, and the virtual device is not installed on the second test client device.
4. The method according to claim 3, wherein: Each of the multiple candidate keywords has an extended candidate keyword obtained by expansion, wherein when the candidate keyword and the extended candidate keyword both appear in the second mounting information file of the second test client device, the candidate keyword is determined to exist in the second mounting information file of the second test client device.
5. The method according to any one of claims 1 to 4, wherein: The method further comprises: generating tag information for indicating that the virtual device is installed on the client device; and The tag information is provided such that functionality associated with the virtual device installed on the client device is disabled.
6. The method according to any one of claims 1 to 5, wherein: Each of the plurality of risk keywords includes at least one of a first characteristic keyword indicating that the virtual device is containerized or a second characteristic keyword indicating a manufacturer of the virtual device.
7. A virtual device identification method, applied to a server device, the method comprising: Providing a preset keyword library, wherein the preset keyword library includes a plurality of risk keywords, and at least one risk keyword among the plurality of risk keywords is used to determine whether a virtual device is created via containerization on a client device that is communicatively connected to the server device; determining whether tag information indicating that the virtual device is installed on the client device is received; and In response to receiving the tag information, the client device is determined to be a risky device such that functionality associated with the virtual device installed on the client device is disabled.
8. The method according to claim 7, wherein: The method further comprises: In response to receiving a request to identify whether a virtual device is installed on the client device, determining whether to enable a control policy; and In response to determining to start the control strategy, providing the preset keyword library.
9. A virtual device identification device, applied to a client device, the device comprising: a library acquisition module, configured to acquire a preset keyword library in response to determining whether a virtual device is installed on the client device, wherein the preset keyword library includes a plurality of risk keywords, and at least one risk keyword of the plurality of risk keywords is associated with the virtual device created via containerization on the client device; a hit determination module, configured to read a local mount information file to determine whether the at least one risk keyword exists in the local mount information file; and The result determination module is configured to determine that the virtual device is installed on the client device in response to determining that the at least one risk keyword exists in the local mounting information file.
10. The device according to claim 9, wherein: The multiple risk keywords are determined based on a first test client device, on which the virtual device is installed, wherein a first mount information file of the first test client device is read so that multiple candidate keywords associated with containerization of the virtual device in the first mount information file are obtained as the multiple risk keywords.
11. The device according to claim 10, wherein: At least one candidate keyword among the plurality of candidate keywords that exists in the second mounting information file of the second test client device is removed, and the virtual device is not installed on the second test client device.
12. The device according to claim 11, wherein Each of the multiple candidate keywords has an extended candidate keyword obtained by expansion, wherein when the candidate keyword and the extended candidate keyword both appear in the second mounting information file of the second test client device, the candidate keyword is determined to exist in the second mounting information file of the second test client device.
13. The device according to any one of claims 9 to 12, wherein: The device also includes: a label generation module, configured to generate label information for indicating that the virtual device is installed on the client device; and The tag providing module is configured to provide the tag information so that a function associated with the virtual device installed on the client device is disabled.
14. The device according to any one of claims 9 to 13, wherein: Each of the plurality of risk keywords includes at least one of a first characteristic keyword indicating that the virtual device is containerized or a second characteristic keyword indicating a manufacturer of the virtual device.
15. A virtual device identification device, applied to a server device, comprising: a library providing module, configured to provide a preset keyword library, wherein the preset keyword library includes a plurality of risk keywords, at least one risk keyword of the plurality of risk keywords is used to determine whether a virtual device is created via containerization on a client device that is communicatively connected to the server device; A result receiving module is configured to determine whether tag information indicating that the virtual device is installed on the client device is received; and The risk avoidance module is configured to, in response to receiving the tag information, determine the client device as a risky device so that a function associated with the virtual device installed on the client device is disabled.
16. The device according to claim 15, wherein: The device also includes: an activation confirmation module, configured to determine whether to activate the control policy in response to receiving a request to identify whether a virtual device is installed on the client device; and The activation execution module is configured to, in response to determining to activate the control strategy, instruct the library providing module to provide the preset keyword library.
17. An electronic device comprising: at least one processor; as well as a memory communicatively coupled to the at least one processor; The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the method according to any one of claims 1-8.
18. A non-transitory computer-readable storage medium storing computer instructions, wherein: The computer instructions are used to make a computer execute the method according to any one of claims 1-8.
19. A computer program product comprising a computer program, wherein: The computer program implements the method according to any one of claims 1 to 8 when executed by a processor.
Citation Information
Patent Citations
Information pushing method and device, electronic equipment and storage medium
CN113239275A
Digital assistant for providing visualization of segment information
CN117940879A
Content recommendation method and device, electronic equipment and storage medium
CN117992675A
Detecting apparatus and method for messenger phishing
KR1020130035572A
Data preprocessing using risk identifier tags
US20190163813A1
Cited By
Identification method and device of terminal equipment, electronic equipment and storage medium
CN120470302A