Форум сайта python.su
0
Есть два стула, на одном сети точёные, на другом питоны др0чёные, сесть надо на оба. На диплом (я ибшник) заставили для практики написать программу на подобии антивируса, но очень примитивного, я примерно представлю, что нужно, но реализовать не могу, так как куратор кинул меня 1 на 1 с питоном, а я не кодер ни в одном из существующих измерений.
Дано:
Есть шлюз на CentOS7, он держит за собой сетку, в которой есть некие конфиденциальные документы. Есть школьник, который выцарапал этот документ, спрятал в картинку (rarjpg) и хочет отправить в облако из этой сети.
Вопрос:
Что нужно написать на питоне, чтобы поймать на шлюзе картинку с подарком внутри?
Шлюз - единственный доступ из сети в интернеты поганые, работает как виртуальный коммутатор с помощью iptablesов.
Я 8ысрал идею о сканере кода элемента на поиск защищаемого документа, но не знаю, как это реализовать, помочь мне больше некому.
Спасите.
Офлайн
186
> Я 8ысрал идею о сканере кода элемента на поиск защищаемого документа, но не знаю, как это реализовать
Идею в студию!
P.S. Но только стулья тащить не надо.
Офлайн
0
RodegastНу, тип поиск сигнатуры защищаемого элемента внутри раржпега, ведь единственный путь в инетик - шлюз на кентосе, значит этот шлюз должен просканить передаваемую инфу на предмет кода защищаемого документа. Реально?
> Я 8ысрал идею о сканере кода элемента на поиск защищаемого документа, но не знаю, как это реализоватьИдею в студию! P.S. Но только стулья тащить не надо.
Офлайн
186
Конечно реально. https://habrahabr.ru/sandbox/23379/
Офлайн
857
jinnoraЕсли так, то это должно быть что-то простое. А из простого - скорее всего, весь документ будет в исходном виде содержаться внутри файла. В идеале, значит, получается, что тебе надо читать такие файлы поблочно (rar-файлы бывают слишком большими для загрузки в память целиком) и искать начало искомого файла. И если оно найдено, то надо проверить, не образует ли дальнейшее содержимое весь исходный файл.
так как куратор кинул меня 1 на 1 с питоном, а я не кодер ни в одном из существующих измерений.
Офлайн
294
jinnorararjpg это по сути rar архив “приклееный” к jpg картинке/ Можно также приклеить к mp3 png gif и еще к чемуто…. Суть в том что программы для просмотра изображений анализируют формат картинки с начала файла,а конец обычно игнорируют. Архиватор же определяет архив по наличию сигнатуры, которая может находиться где-то в середине файла, так как в начале файла может находиться SFX-модуль архива, который фактически и является приклеенным распаковщиком. Сответвнно такие склеенные фалы открываються как просмотрищиком картинок так и архиватором.
Есть школьник, который выцарапал этот документ, спрятал в картинку (rarjpg)
[code python][/code]
Офлайн
0
PEHDOMОх, звучит разумно, это я себе и представлял, проблема в том, как это реализовать на питоне? Хотя голос с левого плеча говорит мне, что лучше писать в bash'e…
Офлайн
294
Тут проблема в другом, те же пакеты можно снифить tcpdump-ом на интерфейсе, гдето дже статейку читал как это сделать на пайтоне. Но вам вроде нужно не просо обнаружить факт передачт, но и пресечь его? Тоесть по сути вам нужно написать чтото типа http прокси, который будет принимать пакеты, смотреть их , если все ОК, передавать их дальше, иначе задерживать до “выяснения”.
Если верить гуглу существует достаточно релизаций проксей на пайтоне
https://www.google.com.ua/?gfe_rd=cr&ei=CrAcWYjnNqni8AfwypaoBg&gws_rd=ssl#q=http+proxy+python
Посмотрите какой попроще, и вам по сути нужно будет только допилить небольшой кусок по выявлению сигнатуры файла.
[code python][/code]
Отредактировано PEHDOM (Май 17, 2017 23:28:16)
Офлайн
72
RodegastА как во внешнем acl получить тело запроса? Я сходу не нашел способа.
Конечно реально. https://habrahabr.ru/sandbox/23379/
Офлайн
186
> А как во внешнем acl получить тело запроса? Я сходу не нашел способа.
Так Squid может передать скрипту запрос в виде параметра. В примере выше передаётся имя пользователя и адрес сайта, для других параметров нужно читать документацию. Т.е. адрес файла можно передавать как параметр, а потом просто открывать его питоном (или сначала закачивать, а потом открывать) и делать с ним что угодно.
Офлайн