Учебники

Python Forensics — Сетевая криминалистика

Сценарий современных сетевых сред таков, что расследование может быть сопряжено с рядом трудностей. Это может произойти независимо от того, реагируете ли вы на поддержку нарушения, исследуете инсайдерские действия, выполняете оценки, связанные с уязвимостью, или проверяете соответствие нормативным требованиям.

Концепция сетевого программирования

Следующие определения используются в сетевом программировании.

  • Клиент — Клиент является частью клиент-серверной архитектуры сетевого программирования, которая работает на персональном компьютере и рабочей станции.

  • Сервер — сервер является частью клиент-серверной архитектуры, которая предоставляет услуги другим компьютерным программам на том же или других компьютерах.

  • WebSockets — WebSockets предоставляют протокол между клиентом и сервером, который работает через постоянное TCP-соединение. Благодаря этому двунаправленные сообщения могут передаваться между сокетами TCP (одновременно).

Клиент — Клиент является частью клиент-серверной архитектуры сетевого программирования, которая работает на персональном компьютере и рабочей станции.

Сервер — сервер является частью клиент-серверной архитектуры, которая предоставляет услуги другим компьютерным программам на том же или других компьютерах.

WebSockets — WebSockets предоставляют протокол между клиентом и сервером, который работает через постоянное TCP-соединение. Благодаря этому двунаправленные сообщения могут передаваться между сокетами TCP (одновременно).

WebSockets следуют за многими другими технологиями, которые позволяют серверам отправлять информацию клиенту. Помимо рукопожатия заголовка обновления, WebSockets не зависит от HTTP.

Сетевое программирование

Эти протоколы используются для проверки информации, которую отправляют или получают сторонние пользователи. Поскольку шифрование является одним из методов, используемых для защиты сообщений, также важно защитить канал, по которому сообщения были переданы.

Рассмотрим следующую программу на Python, которую клиент использует для рукопожатия .

пример

# 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, прослушивают номер хоста. Первоначально клиент отправляет запрос на сервер в отношении данных, отправленных на номер хоста, и сервер принимает запрос и немедленно отправляет ответ. Таким образом, мы можем иметь безопасный канал связи.