IP Library Granted Patent US 10,404,662
Granted Patent B1
US 10,404,662 · App. 15/865,824 · Granted Sep 3, 2019

VICE system, method, and medium for protecting a computer browser from third-party computer code interference

Inventors: Gilad Ben-Dor (Petah Tiqwa, IL); Ehud Machluf (Merkaz Shapira, IL); Eido Gavish (Yavne, IL); Hadar Blutrich (Kfar Yona, IL)
Assignee: Source Defense
H04L63/0236G06F8/315H04L67/025H04L67/20
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 10,404,662
App. No.
15/865,824
Granted
Sep 3, 2019
Kind
B1
Abstract

Computer system, methods, and non-transitory storage medium for protecting a client device that is browsing a website from undesired actions of third-party software. Virtual iFrame Containment Enclosure (VICE) code (e.g. JavaScript/WebAssembly) is tailored per website that defines a set of policies of what each third-party code can and cannot do. The server also tracks and analyzes data reports from the websites, and provides reports and alerts to website administrators. Therefore, a browser on a client device visiting the website, and thus executing the VICE code that is tailored for that specific website, is protected from the third-party code, without hindering the proper action of the third-party software and without the third-party knowing that their code was monitored and controlled. Third-party activity can be monitored by the system via the combination of functionality for or more of the following: Enclosure iFrame; Reflection; DOM functionality overriding; Instrumentation; Policy-Center; Evasion; and CORS-Proxy.

Claims (60)

1. A computerized system for protecting an electronic computing device that is browsing a website from undesired actions of a third-party software that is included by the website, and without hindering the proper action of the third-party software, comprising:

a. a Virtual iFrame Containment Enclosure (VICE) remote server comprising a processor and a memory device operably connected to one another, and a plurality of computer-executable instructions stored on said memory device and executed by said processor for building a third-party protection code comprising VICE computer code that instructs a browser to create a secured iframe, and to execute the third-party code in it, while reflecting the Document Object Model (DOM) elements and events between the main page and the iframe, by:

i. loading the website by the browser of the end-user electronic computing device;

ii. instructing the browser to load VICE JavaScript/WebAssembly code from a JavaScript library;

iii. instructing the browser, by the VICE Java-Script/WebAssembly code, to create a secured iframe, and to override selected native methods in it;

iv. instructing the browser, by the VICE Java-Script/WebAssembly code, to reflect (by means of inter-frame messaging) a selected part of the main-page's DOM into the iframe;

v. instructing the browser, by the VICE Java-Script/WebAssembly code, to execute the third-party in the said iframe—either as-is, or:

vi. alternatively instructing the browser, by the VICE Java-Script/WebAssembly code, to load a third-party user-code in a textual way via XMLHttpRequest and to instrument it before executing it to achieve a greater degree of control;

vii. instructing the browser, by the VICE Java-Script/WebAssembly code, to continuously reflect a selected subset of all DOM elements modifications bidirectionally between the main page and the iframe;

viii. instructing the browser, by the VICE Java-Script/WebAssembly code, to continuously reflect a selected subset of all triggered DOM events bidirectionally between the main page and the iframe;

ix. instructing the browser, by the VICE Java-Script/WebAssembly code, by various ways to evade undesired actions by the third-party user-code;

b. one or more website administrator electronic computing devices in communication with at least one end-user electronic computing device and the remote server, and over a network to access a VICE third-party protection code;

c. one or more third-party servers configured for transmitting via a network and inserting a computer code into the browser on the end-user electronic computing device, wherein the code is able to perform actions that are undesirable to the website administrator;

d. one or more end-user electronic computing devices comprising a processor, the browser, and a computer memory to utilize the VICE third-party protection code tailored for each website hosted by the website administrator electronic computing device to evade the undesirable actions made by the third-party computer code, wherein the third-party protection code comprises a policy center on how to proceed based on the type of the action in question and a policy-center decision comprises one or more of the following:

i. a grant decision to proceed with the action unchanged; or,

