Форум сайта python.su
Есть два стула, на одном сети точёные, на другом питоны др0чёные, сесть надо на оба. На диплом (я ибшник) заставили для практики написать программу на подобии антивируса, но очень примитивного, я примерно представлю, что нужно, но реализовать не могу, так как куратор кинул меня 1 на 1 с питоном, а я не кодер ни в одном из существующих измерений.
Дано:
Есть шлюз на CentOS7, он держит за собой сетку, в которой есть некие конфиденциальные документы. Есть школьник, который выцарапал этот документ, спрятал в картинку (rarjpg) и хочет отправить в облако из этой сети.
Вопрос:
Что нужно написать на питоне, чтобы поймать на шлюзе картинку с подарком внутри?
Шлюз - единственный доступ из сети в интернеты поганые, работает как виртуальный коммутатор с помощью iptablesов.
Я 8ысрал идею о сканере кода элемента на поиск защищаемого документа, но не знаю, как это реализовать, помочь мне больше некому.
Спасите.
Офлайн
> Я 8ысрал идею о сканере кода элемента на поиск защищаемого документа, но не знаю, как это реализовать
Идею в студию!
P.S. Но только стулья тащить не надо.
Онлайн
RodegastНу, тип поиск сигнатуры защищаемого элемента внутри раржпега, ведь единственный путь в инетик - шлюз на кентосе, значит этот шлюз должен просканить передаваемую инфу на предмет кода защищаемого документа. Реально?
> Я 8ысрал идею о сканере кода элемента на поиск защищаемого документа, но не знаю, как это реализоватьИдею в студию! P.S. Но только стулья тащить не надо.
Офлайн
Конечно реально. https://habrahabr.ru/sandbox/23379/
Онлайн
jinnoraЕсли так, то это должно быть что-то простое. А из простого - скорее всего, весь документ будет в исходном виде содержаться внутри файла. В идеале, значит, получается, что тебе надо читать такие файлы поблочно (rar-файлы бывают слишком большими для загрузки в память целиком) и искать начало искомого файла. И если оно найдено, то надо проверить, не образует ли дальнейшее содержимое весь исходный файл.
так как куратор кинул меня 1 на 1 с питоном, а я не кодер ни в одном из существующих измерений.
Офлайн
jinnorararjpg это по сути rar архив “приклееный” к jpg картинке/ Можно также приклеить к mp3 png gif и еще к чемуто…. Суть в том что программы для просмотра изображений анализируют формат картинки с начала файла,а конец обычно игнорируют. Архиватор же определяет архив по наличию сигнатуры, которая может находиться где-то в середине файла, так как в начале файла может находиться SFX-модуль архива, который фактически и является приклеенным распаковщиком. Сответвнно такие склеенные фалы открываються как просмотрищиком картинок так и архиватором.
Есть школьник, который выцарапал этот документ, спрятал в картинку (rarjpg)
[code python][/code]
Офлайн
PEHDOMОх, звучит разумно, это я себе и представлял, проблема в том, как это реализовать на питоне? Хотя голос с левого плеча говорит мне, что лучше писать в bash'e…
Офлайн
Тут проблема в другом, те же пакеты можно снифить 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)
Офлайн
RodegastА как во внешнем acl получить тело запроса? Я сходу не нашел способа.
Конечно реально. https://habrahabr.ru/sandbox/23379/
Офлайн
> А как во внешнем acl получить тело запроса? Я сходу не нашел способа.
Так Squid может передать скрипту запрос в виде параметра. В примере выше передаётся имя пользователя и адрес сайта, для других параметров нужно читать документацию. Т.е. адрес файла можно передавать как параметр, а потом просто открывать его питоном (или сначала закачивать, а потом открывать) и делать с ним что угодно.
Онлайн