Python Forensics - Сетевая криминалистика
Сценарий современных сетевых сред таков, что исследование может быть сопряжено с рядом трудностей. Это может произойти независимо от того, реагируете ли вы на поддержку в случае нарушения, расследуете инсайдерскую деятельность, выполняете оценку уязвимости или проверяете соответствие нормативным требованиям.
Концепция сетевого программирования
Следующие определения используются в сетевом программировании.
Client - Клиент - это часть клиент-серверной архитектуры сетевого программирования, которая работает на персональном компьютере и рабочей станции.
Server - Сервер - это часть архитектуры клиент-сервер, которая предоставляет услуги другим компьютерным программам на том же или других компьютерах.
WebSockets- WebSockets обеспечивает протокол между клиентом и сервером, который работает через постоянное TCP-соединение. Благодаря этому двунаправленные сообщения могут передаваться между соединениями сокета TCP (одновременно).
WebSockets появились после многих других технологий, которые позволяют серверам отправлять информацию клиенту. Помимо подтверждения заголовка обновления, WebSockets не зависит от HTTP.
Эти протоколы используются для проверки информации, отправляемой или получаемой сторонними пользователями. Поскольку шифрование является одним из методов защиты сообщений, важно также защитить канал, по которому были переданы сообщения.
Рассмотрим следующую программу Python, которую клиент использует для handshaking.
пример
# client.py
import socket
# create a socket object
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# get local machine name
host = socket.gethostname()
port = 8080
# connection to hostname on the port.
s.connect((host, port))
# Receive no more than 1024 bytes
tm = s.recv(1024)
print("The client is waiting for connection")
s.close()
Вывод
Он выдаст следующий результат -
Сервер, принимающий запрос на канал связи, будет включать следующий сценарий.
# server.py
import socket
import time
# create a socket object
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# get local machine name
host = socket.gethostname()
port = 8080
# bind to the port
serversocket.bind((host, port))
# queue up to 5 requests
serversocket.listen(5)
while True:
# establish a connection
clientsocket,addr = serversocket.accept()
print("Got a connection from %s" % str(addr))
currentTime = time.ctime(time.time()) + "\r\n"
clientsocket.send(currentTime.encode('ascii'))
clientsocket.close()
Клиент и сервер, созданные с помощью программирования Python, слушают номер хоста. Первоначально клиент отправляет на сервер запрос относительно данных, отправленных в номере хоста, и сервер принимает запрос и немедленно отправляет ответ. Таким образом, у нас может быть безопасный канал связи.