ii. a deny decision to cancel the action while evading negative effects on the third-party; or,

iii. an alter decision, comprising altering the action in a way that the action can perform partially or in a different way while evading negative effects on the third-party; and,

e. a wired or wireless network connection between (a)-(d).

2. The computerized system of claim 1 , wherein the third-party protection code is executed on the end-user electronic computing device, or on the website administrator device, or on the VICE remote server, or on a VICE proxy server, or any combination thereof.

3. The computerized system of claim 2 , wherein the VICE remoter server computer memory generates a VICE third-party protection code tailored for the website hosted by the website administrator device, and a database to record the protection code and the website permission setting.

4. The computerized system of claim 3 , wherein the protection code is generated by the remote server according to the browser type of an end-user device and the website permission settings before being transmitted to the browser of the end-user electronic computing device.

5. The computerized system of claim 4 , wherein the VICE remote server further comprises a computer memory to record and analyze incidents of third-party unwanted code detection, and a database to store incident reports and statistical computation reports.

6. The computerized system of claim 1 , wherein the third-party protection code further comprises: an enclosure IFrame; a reflection; a DOM functionality overriding; an Instrumentation; an evasion; and a CORS-Proxy, computer code.

7. The computerized system of claim 6 , wherein the policy-center decision regarding an HTTP request further comprises using CORS-Proxy URL.

8. A one or more non-transitory computer-readable storage medium having computer-executable instructions stored thereon which, when executed by one or more computers, cause the one or more computers to perform operations comprising: protecting a user electronic computing device that is browsing a website from some undesired actions of a third-party software that is included by the website, without hindering the proper action of the third-party software by causing the one or more computers to perform operations comprising building Instrumented-code from a third-party user-Code, by:

a. loading the website by the browser of the end-user electronic computing device;

b. instructing the browser to load VICE JavaScript/WebAssembly code from a JavaScript library;

c. instructing the browser, by the VICE Java-Script/WebAssembly code, to create a secured iframe, and to override some native methods in it;

d. instructing the browser, by the VICE Java-Script/WebAssembly code, to reflect (by means of inter-frame messaging) a selected part of the main-page's DOM Document Object Model (DOM) into the iframe;

e. instructing the browser, by the VICE Java-Script/WebAssembly code, to execute the third-party in the said iframe—either as-is, or:

f. alternatively instructing the browser, by the VICE Java-Script/WebAssembly code, to load a third-party user-code in a textual way via XMLHttpRequest and to instrument it before executing it to achieve a greater degree of control;

g. instructing the browser, by the VICE Java-Script/WebAssembly code, to continuously reflect a selected subset of all DOM elements modifications bidirectionally between the main page and the iframe;

h. instructing the browser, by the VICE Java-Script/WebAssembly code, to continuously reflect a selected subset of all triggered DOM events bidirectionally between the main page and the iframe;

i. instructing the browser, by the VICE Java-Script/WebAssembly code, by various ways to evade undesired actions by the third-party user-code; and

j. consulting a policy-center on how to proceed based on the type of the action in question, wherein a policy-center decision comprises one or more of the following:

i. a grant decision to proceed with the action unchanged; or,

ii. a deny decision to cancel the action while evading negative effects on the third-party; or,

iii. an alter decision, comprising altering the action in a way that the action can perform partially or in a different way while evading negative effects on the third-party.

9. The one or more non-transitory computer-readable storage medium of claim 8 , wherein the altering or fetching decision further comprises using CORS-Proxy URL.

10. The one or more non-transitory computer-readable storage medium of claim 8 , wherein the third-party protection code is executed on the end-user electronic computing device, or on the website administrator device, or on the VICE remote server, or on a VICE proxy server, or any combination thereof.

11. The one or more non-transitory computer-readable storage medium of claim 8 , wherein the VICE remoter server computer memory generates a VICE third-party protection code tailored for the website hosted by the website administrator device, and a database to record the protection code and the website permission setting.

