blob: dfad3020f4bab3b87d473cf492f4bf0c9da1852e [file] [log] [blame]
// Copyright 2018 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.
//
// Safe Browsing Reporter request protocol buffers. Those protocol messages
// should be kept in sync with the server implementation.
syntax = "proto2";
import "shared_data.proto";
option optimize_for = LITE_RUNTIME;
package chrome_cleaner;
// A report to be sent to the Safe Browsing API.
// Next tag: 21.
message ChromeCleanerReport {
// Deprecated client_id field that stopped being sent after 20.113.
reserved 2;
// Deprecated found_pup field that stopped being sent after 6.44.
reserved 3;
// Deprecated removed_uws field that stopped being sent after 16.88.
reserved 12;
// Environmental data regarding the machine and the Cleaner.
// Next tag: 11.
message EnvironmentData {
// The Windows version as an enum value from base::win::Version.
optional uint32 windows_version = 1;
// Cleaner's version number (X.Y.Z).
optional string cleaner_version = 2;
// Next tag: 4.
message Machine {
optional string cpu_architecture = 1;
optional string cpu_vendor = 2;
optional uint32 cpuid = 3;
}
optional Machine machine = 3;
// The user installed chrome version.
optional string chrome_version = 4;
// The channel of the user's installed chrome. The possible values are:
// 0: unknown; 1: canary; 2: dev; 3: beta; 4: stable.
optional int32 chrome_channel = 8;
// The user default locale.
optional string default_locale = 5;
// To identify if this report contains a detailed system report.
optional bool detailed_system_report = 6;
// The country of the client IP. e.g. "US". This field is set by the Safe
// Browsing server on receiving a report and should not be set in the
// Chrome Cleaner copy of this proto.
optional string client_country = 7;
// The bitness of the cleaner process, 32 or 64.
optional int32 bitness = 9;
// The engine run by the cleaner.
optional Engine engine = 10;
}
optional EnvironmentData environment = 1;
// Identifier used to group all reports generated during the same run of the
// cleaner, including runs before and after a reboot.
optional string cleanup_id = 17;
// The exit code of the Cleaner run.
optional uint32 exit_code = 4;
// Each line as saved to the log file.
repeated string raw_log_line = 5;
// The list of string identifiers for found UwS.
// Deprecated. Please use detected_uws instead.
repeated string found_uws = 6 [deprecated = true];
// All the information found by Chrome Cleaner about an UwS during a run.
repeated UwS detected_uws = 13;
// All the information found by Chrome Cleaner about unknown UwS during a
// run. This is generally from cleanup calls made from the sandbox where we
// don't know what UwS was the reason for the call. Next tag: 2.
message UnknownUwS { repeated MatchedFile files = 1; }
optional UnknownUwS unknown_uws = 20;
// To identify whether the user is enrolled in UMA or not.
optional bool uma_user = 7;
// To identify whether the user is enrolled in SafeBrowsing extended
// reporting.
optional bool sber_enabled = 18;
// To identify whether the run was executed post-reboot or not.
optional bool post_reboot = 8;
// To identify an intermediate log.
optional bool intermediate_log = 9;
// The timestamp when the server received this report, given as the number of
// micro-seconds since Unix Epoch.
optional int64 timestamp = 10;
// To identify whether the process is started by chrome.
// Deprecated. Please use cleaner_startup instead.
optional bool chrome_prompt = 11 [deprecated = true];
// To identify if and how the cleaner was started by Chrome as set by
// Chrome on the command line.
enum CleanerStartup {
// For organic users cleaner_startup will remain unset.
CLEANER_STARTUP_UNSPECIFIED = 0;
// No chrome-prompt flag was given on the command line.
CLEANER_STARTUP_NOT_PROMPTED = 1;
// Unknown value given on the command line for the chrome-prompt
// flag, including when the chrome-prompt flag was given no value.
CLEANER_STARTUP_UNKNOWN = 2;
// User accepted to run the cleaner when prompted from Chrome.
CLEANER_STARTUP_PROMPTED = 3;
// The prompt was shown from Chrome's menu and the user accepted to
// run the cleaner.
CLEANER_STARTUP_SHOWN_FROM_MENU = 4;
// User started the cleanup from Chrome's Settings page.
CLEANER_STARTUP_USER_INITIATED = 5;
}
optional CleanerStartup cleaner_startup = 16;
// All the additional information gathered when performing a
// detailed system report.
// Next tag: 13.
message SystemReport {
// Deprecated preferences field that stopped being sent after 20.114.
reserved 10;
// Deprecated AntiVirusProduct field that stopped being sent after 29.157.
reserved 11;
// Information about modules loaded into selected processes.
// Next tag: 4.
message LoadedModule {
// The file information for the loaded module.
optional FileInformation file_information = 1;
// The name of the module.
optional bytes name = 2;
// The host of the loaded module.
optional ModuleHost host = 3;
}
repeated LoadedModule loaded_modules = 1;
// Information about running processes.
// Next tag: 3.
message Process {
// The file information for the process.
optional FileInformation file_information = 1;
// The name of the process.
optional bytes name = 2;
}
repeated Process processes = 2;
// Information about services.
// Next tag: 4.
message Service {
// The file information for the service.
optional FileInformation file_information = 1;
// The display name of the service.
optional bytes display_name = 2;
// The name of the service.
optional bytes service_name = 3;
}
repeated Service services = 3;
// Information about installed programs.
// Next tag: 2.
message InstalledProgram {
optional FolderInformation folder_information = 1;
}
repeated InstalledProgram installed_programs = 4;
// Reported registry values. Includes startup registry values,
// extension policies, name server values, and dll extensions.
repeated RegistryValue registry_values = 5;
repeated ScheduledTask scheduled_tasks = 6;
// Information about a layered service provider.
// Next tag: 3.
message LayeredServiceProvider {
repeated bytes guids = 1;
optional FileInformation file_information = 2;
}
repeated LayeredServiceProvider layered_service_providers = 7;
// Information about proxy settings.
// Next tag: 5.
message SystemProxySettings {
optional bytes config = 1;
optional bytes bypass = 2;
optional bytes auto_config_url = 3;
optional bool autodetect = 4;
}
optional SystemProxySettings win_inet_proxy_settings = 8;
optional SystemProxySettings win_http_proxy_settings = 9;
// Information about an extension that is installed.
// Next tag: 3.
message InstalledExtension {
// The ID of the extension that is installed.
optional string extension_id = 1;
// The method used to install the extension.
optional ExtensionInstallMethod install_method = 2;
}
repeated InstalledExtension installed_extensions = 12;
}
optional SystemReport system_report = 14;
// Information found by Chrome Cleaner while running custom UwS matchers
// with incomplete matching results.
repeated IncompleteUwSMatch incomplete_uws_matches = 15;
// Information about Chrome Cleaner processes and their resource usage.
repeated ProcessInformation process_information = 19;
}