Determining based on static compiler analysis that execution of compiler code would result in unacceptable program behavior

US11216256B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11216256-B2
Application numberUS-201916450045-A
CountryUS
Kind codeB2
Filing dateJun 24, 2019
Priority dateFeb 26, 2016
Publication dateJan 4, 2022
Grant dateJan 4, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Computer code is received that is written using a dynamic Domain Specific Language (DSL) running in a General Purpose Language (GPL) computing environment. A compiler performs static compiler analysis on the computer code. The static compiler analysis includes referencing a security policy defining one or more unacceptable program behaviors. During compile time at the compiler, runtime security checking functionality is performed leveraging compiler extensions, type information, and environment specific compile context. Results of the static compiler analysis are used to indicate when execution of the computer code would result in performance of the one or more unacceptable program behaviors. The one or more unacceptable program behaviors include modifying preexisting computer code to incorporate the computer code written using the DSL.

First claim

Opening claim text (preview).

We claim: 1. A method for securing computer code, the method comprising: receiving first computer code, wherein first computer code is written using a dynamic Domain Specific Language (DSL) running in a General Purpose Language (GPL) computing environment; using a compiler to perform static compiler analysis on first computer code, the static compiler analysis including referencing a security policy defining one or more unacceptable program behaviors; performing, during compile time at the compiler, runtime security checking functionality leveraging compiler extensions, type information, and environment specific compile context: indicating when execution of first computer code would result in performance of the one or more unacceptable program behaviors based on results of the static compiler analysis, wherein the one or more unacceptable program behaviors include modifying preexisting computer code to incorporate first computer code written using the DSL; receiving second computer code, wherein the second computer code is written using the dynamic Domain Specific Language (DSL) running in the General Purpose Language (GPL) computing environment, wherein the second computer code is written using the dynamic Domain Specific Language (DSL) running in the General Purpose Language (GPL) computing environment; using the compiler to perform static compiler analysis on the second computer code, the static compiler analysis including referencing the security policy defining one or more unacceptable program behaviors; performing, during compile time at the compiler, runtime security checking functionality leveraging compiler extensions, type information, and environment specific compile context; determining, during the compile time at the compiler, that the second computer code would not result in the one or more unacceptable program behaviors during execution of the second computer code; and modifying the preexisting computer code to incorporate the second computer code written using the DSL. 2. The method as recited by claim 1 , wherein the method further comprises: providing the second computer code to a canonicalization module; creating an updated syntax tree and updated second computer code by completing construction of the syntax tree and compiler transformations applicable to compilation of the second computer code; forwarding the updated syntax tree and updated second computer code to an instruction selection module; selecting a type of byte code at the instruction selection module; converting the byte codes into binary; and writing the binary to one or more executable files. 3. The method as recited by claim 1 , wherein the method further comprises: preventing execution of first computer code. 4. The method as recited by claim 1 , wherein the method further comprises: explicitly blacklisting the one or more unacceptable program behaviors. 5. The method as recited by claim 1 , wherein the receiving of first computer code further comprises: receiving first computer code from a custom DSL code repository. 6. The method as recited by claim 1 , wherein first computer code is a script. 7. The method as recited by claim 1 , wherein the method further comprises: receiving first computer code at a browser, wherein first computer code accesses custom script functionality afforded by a server-side composer service. 8. The method as recited by claim 7 , wherein the method further comprises: receiving a uniform resource locator (URL) or uniform resource identifier (URI) at the browser; and accessing a data composer window based on the received URL or URI. 9. The method as recited by claim 8 , wherein the method further comprises: generating first computer code using software development tools of the data composer. 10. The method as recited by claim 1 , wherein the method further comprises: performing, during the compile time at the compiler, type checking on first computer code involving verifying safety as defined by a security policy. 11. The method as recited by claim 1 , wherein the method further comprises: opening a file containing first computer code; and configuring a computing environment of the compiler based on content of the file. 12. The method as recited by claim 11 , wherein the method further comprises: parsing the file; creating a token tree based on computer code grammar of the file; and creating a syntax tree based on the token tree, wherein the syntax tree includes expression nodes and wherein each of the expression nodes represents a DSL expression in first computer code and token tree. 13. The method as recited by claim 12 , wherein the method further comprises: performing semantic analysis on the syntax tree, wherein the semantic analysis includes performing consistency checks, validity checks, and security checks. 14. The method as recited by claim 1 , wherein first computer code is for manipulating data objects of a database. 15. The method as recited by claim 1 , wherein the method further comprises: performing a test compilation on third computer code before the third computer code is compiled and deployed by modifying the preexisting computer code with the third computer code. 16. The method as recited by claim 1 , wherein the method further comprises: receiving first computer code at a user interface displayed on a browser; and displaying an error message specification section, code section, and warning section in the user interface. 17. The method as recited by claim 16 , wherein the error message specification section includes a field for a user to enter an error message to display and the code section includes a toolbar for entering the computer code. 18. An apparatus comprising: a digital processor coupled to a display and to a non-transitory processor-readable storage device, wherein the non-transitory processor-readable storage device includes one or more instructions when executed by the digital processor to perform the following acts: receiving first computer code, wherein first computer code is written using a dynamic Domain Specific Language (DSL) running in a General Purpose Language (GPL) computing environment; using a compiler to perform static compiler analysis on first computer code, the static compiler analysis including referencing a security policy defining one or more unacceptable program behaviors; performing, during compile time at the compiler, runtime security checking functionality leveraging compiler extensions, type information, and environment specific compile context; indicating when execution of first computer code would result in performance of the one or more unacceptable program behaviors based on results of the static compiler analysis, wherein the one or more unacceptable program behaviors include modifying preexisting computer code to incorporate first computer code written using the DSL; receiving second computer code, wherein the second computer code is written using the dynamic Domain Specific Language (DSL) running in the General Purpose Language (GPL) computing environment, wherein the second computer code is written using the dynamic Domain Specific Language (DSL) running in the General Purpose Language (GPL) computing environment; using the compiler to perform static compiler analysis on the second computer code, the static compiler analysis including referencing the security policy defining one or more unacceptable program behaviors; performing, during compile time at the compiler, runtime security checking functionality leveraging compiler extensions, type information,

Assignees

Inventors

Classifications

  • G06F8/43Primary

    Checking; Contextual analysis · CPC title

  • G06F8/41Primary

    Compilation · CPC title

  • Assessing vulnerabilities and evaluating computer system security · CPC title

  • Tools and structures for managing or administering access control systems · CPC title

  • Test or assess software · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11216256B2 cover?
Computer code is received that is written using a dynamic Domain Specific Language (DSL) running in a General Purpose Language (GPL) computing environment. A compiler performs static compiler analysis on the computer code. The static compiler analysis includes referencing a security policy defining one or more unacceptable program behaviors. During compile time at the compiler, runtime security…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F8/43. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 04 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).