/*! \page central_repo_page Central Repository \section cr_overview Overview The central repository allows a user to find matching artifacts both across cases and across data sources in the same case. It is a combination of an ingest module that extracts, stores, and compares properties against lists of notable properties, a database that stores these properties, and an additional panel in Autopsy to display other instances of each property. The central repository database can either be SQLite or PostgreSQL. The following are some use cases for the central repository: - Finding Other Instances of a Property - If you navigate to a file or Autopsy artifact (such as a Web History item), there is a content viewer in the bottom right that will show you other instances of this property across the data stored in the central repository. - Alerting When Previously Notable Properties Occur - You can use the central repository to record which properties were associated with files and artifacts that were evidence (or notable). Once these properties have been tagged as notable they will be added to the Interesting Items section of the tree when seen again in any future cases. - Storing Hash Sets - You can create and import hash sets into the central repository instead of using local copies in the \ref hash_db_page "Hash Lookup module". These hash sets are functionally equivalent to local hash sets but can be shared among multiple analysts (when using a PostgreSQL central repository). \section cr_terms Terms and Concepts - Central Repository - The Autopsy feature containing the central repository database and Central Repository Ingest Module. Also responsible for displaying correlated properties to the user - Central Repository Database - the SQLite or PostgreSQL database that holds all the data - Central Repository Ingest Module - The ingest module responsible for adding new properties to the database and comparing these properties against existing notable properties - Property - The data being stored/correlated. These can be file paths/MD5 hashes, email addresses, phone numbers, etc. \section cr_setup Setup The central repository settings are found on the main options panel (Tools->Options) on the "Central Repository" tab. \image html central_repo_options.png \subsection cr_db_setup Database Configuration There are two types of central repository databases: - SQLite - This type of database is stored in a file. It should only be used when a single client will be accessing the database. You can not use this option with \ref multiuser_page "multi-user cases". - PostgreSQL - This type of database is stored on a server running either on the user's host or a remote server. This option must be used if multiple users will be using the same database. \subsubsection cr_db_setup_auto Automatic Database Configuration Starting with Autopsy 4.15, when you load Autopsy and the central repository is not enabled you will be asked if you want to enable it. Doing so will create a SQLite database in your Autopsy user folder (on Windows this will be in AppData). You will only be prompted to do this once. Whichever option you select, you can change your central repository settings later as described below. Since a SQLite database can't be used for multi-user cases, you are also given the option to switch to a PostgreSQL database when you \ref multiuser_install_clients "enable multi-user cases". If you are currently using a SQLite database, when you enable multi-user cases you will be asked if you want to switch to a PostgreSQL database on the same server. Note that the contents of your SQLite database will not be copied over. \subsubsection cr_db_setup_manual Manual Database Configuration On the central repository options panel, check the 'Use a Central Repository' option and then click the Configure button to set up a database. There are three options here: - SQLite - This option stores the database in a file. It should only be used when a single client will be accessing the database. - PostgreSQL using multi-user settings - This option uses a central repository on the same PostgreSQL server that has been configured for \ref multiuser_page "multi-user cases". This option can not be selected if multi-user cases are not enabled. This is one of the options if multiple users will be using the same database. - Custom PostgreSQL - This option uses a database server running either on the user's host or a remote server, where the server is specified in the central repository settings. This is one of the options if multiple users will be using the same database. Once a database has been configured, the lower two buttons on the main panel will be enabled, which will be described below. Setting up a PostgreSQL deployment using the multi-user settings See the \ref install_multiuser_page page for instructions on configuring a multi-user environment. Once done, you can select the "PostgreSQL using multi-user settings" option to create/use a central repository on that PostgreSQL server. Setting up a custom PostgreSQL deployment If needed, see the \ref install_postgresql_page page for help setting up your PostgreSQL server. For PostgreSQL all values are required, but some defaults are provided for convenience. \image html central_repo_postgres.png - Host Name/IP is the hostname or IP of your PostgreSQL server. - Port is the port that the PostgreSQL server is listening on; default is 5432. - User Name is a PostgreSQL user that can create and modify databases - User Password is the password for the user. If the database does not exist, you wll be prompted to create it. Setting Up SQLite Deployment Select SQLite in the Database Type to set up a SQLite database. SQLite databases should not be used if more than one client will be accessing the central repository. \image html central_repo_sqlite.png Enter or browse to a folder for the database. If the database file does not exist in that folder, you will be prompted to create it. \subsection cr_manage_properties Manage Correlation Properties The Central Repository ingest module can save different types of properties to the database. By default all properties are recorded, but this setting can be changed on the options panel through the Manage Correlation Properties button. Note that these settings are saved to the database, so in a multi-user setting any changes will affect all users. \image html central_repo_types.png Descriptions of the property types: - Files - Files are correlated based on MD5 hash and file path and name. The \ref hash_db_page must be enabled. - Domains - Domains are extracted from the various web artifacts, which primarily come from the \ref recent_activity_page. - Email Addresses - Email addresses are created by modules such as the \ref email_parser_page. - Phone Numbers - Phone numbers are currently only extracted from call logs, contact lists and message, which come from the \ref android_analyzer_page. - USB Devices - USB device properties come from the registry parsing in the \ref recent_activity_page. - Wireless Networks - Wireless networks are correlated on SSIDs, and come from the registry parsing in the \ref recent_activity_page. - MAC Addresses - MAC address properties are currently only created by custom Autopsy modules. - IMEI Number - IMEIs properties are currently only created by custom Autopsy modules. - IMSI Number - IMSI properties are currently only created by custom Autopsy modules. - ICCID Number - ICCID properties are currently only created by custom Autopsy modules. - Credit Card - Credid Card properties are created by the \ref keyword_search_page. - App-specific Accounts (Facebook, Twitter, etc) - These properties primarily come from the \ref android_analyzer_page. \subsection cr_manage_orgs Manage Organizations Organizations are stored in the central repository and contain contact information for the given organization. Organizations are used for Hash Sets saved in the central repository, and can also be associated with Autopsy cases. \image html central_repo_orgs.png One default org, "Not Specified" will always be present in the list. New organizations can be created, edited, and deleted through the appropriate buttons. Note that any organization that is currently in use by a case or hash set can not be deleted. All fields apart from the organization name are optional. \image html central_repo_new_org.png \subsection cr_show_cases Manage Cases Displays a list of all cases that are in the central repository database and details about each case. \image html central_repo_details.png \section cr_using_repo Using the Central Repository \subsection cr_ingest_module Central Repository Module The Central Repository ingest module is responsible for adding properties to the database and comparing each property against the list of notable properties. It is best to run all ingest modules to get the most out of the Correlation Engine. For example, if Hash Lookup is not run then the Central Repository module will not put any files into the database. If the Central Repository module is not run on a particular case but a central repository is enabled, there will still be some limited functionality. The Content Viewer will still display matching properties from other cases/data sources where the Central Repository was run. \image html central_repo_ingest_settings.png There are three settings for the Central Repository ingest module: