IP Library Granted Patent US 9,558,348
Granted Patent B1
US 9,558,348 · App. 13/409,741 · Granted Jan 31, 2017

Ranking software applications by combining reputation and code similarity

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 9,558,348
App. No.
13/409,741
Granted
Jan 31, 2017
Kind
B1
Abstract

Disclosed are systems and methods to combine a reputation score for a software application publisher or vendor and code analysis techniques to provide a method of ranking software applications. A user downloading a software application may be confident that the software application is reliable and does not contain malicious content based on the ranking applied to the particular software application. Code analysis techniques allow for an application ranking even when there may not be enough historical information about the publisher/vendor to create a solid reputation score. A software application rank may be used internally to a software application store prior to making the software application available to the public.

Claims (68)

1. A non-transitory computer readable medium with instructions stored thereon, comprising instructions that when executed cause a processor to:

receive uploaded content comprising an uploaded software application into an internet application store;

obtain an indication of a creator of the uploaded software application;

determine a content score, based at least in part, on analysis of a portion of the uploaded content based at least in part on a comparison of the uploaded content against known malware;

obtain a reputation score associated with the indicated creator, wherein the reputation score is determined based on characteristics of an account for the indicated creator;

calculate a ranking score for the software application based, at least in part, on the reputation score and the content score; and

determine whether to publish the uploaded software application in the internet application store, comprising instructions that when executed cause the processor to:

publish the uploaded software application responsive to a first relationship between the ranking score and a ranking threshold; and

prevent publication of the uploaded software application responsive to a second relationship between the ranking score and the ranking threshold,

wherein the uploaded software application is inaccessible for receiving download requests in the internet application store prior to determining whether to publish.

2. The non-transitory computer readable medium of claim 1 , wherein the instructions that when executed cause the processor to obtain a reputation score comprise instructions that when executed cause the processor to obtain a default value for the reputation score if no reputation score is available for the indicated creator.

3. The non-transitory computer readable medium of claim 1 wherein the instructions that when executed cause the processor to analyze the portion of the uploaded content comprise instructions that when executed cause the processor to perform a code similarity analysis.

4. The non-transitory computer readable medium of claim 1 wherein the instructions that when executed cause the processor to calculate a ranking score comprise instructions that when executed cause the processor to assign more weight to the reputation score than the content score.

5. The non-transitory computer readable medium of claim 1 , wherein the instructions that when executed cause the processor to obtain a reputation score comprise instructions that when executed cause the processor to obtain a default value for the content score instead of analyzing the uploaded content if the uploaded software application is indicated to be certified against a vendor certification procedure.

6. The non-transitory computer readable medium of claim 1 wherein the instructions that when executed cause the processor to obtain an indication of a creator for the uploaded software application comprise instructions that when executed cause the processor to obtain an indication of a creator that is selected from the group consisting of an individual software developer and a software vendor.

7. The non-transitory computer readable medium of claim 1 further comprising instructions that when executed cause the processor to provide a software application ranking indication when making the uploaded software application available for download.

8. A computer system, the computer system comprising:

a processor;

a network interface communicatively coupled to the processor; and

a storage device communicatively coupled to the processor, wherein the processor is configured with computer instructions that when executed cause the processor to:

obtain an uploaded software application by an Internet software application store;

determine an identity associated with a creator of the uploaded software application;

obtain a reputation score for the identity, wherein the reputation score is determined based on characteristics of an account for the indicated creator, wherein the characteristics comprise an indication of a frequency of posting software applications containing malware;

analyze the reputation score relative to a defined threshold; and

determine whether to publish the uploaded software application in the Internet software application store, comprising instructions that when executed cause the processor to:

publish the uploaded software application responsive to a first relationship between the reputation score and the defined threshold; and

prevent publication of the uploaded software application responsive to a second relationship between the reputation score and the defined threshold,

wherein the uploaded software application is inaccessible for receiving download requests in the internet application store prior to determining whether to publish.

