S@52 dZddlmZddlmZmZmZddlmZm Z m Z m Z m Z m Z mZmZmZmZddlmZddlmZmZGdde ZGd d e ZGd d e ZGd de ZGddee eZGddee eeZGddee ZGdde ZGdde ZGddeZ GddeZ!GddeZ"Gdd eZ#Gd!d"eZ$Gd#d$e eZ%Gd%d&e eZ&Gd'd(e eZ'Gd)d*e Z(Gd+d,ee eeZ)Gd-d.eZ*Gd/d0e Z+Gd1d2e Z,Gd3d4e Z-Gd5d6e Z.Gd7d8e Z/Gd9d:e Z0Gd;de Z2Gd?d@ee eZ3GdAdBeZ4GdCdDe Z5GdEdFe Z6GdGdHee eZ7GdIdJeZ8GdKdLee eZ9GdMdNeZ:GdOdPe eZ;dQe e5eeeeeee&e e f DZ. Copyright © 2019 Cloud Linux Software Inc. This software is also available under ImunifyAV commercial license, see )deepcopy)ListOptionalSet) AccumulatableAck FilesUpdatedLockableMessageNoopReceived ReportableShortenReprListMixin Splittable)QueuedScanState)MalwareDatabaseHitInfoMalwareDatabaseScanReportceZdZdZdZdS)MalwareScanTaskz/ Creates task to scan file for malware MALWARE_SCAN_TASKN__name__ __module__ __qualname____doc__DEFAULT_METHODL/opt/imunify360/venv/lib/python3.11/site-packages/imav/contracts/messages.pyrr,s)NNNrrceZdZdZdS)MalwareScanCompleteMALWARE_SCAN_COMPLETENrrrrrrrr!r!4s,NNNrr!ceZdZdZdS)MalwareCleanCompleteMALWARE_CLEAN_COMPLETENr#rrrr%r%8s-NNNrr%ceZdZdZdS)MalwareRestoreCompleteMALWARE_RESTORE_COMPLETENr#rrrr(r(</NNNrr(c"eZdZdZfdZxZS)MalwareScanSummaryMALWARE_SCAN_SUMMARYcVd|D}tj|d|i|dS)Nc"g|] }d|di S)summaryr.0items r z/MalwareScanSummary.__init__..Es!@@@$)T)_-@@@ritemssuper__init__selfr5argskwargs __class__s rr8zMalwareScanSummary.__init__Cs=@@%@@@$6e6v66666r)rrrrr8 __classcell__r=s@rr,r,@s=+N777777777rr,c.eZdZdZdZdZdZfdZxZS)MalwareScanResultMALWARE_SCAN_RESULTresultscVd|D}tj|d|i|dS)Nchg|]/}d|dD|dd0S)c"i|] \}}|dv || S)>r;typescanidr)r2keyvalues r z9MalwareScanResult.__init__...Us4"U888888rr0rE)r0rE)r5r1s rr4z.MalwareScanResult.__init__..Rsd    &*9o&;&;&=&=  ?      rr5r6r9s rr8zMalwareScanResult.__init__QsL        $6e6v66666r) rrrr LIST_SIZE BATCH_SIZE BATCH_FIELDr8r>r?s@rrArAIsL*NIJK777777777rrAc*eZdZdZdZeefZdefdZ dS) MalwareScanz+ Represents results of single scan MALWARE_SCANreturnc4|d}|duS)NrE)get)r:rEs r do_accumulatezMalwareScan.do_accumulatejs((9%%d""rN) rrrrrr,rA LIST_CLASSboolrWrrrrRrRbsK$N$&78J#t######rrRceZdZdZdZdS)MalwareMRSUploadzk Used to isolate a possibly long running uploading to MRS from the other MalwareScan handlers. MALWARE_MRS_UPLOADNrrrrr[r[os *NNNrr[ceZdZdZdS)MalwareScanQueueMALWARE_SCAN_QUEUENr#rrrr^r^x)NNNrr^ceZdZfdZxZS)MalwareScanQueuePutcNt||dS)N)paths scan_argsr6)r:rdrer=s rr8zMalwareScanQueuePut.__init__}s& u :::::rrrrr8r>r?s@rrbrb|s8;;;;;;;;;rrbceZdZfdZxZS)MalwareScanQueueRemovecLt|dS)N)scan_idsr6)r:rjr=s rr8zMalwareScanQueueRemove.__init__s$ (+++++rrfr?s@rrhrhs8,,,,,,,,,rrhceZdZfdZxZS)MalwareScanQueueRecheckcHtdSNr6r:r=s rr8z MalwareScanQueueRecheck.__init__ rrfr?s@rrlrl8rrlceZdZfdZxZS)MalwareScanQueueStopBackgroundcHtdSrnr6ros rr8z'MalwareScanQueueStopBackground.__init__rprrfr?s@rrsrsrqrrsc<eZdZddddeedeffdZxZS)MalwareScanQueueUpdateStatusNrjstatusrjrxcNt||dS)Nrwr6)r:rjrxr=s rr8z%MalwareScanQueueUpdateStatus.__init__s( (6:::::r)rrrrstrrr8r>r?s@rrvrvs`'+t;;;9;5D;;;;;;;;;;rrvc$eZdZdxZ\ZZZZdZdS)MalwareResponse)BLACKWHITEKNOWNUNKNOWNMALWARE_RESPONSEN) rrrTYPESr}r~rrrrrrr|r|s&+OOE (E5%'NNNrr|ceZdZdZdS)MalwareSendFilesMALWARE_SEND_FILESNr#rrrrrr`rrceZdZdZdS)MalwareRescanFilesMALWARE_RESCAN_FILESNr#rrrrr+NNNrrc4eZdZdZdZddddddfd ZxZS)MalwareCleanupTaskz' Creates task to cleanup files MALWARE_CLEANUP_TASKN) standard_onlycause initiatorscan_id post_actioncVt||||||dS)N)hitsrrrrrr6)r:rrrrrrr=s rr8zMalwareCleanupTask.__init__sB '#      r)rrrrrr8r>r?s@rrrsd,N            rrcPeZdZdZdZdZdZedee ffd Z xZ S)MalwareCleanupListMALWARE_CLEANUP_LISTrCrDrmessagesc#|Kt|D]}t|di}|rkt |t rVd|dgD}||z }|D]}||||d<|VdS)Nresultch|] }|j Sr) orig_file)r2hits r z2MalwareCleanupList._split_items..s'!!!&)CM!!!rr)r7 _split_itemsrrV isinstancedictkeyspop)clsrmessager current_paths extra_pathspathr=s rrzMalwareCleanupList._split_itemssww++H55  Ggkk(B7788F +*VT22 +!!-4[[-D-D!!! %kkmmm; '%%DJJt$$$$$*!MMMM  r) rrrrrNrOrP classmethodrrrr>r?s@rrrsi,NIJK D$7     [     rrceZdZdZdZeZdS)MalwareCleanupz. Represents results of single cleanup MALWARE_CLEANUPN)rrrrrrrXrrrrrs$'N#JJJrrceZdZdZdS)MalwareIgnorePathUpdatedzESignal through a message bus that MalwareIgnorePath has been updated.NrrrrrrrrrsOODrrceZdZUdZeeeed<eed<eed<eeed<eeed<eed<eed<eed <eed <e e ed <eeed <d d d d dddddeeedeededeededed ed ed ee e deed eeffdZ de fdZ dZdZdZxZS)MalwareDatabaseScanz1 Represents results of a single MDS scan r;rrrIerrorstarted completedtotal_resourcestotal_maliciousrrrN)rrrrrrrc `t||||||||| | |  dS)N) r;rrrIrrrrrrrr6) r:r;rrrIrrrrrrrr=s rr8zMalwareDatabaseScan.__init__sQ ++  rreportcl||j|j|j|j|jdS)N)rrrrr)updaterrrrr)r:rs rupdate_with_reportz&MalwareDatabaseScan.update_with_reportsC N&"2"2      rc.||SN)r)r)r:rs rupdate_with_errorz%MalwareDatabaseScan.update_with_errors{{{)))rctrnNotImplementedError)r:rKrLs r __setitem__zMalwareDatabaseScan.__setitem__"!!rctrnr)r:rKs r __delitem__zMalwareDatabaseScan.__delitem__%rr)rrrrrrrz__annotations__intrrr8rrrrrr>r?s@rrrs 49  III LLL 3- C= LLLNNN $ %%%%}  6:##'   tCy! sm    sm      s123 } C=      : )B    ***""""""""""rrceZdZdZdS)MalwareDatabaseRestorez4 Represents results of a single MDS restore Nrrrrrr)srrc\eZdZUdZeed<eed<edzed<dedededzffd ZxZS)MalwareDatabaseRestoreTaskz. Represents a single MDS restore task rapp_nameN signature_idcPt|||dS)N)rrrr6)r:rrrr=s rr8z#MalwareDatabaseRestoreTask.__init__8s5 |      rrrrrrzrr8r>r?s@rrr/s IIIMMM* S C sTz          rrceZdZUdZeeed<eeed< ddeedeedeeffd Z xZ S)MalwareDatabaseCleanupz4 Represents results of a single mds cleanup succeededfailedNrcPt|||dS)N)rrrr6)r:rrrr=s rr8zMalwareDatabaseCleanup.__init__Fs9       rrn) rrrrrrrrrzr8r>r?s@rrr>s)**** & '''' "&   -.  *+  #           rrc4eZdZUdZeed<deffd ZxZS)MalwareDatabaseCleanupFailedz* Signifies an MDS cleanup failure rcLt|dSrr6r:rr=s rr8z%MalwareDatabaseCleanupFailed.__init__Z$ u%%%%%rrr?s@rrrS[ JJJ&&&&&&&&&&&rrc4eZdZUdZeed<deffd ZxZS)MalwareDatabaseRestoreFailedz* Signifies an MDS restore failure rcLt|dSrr6rs rr8z%MalwareDatabaseRestoreFailed.__init__errrr?s@rrr^rrrceZdZdZdS)RefreshImunifyPatchSubscriptionz-Refresh Imunify Patch user subscription info.Nrrrrrris7777rrceZdZdZdS)MalwareCleanupRevertListMALWARE_CLEANUP_REVERT_LISTNr#rrrrrm2NNNrrceZdZeZdS)MalwareCleanupRevertN)rrrrrXrrrrrqs)JJJrrceZdZdZdS)CheckDetachedScansMALWARE_CHECK_DETACHED_SCANSNr#rrrrrus3NNNrrceZdZdZdS)VulnerabilityPatchTaskVULNERABILITY_PATCH_TASKNr#rrrrryr*rrceZdZdZdS)VulnerabilityPatchListrNr#rrrrr}rrrceZdZdZeZdS)VulnerabilityPatchrN)rrrrrrXrrrrrs&N'JJJrrceZdZdZdS)VulnerabilityPatchRevertListrNr#rrrrrrrrceZdZeZdS)VulnerabilityPatchRevertN)rrrrrXrrrrrs-JJJrrceZdZdZdS)VulnerabilityPatchFailedCLEANUP_FAILEDNr#rrrrrs%NNNrrcg|] }|j Sr)r)r2msgs rr4r4s+ rN)=rcopyrtypingrrr"defence360agent.contracts.messagesrrr r r r r rrrimav.malwarelib.configrimav.malwarelib.scan.mds.reportrrrr!r%r(r,rArRr[r^rbrhrlrsrvr|rrrrrrrrrrrrrrrrrrrrrrMSGS_WITHOUT_IPrrrrs*&&&&&&&&&&                        322222 )))))g)))-----'---.....7...00000W00077777-w 77777777,gz:7772 # # # # #- # # #*****w********w***;;;;;*;;; ,,,,,-,,, . %5 ;;;;;#3;;;(((((gx((( *****w***,,,,,(,,,        6':z4$$$$$]$$$     w   >">">">">"'>">">"BW               W   *&&&&&7&&&&&&&&7&&&88888g888333333Wj333*****=***4444444400000W000,,,,,17J,,,(((((((( 33333#7*333.....}...&&&&&w &&&   r