Autopsy
4.17.0
Graphical digital forensics platform for The Sleuth Kit and other tools.
|
Inherits org.sleuthkit.autopsy.ingest.FileIngestModule.
Classes | |
class | FindInHashsetsResult |
class | IngestJobTotals |
Public Member Functions | |
ProcessResult | process (AbstractFile file) |
void | shutDown () |
void | startUp (org.sleuthkit.autopsy.ingest.IngestJobContext context) throws IngestModuleException |
Private Member Functions | |
void | calculateHashes (AbstractFile file, IngestJobTotals totals) throws TskCoreException |
boolean | createArtifactIfNotExists (String hashSetName, AbstractFile file, String comment, HashDb db) |
FindInHashsetsResult | findInHashsets (AbstractFile file, AtomicLong totalCount, AtomicLong totalLookupTime, List< HashDb > hashSets, TskData.FileKnown statusIfFound, Function< AbstractFile, String > lookupErrorMessage) |
String | generateComment (HashHitInfo hashInfo) |
void | initializeHashsets (List< HashDb > allHashSets) |
void | postHashSetHitToBlackboard (AbstractFile abstractFile, String md5Hash, String hashSetName, String comment, boolean showInboxMessage) |
void | reportLookupError (TskException ex, AbstractFile file, Function< AbstractFile, String > lookupErrorMessage) |
boolean | shouldSkip (AbstractFile file) |
Static Private Member Functions | |
static synchronized IngestJobTotals | getTotalsForIngestJobs (long ingestJobId) |
static synchronized void | postSummary (long jobId, List< HashDb > knownBadHashSets, List< HashDb > noChangeHashSets, List< HashDb > knownHashSets) |
Private Attributes | |
Blackboard | blackboard |
final HashDbManager | hashDbManager = HashDbManager.getInstance() |
long | jobId |
final List< HashDb > | knownBadHashSets = new ArrayList<>() |
final Function< AbstractFile, String > | knownBadLookupError = (file) -> Bundle.HashDbIngestModule_lookingUpKnownBadHashValueErr(file.getName()) |
final List< HashDb > | knownHashSets = new ArrayList<>() |
final Function< AbstractFile, String > | knownLookupError = (file) -> Bundle.HashDbIngestModule_lookingUpKnownHashValueErr(file.getName()) |
final List< HashDb > | noChangeHashSets = new ArrayList<>() |
final Function< AbstractFile, String > | noChangeLookupError = (file) -> Bundle.HashDbIngestModule_lookingUpNoChangeHashValueErr(file.getName()) |
final IngestServices | services = IngestServices.getInstance() |
final HashLookupModuleSettings | settings |
final SleuthkitCase | skCase |
Static Private Attributes | |
static final Logger | logger = Logger.getLogger(HashDbIngestModule.class.getName()) |
static final int | MAX_COMMENT_SIZE = 500 |
static final IngestModuleReferenceCounter | refCounter = new IngestModuleReferenceCounter() |
static final HashMap< Long, IngestJobTotals > | totalsForIngestJobs = new HashMap<>() |
File ingest module to mark files based on hash values.
Definition at line 67 of file HashDbIngestModule.java.
|
private |
Generates hashes for the given file if they haven't already been set. Hashes are saved to the AbstractFile object.
file | The file in order to determine the hash. |
totals | The timing metrics for this process. |
Definition at line 467 of file HashDbIngestModule.java.
References org.sleuthkit.autopsy.healthmonitor.HealthMonitor.getTimingMetric(), org.sleuthkit.autopsy.healthmonitor.HealthMonitor.submitNormalizedTimingMetric(), and org.sleuthkit.autopsy.healthmonitor.HealthMonitor.submitTimingMetric().
|
private |
Creates a BlackboardArtifact if artifact does not already exist.
hashSetName | The name of the hashset found. |
file | The file that had a hash hit. |
comment | The comment to associate with this artifact. |
db | the database in which this file was found. |
Definition at line 436 of file HashDbIngestModule.java.
References org.sleuthkit.autopsy.ingest.IngestMessage.createErrorMessage(), org.sleuthkit.autopsy.modules.hashdatabase.HashLookupModuleFactory.getModuleName(), org.sleuthkit.autopsy.modules.hashdatabase.HashDbManager.HashDb.getSendIngestMessages(), and org.sleuthkit.autopsy.ingest.IngestServices.postMessage().
|
private |
Attempts to find an abstract file in a list of HashDB objects.
file | The file to find. |
totalCount | The total cound of files found in this type |
totalLookupTime | The counter tracking the total amount of run time for this operation. |
hashSets | The HashDB objects to cycle through looking for a hash hit. |
statusIfFound | The FileKnown status to set on the file if the file is found in the hashSets. |
lookupErrorMessage | The function that generates a message should there be an error in looking up the file in the hashSets. |
Definition at line 370 of file HashDbIngestModule.java.
|
private |
Generates a formatted comment.
hashInfo | The HashHitInfo. |
Definition at line 409 of file HashDbIngestModule.java.
|
staticprivate |
Definition at line 104 of file HashDbIngestModule.java.
|
private |
Cycle through list of hashsets and place each HashDB in the appropriate list based on KnownFilesType.
allHashSets | List of all hashsets from DB manager |
Definition at line 163 of file HashDbIngestModule.java.
|
private |
Post a hash set hit to the blackboard.
abstractFile | The file to be processed. |
md5Hash | The MD5 hash value of the file. |
hashSetName | The name of the hash set with which to associate the hit. |
comment | A comment to be attached to the artifact. |
showInboxMessage | Show a message in the inbox? |
Definition at line 516 of file HashDbIngestModule.java.
References org.sleuthkit.autopsy.ingest.IngestMessage.createDataMessage(), org.sleuthkit.autopsy.coreutils.MessageNotifyUtil.Notify.error(), org.sleuthkit.autopsy.modules.hashdatabase.HashLookupModuleFactory.getModuleName(), and org.sleuthkit.autopsy.ingest.IngestServices.postMessage().
|
staticprivate |
Post a message summarizing the results of the ingest.
jobId | The ID of the job. |
knownBadHashSets | The list of hash sets for "known bad" files. |
noChangeHashSets | The list of "no change" hash sets. |
knownHashSets | The list of hash sets for "known" files. |
Definition at line 591 of file HashDbIngestModule.java.
References org.sleuthkit.autopsy.ingest.IngestMessage.createMessage(), org.sleuthkit.autopsy.ingest.IngestServices.getInstance(), org.sleuthkit.autopsy.modules.hashdatabase.HashLookupModuleFactory.getModuleName(), org.sleuthkit.autopsy.ingest.IngestMessage.MessageType.INFO, org.sleuthkit.autopsy.ingest.IngestServices.postMessage(), org.sleuthkit.autopsy.modules.hashdatabase.HashDbIngestModule.IngestJobTotals.totalCalctime, org.sleuthkit.autopsy.modules.hashdatabase.HashDbIngestModule.IngestJobTotals.totalKnownBadCount, org.sleuthkit.autopsy.modules.hashdatabase.HashDbIngestModule.IngestJobTotals.totalLookuptime, and org.sleuthkit.autopsy.modules.hashdatabase.HashDbIngestModule.IngestJobTotals.totalNoChangeCount.
ProcessResult org.sleuthkit.autopsy.modules.hashdatabase.HashDbIngestModule.process | ( | AbstractFile | file | ) |
Processes a file. Called between calls to startUp() and shutDown(). Will be called for each file in a data source.
file | The file to analyze. |
Implements org.sleuthkit.autopsy.ingest.FileIngestModule.
Definition at line 196 of file HashDbIngestModule.java.
References org.sleuthkit.autopsy.ingest.IngestMessage.createErrorMessage(), org.sleuthkit.autopsy.ingest.IngestModule.ProcessResult.ERROR, org.sleuthkit.autopsy.casemodule.Case.getCurrentCaseThrows(), org.sleuthkit.autopsy.modules.hashdatabase.HashLookupModuleFactory.getModuleName(), org.sleuthkit.autopsy.casemodule.Case.getSleuthkitCase(), org.sleuthkit.autopsy.ingest.IngestModule.ProcessResult.OK, org.sleuthkit.autopsy.ingest.IngestServices.postMessage(), org.sleuthkit.autopsy.modules.hashdatabase.HashDbIngestModule.IngestJobTotals.totalKnownBadCount, org.sleuthkit.autopsy.modules.hashdatabase.HashDbIngestModule.IngestJobTotals.totalLookuptime, and org.sleuthkit.autopsy.modules.hashdatabase.HashDbIngestModule.IngestJobTotals.totalNoChangeCount.
|
private |
Reports an error when an issue is encountered looking up a file.
ex | The exception thrown in the error. |
file | The file for which this error applies. |
lookupErrorMessage | The function that generates an error message specific to which piece of the ingest processing failed. |
Definition at line 309 of file HashDbIngestModule.java.
References org.sleuthkit.autopsy.ingest.IngestMessage.createErrorMessage(), org.sleuthkit.autopsy.modules.hashdatabase.HashLookupModuleFactory.getModuleName(), and org.sleuthkit.autopsy.ingest.IngestServices.postMessage().
|
private |
Returns true if this file should be skipped for processing.
file | The file to potentially skip. |
Definition at line 275 of file HashDbIngestModule.java.
void org.sleuthkit.autopsy.modules.hashdatabase.HashDbIngestModule.shutDown | ( | ) |
Invoked by Autopsy when an ingest job is completed (either because the data has been analyzed or because the job was canceled - check IngestJobContext.fileIngestIsCancelled()), before the ingest module instance is discarded. The module should respond by doing things like releasing private resources, submitting final results, and posting a final ingest message.
Implements org.sleuthkit.autopsy.ingest.FileIngestModule.
Definition at line 631 of file HashDbIngestModule.java.
References org.sleuthkit.autopsy.ingest.IngestModuleReferenceCounter.decrementAndGet().
void org.sleuthkit.autopsy.modules.hashdatabase.HashDbIngestModule.startUp | ( | org.sleuthkit.autopsy.ingest.IngestJobContext | context | ) | throws IngestModuleException |
Invoked by Autopsy to allow an ingest module instance to set up any internal data structures and acquire any private resources it will need during an ingest job. If the module depends on loading any resources, it should do so in this method so that it can throw an exception in the case of an error and alert the user. Exceptions that are thrown from process() and shutDown() are logged, but do not stop processing of the data source.
context | Provides data and services specific to the ingest job and the ingest pipeline of which the module is a part. |
Implements org.sleuthkit.autopsy.ingest.IngestModule.
Definition at line 128 of file HashDbIngestModule.java.
References org.sleuthkit.autopsy.ingest.IngestMessage.createWarningMessage(), org.sleuthkit.autopsy.modules.hashdatabase.HashDbManager.getAllHashSets(), org.sleuthkit.autopsy.modules.hashdatabase.HashLookupModuleFactory.getModuleName(), org.sleuthkit.autopsy.ingest.IngestModuleReferenceCounter.incrementAndGet(), and org.sleuthkit.autopsy.ingest.IngestServices.postMessage().
|
private |
Definition at line 91 of file HashDbIngestModule.java.
|
private |
Definition at line 83 of file HashDbIngestModule.java.
|
private |
Definition at line 88 of file HashDbIngestModule.java.
|
private |
Definition at line 85 of file HashDbIngestModule.java.
|
private |
Definition at line 72 of file HashDbIngestModule.java.
|
private |
Definition at line 86 of file HashDbIngestModule.java.
|
private |
Definition at line 78 of file HashDbIngestModule.java.
|
staticprivate |
Definition at line 69 of file HashDbIngestModule.java.
|
staticprivate |
Definition at line 80 of file HashDbIngestModule.java.
|
private |
Definition at line 87 of file HashDbIngestModule.java.
|
private |
Definition at line 75 of file HashDbIngestModule.java.
|
staticprivate |
Definition at line 90 of file HashDbIngestModule.java.
|
private |
Definition at line 81 of file HashDbIngestModule.java.
|
private |
Definition at line 84 of file HashDbIngestModule.java.
|
private |
Definition at line 82 of file HashDbIngestModule.java.
|
staticprivate |
Definition at line 89 of file HashDbIngestModule.java.
Copyright © 2012-2021 Basis Technology. Generated on: Tue Jan 19 2021
This work is licensed under a
Creative Commons Attribution-Share Alike 3.0 United States License.