IP Library Granted Patent US 11,900,494
Granted Patent B2
US 11,900,494 · App. 17/469,636 · Granted Feb 13, 2024

Method and apparatus for adaptive security guidance

Inventors: Pieter De Cremer (Oostkamp, BE); Matias Madou (Lichtervelde, BE); Nathan Desmet (Beernem, BE); Colin Wong (Sydney, AU)
Assignee: SECURE CODE WARRIOR LIMITED
G06Q50/2057G06F16/9035G06Q10/06398G06F21/577G06F2221/033
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,900,494
App. No.
17/469,636
Granted
Feb 13, 2024
Kind
B2
Abstract

A method includes processing computer readable code as the computer readable code is being written in a development environment to identify at least one error in the computer readable code. The method also includes searching a database for user profile information indicative of a training sequence performed by a user and a competence level assigned to the user. The competence level is based on a quantity of tasks included in the training sequence performed by the user free from error. The method also includes causing a graphical user interface to be displayed. The graphical user interface includes a concurrent display of the computer readable code having the at least one error, a preview of the computer readable code free from having the at least one error, and a remediation suggestion to correct the at least one error in the computer readable code based on the competence level.

Claims (56)

1. A method, comprising:

processing, by a processor, computer readable code as the computer readable code is being written in a development environment to identify at least one error in the computer readable code;

searching a database for user profile information indicative of a training sequence performed by a user and a competence level assigned to the user, wherein the competence level is based on a total quantity of errors in the computer readable code and a quantity of tasks included in the training sequence performed by the user free from error, and the tasks included in the training sequence comprise a set of a plurality of separate coding challenges;

determining a time difference between a last time the user completed the training sequence and a time the computer readable code was written; generating a remediation suggestion to correct the at least one error in the computer readable code based on a comparison of the total quantity of errors in the computer readable code to the quantity of tasks included in the training sequence free from error, the competence level, and the time difference between the last time the user completed the training sequence and the time the computer readable code was written; and

causing a graphical user interface to be displayed, the graphical user interface comprising a concurrent display of:

the computer readable code having the at least one error;

a preview of the computer readable code, wherein the preview of the computer readable code is free from having the at least one error; and

the remediation suggestion,

wherein in response to determining the time difference between the last time the user completed the training sequence and the time the computer readable code was written is greater than a predetermined threshold value, the remediation suggestion is caused to comprise:

a selectable link to correct the computer readable code having the at least one error in accordance with the preview of the computer readable code free from having the at least one error; and

an instruction to repeat at least a portion of the training sequence comprising one or more tasks previously performed by the user, and

in response to determining the time difference between the last time the user completed the training sequence and the time the computer readable code was written is less than the predetermined threshold value, the remediation suggestion is caused to comprise:

the selectable link to correct the computer readable code having the at least one error in accordance with the preview of the computer readable code free from having the at least one error; and

an indication that the user need not follow an additional training sequence.

2. The method of claim 1 , further comprising:

causing the at least one error in the computer readable code to be displayed differently in the development environment compared to a portion of the computer readable code that is free from having the at least one error in real-time as the code is being written in the development environment.

3. The method of claim 2 , wherein the computer readable code comprises one or more textual characters and the at least one error is caused to be displayed differently by one or more differentiation modes, the one or more differentiation modes comprising one or more of highlighting the at least one error, underlining the at least one error, changing a font of the at least one error, changing a font size of the at least one error, displaying the at least one error in a bold font, displaying the at least one error in an italicized font, or displaying the at least one error using a different color text compared to the portion of the computer readable code that is free from having the at least one error.

4. The method of claim 1 , wherein the at least one error is associated with a type of security vulnerability in the computer readable code.

5. The method of claim 1 , wherein the remediation suggestion further comprises a new training sequence generated for the user based on the competence level comprising one or more new tasks to teach the user a skill associated with writing the computer readable code.

6. An apparatus, comprising:

at least one processor; and

at least one non-transitory computer readable storage medium comprising computer readable instructions that, when executed by the at least one processor, cause the apparatus to:

process computer readable code as the computer readable code is being written in a development environment to identify at least one error in the computer readable code;

search a database for user profile information indicative of a training sequence performed by a user and a competence level assigned to the user, wherein the competence level is based on a total quantity of errors in the computer readable code and a quantity of tasks included in the training sequence performed by the user free from error, and the tasks included in the training sequence comprise a set of a plurality of separate coding challenges;

determine a time difference between a last time the user completed the training sequence and a time the computer readable code was written;

generate a remediation suggestion to correct the at least one error in the computer readable code based on a comparison of the total quantity of errors in the computer readable code to the quantity of tasks included in the training sequence free from error, the competence level, and the time difference between the last time the user completed the training sequence and the time the computer readable code was written; and

cause a graphical user interface to be displayed, the graphical user interface comprising a concurrent display of:

the computer readable code having the at least one error;

a preview of the computer readable code, wherein the preview of the computer readable code is free from having the at least one error; and

