mirror of https://github.com/CIRCL/AIL-framework
				
				
				
			
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
| #!/usr/bin/env python3
 | |
| # -*-coding:UTF-8 -*
 | |
| 
 | |
| """
 | |
| The D4_Client Module
 | |
| ============================
 | |
| 
 | |
| The D4_Client modules send all DNS records to a D4 Server.
 | |
| Data produced by D4 sensors are ingested into
 | |
| a Passive DNS server which can be queried later to search for the Passive DNS records.
 | |
| """
 | |
| 
 | |
| import os
 | |
| import sys
 | |
| import time
 | |
| from pubsublogger import publisher
 | |
| sys.path.append(os.environ['AIL_BIN'])
 | |
| from Helper import Process
 | |
| 
 | |
| sys.path.append(os.path.join(os.environ['AIL_BIN'], 'lib'))
 | |
| import ConfigLoader
 | |
| import d4
 | |
| 
 | |
| # # TODO: lauch me in core screen
 | |
| # # TODO: check if already launched in core screen
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     publisher.port = 6380
 | |
|     publisher.channel = "Script"
 | |
| 
 | |
|     config_section = 'D4_client'
 | |
|     p = Process(config_section)
 | |
|     publisher.info("""D4_client is Running""")
 | |
| 
 | |
|     last_refresh = time.time()
 | |
|     d4_client = d4.create_d4_client()
 | |
| 
 | |
|     while True:
 | |
|         if last_refresh < d4.get_config_last_update_time():
 | |
|             d4_client = d4.create_d4_client()
 | |
|             last_refresh = time.time()
 | |
|             print('D4 Client: config updated')
 | |
| 
 | |
|         dns_record = p.get_from_set()
 | |
|         if dns_record is None:
 | |
|             publisher.debug("Script D4_client is idling 1s")
 | |
|             time.sleep(1)
 | |
|             continue
 | |
| 
 | |
|         if d4_client:
 | |
|             # Send DNS Record to D4Server
 | |
|             d4_client.send_manual_data(dns_record)
 |