US12093820B2 - Automatic generation of an API interface description - Google Patents
Automatic generation of an API interface description Download PDFInfo
- Publication number
- US12093820B2 US12093820B2 US17/339,949 US202117339949A US12093820B2 US 12093820 B2 US12093820 B2 US 12093820B2 US 202117339949 A US202117339949 A US 202117339949A US 12093820 B2 US12093820 B2 US 12093820B2
- Authority
- US
- United States
- Prior art keywords
- api
- components
- request
- server
- requests
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000009826 distribution Methods 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 42
- 230000004044 response Effects 0.000 abstract description 38
- 239000008186 active pharmaceutical agent Substances 0.000 abstract description 33
- 239000003795 chemical substances by application Substances 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000035945 sensitivity Effects 0.000 description 7
- 230000002547 anomalous effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 235000014510 cooky Nutrition 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 241000590419 Polygonia interrogationis Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/303—Terminal profiles
Definitions
- API application program interface
- the present technology analyzes APIs for a system and automatically generates an API description for the system.
- the APIs each have an API behavior, which can include a request and a response.
- Each request and response can have different components.
- the present system automatically learns characteristics and patterns in the request and response components.
- the present system can learn API request and response component characteristics based on a distribution of occurrences. The occurrences may be detected as the system receives data about actual API usage between a system and clients. As clients engage an API, the component data in the requests and responses for the API are monitored and distributions for various characteristics are determined.
- the components can include path parameters, query parameters, request headers, request body, response header, and response body.
- the characteristics can include parameter types (starting, integer, float, etc.), sensitivity, character distribution, and other characteristics.
- a method automatically determines a description of interfaces to APIs for a web service.
- the method includes receiving, by a server from an agent stored on a remote server, API requests sent from a plurality of users to server APIs, the requests intercepted by the agent on the remote server.
- Components of the API requests are automatically detected by an application on the server, the components including URL parameters, API request header data, and API request body data.
- a correct set of request components can be automatically learned by the application based on the API components detected by the application. Anomaly requests to the server API are detected based on comparing subsequent server API requests to the learned correct set of request components.
- a non-transitory computer readable storage medium has embodied thereon a program that is executable by a processor to perform a method.
- the method includes receiving, by a server from an agent stored on a remote server, API requests sent from a plurality of users to server APIs, the requests intercepted by the agent on the remote server.
- Components of the API requests are automatically detected by an application on the server, the components including URL parameters, API request header data, and API request body data.
- a correct set of request components can be automatically learned by the application based on the API components detected by the application.
- Anomaly requests to the server API are detected based on comparing subsequent server API requests to the learned correct set of request components.
- a system can include a server, memory and one or more processors.
- One or more modules may be stored in memory and executed by the processors to receive, by a server from an agent stored on a remote server, API requests sent from a plurality of users to server APIs, the requests intercepted by the agent on the remote server, automatically detect components of the API requests by an application on the server, the components including URL parameters, API request header data, and API request body data, automatically learn a correct set of request components by the application based on the API components detected by the application, and detect anomaly requests to the server API based on comparing subsequent server API requests to the learned correct set of request components.
- FIG. 1 is a block diagram of a system for intelligently naming APIs.
- FIG. 2 is a block diagram of an application that automatically generates an API description.
- FIG. 3 is a method that automatically generates an API description.
- FIG. 4 is a method for detects components of API requests.
- FIG. 5 is a method learns API request components.
- FIG. 6 is a method for detecting subsequent APIs as an anomaly based on a baseline comparison.
- FIG. 7 is a block diagram of a system for implementing machines that implement the present technology.
- the present system analyzes APIs for a system and automatically generates an API description for the system.
- the APIs each have an API behavior, which can include a request and a response.
- Each request and response can have different components.
- the present system automatically learns characteristics and patterns in the request and response components.
- the present system can learn API request and response component characteristics based on a distribution of occurrences. The occurrences may be detected as the system receives data about actual API usage between a system and clients. As clients engage an API, the component data in the requests and responses for the API are monitored and distributions for various characteristics are determined.
- the components can include path parameters, query parameters, request headers, request body, response header, and response body.
- the characteristics can include parameter types (starting, integer, float, etc.), sensitivity, character distribution, and other characteristics.
- FIG. 1 is a block diagram of a system for intelligently naming (i.e., generating) APIs.
- the block diagram 100 of FIG. 1 includes client devices 110 - 140 , customer server 150 , network 160 , Application server 170 , and data store 180 .
- Client devices 110 - 140 may send requests to and receive responses from customer server 150 .
- the client devices may be any device which can access the service, network page, webpage, or other content from customer server 150 .
- Client devices 110 - 140 may send a request to customer server 150 , for example to an API provided by customer server 150 , and customer server 150 may send a response to the devices based on the request.
- the request may be sent to a particular URL provided by customer server 15 - and a response may be sent from the same URL or different URLs. Though only for four client devices are shown, any number of client devices may be used to interact with customer server 150 .
- Customer server 150 may provide a service to client devices 110 - 140 .
- Agent 152 on customer server 150 may monitor the communication between customer server 150 and client devices 110 - 140 and intercept traffic between the server and the devices. Upon intercepting the traffic, agent 152 may forward the traffic to application 172 on application server 170 .
- one or more agents may be installed on customer server 150 , which may be implemented by one or more physical or logical machines. In some instances, server 150 may actually be implemented by multiple servers in different locations, providing a distributed service for devices 110 - 140 . In any case, one or more agents 152 may be installed to intercept requests and responses sent between devices 110 - 140 and customer server 150 and for those requests and responses to application 172 on server 170 .
- Network 140 may include one or more private networks, public networks, intranets, the Internet, an intranet, wide-area networks, local area networks, cellular networks, radio-frequency networks, Wi-Fi networks, any other network which may be used to transmit data, and any combination of these networks.
- Client devices 110 - 140 , customer server 150 , Application server 170 , and data store 180 may all communicate over network 160 .
- Application server 170 may be implemented as one or more physical or logical machines that provide application functionality as described herein.
- application server may include one or more applications 172 .
- the application 172 may be stored on one or more application servers 170 and be executed to perform functionality as described herein.
- Application server and application 172 may both communicate over network 160 and data store 180 .
- data store 180 may include one or more APIs, API descriptions, and other data.
- FIG. 2 is a block diagram of an application that automatically generates an API description.
- Application 172 of FIG. 2 provides more detail for application 172 of the system of FIG. 1 .
- Application 172 includes API parsing engine 210 , histogram manager 220 , API compare module 230 , and anomaly alert 240 .
- API parsing engine 210 may access and detect components of API requests. The engine 210 may detect path parameters, query parameters, request header content, request body content, response API headers and bodies, and other content within a URL, request, or response associated with an API.
- API parsing engine can also detect portions of each component as they are detected by a remote agent.
- each API parsing engine can detect component parameters, sensitivity, character distributions, and other data.
- Component parameters may include a variable type, such as an integer string, or float.
- Component sensitivity can include private information, such as credit card information, password information, security question information, email data, and other data that users may prefer to keep quiet or may be used to compromise their account, their finances, or other personal details.
- Character distribution identification and/or tracking may include detecting the location and number of occurrences of a particular character, for example in a URL, API request header or body, or API response body.
- the characters may include special characters colon, semicolon, slash, question marks, exclamation marks, asterisks, parenthesis, and other nun-numeric and non-alphabet characters.
- Histogram manager 220 may generate update, and manage a histogram for each of a plurality of APIs. For example, histogram manager 220 may maintain a histogram for the occurrence of a particular API, API components, parameters, parameter types, parameter values, value length, character distribution, cookies, authorization tokens, JSON objects, sensitivity, and other data with respect to an API.
- API compare module 230 may compare an API to a generated baseline for an API.
- Anomaly alert 240 may generate alerts based on comparison results of the API compare module 230 .
- the API compare unit may send a message with information about the anomaly to anomaly alert 240 , which can then generate an alert for an administrator in a system, for example via message, email, through an interface, in a dashboard, or in some other way that communicates the occurrence of the anomaly.
- FIG. 3 is a method that automatically generates an API description.
- an agent may be installed in a customer system to intercept live traffic at step 310 .
- the installation may include one or more agents, as needed, to intercept API requests.
- the live URL traffic consisting of requests and responses may then be intercepted between user computing devices and servers at step 315 .
- the live URL traffic including requests, responses, and other communications between a server and a client device, may be forwarded to a remote server at step 320 .
- the remote server may include an application that automatically generates an API description, as discussed in more detail below, and performs other functionality discussed herein.
- Components of API requests may be detected at step 325 .
- different types of requests API parameters may be detected, including path parameters, query parameters, and other parameters. Detecting components of an API request is discussed in more detail with respect to method of FIG. 4 .
- API requests components can be learned at step 330 .
- Learning the API request components includes accessing the intercepted traffic and analyzing the traffic for components and parameters that appear in the traffic. More detail for learning API request components is discussed with respect to the method of FIG. 5 .
- API responses may be analyzed to detect an API header, API body, and other components of an API response.
- parameters within an API response are detected as well.
- the detected API response parameters include parameter type (string, integer, float, etc.), sensitivity, character distribution, length of value, and other parameters.
- a baseline is then generated for an API at step 340 .
- the baseline may include data for the API description as determined by the histogram, as well as other sources.
- Subsequent APIs may be compared to the baseline at step 345 .
- the subsequent APIs may be compared to determine if they match the API or differ from the API.
- Subsequent APIs may be detected as an anomaly based on the baseline comparison at step 350 . In some instances, if a subsequent API compared to a baseline does not match the baseline, the subsequent API may be identified as an anomaly. Step 350 is discussed in more detail with respect to the method of FIG. 6 .
- FIG. 4 is a method for detecting components of API requests. The method of FIG. 4 provides more detail for step 325 of the method of FIG. 3 .
- request API path parameters are detected at step 410 .
- API path parameters may be detected within a URL to which an API request is addressed to. Examples of requests API path parameters include a value type, value length, sensitivity, special character distribution, such as the number of slashes or semicolons, and other values.
- a request API query parameter is detected at step 420 .
- the API query parameter may be detected within the URL of an API request, and can include one or more alphanumeric characters and special characters, such as a question mark character.
- API header parameters may be detected at step 430 .
- API header parameters may include a cookie, authorization token, and other parameters that are located within the body of an API header.
- detected parameters within an API request header include value type (string, integer, float, etc.), sensitive data, character distribution, value length, and other parameters.
- API request body parameters may include input data for the request, a JSON object, data that may be too sensitive to place in a URL, and other data.
- detected parameters within an API request body include value type (string, integer, float, etc.), sensitive data, character distribution, value length, and other parameters.
- FIG. 5 is a method for learning API request components. The method of FIG. 5 provides more detail for step 330 of the method of FIG. 3 .
- a histogram template is generated at step 510 .
- the histogram template may be generated automatically based on intercepted API behavior, for example including components for each type of detected API component and parameters for type of parameter. In some instances, a histogram template can be based on a default template or generated in some other manner.
- the template may include one or more API components and one or more parameters for each component.
- a detected API response component or parameter exists as a histogram element at step 520 . If the API response component or parameter exists as a histogram element, the occurrence of the element in the API response is incremented at step 530 and the method of FIG. 5 continues to step 590 . If the histogram element is not detected in API response, a new histogram element is created and the new element is incremented at step 540 . The method of FIG. 5 then continues to step 550 .
- the data may be enough if there is at least a minimum number of API requests and responses received, such as 20, 50, 70, 100, or some other number.
- the data may be enough if a period of time has transpired, such as 5 minutes, 10 minutes, 30 minutes, or some other period of time.
- there is enough data if a histogram component or element has a minimum number of occurrences, such as for example 10, 15, 20, 30, 50, or some other number of occurrences.
- the method returns to step 520 . If enough data has been collected, an API interface description is created for request components based on the histogram at step 560 .
- Tallying histogram element occurrences can be performed in several ways. For example, determining if enough histogram element data has been collected can be performed per API, per component, and/or per parameter. Combinations of requirements can also be implemented. For example, for a particular histogram element to be used to create an API interface description, it may require that at least 10 instances of the API component or parameter are detected and that API traffic has been monitored for at least 5 minutes. It may also be required that the intercepted traffic received for an API is from a minimum number of different sources. Further, once a histogram element is determined to have enough data and an API interface description is generated, the system may continue to intercept API traffic and increment histogram element occurrences. As such, if a histogram element changes over time after an initial API interface description has been created, the API interface description may be changed if the histogram occurrences change over time as well.
- FIG. 6 is a method for detecting subsequent APIs as an anomaly based on a baseline comparison. The method of FIG. 6 provides more detail for step 350 of the method of FIG. 3 .
- An event is detected for comparing live traffic to an API baseline at step 610 .
- the event may include period of time, or some other event.
- a received API request is compared to a generated API description at step 620 .
- the received API request may be one of several API requests compared to a generated API description component or parameter.
- the received API differs from the API description, in some instances, additional analysis can be performed before determining the API is anomalous. For example, if the receive API is one of several received APIs that do not match the API description, there may be a determination as to whether the multiple non-matching APIs are from different users. A determination as to whether received APIs that don't match an API description are received from multiple users at step 640 . Generally speaking, it is not desirable to receive several anomalous requests from a single. To do so could allow the single user to recalibrate data from which the baseline is generated. If the anomalous received APIs are received by different users, the method of FIG. 6 continues to step 630 . If the anomalous received APIs are not received by different users, the received API request is classified as an anomaly at step 650 , and the method ends at step 660 .
- FIG. 7 is a block diagram of a system for implementing machines that implement the present technology.
- System 700 of FIG. 7 may be implemented in the contexts of the likes of machines that implement client devices 110 - 140 , customer server 150 , Application server 170 , and data store 180 .
- the computing system 700 of FIG. 7 includes one or more processors 710 and memory 720 .
- Main memory 720 stores, in part, instructions and data for execution by processor 710 .
- Main memory 720 can store the executable code when in operation.
- the system 700 of FIG. 7 further includes a mass storage device 730 , portable storage medium drive(s) 740 , output devices 750 , user input devices 760 , a graphics display 770 , and peripheral devices 780 .
- processor unit 710 and main memory 720 may be connected via a local microprocessor bus, and the mass storage device 730 , peripheral device(s) 780 , portable storage device 740 , and display system 770 may be connected via one or more input/output (I/O) buses.
- I/O input/output
- Mass storage device 730 which may be implemented with a magnetic disk drive, an optical disk drive, a flash drive, or other device, is a non-volatile storage device for storing data and instructions for use by processor unit 710 . Mass storage device 730 can store the system software for implementing embodiments of the present invention for purposes of loading that software into main memory 720 .
- Portable storage device 740 operates in conjunction with a portable non-volatile storage medium, such as a floppy disk, compact disk or Digital video disc, USB drive, memory card or stick, or other portable or removable memory, to input and output data and code to and from the computer system 700 of FIG. 7 .
- a portable non-volatile storage medium such as a floppy disk, compact disk or Digital video disc, USB drive, memory card or stick, or other portable or removable memory
- the system software for implementing embodiments of the present invention may be stored on such a portable medium and input to the computer system 700 via the portable storage device 740 .
- Input devices 760 provide a portion of a user interface.
- Input devices 760 may include an alpha-numeric keypad, such as a keyboard, for inputting alpha-numeric and other information, a pointing device such as a mouse, a trackball, stylus, cursor direction keys, microphone, touch-screen, accelerometer, and other input devices.
- the system 700 as shown in FIG. 7 includes output devices 750 . Examples of suitable output devices include speakers, printers, network interfaces, and monitors.
- Display system 770 may include a liquid crystal display (LCD) or other suitable display device. Display system 770 receives textual and graphical information and processes the information for output to the display device. Display system 770 may also receive input as a touch-screen.
- LCD liquid crystal display
- Peripherals 780 may include any type of computer support device to add additional functionality to the computer system.
- peripheral device(s) 780 may include a modem or a router, printer, and other device.
- the system of 700 may also include, in some implementations, antennas, radio transmitters and radio receivers 790 .
- the antennas and radios may be implemented in devices such as smart phones, tablets, and other devices that may communicate wirelessly.
- the one or more antennas may operate at one or more radio frequencies suitable to send and receive data over cellular networks, Wi-Fi networks, commercial device networks such as a Bluetooth device, and other radio frequency networks.
- the devices may include one or more radio transmitters and receivers for processing signals sent and received using the antennas.
- the components contained in the computer system 700 of FIG. 7 are those typically found in computer systems that may be suitable for use with embodiments of the present invention and are intended to represent a broad category of such computer components that are well known in the art.
- the computer system 700 of FIG. 7 can be a personal computer, handheld computing device, smart phone, mobile computing device, workstation, server, minicomputer, mainframe computer, or any other computing device.
- the computer can also include different bus configurations, networked platforms, multi-processor platforms, etc.
- Various operating systems can be used including Unix, Linux, Windows, Macintosh OS, Android, as well as languages including Java, .NET, C, C++, Node.JS, and other suitable languages.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
Claims (18)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/339,949 US12093820B2 (en) | 2021-03-30 | 2021-06-05 | Automatic generation of an API interface description |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163167649P | 2021-03-30 | 2021-03-30 | |
US17/339,949 US12093820B2 (en) | 2021-03-30 | 2021-06-05 | Automatic generation of an API interface description |
Publications (2)
Publication Number | Publication Date |
---|---|
US20220318081A1 US20220318081A1 (en) | 2022-10-06 |
US12093820B2 true US12093820B2 (en) | 2024-09-17 |
Family
ID=83448116
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/339,946 Pending US20220318332A1 (en) | 2021-03-30 | 2021-06-05 | Intelligent naming of application program interfaces |
US17/339,949 Active US12093820B2 (en) | 2021-03-30 | 2021-06-05 | Automatic generation of an API interface description |
US17/339,951 Pending US20220321587A1 (en) | 2021-03-30 | 2021-06-05 | Automatic anomaly detection based on api sessions |
US17/348,785 Pending US20220318618A1 (en) | 2021-03-30 | 2021-06-16 | Multi-api metric modeling using lstm system |
US17/349,942 Pending US20220318378A1 (en) | 2021-03-30 | 2021-06-17 | Detecting threats based on api service business logic abuse |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/339,946 Pending US20220318332A1 (en) | 2021-03-30 | 2021-06-05 | Intelligent naming of application program interfaces |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/339,951 Pending US20220321587A1 (en) | 2021-03-30 | 2021-06-05 | Automatic anomaly detection based on api sessions |
US17/348,785 Pending US20220318618A1 (en) | 2021-03-30 | 2021-06-16 | Multi-api metric modeling using lstm system |
US17/349,942 Pending US20220318378A1 (en) | 2021-03-30 | 2021-06-17 | Detecting threats based on api service business logic abuse |
Country Status (1)
Country | Link |
---|---|
US (5) | US20220318332A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230376012A1 (en) * | 2022-05-17 | 2023-11-23 | Aspentech Corporation | Anomaly Event Detector |
US11921847B1 (en) * | 2023-07-13 | 2024-03-05 | Intuit, Inc. | Detection of abnormal application programming interface (API) sessions including a sequence of API requests using space partitioning data structures |
US11900179B1 (en) * | 2023-07-13 | 2024-02-13 | Intuit, Inc. | Detection of abnormal application programming interface (API) sessions including a sequence of API requests |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190243692A1 (en) * | 2017-01-19 | 2019-08-08 | International Business Machines Corporation | Analysis of application programming interface usage for improving a computer system |
US20200036739A1 (en) * | 2018-07-24 | 2020-01-30 | Wallarm, Inc. | Ai-based system for accurate detection and identification of l7 threats |
US20200125954A1 (en) * | 2018-10-17 | 2020-04-23 | Capital One Services, Llc | Systems and methods for selecting and generating log parsers using neural networks |
US20220006829A1 (en) * | 2020-07-02 | 2022-01-06 | Qualys, Inc. | Rest API Scanning for Security Testing |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226408B1 (en) * | 1999-01-29 | 2001-05-01 | Hnc Software, Inc. | Unsupervised identification of nonlinear data cluster in multidimensional data |
US7058633B1 (en) * | 2002-09-09 | 2006-06-06 | Cisco Technology, Inc. | System and method for generalized URL-rewriting |
US8635330B2 (en) * | 2006-04-24 | 2014-01-21 | Vmware, Inc. | Method and system for learning web applications |
US20080034424A1 (en) * | 2006-07-20 | 2008-02-07 | Kevin Overcash | System and method of preventing web applications threats |
EP1953995A1 (en) * | 2007-01-30 | 2008-08-06 | Seiko Epson Corporation | Application execution system, computer, application execution device, and control method and program for an application execution system |
US9781148B2 (en) * | 2008-10-21 | 2017-10-03 | Lookout, Inc. | Methods and systems for sharing risk responses between collections of mobile communications devices |
WO2010105184A2 (en) * | 2009-03-13 | 2010-09-16 | Breach Security , Inc. | A method and apparatus for phishing and leeching vulnerability detection |
US9215212B2 (en) * | 2009-06-22 | 2015-12-15 | Citrix Systems, Inc. | Systems and methods for providing a visualizer for rules of an application firewall |
US9112863B2 (en) * | 2009-12-14 | 2015-08-18 | International Business Machines Corporation | Method, program product and server for controlling a resource access to an electronic resource stored within a protected data environment |
WO2013036269A1 (en) * | 2011-09-09 | 2013-03-14 | Hewlett-Packard Development Company, L.P. | Systems and methods for evaluation of events based on a reference baseline according to temporal position in a sequence of events |
US9367421B2 (en) * | 2013-12-20 | 2016-06-14 | Netapp, Inc. | Systems, methods, and computer programs products providing relevant correlation of data source performance |
US9667704B1 (en) * | 2014-04-26 | 2017-05-30 | Google Inc. | System and method for classifying API requests in API processing systems using a tree configuration |
US9729506B2 (en) * | 2014-08-22 | 2017-08-08 | Shape Security, Inc. | Application programming interface wall |
US9699205B2 (en) * | 2015-08-31 | 2017-07-04 | Splunk Inc. | Network security system |
WO2017151515A1 (en) * | 2016-02-29 | 2017-09-08 | Palo Alto Networks, Inc. | Automatically grouping malware based on artifacts |
US10394552B2 (en) * | 2016-05-17 | 2019-08-27 | Dropbox, Inc. | Interface description language for application programming interfaces |
US11663110B2 (en) * | 2016-10-31 | 2023-05-30 | International Business Machines Corporation | Analysis to check web API code usage and specification |
US10942708B2 (en) * | 2017-01-10 | 2021-03-09 | International Business Machines Corporation | Generating web API specification from online documentation |
JP6612468B2 (en) * | 2017-03-03 | 2019-11-27 | グーグル エルエルシー | System and method for establishing a link between identifiers without disclosing specific identification information |
US10740215B2 (en) * | 2017-04-26 | 2020-08-11 | Jpmorgan Chase Bank, N.A. | System and method for implementing an API validator tool |
US10409711B2 (en) * | 2017-06-12 | 2019-09-10 | International Business Machines Corporation | Automatically running tests against WEB APIs based on specifications |
US10620945B2 (en) * | 2017-12-21 | 2020-04-14 | Fujitsu Limited | API specification generation |
US10776189B2 (en) * | 2017-12-22 | 2020-09-15 | MuleSoft, Inc. | API query |
US10452843B2 (en) * | 2018-01-11 | 2019-10-22 | ArecaBay, Inc. | Self-adaptive application programming interface level security monitoring |
SG10201806602VA (en) * | 2018-08-02 | 2020-03-30 | Mastercard International Inc | Methods and systems for identification of breach attempts in a client-server communication using access tokens |
US11797843B2 (en) * | 2019-03-06 | 2023-10-24 | Samsung Electronics Co., Ltd. | Hashing-based effective user modeling |
US20200301760A1 (en) * | 2019-03-19 | 2020-09-24 | Honeywell International Inc. | Methods and systems for generating and recommending api mashups |
US11113029B2 (en) * | 2019-04-10 | 2021-09-07 | International Business Machines Corporation | Probabilistic matching of web application program interface code usage to specifications |
US10747505B1 (en) * | 2019-05-17 | 2020-08-18 | Google Llc | API specification generation |
US11831420B2 (en) * | 2019-11-18 | 2023-11-28 | F5, Inc. | Network application firewall |
US11388216B2 (en) * | 2020-01-07 | 2022-07-12 | Volterra, Inc. | System and method for generating API schemas for networked services |
US10873618B1 (en) * | 2020-01-07 | 2020-12-22 | Volterra, Inc. | System and method to dynamically generate a set of API endpoints |
US10917401B1 (en) * | 2020-03-24 | 2021-02-09 | Imperva, Inc. | Data leakage prevention over application programming interface |
-
2021
- 2021-06-05 US US17/339,946 patent/US20220318332A1/en active Pending
- 2021-06-05 US US17/339,949 patent/US12093820B2/en active Active
- 2021-06-05 US US17/339,951 patent/US20220321587A1/en active Pending
- 2021-06-16 US US17/348,785 patent/US20220318618A1/en active Pending
- 2021-06-17 US US17/349,942 patent/US20220318378A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190243692A1 (en) * | 2017-01-19 | 2019-08-08 | International Business Machines Corporation | Analysis of application programming interface usage for improving a computer system |
US20200036739A1 (en) * | 2018-07-24 | 2020-01-30 | Wallarm, Inc. | Ai-based system for accurate detection and identification of l7 threats |
US20200125954A1 (en) * | 2018-10-17 | 2020-04-23 | Capital One Services, Llc | Systems and methods for selecting and generating log parsers using neural networks |
US20220006829A1 (en) * | 2020-07-02 | 2022-01-06 | Qualys, Inc. | Rest API Scanning for Security Testing |
Non-Patent Citations (2)
Title |
---|
Laughter et al., "Detection of Malicious HTTP Requests Using Header and URL Features" (Nov. 1, 2020), pp. 449-468 [retrieved from https://link.springer.com/chapter/10.1007/978-3-030-63089-8_29]. (Year: 2020). * |
Sohan, S.M., "Automated Example Oriented REST API Documentation" (2017), pp. 1-156 [retrieved from https://prism.ucalgary.ca/handle/11023/4244]. (Year: 2017). * |
Also Published As
Publication number | Publication date |
---|---|
US20220318378A1 (en) | 2022-10-06 |
US20220318618A1 (en) | 2022-10-06 |
US20220318081A1 (en) | 2022-10-06 |
US20220318332A1 (en) | 2022-10-06 |
US20220321587A1 (en) | 2022-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12093820B2 (en) | Automatic generation of an API interface description | |
US10902117B1 (en) | Framework for classifying an object as malicious with machine learning for deploying updated predictive models | |
US11271955B2 (en) | Platform and method for retroactive reclassification employing a cybersecurity-based global data store | |
US10121000B1 (en) | System and method to detect premium attacks on electronic networks and electronic devices | |
US10574698B1 (en) | Configuration and deployment of decoy content over a network | |
US10445502B1 (en) | Susceptible environment detection system | |
EP3776307B1 (en) | Distributed system for adaptive protection against web-service-targeted vulnerability scanners | |
US10826931B1 (en) | System and method for predicting and mitigating cybersecurity system misconfigurations | |
US20190207966A1 (en) | Platform and Method for Enhanced Cyber-Attack Detection and Response Employing a Global Data Store | |
US10581874B1 (en) | Malware detection system with contextual analysis | |
US10148693B2 (en) | Exploit detection system | |
US8775333B1 (en) | Systems and methods for generating a threat classifier to determine a malicious process | |
US11240275B1 (en) | Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture | |
JP4808703B2 (en) | Method and system for identifying related network security threats using improved intrusion detection audit and comparison of intelligent security analysis | |
US20240275811A1 (en) | Cyber security system and method using intelligent agents | |
US20140196144A1 (en) | Method and Apparatus for Detecting Malicious Websites | |
AU2024204413A1 (en) | Systems and methods for controlling data exposure using artificial-intelligence-based modeling | |
US11089024B2 (en) | System and method for restricting access to web resources | |
US9621576B1 (en) | Detecting malicious websites | |
US11930030B1 (en) | Detecting and responding to malicious acts directed towards machine learning models | |
US10291492B2 (en) | Systems and methods for discovering sources of online content | |
US11586741B2 (en) | Dynamic communication architecture for testing computer security application features | |
CN113196265A (en) | Security detection assay | |
US20230224314A1 (en) | Session based anomaly dectection | |
CN113709136B (en) | Access request verification method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
AS | Assignment |
Owner name: TRACEABLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:JINDAL, SHUBHAM;KOLLURU, AVINASH;GUNTUR, RAVINDRA;AND OTHERS;SIGNING DATES FROM 20230710 TO 20230727;REEL/FRAME:064756/0869 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONMENT FOR FAILURE TO CORRECT DRAWINGS/OATH/NONPUB REQUEST |
|
FEPP | Fee payment procedure |
Free format text: PETITION RELATED TO MAINTENANCE FEES GRANTED (ORIGINAL EVENT CODE: PTGR); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP, ISSUE FEE PAYMENT VERIFIED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |