OwlCyberSecurity - MANAGER
Edit File: generic_sensor.cpython-311.opt-1.pyc
� ����N�6ho�����������������������*����d�Z�ddlZddlZddlZddlZddlZddlmZ�ddlm Z �ddl mZmZ�ddl mZ�ddlmZ�ddlmZ�dd lmZ�dd lmZ�ddlmZ�ddlmZ�dd lmZ��ee�������������ee������������cZZ�G�d��dej ��������������������Z �G�d��de������������Z!dS�)u��� This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. Copyright © 2019 Cloud Linux Software Inc. This software is also available under ImunifyAV commercial license, see <https://www.imunify360.com/legal/eula> Generic Sensor plugin - Creates listening unix domain socket on config.GenericSensor.SOCKET_PATH - Expects alert data formatted as �����N)� getLogger)�MSGS_WITHOUT_IP)� SimpleRpc�GENERIC_SENSOR_SOCKET_PATH)�files)�MessageType)�Sensor)�g)�getNetworkLogger)�RpcServerAV)�Scope)� LineBufferc������������ �������������e�Zd�Zej��������ej��������ej��������ej��������ej��������ej ��������ej ��������ej��������d�Zd��Z d��Zd��Zd��Zd��Zd��ZdS�) �Protocol)�NOOP�MALWARE_SCAN�MALWARE_SCAN_TASK�MALWARE_SCAN_COMPLETE�MALWARE_CLEAN_COMPLETE�MALWARE_RESTORE_COMPLETE�MALWARE_CHECK_DETACHED_SCANS�MALWARE_SEND_FILESc������������������V�����||�_���������||�_��������t������������������������|�_��������d�|�_��������d�S��N)�_loop�_sinkr����_line_buffer� transport)�self�loop�sink�_s��� �P/opt/imunify360/venv/lib/python3.11/site-packages/imav/plugins/generic_sensor.py�__init__zProtocol.__init__B���s'�������� ��� �&�L�L������������c������������������H�����||�_���������t�������������������������������d�������������d�S�)NzConnection made�r����network_logger�debug�r���r���s��� r#����connection_madezProtocol.connection_madeH���s$������"������.�/�/�/�/�/r%���c����������������������|������������������������������������}|�����������������������������������st�������������������������������d|�������������d�S�|�j�����������������������������|�������������|�j��������D�]s}|rot�������������������������������d���������������������|�������������������������|�� ��������������������|������������}|r+t����������j ����������������������|d<���|����������������������|��������������td�S�)NzEmpty message received <%s>zdata_received: {!r}� timestamp)�decode�strip�logger�errorr����appendr(���r)����format� _parse_msg�time�_process_msg)r����data�msgs�msg�tokenss��� r#���� data_receivedzProtocol.data_receivedL���s��������{�{�}�}���z�z�|�|�� ��L�L�6��=�=�=��F��� � ��&�&�&��$�� .�� .�C��� .��$�$�%:�%A�%A�#�%F�%F�G�G�G�����-�-����.�*.�)�+�+�F�;�'��%�%�f�-�-�-�� .�� .r%���c����������������������� �t����������j��������|������������S�#�t�����������j��������$�r,�t�������������������������������dt����������|�������������������������Y�d�S�w�xY�w)Nz#data_received(%s): unable to decode)�json�loads�JSONDecodeErrorr0���� exception�repr)r���r9���s��� r#���r4���zProtocol._parse_msg[���s^������ O��:�c�?�?�"���#�� O�� O�� O����B�D��I�I�N�N�N�N�N�N� O���s������7A�Ac������������������V���� �|d���������}|�j���������|���������}nN#�t����������$�rA}t�������������������������������dt ����������|������������t ����������|�������������������������Y�d�}~d�S�d�}~ww�xY�w|dk����rd��|d���������D���������������|d<����nk|dk����rt�������������������������������d��������������nI|dv�r)|�j��������|d <���t�������������������������������d |�����������������n|dv�rt�������������������������������d |����������������n�|dk����r� �t����������j��������|d ���������������������}|�j ��������� ��������������������|�j������������������������������||d ���������|�������������������������������������nE#�t����������j ��������$�r3}t�������������������������������d|t����������|�������������������������Y�d�}~nd�}~ww�xY�wd�S�|���������������������d������������s:|t ����������vr1t�������������������������������d|���������������������d������������|�������������d�S�|�j ��������� ��������������������|�j������������������������������||�������������������������������������d�S�)N�methodz1data_received(%s): Wrong or missing 'method' [%s]r���c������������������Z�����g�|�](}t����������j��������t����������j��������|��������������������������)S���)�os�fsdecode�base64� b64decode)�.0�fs��� r#���� <listcomp>z)Protocol._process_msg.<locals>.<listcomp>o���s:�������"��"��"�56���F�,�Q�/�/�0�0�"��"��"r%����filelist�SYNCLISTzReceived test SynclistResponse)�IP_LISTS_UPDATE�BLOCKED_PORT_UPDATE�BLOCKED_PORT_IP_UPDATE�HEALTHr���z Received )�WHITELIST_CACHE_UPDATE�IPSET_UPDATE�UPDATE_RULES�UPDATE_CUSTOM_LISTS�FILES_UPDATE� files_typezError during processing %s: %s�attackers_ipz@Method type is %s but empty or no <attackers_ip> in message <%s>)�METHOD2MSGTYPE�KeyErrorr0���r1���rA����infor���r����Indexr����create_taskr����process_message�IntegrityError�str�getr���)r���r:���rC����msgtype�e�indexr1���s��� r#���r6���zProtocol._process_msga���s������ ��H�%�F��)�&�1�G�G���� �� �� ��L�L�C��V����Q��� �� �� � � �F�F�F�F�F����� ������(�(�(�"��"�:@��:L�"��"��"�F�:�����z� !� !��K�K�8�9�9�9�9� �� �� �� ��#'�.�F�;���K�K�,�F�,�,�-�-�-�-� �� �� �� �� �K�K�,�F�,�,�-�-�-�-� �~� %� %� ���F�<�$8�9�9���� �&�&��J�.�.����|� 4�e�<�<��������������'�� �� �� ����4�f�c�%�j�j�������������������� ����� �F����N�+�+�� ��o�0M�0M��L�L�"�� � �8�$�$�� �� �� �� �F�� ���t�z�9�9�'�'�&�/�/�J�J�K�K�K�K�Ks,������ A#�6A�A#�;E��F�')F�Fc������������������H�����d�|�_���������t�������������������������������d�������������d�S�)N�Disconnectedr'���r*���s��� r#����connection_lostzProtocol.connection_lost����s#������������^�,�,�,�,�,r%���N)�__name__� __module__�__qualname__r����Noop�MalwareScan�MalwareScanTask�MalwareScanComplete�MalwareCleanComplete�MalwareRestoreComplete�CheckDetachedScans�MalwareSendFilesrZ���r$���r+���r;���r4���r6���rh���rE���r%���r#���r���r���6���s���������������� �#�/�(�8�!,�!@�"-�"B�$/�$F�(3�(F�)�:� �� �N������0��0��0� .�� .�� .�O��O��O�8L��8L��8L�t-��-��-��-��-r%���r���c��������������������*�����e�Zd�ZeZeZej��������Z d��Z dS�)� GenericSensorc�������������������������K����t�����������j��������rG�G���fd�dt����������������������}|�������������������������������������d�{V���t����������_��������t����������j��������S�t ����������j��������t����������j��������� ����������������������j ��������������������d��������������t����������j�������������������������������j ��������������������rt ����������j����������j ����������������������� ������������������������fd���j ����������������������d�{V���t����������_��������t����������j��������S�)Nc��������������������,������e�Zd�Z��j��������Z��j��������ZdS�)�8GenericSensor.create_sensor.<locals>.GenericSensorSocketN)ri���rj���rk����SOCKET_PATH�PROTOCOL_CLASS)r���s����r#����GenericSensorSocketrx�������s���������������"�.��!%�!4���r%���r{���T)�exist_okc�������������������0��������������������������������������������S�r���)rz���)r ���r���r!���s������r#����<lambda>z-GenericSensor.create_sensor.<locals>.<lambda>����s��������+�+�D�$�7�7��r%���)r����SOCKET_ACTIVATIONr����creater ���� sensor_serverrF����makedirs�path�dirnamery����exists�unlink�create_unix_server)r���r ���r!���r{���s���``` r#���� create_sensorzGenericSensor.create_sensor����s%�������������&�� #� 5�� 5�� 5�� 5�� 5�� 5�� 5�k�� 5�� 5�� 5��%8�$>�$>�t�T�$J�$J�J�J�J�J�J�J�A�O��?�"�� �K������(8�9�9�D�I�I�I�I��w�~�~�d�.�/�/�� ,�� �$�*�+�+�+�$(�$;�$;�7�7�7�7�7�7��9I�%��%�������������A�O���?�"r%���N)ri���rj���rk���r���ry���r���rz���r ����AV�SCOPEr����rE���r%���r#���ru���ru�������s4��������������,�K��N��H�E�#��#��#��#��#r%���ru���)"�__doc__�asynciorH���r=���rF���r5����loggingr����imav.contracts.messagesr���� defence360agent.contracts.configr���r����defence360agentr����"defence360agent.contracts.messagesr����!defence360agent.contracts.pluginsr ����&defence360agent.internals.global_scoper ���� defence360agent.internals.loggerr����defence360agent.simple_rpcr����defence360agent.utilsr ����defence360agent.utils.bufferr���ri���r0���r(���r���ru���rE���r%���r#����<module>r�������s��������:������ � � � ������� � � � �������������������3��3��3��3��3��3�����������������"��!��!��!��!��!��:��:��:��:��:��:��4��4��4��4��4��4��4��4��4��4��4��4��=��=��=��=��=��=��2��2��2��2��2��2��'��'��'��'��'��'��3��3��3��3��3��3�"��8�,�,�.>�.>�x�.H�.H�����g-��g-��g-��g-��g-�w���g-��g-��g-�T#��#��#��#��#�F��#��#��#��#��#r%���