the remediation suggestion, wherein in response to determining the time difference between the last time the user completed the training sequence and the time the computer readable code was written is greater than a predetermined threshold value, the remediation suggestion is caused to comprise:

a selectable link to correct the computer readable code having the at least one error in accordance with the preview of the computer readable code free from having the at least one error; and

an instruction to repeat at least a portion of the training sequence comprising one or more tasks previously performed by the user, and in response to determining the time difference between the last time the user completed the training sequence and the time the computer readable code was written is less than the predetermined threshold value, the remediation suggestion is caused to comprise:

the selectable link to correct the computer readable code having the at least one error in accordance with the preview of the computer readable code free from having the at least one error; and

an indication that the user need not follow an additional training sequence.

7. The apparatus of claim 6 , wherein the apparatus is further caused to:

cause the at least one error in the computer readable code to be displayed differently in the development environment compared to a portion of the computer readable code that is free from having the at least one error in real-time as the code is being written in the development environment.

8. The apparatus of claim 7 , wherein the computer readable code comprises one or more textual characters and the at least one error is caused to be displayed differently by one or more differentiation modes, the one or more differentiation modes comprising one or more of highlighting the at least one error, underlining the at least one error, changing a font of the at least one error, changing a font size of the at least one error, displaying the at least one error in a bold font, displaying the at least one error in an italicized font, or displaying the at least one error using a different color text compared to the portion of the computer readable code that is free from having the at least one error.

9. The apparatus of claim 6 , wherein the at least one error is associated with a type of security vulnerability in the computer readable code.

10. The apparatus of claim 6 , wherein the remediation suggestion further comprises a new training sequence generated for the user based on the competence level comprising one or more new tasks to teach the user a skill associated with writing the computer readable code.

11. A non-transitory computer readable medium having instructions stored thereon that, when executed by a processor, cause an apparatus to:

process computer readable code as the computer readable code is being written in a development environment to identify at least one error in the computer readable code;

search a database for user profile information indicative of a training sequence performed by a user and a competence level assigned to the user, wherein the competence level is based on a total quantity of errors in the computer readable code and a quantity of tasks included in the training sequence performed by the user free from error, and the tasks included in the training sequence comprise a set of a plurality of separate coding challenges;

determine a time difference between a last time the user completed the training sequence and a time the computer readable code was written;

generate a remediation suggestion to correct the at least one error in the computer readable code based on a comparison of the total quantity of errors in the computer readable code to the quantity of tasks included in the training sequence free from error, the competence level, and the time difference between the last time the user completed the training sequence and the time the computer readable code was written; and

cause a graphical user interface to be displayed, the graphical user interface comprising a concurrent display of:

the computer readable code having the at least one error;

a preview of the computer readable code, wherein the preview of the computer readable code is free from having the at least one error; and the remediation suggestion,

wherein in response to determining the time difference between the last time the user completed the training sequence and the time the computer readable code was written is greater than a predetermined threshold value, the remediation suggestion is caused to comprise:

a selectable link to correct the computer readable code having the at least one error in accordance with the preview of the computer readable code free from having the at least one error; and

an instruction to repeat at least a portion of the training sequence comprising one or more tasks previously performed by the user, and in response to determining the time difference between the last time the user completed the training sequence and the time the computer readable code was written is less than the predetermined threshold value, the remediation suggestion is caused to comprise:

the selectable link to correct the computer readable code having the at least one error in accordance with the preview of the computer readable code free from having the at least one error; and

an indication that the user need not follow an additional training sequence.

12. The non-transitory computer readable medium of claim 11 , wherein the apparatus is further caused to:

cause the at least one error in the computer readable code to be displayed differently in the development environment compared to a portion of the computer readable code that is free from having the at least one error in real-time as the code is being written in the development environment.

13. The non-transitory computer readable medium of claim 12 , wherein the computer readable code comprises one or more textual characters and the at least one error is caused to be displayed differently by one or more differentiation modes, the one or more differentiation modes comprising one or more of highlighting the at least one error, underlining the at least one error, changing a font of the at least one error, changing a font size of the at least one error, displaying the at least one error in a bold font, displaying the at least one error in an italicized font, or displaying the at least one error using a different color text compared to the portion of the computer readable code that is free from having the at least one error.

14. The non-transitory computer readable medium of claim 11 , wherein the at least one error is associated with a type of security vulnerability in the computer readable code.

Assignments (2)
SECURITY INTEREST Recorded Jun 2, 2023
From: SECURE CODE WARRIOR LIMITED
To: SILICON VALLEY BANK UK LIMITED
Reel/Frame 063836/0699 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2021
From: DE CREMER, PIETER; MADOU, MATIAS; DESMET, NATHAN; WONG, COLIN
To: SECURE CODE WARRIOR LIMITED
Reel/Frame 057417/0160 →
Continuity (2)
Continuation 16234037 · Dec 27, 2018
Related Publication 20210407027A1 · Dec 30, 2021