diff options
author | proberge <proberge@chromium.org> | 2016-02-17 10:40:20 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-17 18:41:29 +0000 |
commit | a933956f59c648142b325d431a9d21f167e0d596 (patch) | |
tree | e6b73097356e3ad86b343a096aa8c8844251081a /components/safe_browsing_db | |
parent | 5cabd4e97172d9e015e1e504fa0712c4878bc8c1 (diff) | |
download | chromium_src-a933956f59c648142b325d431a9d21f167e0d596.zip chromium_src-a933956f59c648142b325d431a9d21f167e0d596.tar.gz chromium_src-a933956f59c648142b325d431a9d21f167e0d596.tar.bz2 |
Add support for a module whitelist (goog-whitemodule-digest256) to the safe browsing db
BUG=585123
Review URL: https://codereview.chromium.org/1638223003
Cr-Commit-Position: refs/heads/master@{#375925}
Diffstat (limited to 'components/safe_browsing_db')
-rw-r--r-- | components/safe_browsing_db/database_manager.h | 6 | ||||
-rw-r--r-- | components/safe_browsing_db/remote_database_manager.cc | 6 | ||||
-rw-r--r-- | components/safe_browsing_db/remote_database_manager.h | 1 | ||||
-rw-r--r-- | components/safe_browsing_db/test_database_manager.cc | 6 | ||||
-rw-r--r-- | components/safe_browsing_db/test_database_manager.h | 1 | ||||
-rw-r--r-- | components/safe_browsing_db/util.cc | 20 | ||||
-rw-r--r-- | components/safe_browsing_db/util.h | 8 |
7 files changed, 35 insertions, 13 deletions
diff --git a/components/safe_browsing_db/database_manager.h b/components/safe_browsing_db/database_manager.h index 4924cac..8167b3a 100644 --- a/components/safe_browsing_db/database_manager.h +++ b/components/safe_browsing_db/database_manager.h @@ -118,6 +118,12 @@ class SafeBrowsingDatabaseManager // error occurs. This method must be called on the IO thread. virtual bool MatchInclusionWhitelistUrl(const GURL& url) = 0; + // Check if |str|, a lowercase DLL file name, matches any of the full-length + // hashes from the module whitelist. Returns true if there was a match and + // false otherwise. To make sure we are conservative we will return true if + // an error occurs. This method must be called on the IO thread. + virtual bool MatchModuleWhitelistString(const std::string& str) = 0; + // Check if the CSD malware IP matching kill switch is turned on. virtual bool IsMalwareKillSwitchOn() = 0; diff --git a/components/safe_browsing_db/remote_database_manager.cc b/components/safe_browsing_db/remote_database_manager.cc index 24e7167..8b1c480 100644 --- a/components/safe_browsing_db/remote_database_manager.cc +++ b/components/safe_browsing_db/remote_database_manager.cc @@ -207,6 +207,12 @@ bool RemoteSafeBrowsingDatabaseManager::MatchInclusionWhitelistUrl( return true; } +bool RemoteSafeBrowsingDatabaseManager::MatchModuleWhitelistString( + const std::string& str) { + NOTREACHED(); + return true; +} + bool RemoteSafeBrowsingDatabaseManager::IsMalwareKillSwitchOn() { NOTREACHED(); return true; diff --git a/components/safe_browsing_db/remote_database_manager.h b/components/safe_browsing_db/remote_database_manager.h index 0234285..89c71f5 100644 --- a/components/safe_browsing_db/remote_database_manager.h +++ b/components/safe_browsing_db/remote_database_manager.h @@ -54,6 +54,7 @@ class RemoteSafeBrowsingDatabaseManager : public SafeBrowsingDatabaseManager { bool MatchDownloadWhitelistUrl(const GURL& url) override; bool MatchDownloadWhitelistString(const std::string& str) override; bool MatchInclusionWhitelistUrl(const GURL& url) override; + bool MatchModuleWhitelistString(const std::string& str) override; bool IsMalwareKillSwitchOn() override; bool IsCsdWhitelistKillSwitchOn() override; diff --git a/components/safe_browsing_db/test_database_manager.cc b/components/safe_browsing_db/test_database_manager.cc index 53f3316..454c358 100644 --- a/components/safe_browsing_db/test_database_manager.cc +++ b/components/safe_browsing_db/test_database_manager.cc @@ -93,6 +93,12 @@ bool TestSafeBrowsingDatabaseManager::MatchInclusionWhitelistUrl( return true; } +bool TestSafeBrowsingDatabaseManager::MatchModuleWhitelistString( + const std::string& str) { + NOTIMPLEMENTED(); + return true; +} + bool TestSafeBrowsingDatabaseManager::IsMalwareKillSwitchOn() { NOTIMPLEMENTED(); return false; diff --git a/components/safe_browsing_db/test_database_manager.h b/components/safe_browsing_db/test_database_manager.h index 66de565..aa25c51 100644 --- a/components/safe_browsing_db/test_database_manager.h +++ b/components/safe_browsing_db/test_database_manager.h @@ -36,6 +36,7 @@ class TestSafeBrowsingDatabaseManager bool MatchDownloadWhitelistUrl(const GURL& url) override; bool MatchDownloadWhitelistString(const std::string& str) override; bool MatchInclusionWhitelistUrl(const GURL& url) override; + bool MatchModuleWhitelistString(const std::string& str) override; bool IsMalwareKillSwitchOn() override; bool IsCsdWhitelistKillSwitchOn() override; void CancelCheck(Client* client) override; diff --git a/components/safe_browsing_db/util.cc b/components/safe_browsing_db/util.cc index 3129e7e..7289a0f 100644 --- a/components/safe_browsing_db/util.cc +++ b/components/safe_browsing_db/util.cc @@ -52,17 +52,12 @@ const char kExtensionBlacklist[] = "goog-badcrxids-digestvar"; const char kIPBlacklist[] = "goog-badip-digest256"; const char kUnwantedUrlList[] = "goog-unwanted-shavar"; const char kInclusionWhitelist[] = "goog-csdinclusionwhite-sha256"; +const char kModuleWhitelist[] = "goog-whitemodule-digest256"; -const char* kAllLists[9] = { - kMalwareList, - kPhishingList, - kBinUrlList, - kCsdWhiteList, - kDownloadWhiteList, - kExtensionBlacklist, - kIPBlacklist, - kUnwantedUrlList, - kInclusionWhitelist, +const char* kAllLists[10] = { + kMalwareList, kPhishingList, kBinUrlList, kCsdWhiteList, + kDownloadWhiteList, kExtensionBlacklist, kIPBlacklist, kUnwantedUrlList, + kInclusionWhitelist, kModuleWhitelist, }; ListType GetListId(const base::StringPiece& name) { @@ -85,6 +80,8 @@ ListType GetListId(const base::StringPiece& name) { id = UNWANTEDURL; } else if (name == kInclusionWhitelist) { id = INCLUSIONWHITELIST; + } else if (name == kModuleWhitelist) { + id = MODULEWHITELIST; } else { id = INVALID; } @@ -120,6 +117,9 @@ bool GetListName(ListType list_id, std::string* list) { case INCLUSIONWHITELIST: *list = kInclusionWhitelist; break; + case MODULEWHITELIST: + *list = kModuleWhitelist; + break; default: return false; } diff --git a/components/safe_browsing_db/util.h b/components/safe_browsing_db/util.h index 2e6feb9..d350e10 100644 --- a/components/safe_browsing_db/util.h +++ b/components/safe_browsing_db/util.h @@ -100,9 +100,10 @@ extern const char kIPBlacklist[]; extern const char kUnwantedUrlList[]; // SafeBrowsing off-domain inclusion whitelist list name. extern const char kInclusionWhitelist[]; +// SafeBrowsing module whitelist list name. +extern const char kModuleWhitelist[]; // This array must contain all Safe Browsing lists. -extern const char* kAllLists[9]; - +extern const char* kAllLists[10]; enum ListType { INVALID = -1, @@ -126,9 +127,10 @@ enum ListType { // See above comment. Leave 15 available. INCLUSIONWHITELIST = 16, // See above comment. Leave 17 available. + MODULEWHITELIST = 18, + // See above comment. Leave 19 available. }; - inline bool SBFullHashEqual(const SBFullHash& a, const SBFullHash& b) { return !memcmp(a.full_hash, b.full_hash, sizeof(a.full_hash)); } |