An example embodiment relates generally to processing security data, and more particularly, to providing personalized security information based on user interactions.
Users of varying degrees of sophistication are required to meet certain security standards and compliance. However, it can be difficult for a user to process large amounts of data from different sources in order to quickly and efficiently monitor security threats and/or standards. Additionally, products that assist users with security and compliance information are one-size-fits-all, even with the varying levels of sophistications. As such, there exists a need for a system that can provide personalized security information based on user interactions.
The following paragraphs present a summary of various embodiments of the present disclosure and are merely examples of potential embodiments. As such, the summary is not meant to limit the subject matter or variations of various embodiments discussed herein.
In an example embodiment, a method for providing personalized security information based on prompt responses is provided. The method includes receiving a first query from a computing device associated with an account. The first query includes one or more words that are related to the account. The method also includes determining an account knowledge level for the account based on at least one of the one or more words of the first query. The account knowledge level indicates a sophistication of the account. The method further includes determining a first response to the first query based on the account knowledge level associated with the account. A response complexity level of one or more words used in the first response are based on the account knowledge level.
In various embodiments, the method also includes receiving an account history indicator with the account history indicator including one or more pages accessed by the account, and updating the account knowledge level based on the account history indicator.
In various embodiments, each of the one or more pages are assigned a complexity level with a higher complexity level indicating that the account knowledge level is higher.
In various embodiments, the method also includes updating the account knowledge level for the account based on a second query.
In various embodiments, the account knowledge level is determined to be one of a plurality of account knowledge levels, wherein a first account knowledge level is higher than a second account knowledge level.
In various embodiments, the first response is different in an instance in which the account knowledge level for the account is the first account knowledge level than in an instance in which the account knowledge level for the account is the second account knowledge level.
In various embodiments, the method also includes assigning a base account knowledge level for the account in an instance the first query has not been received.
In various embodiments, determining the account knowledge level for the account based on at least one of the one or more words of the first query includes updating the base account knowledge level based on the at least one of the one or more words of the first query.
In various embodiments, the method also includes causing the first response to be provided to the computing device associated with the account.
In another example embodiment, a system for providing personalized security information based on prompt responses is provided. The system includes at least one non-transitory storage device; and at least one processing device coupled to the at least one non-transitory storage device. The at least one processing device is configured to receive a first query from a computing device associated with an account. The first query includes one or more words that are related to the account. The at least one processing device is also configured to determine an account knowledge level for the account based on at least one of the one or more words of the first query. The account knowledge level indicates a sophistication of the account. The at least one processing device is further configured to determine a first response to the first query based on the account knowledge level associated with the account. A response complexity level of one or more words used in the first response are based on the account knowledge level.
In various embodiments, the at least one processing device is further configured to receive an account history indicator with the account history indicator including one or more pages accessed by the account, and update the account knowledge level based on the account history indicator.
In various embodiments, each of the one or more pages are assigned a complexity level with a higher complexity level indicating that the account knowledge level is higher.
In various embodiments, the at least one processing device is further configured to update the account knowledge level for the account based on a second query.
In various embodiments, the account knowledge level is determined to be one of a plurality of account knowledge levels, wherein a first account knowledge level is higher than a second account knowledge level.
In various embodiments, the first response is different in an instance in which the account knowledge level for the account is the first account knowledge level than in an instance in which the account knowledge level for the account is the second account knowledge level.
In various embodiments, the at least one processing device is further configured to assign a base account knowledge level for the account in an instance the first query has not been received.
In various embodiments, determining the account knowledge level for the account based on at least one of the one or more words of the first query includes updating the base account knowledge level based on the at least one of the one or more words of the first query.
In various embodiments, the at least one processing device is further configured to cause the first response to be provided to the computing device associated with the account.
In still another example embodiment, a computer program product for providing personalized security information based on prompt responses is provided. The computer program product including at least one non-transitory computer-readable medium having one or more computer-readable program code portions embodied therein, the one or more computer-readable program code portions including at least one executable portion configured to receive a first query from a computing device associated with an account. The first query includes one or more words that are related to the account. The at least one executable portion also configured to determine an account knowledge level for the account based on at least one of the one or more words of the first query. The account knowledge level indicates a sophistication of the account. The at least one executable portion further configured to determine a first response to the first query based on the account knowledge level associated with the account, wherein a response complexity level of one or more words used in the first response are based on the account knowledge level.
In various embodiments, the one or more computer-readable program code portions include at least one executable portion further configured to: receive an account history indicator, wherein the account history indicator includes one or more pages accessed by the account; and update the account knowledge level based on the account history indicator.
In various embodiments, each of the one or more pages are assigned a complexity level, wherein a higher complexity level indicates that the account knowledge level is higher.
In various embodiments, the one or more computer-readable program code portions include at least one executable portion further configured to update the account knowledge level for the account based on a second query.
In various embodiments, the account knowledge level is determined to be one of a plurality of account knowledge levels, wherein a first account knowledge level is higher than a second account knowledge level.
In various embodiments, the first response is different in an instance in which the account knowledge level for the account is the first account knowledge level than in an instance in which the account knowledge level for the account is the second account knowledge level.
In various embodiments, the one or more computer-readable program code portions include at least one executable portion further configured to assign a base account knowledge level for the account in an instance the first query has not been received.
In various embodiments, determining the account knowledge level for the account based on at least one of the one or more words of the first query includes updating the base account knowledge level based on the at least one of the one or more words of the first query.
In various embodiments, the one or more computer-readable program code portions include at least one executable portion further configured to cause the first response to be provided to the computing device associated with the account.
Implementation of the method and/or system of embodiments of the present disclosure can involve performing or completing selected tasks manually, automatically, or a combination thereof. Moreover, according to actual instrumentation and equipment of embodiments of the method and/or system of the invention, several selected tasks could be implemented by hardware, by software or by firmware or by a combination thereof using an operating system.
For example, hardware for performing selected tasks according to embodiments of the invention could be implemented as a chip or a circuit. As software, selected tasks according to embodiments of the invention could be implemented as a plurality of software instructions being executed by a computer using any suitable operating system. In an exemplary embodiment of the invention, one or more tasks according to exemplary embodiments of method and/or system as described herein are performed by a data processor, such as a computing platform for executing a plurality of instructions. The memory device(s) discussed herein may include at least one non-transitory storage device. Optionally, the data processor includes a volatile memory for storing instructions and/or data and/or a non-volatile storage, for example, a magnetic hard-disk and/or removable media, for storing instructions and/or data. Optionally, a network connection is provided as well. A display and/or a user input device such as a keyboard or mouse are optionally provided as well.
Many aspects of the present disclosure will be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, with emphasis instead being placed upon clearly illustrating the principles of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views. It should be recognized that these implementations and embodiments are merely illustrative of the principles of the present disclosure. Therefore, in the drawings:
The presently disclosed subject matter now will be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the presently disclosed subject matter are shown. Like numbers refer to like elements throughout. The presently disclosed subject matter may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements.
Indeed, many modifications and other embodiments of the presently disclosed subject matter set forth herein will come to mind to one skilled in the art to which the presently disclosed subject matter pertains having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the presently disclosed subject matter is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims.
Throughout this specification and the claims, the terms “comprise,” “comprises”, and “comprising” are used in a non-exclusive sense, except where the context requires otherwise. Likewise, the term “includes” and its grammatical variants are intended to be non-limiting, such that recitation of items in a list is not to the exclusion of other like items that can be substituted or added to the listed items.
Systems designed to identify cyber-security threats generally gather large volumes of data from numerous data sources, including network traffic data, logs (systems, applications, security devices, cloud resources), threat intelligence feeds, endpoint data, user behavior analysis, file integrity monitoring, vulnerability scans, and dark web monitoring tools. Data gathered from these sources is generally called “Security Data” and may be stored in one or more security databases.
Data may also be gathered related to compliance, which is typically generated based on user responses to questions. For example, an account may be asked to provide general information relating to cybersecurity, such as number of nodes (e.g., computing devices) on a system, type of security currently implemented, qualified employees, etc. As such, the “compliance data” may be stored in one or more compliance databases. Typically, compliance data and security data are stored by different entities, making it difficult to use both types of data to provide answers to account queries.
Organizations employ numerous processes and tools to handle the large volume of security data and to segment data representing validated security threats from data that is simply a part of normal operations. Tools and applications like Security Information and Event Management (SIEM) solutions, combined with trained security analysts, review and validate data that is thought to be a security threat.
Artificial intelligence (AI) and machine learning (ML) tools are increasingly used in analyzing these large volumes of security data; however, AI and ML tools, like all other tools and analysis efforts, are only as good as the data collected. Increased performance in determining security threats can be achieved by augmenting the security data collected with data derived from human-evaluated compliance and security assessments.
Various embodiments of the present disclosure provide for automated responses to queries by a user. To do this, a user may submit a query to an automated chat feature. The system of various embodiments may then use both security data discussed above along with compliance data (e.g., compliance data from one or more compliance databases may include data provided by an account relating to compliance and/or information determined by the system relating to the account) to determine a response to the query. The response may include providing information relating to an account, such as statistics, simulated test results, and/or the like. The queries and responses may be provided to a user interface for a user associated to an account in a conversational format (e.g., a textual conversation between the system and the user associated with the account).
In some aspects, the techniques described herein relate to a method for dynamically determining a response to a query. The determination of a response to a query is capable of being dynamic due to the processing of data packet(s) from data sources. The method includes receiving a first query from a computing device associated with an account with first query including a request for information relating to the account; determining, based on the first query, at least one of a security database or a compliance database that contains one or more data packets relating to the first query and the account; receiving, from the at least one of the security database or the compliance database, the one or more data packets relating to the first query and the account; determining a first response to the first query based on the one or more data packets relating to the first query and the account; and causing the first response to be provided to the computing device associated with the account.
In some aspects, the techniques described herein relate to a method, further including determining the potential test to simulate based on the first query.
In some aspects, the techniques described herein relate to a method, wherein the first query and the first response are rendered to the user interface in a conversation format.
In various embodiments, systems and/or computer program products may be provided configured to carry out the operations of the method discussed herein.
Additionally, varying levels of understanding of subject matter can increase call volumes, support requests, disinterest in product, and/or lack of use of a system. Users of security and compliance products have an incredibly wide and varying degree of understanding of the security and compliance issues which can be displayed by a security or compliance product. For example, users in small organizations may have no or minimal understanding of cyber security issues, and therefore require product output specifically tailored to their knowledge level. Specifically, users who are mandated by a compliance, regulation, or security interest will procure products that are oftentimes difficult to understand. Thus, resulting in users who are significantly withdrawn from the process of their security and/or compliance.
Various embodiments of the present disclosure provide for a dynamic user experience that adapts based on the knowledge level of a user and/or entity. As such, the present disclosure uses intent-based prompting by level of an account's (user level and/or entity level) understanding of the subject matter being displayed on screen. By understanding the user's level of understanding of items displayed via metrics such as times a user accesses support articles, submissions for support, lexicon used in communications, the system can discern the level of user understanding. From the determination of account knowledge level, intent-based prompting can modify nomenclature, vernacular, and/or communication with user to a level aligned with the user's knowledge. As the user interacts with the software, support, and personnel of the product the system can discern with higher certainty the level of understanding and adjust to ensure it stays within the user's realm of Compliance and security platforms and products either provide a standard user vernacular, nomenclature, and level of communication for user interactions, or at most some systems may allow users to select a specific persona and adjust vernacular, nomenclature and level of communication based on user selection.
In an example use case, systems and/or methods discussed herein may be used by merchants. Namely, systems and/or methods may use security data and/or compliance data to answer queries associated with a merchant. In various embodiments, the knowledge level of the user and/or entity may be used to determine the information provided. As such, the account knowledge level for a merchant may accept parameters that are based on the size of the merchant, the type of industry the merchant is in, the amount of training related to cybersecurity, the length the merchant has been in business and available through the Internet, whether the merchant is business to business or business to consumer, other example parameters include backgrounds of the business principles, type of products or services being offered, and other qualities. The system may determine a base account knowledge level and update the account knowledge level based on actions of the merchants (e.g., based on queries from the merchant, actions from the merchant, and years without a cyber issue, to name a few). The account knowledge level for an account and/or entity (e.g., such as a merchant) may be used to determine responses to the merchant, allowing for targeted responses that the merchant is capable of understanding.
Reference will now be made in detail to aspects of the disclosure, examples of which are illustrated in the accompanying drawings. The following description refers to the accompanying drawings in which the same numbers in different drawings represent the same or similar elements unless otherwise represented. The implementations set forth in the following description do not represent all implementations consistent with the disclosure. Instead, they are merely examples of apparatuses and methods consistent with aspects related to the disclosure as recited in the appended claims. Particular aspects of the present disclosure are described in greater detail below. The terms and definitions provided herein control, if in conflict with terms and/or definitions incorporated by reference.
Systems, methods, and apparatuses are described herein which relate generally to dynamically determining security status and/or predicted outcomes via prompt-based communications with a user. In the following description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of the present disclosure. It will be evident, however, to one skilled in the art that the present disclosure may be practiced without these specific details and/or with any combination of these details.
Referring now to
As shown, the response determination server 157 may have memory device(s) 368 which include an enterprise knowledge graph 154 used in various embodiments herein. As such, the response determination server 157 may use nearest node functions to process queries and determine responses to said queries. An enterprise knowledge graph, as used herein comprises interconnected data of a particular organization or organizations, and provides a unified view of data across various domains. Key characteristics include interconnected data (objects and their relationships), semantic context (metadata and ontologies), unified view (disparate sources of data), and scalability. Core components include nodes and edges, ontologies and taxonomies, data sources, inference engines, and interfaces.
The graph database of
The enterprise knowledge graph 154 of
One or more components of the response generation system 175 (e.g., text server 151 and/or the response determination server 157) may have a natural language processing (NLP) engine 153 that is capable of processing or otherwise analyzing text-based queries as discussed herein. The NLP engine 153 may be stored on any of the device of the system (e.g., the text server 151, the response determination server 157, the computing device(s) 152, etc.). The NLP engine comprises text processing through tokenization, stop word removal, lowercasing, stemming and lemmatization, and noise removal to name a few sub-processes. Further, a linguistic analysis may be performed as part-of-speech tagging, dependency parsing, and named entity recognition as further sub-processes. Further, a semantic analysis may be performed on word embeddings, semantic role labeling, sentiment analysis, and coreference resolution.
Security database(s) 200 and/or compliance database(s) 205 may be part or, or in communication with the response generation system 175. The security database(s) 200 may include any information gathered during the monitoring of network and/or device security. The information may be associated with an account, such that the information can be referenced based on the account. In various embodiments, security data may be gathered using telemetry monitoring of networks and/or devices. As such, the security data may be generated at least partially automatically. In such an instance, only entities with access to a network or device associated with the user may be able to gather security data. However, in some instances, the security data may be provided to third parties for processing.
An example security database may include various columns relating to the security data. For example, the security database may include columns named: ID, submission source, type, name, title, category, backgrounds, recommendations, notes, organization ID, organization paths, severity, confidence, PCI severity, priority, customer priority, tags, asset keys, display name, authoritative ID, username, email, name, cidr, MAC address, IP Address, hostname, protocol, port, event IDs, affected items, references, evidences, text, file, source plugins, source tags, cvssV2Vector, cvssV2Score, cvssV3Vector, cvssV3Score, cvssV4Vector, cvssV4Score, cvssV4Exploitability, cvssV4Complexity, cvssV4VulnerableSystem, cvssV4SubsequentSystem, cvssV4Exploitation, cvssV4SecurityRequirements, CVES, CWES, raw, external ID, external event IDs, extras, keys, value, PCI Pass, workflows, events, is Template, is Deleted, created Instant, and last Updated. The columns of the security database above are merely for example and any number of columns may be used in a given security database.
The compliance database(s) 205 may include any information gathered in relation to compliance. The compliance database(s) 205 may be generally gathered from users associated with the account, such as answering questions relating to compliance. Example questions relating to compliance may include network configuration, number of devices, types of usage, and/or the like. The compliance data gathered and stored in a compliance database(s) 205 may include information gathered based on previous testing (e.g., previous audit results). As such, the compliance database(s) 205 may include various information relating to the network and/or device configuration for the account.
The security database(s) 200 and compliance database(s) 205 may include similar or the same columns. In various embodiments, the system may normalize data packets from the security database(s) 200 and/or compliance database(s) 205 based on the columns in each database. For example, the system may normalize the security data and the compliance data to have the same columns (e.g., only shared column titles may be kept in the normalized data). In various embodiments, the security data and the compliance data may be reformatted to be analyzed with one another. For example, the system may generate a vector index for a given data packet with information from the security data or the compliance data. As such, a vector index created for the security data can be compared with a vector index created for the compliance data.
The security database(s) 200 and/or compliance database(s) 205 may be in communication with various components of the response generation system 175 and used to determine a response to a query, as discussed herein.
Referring now to
The text server 151 of
It should be understood that the memory device(s) 268 may include one or more databases or other data structures/repositories. The memory device 268 also includes computer-executable program code that instructs the processing device(s) 256 to operate the network communication interface (e.g., communication adapter 267) to perform certain communication functions of the system described herein. For example, in one embodiment of the text server 151, the memory device 268 includes, but is not limited to, a text server application 288, a text engine 253, and an operating system 254. The text engine 253 may also include an NLP engine 153, an automatic speech recognition (ASR) engine 250, grammar database(s) 204, lexicon database(s) 206, and/or dynamic text modelling 208.
Some embodiments of the text server 151 include processing device(s) 256 communicably coupled to such components as the memory device(s) 268, the communication adapter 267, the input/output adapter 278, the disk drive adapter 272, and/or the like. The processing device(s) 256, and other processors described herein, generally include circuitry for implementing communication and/or logic functions of the system. For example, the processing device(s) 256 may include a digital signal processor device, a microprocessor device, and various analog to digital converters, digital to analog converters, and/or other support circuits. Control and signal processing functions of the text server 151 are allocated between these devices according to their respective capabilities. The processing device(s) 256 thus may also include the functionality to encode and interleave messages and data prior to modulation and transmission. The processing device(s) 256 can additionally include an internal data modem. Further, the processing device(s) 256 may include functionality to operate one or more software programs, which may be stored in the memory device(s) 268. For example, the processing device(s) 256 may be capable of operating a connectivity program to communicate via the communication adapter 267.
The processing device(s) 256 is configured to connect to the network 100 via the communication adapter 267 to communicate with one or more other devices on the network 100. In this regard, the communication adapter 267 may include various components, such as an antenna operatively coupled to a transmitter and a receiver (together a “transceiver”). The processing device(s) 256 is configured to provide signals to and receive signals from the transmitter and receiver, respectively. The signals may include signaling information in accordance with the air interface standard of the applicable cellular system of the network 100. In this regard, the text server 151 may be configured to operate with one or more air interface standards, communication protocols, modulation types, and access types. By way of illustration, the text server 151 may be configured to operate in accordance with any of a number of first, second, third, fourth, and/or fifth-generation communication protocols and/or the like. In various embodiments, the text server 151 may also be connected via other connection methods to one or more components of the response generation system 175 (e.g., the text server 151 may be hardwired to the response determination server 157).
The I/O adapter 278, which allow the text server 151 to receive data from a user such as a system administrator, may include any of a number of devices allowing the text server 151 to receive data from the user, such as a keypad, keyboard 281, touch-screen, touchpad, microphone, mouse, joystick, other pointer device, button, soft key, and/or other input device(s). The user interface may also include a camera, such as a digital camera.
The disk drive adapter 272 may provide additional storage space via disk storage 270. Various other storage mediums may also be used by the text server 151, such as cloud storage (e.g., transmitted via the communication adapter 267).
Referring now to
The response determination server 157 of
It should be understood that the memory device(s) 368 may include one or more databases or other data structures/repositories. The memory device 368 also includes computer-executable program code that instructs the processing device(s) 356 to operate the network communication interface (e.g., communication adapter 367) to perform certain communication functions of the system described herein. For example, in one embodiment of the response determination server 157, the memory device 368 includes, but is not limited to, a response determination server application 397, a NLP engine 153, a parsing engine 380 (that receives information relating to sessions 340, contacts 344, and rules 376), an inference engine 398, a reasoner 379, an operating system 354, and a machine learning engine 305.
The response determination server application 397 may be used to determine responses to queries as discussed herein. Additionally, the response determination server application 397 may be capable of communicating with other devices on the network 100 via the communication adapter 367. The processing device(s) 356 may use the information stored in the NLP engine 153, the parsing engine 380, the inference engine 398, and/or the reasoner 379 to determine the response to a query.
Some embodiments of the response determination server 157 include processing device(s) 356 communicably coupled to such components as the memory device(s) 368, the communication adapter 367, the input/output adapter 378, the disk drive adapter 372, and/or the like. The processing device(s) 356, and other processors described herein, generally include circuitry for implementing communication and/or logic functions of the system. For example, the processing device(s) 356 may include a digital signal processor device, a microprocessor device, and various analog to digital converters, digital to analog converters, and/or other support circuits. Control and signal processing functions of the response determination server 157 are allocated between these devices according to their respective capabilities. The processing device(s) 356 thus may also include the functionality to encode and interleave messages and data prior to modulation and transmission. The processing device(s) 356 can additionally include an internal data modem. Further, the processing device(s) 356 may include functionality to operate one or more software programs, which may be stored in the memory device(s) 368. For example, the processing device(s) 356 may be capable of operating a connectivity program to communicate via the communication adapter 367.
The processing device(s) 356 is configured to connect to the network 100 via the communication adapter 367 to communicate with one or more other devices on the network 100. In this regard, the communication adapter 367 may include various components, such as an antenna operatively coupled to a transmitter and a receiver (together a “transceiver”). The processing device(s) 356 is configured to provide signals to and receive signals from the transmitter and receiver, respectively. The signals may include signaling information in accordance with the air interface standard of the applicable cellular system of the network 100. In this regard, the response determination server 157 may be configured to operate with one or more air interface standards, communication protocols, modulation types, and access types. By way of illustration, the response determination server 157 may be configured to operate in accordance with any of a number of first, second, third, fourth, and/or fifth-generation communication protocols and/or the like. In various embodiments, the response determination server 157 may also be connected via other connection methods to one or more components of the text server 151 (e.g., the text server 151 may be hardwired to the response determination server 157).
The I/O adapter 378, which allow the response determination server 157 to receive data from a user such as a system administrator, may include any of a number of devices allowing the response determination server 157 to receive data from the user, such as a keypad, keyboard, touch-screen, touchpad, microphone, mouse, joystick, other pointer device, button, soft key, and/or other input device(s). The user interface may also include a camera, such as a digital camera.
The disk drive adapter 372 may provide additional storage space via disk storage 370. Various other storage mediums may also be used by the response determination server 157, such as cloud storage (e.g., transmitted via the communication adapter 367).
Referring now to
Example computing devices include desktop computers 107, mobile devices, such as mobile phones 112, tablets, smart watches, etc., laptops 126, and/or the like. As such, the computing device 152 may be any device that is capable of accessing the automated chat platform 101 and includes any capabilities of such a computing device. For example, a mobile phone may include communication interfaces to communication with mobile networks and local area networks (e.g., via Wi-Fi).
The computing device 152 of
It should be understood that the memory device(s) 468 may include one or more databases or other data structures/repositories. The memory device 468 also includes computer-executable program code that instructs the processing device(s) 456 to operate the network communication interface (e.g., communication adapter 467) to perform certain communication functions of the system described herein.
Some embodiments of the computing device 152 include processing device(s) 456 communicably coupled to such components as the memory device(s) 468, the communication adapter 467, the input/output adapter 478, the disk drive adapter 472, and/or the like. The processing device(s) 456, and other processors described herein, generally include circuitry for implementing communication and/or logic functions of the system. For example, the processing device(s) 456 may include a digital signal processor device, a microprocessor device, and various analog to digital converters, digital to analog converters, and/or other support circuits. Control and signal processing functions of the computing device 152 are allocated between these devices according to their respective capabilities. The processing device(s) 456 thus may also include the functionality to encode and interleave messages and data prior to modulation and transmission. The processing device(s) 456 can additionally include an internal data modem. Further, the processing device(s) 456 may include functionality to operate one or more software programs, which may be stored in the memory device(s) 468. For example, the processing device(s) 456 may be capable of operating a connectivity program to communicate via the communication adapter 467.
The processing device(s) 456 is configured to connect to the network 100 via the communication adapter 467 to communicate with one or more other devices on the network 100. In this regard, the communication adapter 467 may include various components, such as an antenna operatively coupled to a transmitter and a receiver (together a “transceiver”). The processing device(s) 456 is configured to provide signals to and receive signals from the transmitter and receiver, respectively. The signals may include signaling information in accordance with the air interface standard of the applicable cellular system of the network 100. In this regard, the computing device 152 may be configured to operate with one or more air interface standards, communication protocols, modulation types, and access types. By way of illustration, the computing device 152 may be configured to operate in accordance with any of a number of first, second, third, fourth, and/or fifth-generation communication protocols and/or the like).
The I/O adapter 478, which allow the computing device 152 to receive data from a user such as a system administrator, may include any of a number of devices allowing the computing device 152 to receive data from the user, such as a keypad, keyboard 481, touch-screen, touchpad, microphone, mouse, joystick, other pointer device, button, soft key, and/or other input device(s). The user interface may also include a camera, such as a digital camera.
The disk drive adapter 472 may provide additional storage space via disk storage 470. Various other storage mediums may also be used by the computing device 152, such as cloud storage (e.g., transmitted via the communication adapter 467).
As described above, the computing device 152 has a user interface that is, like other user interfaces described herein, rendered via the display device 480. The display device 480 include a display (e.g., a liquid crystal display or the like) and/or a speaker or other audio device, which are operatively coupled to the processing device(s) 456. As such queries and/or responses may be provided to the computing device 152 via the display device 480 (e.g., visually via the user interface and/or audibly via the speaker or other audio device). In various embodiments, the display device 480 may be in communication with a sound card 474 (e.g., attached to a microphone 476 and/or a speaker 477 (e.g., the speaker 477 may be part of the display device 480 or standalone).
Referring now to
In various embodiments, the response generation system 175 of
In various embodiments, a machine learning model, such as a large language model (LLM 525) may be used to process the data packet(s) received from the security database(s) 200 and/or the compliance database(s) 205, as well as the query to determine a response to the given query. A LLM is a deep learning algorithm that can perform various types of NLP tasks. The LLM may be part of the NLP engine 153 shown in
The data processed and transformed via the LLM 525 may then be converted into a readable medium at Block 530 (e.g., converted to a text-based response to the query). The query and response may be stored in memory of the system as shown in Block 535 (e.g., memory device(s) 268 of the text server 151, memory device(s) 368 of the response determination server 157, memory device(s) 468 of the computing device(s) 152, etc.). The query and response may be stored in conversation format (e.g., a conversation chain). Additionally or alternatively, the response may be provided to a user interface on the display device 480 (e.g., a display device of a computing device associated with a user and/or entity). The user interface of the display device 480 may be the same user interface 700 shown in
Referring now to
As discussed in more detail below in reference to
At Block 630, the system processes the query and/or the additional resources obtained from the vector database to determine the response. The response may be determined via a large language model as shown at Block 635. The determination of a response is discussed in more detail in reference to
Referring now to
In various embodiments, the user interface (e.g., user interface 700) may also provide recommended queries (e.g., frequently entered queries, and/or account specific recommendations may be provided). For example, a user may select a recommended query. The recommended query may be based on the user account, the knowledge level of the user and/or the entity, the entity account, the security data associated with the entity, compliance data associated with the entity, and/or the like. Additionally or alternatively, the recommended query may be based on previous interactions with the account. For example, the recommended query may be a follow-up to a previous query and/or the recommended query may be based on security data and/or compliance data. In various embodiments, the recommended queries may be based on the knowledge level of the user and/or the entity. For example, the system may provide recommended queries to lower knowledge level users than higher knowledge level users.
In various embodiments, queries and/or responses from previous sessions (e.g., a predetermined amount of time in which a user accesses a given account) may be stored and displayed via the user interface (e.g., the user may be capable of scrolling through previous queries and responses). Alternatively, the queries and/or responses may merely be available during a given session (e.g., not stored or stored, but not displayed). In various embodiments, queries and/or responses may be stored to be used for training a machine learning model. For example, the queries and/or response may be used to generate recommended queries and/or proactive responses (e.g., a response may include additional information outside the specific scope of a question in an instance in which the machine learning model determines a user may ask additional follow-up questions).
In various embodiments, users and/or automated actors may have a designated avatar. For example, the user of
The user interface 700 of
As shown at query 760A, the query uses the previous query and response, which is directed to a PCI audit for the “Lakeside site”, to ask about another site (e.g., a different sub-group). Here, the system may use the information from the previous query and response to determine the desired information for query 760A. As such, the system can determine that the user wants to know whether Rockdale site will be able to pass a PCI audit. The response 760B indicates that the Rockdale site would be able to pass the PCI audit. Query 765A asks about PCI audits at two more sub-groups (“Southland” and “Hwy 15”) and the response 765B indicates that both sites would be able to pass PCI audits.
Referring now to
In various embodiments, the operations of the retrieval augmentation generation engine 810 and the knowledge base data processing engine 820 may be carried out by the response generation system 175 of
As shown, the retrieval augmentation generation engine 810 may take the prompt(s) (e.g., queries) and determine ranked results (e.g., potential responses as discussed in reference to Block 1150 of
In various embodiments, the security database(s) 200 and/or the compliance database(s) 205 may be included in the knowledge base data processing engine 820, such that the retrieval augmentation generation engine 810 may receive the data packet(s) discussed in reference to
Referring now to
Referring now to
As shown, a query 1005 may be received and preprocessed at Block 1010. Preprocessing may include expansion, extraction, context injection, and/or determining intent of the query. Such preprocessing may be completed using a NLP engine or the like. Upon being preprocessed, the query may be analyzed and processed via embedding 1015 (e.g., using AWS Titan embedding services) and compared with a vector database via a vector search 1020. Additionally, the query may be analyzed for keywords at Block 1025 and use said keywords to search for relevant data (e.g., relevant data packet(s) in the security database(s) 200 and/or the compliance database(s) 205). The search results from the vector search 1020 and the keyword search 1030 may then be combined and normalized at Block 1035. The normalized results include one or more relevant answers 1040 (e.g., relevant responses to the query), which may then be compared to one another to determine a ranking of the responses, as shown at Block 1045. As shown in Block 1050, a LLM and/or other machine learning model(s) may be used to determine the best response to the query. For example, the best response may be the highest ranked response based on the analysis by the LLM and/or other machine learning model(s). The final answer 1055 (e.g., the response) may be provided to the computing device 152 associated with the query. The response may also include information relating to the response, such as additional references for review by the user.
Referring now to
Referring now to Block 1110 of
In various embodiments, the first query includes a request for a status of a potential test and the first response is determined based on simulating the potential test based on the one or more data packets associated with the first query and the account. For example, a user may submit a query that inquires whether the account would be successful at a given test (e.g.,
Referring now to Block 1120 of
In various embodiments, the system may request data packet(s) from such databases that relate to the account. In various embodiments, the system may request or otherwise receive any data packet(s) associated with the account. For example, the system may transmit a request for any data packet(s) that mention the account and/or include an account identifier.
In various embodiments, the system may request or otherwise receive data packet(s) that are tailored to the specific query. For example, a query may be related to a specific sub-group or part of an account, such that not every data packet related to the account is necessary to determine a response. In various embodiments, the system may determine information relating to the query to be used to determine and/or locate relevant data packets. For example, the method may include determining at least one data packet type based on the first query. The data packet type may be indicated by the first query (e.g., a first query may specifically reference a sub-group of the account and the data packets related to said sub-group may be located within the security database and/or the compliance database). As such, one or more of the data packet(s) relating to the first query and the account may be associated with a specific sub-group (e.g., a first query may request information relating to a specific sub-group and the data packet(s) received by the system may be tailored to the specific sub-group).
Referring now to Block 1130 of
In various embodiments, the one or more related resources may be determined based on a similarity between the first query and at least one entry in a vector database. For example, the related resources may be determined via keyword searching of the vector database based on the first query. The related resources may be used along with the data packet(s) from the security database 200 and/or the compliance database 205 to determine the response.
Referring now to Block 1140 of
Referring now to Block 1150 of
In various embodiments, the determination of the first response to the first query based on the one or more data packets relating to the first query and the account includes determining one or more potential responses based on the first query and the account. In such an embodiment, the potential response(s) are then compared to one another to determine a ranking of the one or more potential responses based on a relevance to the first query. The ranking may be a weighted calculation based on various response parameters, such as similarity to the query, similarity to previous responses, relevance of the response to the operations of the account (e.g., the browsing of the user associated with the account may be monitored using an interface such that the browsing history may indicate the relevance of the response), and/or the like. As such, the first response may be based on the ranking of the potential response(s). For example, the first response may be the potential response with the highest ranking. In various embodiments, the first response may include more than one potential response. For example, the first response may provide multiple responses (collectively considered the first response) to allow a user to select the response that is most relevant to the first query.
In various embodiments, the first response is determined using LLM(s) and/or machine learning model(s). For example, the system may process one or more potential response via the LLM(s) and/or machine learning model(s) to determine the potential response that is the most relevant to the first query. For example, the LLM(s) and/or machine learning model(s) may determine the likelihood that a first response answers the first query based on analyzing one or more nodes within the first query. Based on the enterprise knowledge graph 154, the system may determine the potential response that is the nearest node to the first query. For example, a potential response that is the nearest node to the first query may be the response that has the smallest number of edges between the potential response node and the first query node.
The LLM(s) and/or machine learning model(s) may also be used to at least partially determine the first response. As such, the LLM(s) and machine learning model(s) may provide answers for the system based on similar queries and/or responses from the same account and/or different accounts. For example, the LLM(s) and/or machine learning model(s) may provide a template for responding to a common query and the system may complete the template based on information specific to the account (e.g., data from the security database and/or the compliance database) to provide a response. The queries and responses discussed herein may be used to teach and/or update LLM(s) and/or machine learning model(s).
While the operations refer to a first query and a first response, the operations of flowchart 1100 may be carried out on any number of queries (e.g., a second response to a second query, a third response to a third query, etc. may be carried out with the same operations discussed in reference to the first query and the first response). In some embodiments, as discussed in reference to flowchart 1200 of
Referring now to Block 1160 of
In various embodiments, the user interface displays the first query and the first response in an instance in which the first response is rendered on the user interface. In various embodiments, one or more queries (e.g., a first query, a second query, a third query, etc.) and one or more responses (e.g., a first response, a second response, a third response, etc.) may be rendered on the user interface in the form of a textual conversation (e.g., a chat between the user associated with the account and the system). Examples of the first response being provided to the computing device are shown in
Referring now to optional Block 1170 of
As discussed herein, additional responses (e.g., second response, third response, etc.) may be related to the previous queries (e.g., a first query) and/or previous responses (e.g., a first response). For example, previous queries and/or responses may be used to determine the response to the additional query (e.g., previous queries and responses may indicate the topic discussed in the present additional query). Alternatively, additional responses for additional queries may be determined independent of previous queries and/or responses. For example, the system may consider each query independently or the system may determine that a given additional query does not relate to previous queries and/or responses.
Referring now to
Referring now to optional Block 1210 of
Referring now to optional Block 1220 of
Based on the determination of optional Block 1220, the operations either continue to optional Block 1230 in an instance in which the one or more data packets relating to the first query and the account includes information relating to the second query, or continue to optional Block 1240 in an instance in which the one or more data packets relating to the first query and the account does not include information relating to the second query.
Referring now to optional Block 1230 of
Referring now to optional Block 1240 of
In various embodiments, in an instance the second query is not related to the first query (e.g., the one or more data packets relating to the first query and the account does not include information relating to the second query), the response may be determined as if the second query was a first query (e.g., the second query, not with any other queries, may be used to determine the response). For example, the operations of optional Block 1240 may be the same as the operations of Blocks 1120, 1130, 1140, and 1150 of
Referring now to optional Block 1250 of
As shown in
Referring now to
Referring now to optional Block 1310 of
The security database(s) 200 may include any information gathered during the monitoring of network and/or device security. The information may be associated with an account, such that the information can be referenced based on the account. In various embodiments, security data may be gathered using telemetry monitoring of networks and/or devices. As such, the security data may be generated at least partially automatically. As such, only entities with access to a network or device associated with the user may be able to gather security data. However, in some instances, the security data may be provided to third parties for processing.
Referring now to optional Block 1320 of
The security database(s) 200 and compliance database(s) 205 may include similar or the same columns. In various embodiments, the system may normalize data packets from the security database(s) 200 and/or compliance database(s) 205 based on the columns in each database. For example, the system may normalize the security data and the compliance data to have the same columns (e.g., only shared column titles may be kept in the normalized data). In various embodiments, the security data and the compliance data may be reformatted to be analyzed with one another. For example, the system may generate a vector index for a given data packet with information from the security data or the compliance data. As such, a vector index created for the security data can be compared with a vector index created for the compliance data.
Referring now to
In various embodiments, the operations of
As discussed in reference to
Referring now to optional Block 1410 of
In various embodiments, the base account knowledge level may be assigned based on the entity (e.g., the industry of the entity), the title of the user (e.g., cybersecurity officer may have a higher base account knowledge level than a non-cybersecurity position), user information (e.g., user accreditations, user education, user past experience, etc.), and/or the like. The base account knowledge level may be generic (e.g., every new account may have the same base account knowledge level). In various embodiments, the base account knowledge level may be based on information provided by the account and/or entity. For example, a new account may indicate an account knowledge level.
In various embodiments, the base account knowledge level may be based on security data and/or compliance data. For example, the base account knowledge level may be based on the sophistication of the entity (e.g., indicated by the security data and/or the compliance data). As such, the system may receive one or more data packet(s) from the security database and/or the compliance database that is associated with the account and/or entity and use said data packet(s) to determine a base account knowledge level.
Additionally or alternatively, security data and/or compliance data obtain during operations may be used to update the account knowledge level for the entity and/or account. For example, in an instance in which the security data and/or compliance data indicates that the account and/or entity is involved in more complex cybersecurity-related activities, the account knowledge level may be adjusted). In various embodiments, the security data and/or compliance data may be used to compare the account knowledge level of the entity and/or account to the sophistication of the activities of the entity and/or account.
In various embodiments, determining the account knowledge level for the account based on at least one of the one or more words of the first query (e.g., as discussed below in reference to Block 1430 of
In various embodiments, the base account knowledge level may be determined based on an input provided by a user associated with the account. For example, a user may be prompted to indicate a knowledge level for the account. The user indicated account knowledge level may be used until the system determines the specific account knowledge level using the operations herein (e.g., the system may determine whether the user provided information was accurate based on queries provided). For example, in the operations discussed below in reference to Block 1430, determining the account knowledge level for the account based on at least one of the one or more words of the first query may include comparing the indicated knowledge level for the account to the information in the first query (e.g., the word(s) used in the first query may indicate whether the indicated knowledge level was accurate). As such, the knowledge level may be confirmed and/or updated. In various embodiments, a confidence level may be associated with the account knowledge level that indicates the likelihood of the accuracy of the account knowledge level.
Referring now to Block 1420 of
Referring now to Block 1430 of
The account knowledge level may be determined based on the terminology of the first query. The terminology used by an account may indicate the level of sophistication. The system, via the machine learning model(s), may be capable of comparing the terms used by an account and terms used by other accounts. Additionally or alternatively, certain terms or phrases may be likely indicators of knowledge level. In such an instance, the system may have a database of terms and/or phrases that correspond to a given account knowledge level. For example, IT experts may use a specific term, while non-experts may use a different word for the same thing. As such, an account using the same term as the IT expert may indicate a higher knowledge level.
In various embodiments, a machine learning model used to determine the account knowledge level via terminology may be trained with queries from accounts in which an account knowledge level is known. For example, previous queries and responses may be used as training sets for the machine learning model(s). In various embodiments, the account knowledge level of the accounts used for training sets may be manually assigned (e.g., a user may assign the account knowledge level to a given account manually) and/or automatically (e.g., using the operations herein to determine the account knowledge level for the account).
In various embodiments, the system may assign an account to one of a plurality of account knowledge levels. The account knowledge level may be specific to a type of query and response (e.g., a user may have varying levels of knowledge for different areas). Additionally or alternatively, the account knowledge level may be assigned based on the total knowledge base of the account (e.g., knowledge across each area covered by the system). The number of different account knowledge levels may vary. As such, any number of different account knowledge levels may be contemplated (e.g., a first account knowledge level, a second account knowledge level, a third account knowledge level, etc.).
In various embodiments, the different account knowledge levels may have a hierarchical order, such that a first account knowledge level is considered to have a higher knowledge level than a second account knowledge level. As discussed herein, different account knowledge levels may result in different responses being received by an account. For example, the first account knowledge level may receive more information than the second account knowledge level, which is considered to have a lower knowledge level.
In various embodiments, the account knowledge level for the user and/or entity may be based on information outside of any queries (e.g., the first query, the second query, etc.). In various embodiments, the system may use the information from the one or more queries and information outside of the one or more queries to determine the account knowledge level. For example, the terminology used in the one or more queries may be used to determine an account knowledge and the outside information may be used to verify or update the account knowledge level (e.g., the industry of the entity may be used to determine the account knowledge level).
While the operations herein in determining the account knowledge level include using the first query, any number of queries may be used to determine the account knowledge level for an account. For example, the account knowledge level may be determined after a predetermined number of queries from the account have been received (e.g., multiple queries are used to make a determination of the account knowledge level). Additionally, as discussed below in reference to optional Block 1480, the account knowledge level may be updated upon additional queries being received. For example, additional queries may indicate that an account has a higher level of sophistication than previously determined and/or indicate that the user knowledge level is increasing. As such, the user experience may adjust based on the account gaining more knowledge. For example, a new account may have little base knowledge, but may quickly improve the knowledge level and the system can detect such an increase in sophistication.
Referring now to optional Block 1440 of
Each page on a website or program may be assigned a complexity level. For example, a beginner training page may indicate a low complexity level, as the beginner training page is intended to teach a user how to do a specific task. Alternatively, a page directed to specific security techniques may have a higher complexity level, as there is little to no reason for a novice user to access the given page. As such, accessing higher complexity level pages may indicate that an account has a higher knowledge level and as such, the account knowledge level may be adjusted based on the given complexity level of visited websites and/or used programs (e.g., visiting higher complexity level may cause an account knowledge level to be increased).
In various embodiments, the volume of page visits may also indicate one parameter of the knowledge level of the account. For example, even an expert may visit a training page once or twice as a refresher, but visiting the training page many times may indicate that a user associated with the account does not have any background relating to the training. As such, the system may determine and/or update the account knowledge level based on the account history indicators, as discussed in reference to Block 1450 of
Referring now to optional Block 1450 of
The system may consider the account history indicator as a whole (e.g., the different pages and frequency may each be considered in determining any changes to the account knowledge level) and/or directed to specific pages (e.g., certain pages may be better indicators of the account knowledge level than others). For example, the system may not consider any pages that are unrelated to security for updating an account knowledge level relating to security.
In various embodiments, the account history indicator may be limited to a specific time period (e.g., a predetermined amount of time). For example, the freshness of the account history indicator may improve the accuracy of the account knowledge level, as a user may increase account knowledge level over time.
Referring now to Block 1460 of
In various embodiments, a response (e.g., a first response) may have one or more words that are given complexity levels, such that the response has a response complexity level based on one or more words used in the response. The words in the response are determined based on the account knowledge level. In an example in which the account knowledge level may be novice, intermediate, or expert, the words used may be different for each different account knowledge level. For example, a “novice” may not understand certain words or phrases that an “expert” would understand, while an “intermediate” may understand some of the “expert” terminology, but not all of the “expert” terminology. As such, each of the novice, intermediate, and expert account knowledge levels may receive different response for the same type of query.
In various embodiments, the amount of information provided in a response (e.g., a first response) may be based on the account knowledge level of the account. Using the example of novice, intermediate, or expert account knowledge levels, a “novice” may not need or be able to understand information relating to a query that an intermediate or expert may be expecting. As such, the amount of information may be different based on the account knowledge level.
Additional information provided to the user may be based on the account knowledge level. For example, the amount of assistance provided to a user during operation may be based on the account knowledge level. As such, the system may provide more assistance (e.g., more FAQs, more tutorials, more recommended queries, etc.) to users with lower account knowledge levels. Additionally, certain aspects of the user experience may be provided based on the account knowledge level. For example, more information may be provided to users with a higher account knowledge level.
Referring now to optional Block 1470 of
Referring now to optional Block 1480 of
The account knowledge level may also be updated based on factors outside of the automated chat platform 101. For example, the account knowledge level may be updated based on operations performed by an account and/or entity (e.g., training, new hires with specific expertise, results of outside cybersecurity tests, etc.). As such, the account knowledge level may be updated periodically (e.g., every day, week, month, year, etc.) and/or upon specific milestones by the account and/or user.
In various embodiments, the account knowledge level (either current or historical) may also be used to provide training recommendations and/or requirements for the account and/or entity. For example, an account with a lower account knowledge level may be suggested or required to take training that improves the account knowledge level. The training recommendations and/or requirements may be provided as a part of the automated chat platform 101 (e.g., a response may include materials to better understand a topic) and/or independent (e.g., an account may have a portal that includes training materials and the account knowledge level may be used to recommend and/or require specific training materials).
The account knowledge level may be monitored over time to determine an effectiveness of the training. For example, the account knowledge level for an account and/or entity may be monitored after a training is taken to determine whether the account knowledge level has increased (e.g., does the account now use terminology that is more sophisticated). As such, the account knowledge level may be used to determine the effectiveness of training modules, allowing the system to better recommend training to the account and/or entity (e.g., an account may show greater improvement after watching a video than an instance in which the same account reads an informative paper).
Referring now to
As shown in Block 1535, the account knowledge level may affect various different aspects of a product (e.g., a security and/or cybersecurity compliance product). For example, the account knowledge may affect the user interface (e.g., information presented via the user interface), event descriptions (e.g., terminology may be adjusted for different account knowledge levels), documentation (e.g., the documentation requirements may be different based on account knowledge level), notifications (e.g., a higher account knowledge level may get more notifications for complex topics, while lower account knowledge levels may receive more “how-to” or tips notifications), chat communications (e.g., the automated chat platform 101), interactions with the product (e.g., access to certain portions of the product may be limited based on account knowledge level). As such, the system dynamically adjusts the user experience based on the account knowledge level.
It should be emphasized that the above-described embodiments of the present disclosure are merely possible examples of implementations set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiment(s) without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.
The present application claims priority to U.S. Patent Application No. 63/620,977, titled SYSTEMS AND METHODS FOR PROVIDING PERSONALIZED SECURITY INFORMATION BASED ON USER INTERACTIONS, filed on Jan. 15, 2024, the contents of which are hereby incorporated in their entirety.
| Number | Date | Country | |
|---|---|---|---|
| 63620977 | Jan 2024 | US |