12. The one or more non-transitory computer-readable storage medium of claim 8 , wherein the third-party protection code further comprises: an enclosure iFrame; a reflection; DOM functionality overriding; an Instrumentation; an evasion; and a CORS-Proxy, computer code.

13. The one or more non-transitory computer-readable storage medium of claim 8 , wherein the policy-center decision regarding an HTTP request further comprises using CORS-Proxy URL.

14. A computerized method for protecting an electronic computing device that is browsing a website from undesired actions of a third-party software that is included by the website, without hindering the proper action of the third-party software, comprising:

a Virtual iFrame Containment Enclosure (VICE) remote server comprising a processor and a memory device operably connected to one another, and a plurality of computer-executable instructions stored on said memory device and executed by said processor for building a third-party protection code comprising VICE computer code that instructs a browser to create a secured iframe, and to execute the third-party code in it, while reflecting the Document Object Model (DOM) elements and events between the main page and the iframe, by:

i. loading the website by the browser of the end-user electronic computing device;

ii. instructing the browser to load VICE JavaScript/WebAssembly code from a JavaScript library;

iii. instructing the browser, by the VICE Java-Script/WebAssembly code, to create a secured iframe, and to override selected native methods in it;

iv. instructing the browser, by the VICE Java-Script/WebAssembly code, to reflect (by means of inter-frame messaging) a selected part of the main-page's DOM into the iframe;

v. instructing the browser, by the VICE Java-Script/WebAssembly code, to execute the third-party in the said iframe—either as-is, or:

vi. alternatively instructing the browser, by the VICE Java-Script/WebAssembly code, to load a third-party user-code in a textual way via XMLHttpRequest and to instrument it before executing it to achieve a greater degree of control;

vii. instructing the browser, by the VICE Java-Script/WebAssembly code, to continuously reflect a selected subset of all DOM elements modifications bidirectionally between the main page and the iframe;

viii. instructing the browser, by the VICE Java-Script/WebAssembly code, to continuously reflect a selected subset of all triggered DOM events bidirectionally between the main page and the iframe;

ix. instructing the browser, by the VICE Java-Script/WebAssembly code, by various ways to evade undesired actions by the third-party user-code; and,

x. consulting a policy-center on how to proceed based on the type of the action in question wherein a policy-center decision comprises one or more of the following:

i. a grant decision to proceed with the action unchanged; or,

ii. a deny decision to cancel the action while evading negative effects on the third-party; or,

iii. an alter decision, comprising altering the action in a way that the action can perform partially or in a different way while evading negative effects on the third-party.

15. The computerized method of claim 14 , wherein the Altering or Fetching decision further comprises using CORS-Proxy URL.

16. The computerized method of claim 15 , wherein the third-party protection code further comprises: an enclosure IFrame; a reflection; DOM functionality overriding; an Instrumentation; an evasion; and a CORS-Proxy, computer code.

Assignments (4)
SECURITY INTEREST Recorded Aug 11, 2026
From: SOURCE DEFENSE LTD.
To: EASTWARD FUND MANAGEMENT, LLC
Reel/Frame 075606/0287 →
RELEASE OF SECURITY INTEREST Recorded Jul 23, 2026
From: BANK LEUMI LE-ISRAEL B.M.
To: SOURCE DEFENSE LTD.
Reel/Frame 075367/0607 →
SECURITY INTEREST Recorded Jul 20, 2020
From: SOURCE DEFENSE LTD
To: BANK LEUMI LE-ISRAEL B.M.
Reel/Frame 053247/0837 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2018
From: BEN-DOR, GILAD; HARIMON, EHUD; GAVISH, EIDO; BLUTRICH, HADAR
To: SOURCE DEFENSE
Reel/Frame 044575/0135 →
Continuity (3)
Continuation In Part 15347765 · Nov 9, 2016
Provisional Application 62443902 · Jan 9, 2017
Provisional Application 62253669 · Nov 10, 2015
Cited By (2)
US 12,307,766 US 12,580,947