Найти - Пользователи
Полная версия: Это жесть (я вас предупредил)
Начало » Python для экспертов » Это жесть (я вас предупредил)
1 2
jinnora
Есть два стула, на одном сети точёные, на другом питоны др0чёные, сесть надо на оба. На диплом (я ибшник) заставили для практики написать программу на подобии антивируса, но очень примитивного, я примерно представлю, что нужно, но реализовать не могу, так как куратор кинул меня 1 на 1 с питоном, а я не кодер ни в одном из существующих измерений.
Дано:
Есть шлюз на CentOS7, он держит за собой сетку, в которой есть некие конфиденциальные документы. Есть школьник, который выцарапал этот документ, спрятал в картинку (rarjpg) и хочет отправить в облако из этой сети.
Вопрос:
Что нужно написать на питоне, чтобы поймать на шлюзе картинку с подарком внутри?
Шлюз - единственный доступ из сети в интернеты поганые, работает как виртуальный коммутатор с помощью iptablesов.
Я 8ысрал идею о сканере кода элемента на поиск защищаемого документа, но не знаю, как это реализовать, помочь мне больше некому.
Спасите.

Rodegast
> Я 8ысрал идею о сканере кода элемента на поиск защищаемого документа, но не знаю, как это реализовать

Идею в студию!
P.S. Но только стулья тащить не надо.
jinnora
Rodegast
> Я 8ысрал идею о сканере кода элемента на поиск защищаемого документа, но не знаю, как это реализоватьИдею в студию! P.S. Но только стулья тащить не надо.
Ну, тип поиск сигнатуры защищаемого элемента внутри раржпега, ведь единственный путь в инетик - шлюз на кентосе, значит этот шлюз должен просканить передаваемую инфу на предмет кода защищаемого документа. Реально?
Rodegast
Конечно реально. https://habrahabr.ru/sandbox/23379/
py.user.next
jinnora
так как куратор кинул меня 1 на 1 с питоном, а я не кодер ни в одном из существующих измерений.
Если так, то это должно быть что-то простое. А из простого - скорее всего, весь документ будет в исходном виде содержаться внутри файла. В идеале, значит, получается, что тебе надо читать такие файлы поблочно (rar-файлы бывают слишком большими для загрузки в память целиком) и искать начало искомого файла. И если оно найдено, то надо проверить, не образует ли дальнейшее содержимое весь исходный файл.
Но в реале это всё не будет работать, потому что в реальной жизни не всё так просто. Спрятать содержимое файла от подобных сканеров легко.
PEHDOM
jinnora
Есть школьник, который выцарапал этот документ, спрятал в картинку (rarjpg)
rarjpg это по сути rar архив “приклееный” к jpg картинке/ Можно также приклеить к mp3 png gif и еще к чемуто…. Суть в том что программы для просмотра изображений анализируют формат картинки с начала файла,а конец обычно игнорируют. Архиватор же определяет архив по наличию сигнатуры, которая может находиться где-то в середине файла, так как в начале файла может находиться SFX-модуль архива, который фактически и является приклеенным распаковщиком. Сответвнно такие склеенные фалы открываються как просмотрищиком картинок так и архиватором.

Тебе нужно просто искать сигнатуру рар архива (52 61 72 21) в проходящих через шлюз картинках. Если нашел, записывай в файл все что начинаеться с 52 61 72 21 и до конца, и скармливай его unrar-у он сам уже разбереться архив это или так случайно вышло. Если таки архив оно его распакует, вычисляй хеш распакованого файла и сравнивай с хешем файла котороый нужно перехватить. Или если у тебя в качесвте образца уже готовый архив, то просто сравнивай.
jinnora
PEHDOM
Ох, звучит разумно, это я себе и представлял, проблема в том, как это реализовать на питоне? Хотя голос с левого плеча говорит мне, что лучше писать в bash'e…
PEHDOM
Тут проблема в другом, те же пакеты можно снифить tcpdump-ом на интерфейсе, гдето дже статейку читал как это сделать на пайтоне. Но вам вроде нужно не просо обнаружить факт передачт, но и пресечь его? Тоесть по сути вам нужно написать чтото типа http прокси, который будет принимать пакеты, смотреть их , если все ОК, передавать их дальше, иначе задерживать до “выяснения”.
Если верить гуглу существует достаточно релизаций проксей на пайтоне
https://www.google.com.ua/?gfe_rd=cr&ei=CrAcWYjnNqni8AfwypaoBg&gws_rd=ssl#q=http+proxy+python
Посмотрите какой попроще, и вам по сути нужно будет только допилить небольшой кусок по выявлению сигнатуры файла.
PooH
Rodegast
Конечно реально. https://habrahabr.ru/sandbox/23379/
А как во внешнем acl получить тело запроса? Я сходу не нашел способа.
Rodegast
> А как во внешнем acl получить тело запроса? Я сходу не нашел способа.

Так Squid может передать скрипту запрос в виде параметра. В примере выше передаётся имя пользователя и адрес сайта, для других параметров нужно читать документацию. Т.е. адрес файла можно передавать как параметр, а потом просто открывать его питоном (или сначала закачивать, а потом открывать) и делать с ним что угодно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB