hostr/lib/malware.js

78 lines
998 B
JavaScript
Raw Normal View History

2015-08-30 21:15:31 +02:00
import virustotal from './virustotal';
2015-07-09 23:01:43 +01:00
2016-06-06 15:37:00 +01:00
const extensions = [
'EXE',
'PIF',
'APPLICATION',
'GADGET',
'MSI',
'MSP',
'COM',
'SCR',
'HTA',
'CPL',
'MSC',
'JAR',
'BAT',
'CMD',
'VB',
'VBS',
'VBE',
'JS',
'JSE',
'WS',
'WSF',
'WSC',
'WSH',
'PS1',
'PS1XML',
'PS2',
'PS2XML',
'PSC1',
'PSC2',
'MSH',
'MSH1',
'MSH2',
'MSHXML',
'MSH1XML',
'MSH2XML',
'SCF',
'LNK',
'INF',
'REG',
'PDF',
'DOC',
'XLS',
'PPT',
'DOCM',
'DOTM',
'XLSM',
'XLTM',
'XLAM',
'PPTM',
'POTM',
'PPAM',
'PPSM',
'SLDM',
'RAR',
'TAR',
'ZIP',
'GZ',
2015-07-09 23:01:43 +01:00
];
function getExtension(filename) {
const i = filename.lastIndexOf('.');
return (i < 0) ? '' : filename.substr(i + 1);
2015-08-23 22:12:32 +01:00
}
2015-07-09 23:01:43 +01:00
2015-08-30 21:15:31 +02:00
export default function* (file) {
if (extensions.indexOf(getExtension(file.file_name.toUpperCase())) < 0) {
return false;
}
const result = yield virustotal.getFileReport(file.md5);
return {
2016-08-07 14:38:05 +01:00
positive: result.positives >= 5,
2016-06-06 15:37:00 +01:00
result,
2015-08-30 21:15:31 +02:00
};
2015-08-23 22:12:32 +01:00
}