Back to results
US 10,761,837 B2Granted
Annotations in software development
AssigneeInternational Business Machines Corporation
InventorsBrendan P. Arthurs, Mark A. McGloin, Andrew T. Penrose, Olgierd S. Pieczul
Life of this patent
Estimating the term…
Abstract
Embodiments of the present invention provide systems and methods for self-certification by a developer that the software components used during development are used in a secure manner, through the use of annotations. Input and return conditions are defined in an annotation for the software components of a system. The input and return conditions are compared for a match and a warning is generated when the input and return conditions do not match.
Claims5
A method comprising:
- determining, by one or more processors, a first software component, wherein the first software component comprises a first annotation defining an input condition for the first software component, wherein the input condition defines acceptable input strings for the first software component based on a first security constraint;
- validating, by one or more processors, the first annotation defining the input condition for first software component by identifying a route to a source for an input of the first software component through a plurality of additional software components, wherein a second software component comprises the source for the input for the first software component;
- determining, by one or more processors, whether the second software component includes a second annotation defining a return condition for the second software component which matches the first annotation defining the input condition for the first software component, wherein the return condition defines acceptable return strings for the second software component;
- and in response to determining that the second software component does not include the second annotation defining the return condition which matches the first annotation defining the input condition for the first software component, generating, by one or more processors, an output, wherein determining that the second software component does not include the second annotation defining the return condition which matches the first annotation defining the input condition for the first software component identifies a security weakness in a plurality of software components;
- wherein the first annotation defining the input condition for the first software component comprises a security assumption for the input to the first software component, where the first annotation declares that the data being passed to an application program interface (API) is verified at compile time using a second corresponding annotation, and wherein the security assumption is a third party library defined return condition for a specific software component detailed in an API definition for the API when used within the third party library.
2 more elements
Dependencies are inferred from the claim text.