9. The computer system of claim 8 wherein the processor is further configured with computer instructions that when executed cause the processor to:

analyze the uploaded software application for code similarity to one or more other known computer applications;

determine a ranking for the uploaded software application based, at least in part, on the reputation score and a result of the code similarity analysis;

publish the uploaded software application responsive to a first relationship between the ranking and a ranking threshold; and

prevent publication of the uploaded software application responsive to a second relationship between the ranking and the ranking threshold.

10. The computer system of claim 9 wherein the processor is further configured with computer instructions that when executed cause the processor to notify a vendor associated with the creator of the uploaded software application if the ranking has the second relationship to the ranking threshold.

11. The computer system of claim 9 wherein the processor is further configured with computer instructions that when executed cause the processor to remove the uploaded software application from availability for download if the ranking is lowered after the uploaded software application had been made available for download.

12. The computer system of claim 9 wherein the processor is further configured with computer instructions that when executed cause the processor to provide a graphical indication of the ranking of the uploaded software application.

13. A computer system, the computer system comprising:

a processor;

a network interface communicatively coupled to the processor; and

a storage device communicatively coupled to the processor having stored therein instructions that when executed cause the processor to:

receive, by an Internet software application store, a software application and a request to publish the received software application; and

prevent publication in the Internet software application store of the software application based on a ranking of the software application,

wherein the ranking is based, at least in part, on one or more reputation scores and one or more code analysis factors of the software application,

wherein the one or more reputation scores are determined based on characteristics of an account for the indicated creator;

wherein the one or more code analysis factors are based in part on a comparison of the software application against known malware;

wherein publication is prevented for the software application when the ranking of the software application is determined to not pass a ranking threshold, and

wherein the received software application is inaccessible for receiving download requests in the Internet software application store prior to publication.

14. A non-transitory computer readable medium comprising computer executable instructions stored thereon that when executed cause a processor to:

receive a software application and a request to publish the software application in an Internet software application store;

publish the software application responsive to a first relationship between a ranking of the software application and a ranking threshold; and

prevent publication of the software application responsive to a second relationship between the ranking and the ranking threshold,

wherein the ranking is based, at least in part, on one or more reputation scores and one or more code analysis factors of the software application,

wherein the reputation score is determined based on characteristics of an account for the indicated creator,

wherein the one or more code analysis factors are based in part on a comparison of the software application against known malware; and

wherein the software application is inaccessible for receiving download requests in the Internet software application store prior to publication.

15. A method of determining a software ranking of a software application utilizing one or more processors, the method comprising:

receiving, by an Internet application store, uploaded content comprising an uploaded software application;

obtaining an indication of a creator of the uploaded software application;

analyzing, on one or more processors, a portion of the uploaded content to determine a content score for the uploaded software application, wherein the content score is based at least in part on a comparison of the uploaded software application and known malware;

obtaining a reputation score associated with the indicated creator, wherein the reputation score is determined based on characteristics of an account for the indicated creator;

calculating a ranking score for the uploaded software application based, at least in part, on the reputation score and the content score;

publishing the uploaded software application responsive to a first relationship between the ranking score and a ranking threshold; and

preventing publication of the uploaded software application responsive to a second relationship between the ranking score and the ranking threshold,

wherein the uploaded software application is inaccessible for receiving download requests in the Internet application store prior to publication.

16. The method of claim 15 wherein the act of obtaining a reputation score comprises using a default value for the reputation score if no reputation score is available for the indicated creator.

17. The method of claim 15 wherein the act of analyzing a portion of the uploaded content comprises performing a code similarity analysis.

18. The method of claim 15 wherein the act of calculating a ranking score comprises assigning a higher importance to the reputation score than the content score.

19. The method of claim 15 wherein the act of obtaining a reputation score comprises obtaining a default value for the content score instead of analyzing a portion of the uploaded content if the uploaded software application is indicated to be certified against a vendor certification procedure.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2014
From: MUTTIK, IGOR
To: MCAFEE, INC.
Reel/Frame 033942/0398 →