Commit f3d51e25 authored by proberge's avatar proberge Committed by Commit Bot

Disable and remove the blacklist load incident

Also removes code in chrome_elf/blacklist which was added to support
this incident.

Also starts clearing suspicious module incidents from the state_store, which I
forgot to do in https://chromium-review.googlesource.com/c/chromium/src/+/656086

Bug: 767992
Cq-Include-Trybots: master.tryserver.chromium.win:win10_chromium_x64_rel_ng
Change-Id: I0562fe18704f7bfab8ed4e8732eebb49652a5a1a
Reviewed-on: https://chromium-review.googlesource.com/679205Reviewed-by: default avatarRobert Shield <robertshield@chromium.org>
Reviewed-by: default avatarVarun Khaneja <vakh@chromium.org>
Reviewed-by: default avatarJesse Doherty <jwd@chromium.org>
Commit-Queue: proberge <proberge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#504689}
parent d9ce58ca
......@@ -171,11 +171,6 @@ static_library("safe_browsing") {
"incident_reporting/binary_integrity_analyzer_win.h",
"incident_reporting/binary_integrity_incident.cc",
"incident_reporting/binary_integrity_incident.h",
"incident_reporting/blacklist_load_analyzer.cc",
"incident_reporting/blacklist_load_analyzer.h",
"incident_reporting/blacklist_load_analyzer_win.cc",
"incident_reporting/blacklist_load_incident.cc",
"incident_reporting/blacklist_load_incident.h",
"incident_reporting/delayed_analysis_callback.h",
"incident_reporting/delayed_callback_runner.cc",
"incident_reporting/delayed_callback_runner.h",
......
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/safe_browsing/incident_reporting/blacklist_load_analyzer.h"
#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/safe_browsing/incident_reporting/incident_receiver.h"
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
namespace safe_browsing {
void RegisterBlacklistLoadAnalysis() {
#if defined(OS_WIN)
scoped_refptr<SafeBrowsingService> safe_browsing_service(
g_browser_process->safe_browsing_service());
safe_browsing_service->RegisterDelayedAnalysisCallback(
base::Bind(&VerifyBlacklistLoadState));
#endif
}
#if !defined(OS_WIN)
void VerifyBlacklistLoadState(
std::unique_ptr<IncidentReceiver> incident_receiver) {}
bool GetLoadedBlacklistedModules(std::vector<base::string16>* module_names) {
return false;
}
#endif // !defined(OS_WIN)
} // namespace safe_browsing
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_BLACKLIST_LOAD_ANALYZER_H_
#define CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_BLACKLIST_LOAD_ANALYZER_H_
#include <memory>
#include <vector>
#include "base/strings/string16.h"
namespace safe_browsing {
class IncidentReceiver;
// Registers a process-wide analysis with the incident reporting service that
// will examine how effective the blacklist was.
void RegisterBlacklistLoadAnalysis();
// Retrieves the set of blacklisted modules that are loaded in the process.
// Returns true if successful, false otherwise.
bool GetLoadedBlacklistedModules(std::vector<base::string16>* module_names);
// Callback to pass to the incident reporting service. The incident reporting
// service will decide when to start the analysis.
void VerifyBlacklistLoadState(
std::unique_ptr<IncidentReceiver> incident_receiver);
} // namespace safe_browsing
#endif // CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_BLACKLIST_LOAD_ANALYZER_H_
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/safe_browsing/incident_reporting/blacklist_load_analyzer.h"
#include <utility>
#include "base/file_version_info.h"
#include "base/files/file_path.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/install_verification/win/module_info.h"
#include "chrome/browser/install_verification/win/module_verification_common.h"
#include "chrome/browser/safe_browsing/download_protection/path_sanitizer.h"
#include "chrome/browser/safe_browsing/incident_reporting/blacklist_load_incident.h"
#include "chrome/browser/safe_browsing/incident_reporting/incident_receiver.h"
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
#include "chrome/common/safe_browsing/binary_feature_extractor.h"
#include "chrome_elf/blacklist/blacklist.h"
#include "components/safe_browsing/proto/csd.pb.h"
namespace safe_browsing {
// Retrieves the set of blacklisted modules that are loaded in the process.
// Returns true if successful, false otherwise.
bool GetLoadedBlacklistedModules(std::vector<base::string16>* module_names) {
DCHECK(module_names);
std::set<ModuleInfo> module_info_set;
if (!GetLoadedModules(&module_info_set))
return false;
std::set<ModuleInfo>::const_iterator module_iter(module_info_set.begin());
for (; module_iter != module_info_set.end(); ++module_iter) {
base::string16 module_file_name(base::ToLowerASCII(
base::FilePath(module_iter->name).BaseName().value()));
if (blacklist::GetBlacklistIndex(module_file_name.c_str()) != -1) {
module_names->push_back(module_iter->name);
}
}
return true;
}
void VerifyBlacklistLoadState(
std::unique_ptr<IncidentReceiver> incident_receiver) {
std::vector<base::string16> module_names;
if (GetLoadedBlacklistedModules(&module_names)) {
PathSanitizer path_sanitizer;
const bool blacklist_intialized = blacklist::IsBlacklistInitialized();
for (const auto& module_name : module_names) {
std::unique_ptr<ClientIncidentReport_IncidentData_BlacklistLoadIncident>
blacklist_load(
new ClientIncidentReport_IncidentData_BlacklistLoadIncident());
const base::FilePath module_path(module_name);
// Sanitized path.
base::FilePath sanitized_path(module_path);
path_sanitizer.StripHomeDirectory(&sanitized_path);
blacklist_load->set_path(base::WideToUTF8(sanitized_path.value()));
// Digest.
scoped_refptr<BinaryFeatureExtractor>
binary_feature_extractor(new BinaryFeatureExtractor());
base::TimeTicks start_time = base::TimeTicks::Now();
binary_feature_extractor->ExtractDigest(module_path,
blacklist_load->mutable_digest());
UMA_HISTOGRAM_TIMES("SBIRS.BLAHashTime",
base::TimeTicks::Now() - start_time);
// Version.
std::unique_ptr<FileVersionInfo> version_info(
FileVersionInfo::CreateFileVersionInfo(module_path));
if (version_info) {
std::wstring file_version = version_info->file_version();
if (!file_version.empty())
blacklist_load->set_version(base::WideToUTF8(file_version));
}
// Initialized state.
blacklist_load->set_blacklist_initialized(blacklist_intialized);
// Signature.
start_time = base::TimeTicks::Now();
binary_feature_extractor->CheckSignature(
module_path, blacklist_load->mutable_signature());
UMA_HISTOGRAM_TIMES("SBIRS.BLASignatureTime",
base::TimeTicks::Now() - start_time);
// Image headers.
if (!binary_feature_extractor->ExtractImageFeatures(
module_path,
BinaryFeatureExtractor::kDefaultOptions,
blacklist_load->mutable_image_headers(),
nullptr /* signed_data */)) {
blacklist_load->clear_image_headers();
}
// Send the report.
incident_receiver->AddIncidentForProcess(
base::MakeUnique<BlacklistLoadIncident>(std::move(blacklist_load)));
}
}
}
} // namespace safe_browsing
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/safe_browsing/incident_reporting/blacklist_load_analyzer.h"
#include <vector>
#include "base/files/file_path.h"
#include "base/path_service.h"
#include "base/scoped_native_library.h"
#include "base/strings/string_util.h"
#include "chrome_elf/blacklist/blacklist.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace {
const wchar_t kTestDllName[] = L"blacklist_test_dll_1.dll";
}
namespace safe_browsing {
TEST(BlacklistLoadAnalyzer, TestBlacklistBypass) {
base::FilePath current_dir;
ASSERT_TRUE(PathService::Get(base::DIR_EXE, &current_dir));
// Load test dll.
base::ScopedNativeLibrary dll1(current_dir.Append(kTestDllName));
// No blacklisted dlls should be found.
std::vector<base::string16> module_names;
EXPECT_TRUE(GetLoadedBlacklistedModules(&module_names));
EXPECT_TRUE(module_names.empty());
std::vector<base::string16>::const_iterator module_iter(module_names.begin());
for (; module_iter != module_names.end(); ++module_iter) {
LOG(ERROR) << "Found blacklisted module: " << *module_iter;
}
// Add test dll to blacklist
blacklist::AddDllToBlacklist(kTestDllName);
// Check that the test dll appears in list.
module_names.clear();
EXPECT_TRUE(GetLoadedBlacklistedModules(&module_names));
ASSERT_EQ(1u, module_names.size());
EXPECT_STREQ(kTestDllName,
base::ToLowerASCII(
base::FilePath(module_names[0]).BaseName().value()).c_str());
}
} // namespace safe_browsing
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/safe_browsing/incident_reporting/blacklist_load_incident.h"
#include "base/logging.h"
#include "chrome/browser/safe_browsing/incident_reporting/incident_handler_util.h"
#include "components/safe_browsing/proto/csd.pb.h"
namespace safe_browsing {
BlacklistLoadIncident::BlacklistLoadIncident(
std::unique_ptr<ClientIncidentReport_IncidentData_BlacklistLoadIncident>
blacklist_load_incident) {
DCHECK(blacklist_load_incident);
DCHECK(blacklist_load_incident->has_path());
payload()->set_allocated_blacklist_load(
blacklist_load_incident.release());
}
BlacklistLoadIncident::~BlacklistLoadIncident() {
}
IncidentType BlacklistLoadIncident::GetType() const {
return IncidentType::BLACKLIST_LOAD;
}
// Returns the sanitized path of the module.
std::string BlacklistLoadIncident::GetKey() const {
return payload()->blacklist_load().path();
}
// Returns a digest computed over the payload.
uint32_t BlacklistLoadIncident::ComputeDigest() const {
return HashMessage(payload()->blacklist_load());
}
} // namespace safe_browsing
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_BLACKLIST_LOAD_INCIDENT_H_
#define CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_BLACKLIST_LOAD_INCIDENT_H_
#include <stdint.h>
#include <memory>
#include "base/macros.h"
#include "chrome/browser/safe_browsing/incident_reporting/incident.h"
namespace safe_browsing {
class ClientIncidentReport_IncidentData_BlacklistLoadIncident;
// An incident representing a module that evades the browser DLL blacklist.
class BlacklistLoadIncident : public Incident {
public:
explicit BlacklistLoadIncident(
std::unique_ptr<ClientIncidentReport_IncidentData_BlacklistLoadIncident>
blacklist_load);
~BlacklistLoadIncident() override;
// Incident methods:
IncidentType GetType() const override;
std::string GetKey() const override;
uint32_t ComputeDigest() const override;
private:
DISALLOW_COPY_AND_ASSIGN(BlacklistLoadIncident);
};
} // namespace safe_browsing
#endif // CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_BLACKLIST_LOAD_INCIDENT_H_
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/safe_browsing/incident_reporting/blacklist_load_incident.h"
#include <memory>
#include <utility>
#include "base/memory/ptr_util.h"
#include "components/safe_browsing/proto/csd.pb.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace safe_browsing {
namespace {
std::unique_ptr<Incident> MakeIncident(const char* path) {
std::unique_ptr<ClientIncidentReport_IncidentData_BlacklistLoadIncident>
incident(new ClientIncidentReport_IncidentData_BlacklistLoadIncident);
incident->set_path(path);
return base::MakeUnique<BlacklistLoadIncident>(std::move(incident));
}
} // namespace
TEST(BlacklistLoadIncident, GetType) {
ASSERT_EQ(IncidentType::BLACKLIST_LOAD, MakeIncident("foo")->GetType());
}
// Tests that GetKey returns the dll path.
TEST(BlacklistLoadIncident, KeyIsPath) {
ASSERT_EQ(std::string("foo"), MakeIncident("foo")->GetKey());
}
// Tests that GetDigest returns the same value for the same incident.
TEST(BlacklistLoadIncident, SameIncidentSameDigest) {
ASSERT_EQ(MakeIncident("foo")->ComputeDigest(),
MakeIncident("foo")->ComputeDigest());
}
// Tests that GetDigest returns different values for different incidents.
TEST(BlacklistLoadIncident, DifferentIncidentDifferentDigest) {
ASSERT_NE(MakeIncident("foo")->ComputeDigest(),
MakeIncident("bar")->ComputeDigest());
}
} // namespace safe_browsing
......@@ -24,8 +24,8 @@ enum class IncidentType : int32_t {
// the histogram.
TRACKED_PREFERENCE = 1,
BINARY_INTEGRITY = 2,
BLACKLIST_LOAD = 3,
OMNIBOX_INTERACTION = 4,
OBSOLETE_BLACKLIST_LOAD = 3,
OBSOLETE_OMNIBOX_INTERACTION = 4,
VARIATIONS_SEED_SIGNATURE = 5,
RESOURCE_REQUEST = 6,
OBSOLETE_SUSPICIOUS_MODULE = 7,
......
......@@ -1304,8 +1304,8 @@ TEST_F(IncidentReportingServiceTest, UploadsWithBothDownloadTypes) {
// Test that a profile's prune state is properly cleaned upon load.
TEST_F(IncidentReportingServiceTest, CleanLegacyPruneState) {
CreateIncidentReportingService();
const std::string omnibox_type(base::IntToString(
static_cast<int32_t>(safe_browsing::IncidentType::OMNIBOX_INTERACTION)));
const std::string blacklist_load_type(base::IntToString(static_cast<int32_t>(
safe_browsing::IncidentType::OBSOLETE_BLACKLIST_LOAD)));
const std::string preference_type(base::IntToString(
static_cast<int32_t>(safe_browsing::IncidentType::TRACKED_PREFERENCE)));
......@@ -1314,7 +1314,8 @@ TEST_F(IncidentReportingServiceTest, CleanLegacyPruneState) {
new base::DictionaryValue());
auto type_dict = base::MakeUnique<base::DictionaryValue>();
type_dict->SetKey("foo", base::Value("47"));
incidents_sent->SetWithoutPathExpansion(omnibox_type, std::move(type_dict));
incidents_sent->SetWithoutPathExpansion(blacklist_load_type,
std::move(type_dict));
type_dict = base::MakeUnique<base::DictionaryValue>();
type_dict->SetKey("bar", base::Value("43"));
incidents_sent->SetWithoutPathExpansion(preference_type,
......@@ -1331,7 +1332,7 @@ TEST_F(IncidentReportingServiceTest, CleanLegacyPruneState) {
const base::DictionaryValue* new_state =
profile->GetPrefs()->GetDictionary(prefs::kSafeBrowsingIncidentsSent);
// The legacy value must be gone.
ASSERT_FALSE(new_state->HasKey(omnibox_type));
ASSERT_FALSE(new_state->HasKey(blacklist_load_type));
// But other data must be untouched.
ASSERT_TRUE(new_state->HasKey(preference_type));
}
......
......@@ -168,9 +168,8 @@ bool StateStore::HasBeenReported(IncidentType type,
void StateStore::CleanLegacyValues(Transaction* transaction) {
static const IncidentType kLegacyTypes[] = {
// TODO(grt): remove in M44 (crbug.com/451173).
IncidentType::OMNIBOX_INTERACTION,
};
IncidentType::OBSOLETE_BLACKLIST_LOAD,
IncidentType::OBSOLETE_SUSPICIOUS_MODULE};
for (IncidentType type : kLegacyTypes)
transaction->ClearForType(type);
......
......@@ -146,7 +146,6 @@ const StateStoreTest::TestData StateStoreTest::kTestData_[] = {
{IncidentType::TRACKED_PREFERENCE, "tp_two", 2},
{IncidentType::TRACKED_PREFERENCE, "tp_three", 3},
{IncidentType::BINARY_INTEGRITY, "bi", 0},
{IncidentType::BLACKLIST_LOAD, "bl", 0x47},
};
TEST_F(StateStoreTest, MarkAsAndHasBeenReported) {
......
......@@ -64,7 +64,6 @@
#include "chrome/browser/safe_browsing/client_side_detection_service.h"
#include "chrome/browser/safe_browsing/download_protection/download_protection_service.h"
#include "chrome/browser/safe_browsing/incident_reporting/binary_integrity_analyzer.h"
#include "chrome/browser/safe_browsing/incident_reporting/blacklist_load_analyzer.h"
#include "chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h"
#include "chrome/browser/safe_browsing/incident_reporting/resource_request_detector.h"
#include "chrome/browser/safe_browsing/incident_reporting/variations_seed_signature_analyzer.h"
......@@ -321,7 +320,6 @@ SafeBrowsingDatabaseManager* SafeBrowsingService::CreateDatabaseManager() {
void SafeBrowsingService::RegisterAllDelayedAnalysis() {
#if defined(FULL_SAFE_BROWSING)
RegisterBinaryIntegrityAnalysis();
RegisterBlacklistLoadAnalysis();
RegisterVariationsSeedSignatureAnalysis();
#endif
}
......
......@@ -4403,8 +4403,6 @@ test("unit_tests") {
"../browser/safe_browsing/incident_reporting/binary_integrity_analyzer_mac_unittest.cc",
"../browser/safe_browsing/incident_reporting/binary_integrity_analyzer_win_unittest.cc",
"../browser/safe_browsing/incident_reporting/binary_integrity_incident_unittest.cc",
"../browser/safe_browsing/incident_reporting/blacklist_load_analyzer_win_unittest.cc",
"../browser/safe_browsing/incident_reporting/blacklist_load_incident_unittest.cc",
"../browser/safe_browsing/incident_reporting/delayed_callback_runner_unittest.cc",
"../browser/safe_browsing/incident_reporting/download_metadata_manager_unittest.cc",
"../browser/safe_browsing/incident_reporting/environment_data_collection_win_unittest.cc",
......
......@@ -194,16 +194,6 @@ bool IsBlacklistInitialized() {
return g_blacklist_initialized;
}
int GetBlacklistIndex(const wchar_t* dll_name) {
for (int i = 0;
i < static_cast<int>(kTroublesomeDllsMaxCount) && g_troublesome_dlls[i];
++i) {
if (_wcsicmp(dll_name, g_troublesome_dlls[i]) == 0)
return i;
}
return -1;
}
bool AddDllToBlacklist(const wchar_t* dll_name) {
int blacklist_size = BlacklistSize();
// We need to leave one space at the end for the null pointer.
......
......@@ -42,10 +42,6 @@ extern "C" int BlacklistSize();
// Returns if true if the blacklist has been initialized.
extern "C" bool IsBlacklistInitialized();
// Returns the index of the DLL named |dll_name| on the blacklist, or -1 if not
// found.
extern "C" int GetBlacklistIndex(const wchar_t* dll_name);
// Adds the given dll name to the blacklist. Returns true if the dll name is in
// the blacklist when this returns, false on error. Note that this will copy
// |dll_name| and will leak it on exit if the string is not subsequently removed
......
......@@ -41,7 +41,6 @@ namespace {
typedef bool (*TestDll_AddDllToBlacklistFunction)(const wchar_t* dll_name);
typedef int (*TestDll_BlacklistSizeFunction)();
typedef void (*TestDll_BlockedDllFunction)(size_t blocked_index);
typedef int (*TestDll_GetBlacklistIndexFunction)(const wchar_t* dll_name);
typedef bool (*TestDll_IsBlacklistInitializedFunction)();
typedef bool (*TestDll_RemoveDllFromBlacklistFunction)(const wchar_t* dll_name);
typedef bool (*TestDll_SuccessfullyBlockedFunction)(
......@@ -52,7 +51,6 @@ typedef void (*InitTestDllFunction)();
TestDll_AddDllToBlacklistFunction TestDll_AddDllToBlacklist = nullptr;
TestDll_BlacklistSizeFunction TestDll_BlacklistSize = nullptr;
TestDll_BlockedDllFunction TestDll_BlockedDll = nullptr;
TestDll_GetBlacklistIndexFunction TestDll_GetBlacklistIndex = nullptr;
TestDll_IsBlacklistInitializedFunction TestDll_IsBlacklistInitialized = nullptr;
TestDll_RemoveDllFromBlacklistFunction TestDll_RemoveDllFromBlacklist = nullptr;
TestDll_SuccessfullyBlockedFunction TestDll_SuccessfullyBlocked = nullptr;
......@@ -164,9 +162,6 @@ class BlacklistTest : public testing::Test {
::GetProcAddress(dll, "TestDll_BlacklistSize"));
TestDll_BlockedDll = reinterpret_cast<TestDll_BlockedDllFunction>(
::GetProcAddress(dll, "TestDll_BlockedDll"));
TestDll_GetBlacklistIndex =
reinterpret_cast<TestDll_GetBlacklistIndexFunction>(
::GetProcAddress(dll, "TestDll_GetBlacklistIndex"));
TestDll_IsBlacklistInitialized =
reinterpret_cast<TestDll_IsBlacklistInitializedFunction>(
::GetProcAddress(dll, "TestDll_IsBlacklistInitialized"));
......@@ -179,9 +174,9 @@ class BlacklistTest : public testing::Test {
InitTestDll = reinterpret_cast<InitTestDllFunction>(
::GetProcAddress(dll, "InitTestDll"));
if (!TestDll_AddDllToBlacklist || !TestDll_BlacklistSize ||
!TestDll_BlockedDll || !TestDll_GetBlacklistIndex ||
!TestDll_IsBlacklistInitialized || !TestDll_RemoveDllFromBlacklist ||
!TestDll_SuccessfullyBlocked || !InitTestDll)
!TestDll_BlockedDll || !TestDll_IsBlacklistInitialized ||
!TestDll_RemoveDllFromBlacklist || !TestDll_SuccessfullyBlocked ||
!InitTestDll)
return;
// We have to call this exported function every time this test setup runs.
......@@ -254,8 +249,10 @@ TEST_F(BlacklistTest, AddAndRemoveModules) {
}
TEST_F(BlacklistTest, SuccessfullyBlocked) {
const int initial_size = TestDll_BlacklistSize();
// Add 5 news dlls to blacklist.
const int kDesiredBlacklistSize = 1;
const int kDesiredBlacklistSize = 5;
std::vector<base::string16> dlls_to_block;
for (int i = 0; i < kDesiredBlacklistSize; ++i) {
dlls_to_block.push_back(base::IntToString16(i) + L".dll");
......@@ -265,7 +262,7 @@ TEST_F(BlacklistTest, SuccessfullyBlocked) {
// Block the dlls, one at a time, and ensure SuccesfullyBlocked correctly
// passes the list of blocked dlls.
for (int i = 0; i < kDesiredBlacklistSize; ++i) {
TestDll_BlockedDll(TestDll_GetBlacklistIndex(dlls_to_block[i].c_str()));
TestDll_BlockedDll(initial_size + i);
int size = 0;
TestDll_SuccessfullyBlocked(NULL, &size);
......
......@@ -8,7 +8,6 @@ EXPORTS
TestDll_AddDllToBlacklist=AddDllToBlacklist
TestDll_BlacklistSize=BlacklistSize
TestDll_BlockedDll=BlockedDll
TestDll_GetBlacklistIndex=GetBlacklistIndex
TestDll_IsBlacklistInitialized=IsBlacklistInitialized
TestDll_SuccessfullyBlocked=SuccessfullyBlocked
TestDll_RemoveDllFromBlacklist=RemoveDllFromBlacklist
......@@ -41,6 +41,5 @@ EXPORTS
; From chrome_elf/blacklist.cc
AddDllToBlacklist
GetBlacklistIndex
IsBlacklistInitialized
SuccessfullyBlocked
......@@ -37,6 +37,5 @@ EXPORTS
; From chrome_elf/blacklist.cc
AddDllToBlacklist
GetBlacklistIndex
IsBlacklistInitialized
SuccessfullyBlocked
......@@ -716,9 +716,13 @@ message ClientIncidentReport {
optional ClientDownloadRequest.SignatureInfo signature = 5;
optional ClientDownloadRequest.ImageHeaders image_headers = 6;
}
message OmniboxInteractionIncident { optional string origin = 1; }
message VariationsSeedSignatureIncident {
optional string variations_seed_signature = 1;
}
message ResourceRequestIncident {
enum Type {
UNKNOWN = 0;
......@@ -728,6 +732,7 @@ message ClientIncidentReport {
optional string origin = 2;
optional Type type = 3 [default = UNKNOWN];
}
message SuspiciousModuleIncident {
optional string path = 1;
optional ClientDownloadRequest.Digests digest = 2;
......@@ -735,14 +740,18 @@ message ClientIncidentReport {
optional ClientDownloadRequest.SignatureInfo signature = 4;
optional ClientDownloadRequest.ImageHeaders image_headers = 5;
}
optional int64 incident_time_msec = 1;
optional TrackedPreferenceIncident tracked_preference = 2;
optional BinaryIntegrityIncident binary_integrity = 3;
optional BlacklistLoadIncident blacklist_load = 4;
// Note: skip tag 5 because it was previously used.
optional BlacklistLoadIncident DEPRECATED_blacklist_load = 4
[deprecated = true];
optional OmniboxInteractionIncident DEPRECATED_omnibox_interaction = 5
[deprecated = true];
optional VariationsSeedSignatureIncident variations_seed_signature = 6;
optional ResourceRequestIncident resource_request = 7;
optional SuspiciousModuleIncident suspicious_module = 8;
optional SuspiciousModuleIncident DEPRECATED_suspicious_module = 8
[deprecated = true];
}
repeated IncidentData incident = 1;
......
......@@ -69915,6 +69915,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram>
<histogram name="SBIRS.BLAHashTime" units="ms">
<obsolete>
Blacklist Load analysis was removed in M63.
</obsolete>
<owner>caitkp@google.com</owner>
<summary>
The elapsed time to compute the hash of a blacklisted module.
......@@ -69922,6 +69925,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram>
<histogram name="SBIRS.BLASignatureTime" units="ms">
<obsolete>
Blacklist Load analysis was removed in M63.
</obsolete>
<owner>caitkp@google.com</owner>
<summary>
The elapsed time to validate the signature of a blacklisted module.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment