-Поиск по дневнику

Поиск сообщений в rss_rss_hh_full

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 17.03.2011
Записей:
Комментариев:
Написано: 1

Habrahabr








Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.

Исходная информация - http://habrahabr.ru/rss/.
Данный дневник сформирован из открытого RSS-источника по адресу http://feeds.feedburner.com/xtmb/hh-full, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

[Обновить трансляцию]

[Перевод] О-о-очень долгожданный релиз Sublime Text 3.0

Среда, 13 Сентября 2017 г. 18:00 + в цитатник
l4l сегодня в 18:00 Разработка

О-о-очень долгожданный релиз Sublime Text 3.0

  • Перевод

Спустя долгие годы ожидания в beta и alpha релизах (а это около 3.5 лет) наконец-то вышел Sublime Text 3.0!


linux


Предисловие: Sublime Text — является комерческим (хотя никто и не заставляет покупать лицензию) графическим текстовым редактором под 3 основные десктопные платформы.


В сравнении с последней бетой, версия 3.0 привносит обновленную тему пользовательского интерфейса, новые цветовые схемы и новую иконку. Помимо этого улучшена подсветка синтаксиса, поддержка тачпада на Windows, поддержка тачбара на macOS и репозитории apt/yum/pacman для Linux.


Я хочу отметить некоторые отличия от Sublime Text 2, хотя это на удивление сложно: практически каждый аспект редактора так или иначе был улучшен, так что даже список основных изменений будет очень большим. Если хотите увидеть полный список изменений, команда подготовила отдельную страницу для этого.


Определенно, в 3 версии добавили огромные фичи, например: прыжок на определение (F12), новый движок для подсветки синтаксиса, новый UI и расширенное API. Однако различия повсюду ощущаются в мелочах, которые сложно выделить самодостаточные: проверка орфографии работает лучше, автоматический отступ стал делать правильные вещи чаще, перенос слов лучше обрабатывает исходный код, правильно поддерживаются мониторы с высоким DPI, а также переход к файлам (Goto Anything ctrl+p) стал умнее. Перечислять все нудно и долго, но отличия разительны.


Одна из особенностей, за которую я особенно горд, — это производительность редактора: он значительно быстрее предшественника во всех областях. Запуск быстре, быстрее открытие файлов, более эффективная прокрутка. Несмотря на то, что 3 версия гораздо больше, она, наоборот, кажется более компактной.

Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/337882/


Метки:  

Причуды Stream API

Среда, 13 Сентября 2017 г. 17:52 + в цитатник

Метки:  

[Из песочницы] Как написать хорошее решение для Highload Cup, но недостаточно хорошее чтобы выйти в топ

Среда, 13 Сентября 2017 г. 16:27 + в цитатник
rus_phantom сегодня в 16:27 Разработка

Как написать хорошее решение для Highload Cup, но недостаточно хорошее чтобы выйти в топ

На прошлой недели закончилось соревнование HighLoad Cup, идея которого заключалась в реализации HTTP сервера для сайта путешественников. О том как за 5 дней написать решение на Go, которое принесет 52 место в абсолютном зачете из 295, читайте под катом.


Описание задачи


Пользователь Afinogen в своей статье уже описывал условия конкурса, но для удобства я сжато повторюсь. Сервер должен реализовывать API для работы сайта путешественников и поддерживать сущности трех видов: путешественник (User), достопримечательность (Location) и посещение (Visit). API должно предоставлять возможность добавлять любые новые сущности в базу, получать их и обновлять, а также делать 2 операции над ними — получение средней оценки достопримечательности (avg) и получение мест, посещенных путешественником (visits). У каждой из этих операций так же есть набор фильтров, которые необходимо учитывать при формировании ответа. Так, например, API позволяет получить среднюю оценку оценку достопримечательности среди мужчин от 18 до 25 лет начиная с 1 апреля 2010 года. Это накладывает дополнительные сложности при реализации.


На всякий случай приведу краткое формальное описание API:


  • GET // для получения данных о сущности
  • POST // для обновления
  • POST //new для создания
  • GET /users//visits для получения списка посещений пользователем
  • GET /locations//avg для получения средней оценки достопримечательности

Как хранить данные


Самый первый вопрос который возникает у всех кто ознакомился с условием задачи — как хранить данные. Многие (как например я) сначала пытались использовать какую-нибудь базу с расчетом на большое количество данных, которые не поместятся в память и не городить костыли. Однако этот подход не давал высокое место в рейтинге. Дело в том что организаторы конкурса очень демократично подошли к размеру данных, поэтому даже без каких либо оптимизаций структуры хранения все данные без труда помещались в памяти. Всего в рейтинговом обстреле было около 1 млн путешественников, 100 тысяч достопримечательностей и 10 миллионов посещений, идентификаторы каждой сущности шли по порядку от 1. На первый взгляд объем может показаться большим, но если посмотреть на размер структур, которые можно использовать для хранения данных, а так же на размер строк в структурах, то можно увидеть что в среднем размеры не слишком большие. Сами структуры и размеры их полей я привел ниже:


type Visit struct {  // overall 40 bytes
    Id        int    // 8 bytes
    Location  int    // 8 bytes
    User      int    // 8 bytes
    VisitedAt int    // 8 bytes
    Mark      int    // 8 bytes
}

type User struct {    //overall 133 bytes
    Id        int       // 8 bytes
    Email     string    // 22 bytes + 16 bytes
    FirstName string    // 12 bytes + 16 bytes
    LastName  string    // 18 bytes + 16 bytes
    Gender    string    // 1 byte   + 16 bytes
    Birthdate int       // 8 bytes
}

type Location struct { // overall 105 bytes
    Id       int       // 8 bytes
    Place    string    // 11 bytes + 16 bytes
    Country  string    // 14 bytes + 16 bytes
    City     string    // 16 bytes + 16 bytes
    Distance int       // 8 bytes
}

Размеры string в структуре я указал в формате "средняя длинна строки" + "размер объекта string". Умножив средний размер каждой структуры на количество объектов получаем, что чисто для хранения данных нам нужно всего лишь примерно 518 МБ. Не там уж не много, при условии того что мы можем разгуляться аж на 4 ГБ.


Самое большое потребление памяти, как это не было бы странно на первый взгляд, происходит не при самом обстреле, а на этапе загрузки данных. Дело в том, что изначально все данные запакованы в .zip архив и в первые 10 минут серверу необходимо загрузить эти данные из архива для дальнейшей работы с ними. Нераспакованный архив весит 200 МБ, + 1.5 ГБ весят файлы после распаковки. Без аккуратной работы с данными и без более агрессивной настройки сборщика мусора загрузить все данные не получалось.


Второй момент, который был очень важен, но не все сразу его заметили — обстрелы сервера проходили так, что состояние гонки не могло получиться в принципе. Тестирование сервера проходило в 3 этапа: на первом этапе шли GET запросы, которые получали объекты и вызывали методы avg (получения средней оценки) и visits (получения посещений пользователем), вторым этапом данные обновлялись (на этом этапе были исключительно POST запросы на создание и обновление данных) и на последнем этапе опять шли GET запросы, только уже на новых данных и с большей нагрузкой. Из-за того что GET и POST запросы были жестко разделены, не было нужды использовать какие-либо примитивы синхронизации потоков.


Таким образом, если принять во внимание два эти момента, а так же вспомнить что id объектов каждой сущности шли по порядку начиная с 1, то в результате все данные можно хранить так:


type Database struct {
    usersArray     []*User
    locationsArray []*Location
    visitsArray    []*Visit
    usersMap       map[int]*User
    locationsMap   map[int]*Location
    visitsMap      map[int]*Visit
}

Все объекты, если хватает размера массива, помещаются в соответствующий типу массив. В случае, если id объекта был бы больше чем размер массива, он помещался бы в соответствующий словарь. Сейчас, зная что в финале данные абсолютно не поменялись, я понимаю что словари лишние, но тогда никаких гарантий этого не было.


Индексы


Довольно скоро стало понятно, что для быстрой реализации методов avg и visits необходимо хранить не только сами структуры User и Location, но и id посещений пользователя и достопримечательностей вместе с самими структурами соответственно. В результате я добавил поле Visits, представляющее собой обычный массив в эти две структуры, и таким образом смог быстро находит все структуры Visit, ассоциированные с этим пользователем/достопримечательностью.


В процессе тестирования я так же думал об использовании "container/list" из стандартной библиотеки, но знание устройства этого контейнера подсказывало мне что он всегда будет проигрывать и по скорости доступа к элементам, и по памяти. Его единственный плюс — возможность быстрого удаления/добавления в любую точку не сильно важен для этой задачи, так как соотношение количества посещений к пользователям примерно 10 к 1, то мы можем сделать предположение что контейнеры Visit в структурах Location и User будут примерно размером 10. А удалить элемент из начала массива размером 10 единиц не так уж и затратно на общем фоне и не является частой операцией. Что касается памяти, то ее потребление можно проиллюстрировать следующим кодом:


package main

import (
    "fmt"
    "runtime"
    "runtime/debug"
    "container/list"
)

func main() {
    debug.SetGCPercent(-1)
    runtime.GC()
    m := &runtime.MemStats{}
    runtime.ReadMemStats(m)
    before := m.Alloc

    for i:=0;i<1000;i++ {
        s := make([]int, 0)
        for j:=0;j<10;j++ {
            s = append(s, 0)
        }
    }
    runtime.ReadMemStats(m)
    fmt.Printf("Alloced for slices %0.2f KB\n", float64(m.Alloc - before)/1024.0)

    runtime.GC()
    runtime.ReadMemStats(m)
    before = m.Alloc

    for i:=0;i<1000;i++ {
        s := list.New()
        for j:=0;j<10;j++ {
            s.PushBack(1);
        }
    }
    runtime.ReadMemStats(m)
    fmt.Printf("Alloced for lists %0.2f KB\n", float64(m.Alloc - before)/1024.0)

}

Этот код дает следующий вывод:


Alloced for slices 117.19 KB
Alloced for lists 343.75 KB

Этот код создает 1000 массивов и 1000 списков и заполняет их 10 элементами, так как это среднее число посещений. Число 10 является плохим для массива, так как при добавлении элементов, на 8 элементе он расширится до 16 элементов и тем самым памяти будет затрачено больше чем необходимо. По результатам все равно видно что на решение со слайсами было затрачено в 3 раза меньше памяти, что сходится с теорией, так как каждый элемент списка хранит указатель на следующий, предыдущий элемент и на сам список.


Другие пользователи прошедшие в финал делали еще несколько индексов — например индекс по странам для метода visits. Эти индексы, скорее всего ускорили бы решение, однако не так сильно, как хранение посещений пользователя и хранение посещений достопримечательности вместе с информацией об этом объекте.


Библиотеки


Стандартная библиотека для реализации http сервера достаточно удобная в использовании и хорошо распространена, однако когда речь заходит о скорости, все рекомендуют fasthttp. Поэтому первым делом после реализации логики я выкинул стандартный http сервер и заменил его на fasthttp. Замена прошла абсолютно безболезненно, хоть данные две библиотеки имеют разный API.


Далее под замену ушла стандартная библиотека кодирования/декодирования json. Я выбрал easyjson, так как он показывал отличные данные по скорости/памяти + имел схожий с "encoding/json" API. Easyjson генерирует свой собственный парсер для каждой структуры данных, что и позволяет показывать такие впечатляющие результаты. Его единственный минус — небольшое число настроек. Например, в задаче были запросы, в которых одно из полей отсутствовало, что должно приводить в ошибке, однако easyjson тихо пропускал такие поля, из-за чего пришлось лезть в исходных код парсеров.


Прочие оптимизации


Так как все методы API за исключением POST методов были реализованы без использования дополнительной памяти, было решено отключить сборщик мусора — все равно если памяти хватает, то зачем гонять его?


Так же был переписан роутинг запросов. Каждый запрос определялся по одному символу, что позволило сэкономить на сравнении строк. Школьная оптимизация.


Результат


За 5 последних дней конкурса я, без какого либо опыта участия в подобных конкурсах, написал решение на Go, которое принесло мне 52 место из 295 участников. К сожалению мне не хватило совсем чуть чуть до прохождения в финал, но с другой стороны в финале собрались достойные соперники, поэтому из-за того что данные и условия задачи никак не менялись то маловероятно что я смог бы подняться выше.


GitHub с решением

Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/337868/


Метки:  

Финал Imagine Cup 2017 глазами команды МФТИ

Среда, 13 Сентября 2017 г. 14:54 + в цитатник
shwars сегодня в 14:54 Разработка

Финал Imagine Cup 2017 глазами команды МФТИ

    Друзья! Лето прошло, но хорошие воспоминания от него остались. Одним из таких воспоминаний был международный финал Imagine Cup в Сиэтле, на который поехали сразу три команды из России. Мы предлагаем вашему вниманию статью Марии Сандриковой, участницы команды МФТИ, в которой она делится своими впечатлениями от поездки.



    В наши дни проводится немало соревнований студенческих IT-проектов, но мало какое из них может сравниться по масштабу с Imagine Cup от Microsoft. Каждый год в соревновании принимают участие студенты из более чем 40 стран со всего мира. Команды проходят несколько этапов отбора на национальном уровне в своих городах и странах, и только сильнейшие попадают в финал.

    Несколько недель назад в главном офисе Microsoft в Сиэтле встретились 54 команды, чтобы побороться за главный приз Imagine Cup 2017. В том числе и три наши команды из России, собранные студентами МГУ, МФТИ и ВШЭ.

    Мы, команда МФТИ, расскажем о нашем опыте участии в Imagine Cup. Надеемся, что у нас получится мотивировать других студентов принять участие в конкурсе в следующем году, потому что это действительно потрясающая возможность! :)

    Долгая дорога в Сиэтл


    У каждой команды своя история выхода в финал Imagine Cup. Так ребята из ВШЭ и МГУ стали победителями хакатонов в своих университетах с главными призом — путевкой в финал, а наша команда из МФТИ выиграла московский и российский отборочные этапы.


    Слева направо команды МФТИ, МГУ и ВШЭ на российских финалах

    Участники команды EverMind из МГУ познакомились прямо на хакатоне. Александр Сафонов (3 курс, Физфак) отвечал за маркетинг, а Роман Кривоногов (2 курс, ВМК) и Даниил Исхаков (2 курс, Мехмат) за 24 часа воплотили в жизнь прототип приложения для защиты дорог от пьяных водителей. Вдохновившись недавней интеграцией Microsoft Cognitive Services в приложение Uber для идентификации водителей с камеры телефона перед поездками, ребята решили внедрить несколько быстрых тестов, позволяющих по движениям глаз человека определить, следует ли его допускать к вождению.

    Студенты 3 курса ФКН ВШЭ Артем Шафаростов, Илья Соловьев и Дарья Вальтер смогли обойти других участников хакатона, покорив членов жюри системой Boremeter для оценки внимательности аудитории во время презентации. Алгоритм определяет месторасположение каждого слушателя в зале и следит за направлением его взгляда и наклоном головы, чтобы измерить заинтересованность выступлением. Ребята придумали идею, работая над курсовым проектом и смогли успешно представить его на отборе.

    Мы представляли проект MeetArticles, над которым работала большая команда из почти 20 студентов ФИВТ МФТИ в рамках учебного курса “Инновационный практикум”. Мы создали платформу для интерактивного и визуального поиска среди научных статей, позволяющую ускорить процесс поиска источников для исследований, определить актуальные тренды в науке и найти таланты по всему миру. Красивые и живые визуализации вместе с хорошо продуманной архитектурой решения позволили нам победить на московском и российском финалах соревнования. В конкурсе предусмотрены ограничения на размер команд, поэтому на российском и международных финалах мы представлял проект лишь втроем: Мария Сандрикова (5 курс), Андрей Саутин и Алексей Журавлев (4 курс). Учитывайте это, если решите принять участие в следующем году ;)

    Выход в финал был лишь началом пути для наших команд. В течение трех месяцев все команды активно дорабатывали свои проекты и десятки раз репетировали свои презентации самостоятельно и вместе с представителями российского офиса Microsoft, Дмитрием Сошниковым и Анастасией Макеенок, за что мы им очень благодарны. И вот, в конце июля, спустя 20 часов перелета наши команды оказались в самом сердце Microsoft в Редмонде на финале, к которому так долго готовились.

    Схема соревнования


    Само соревнование проходило в два дня, и его схема чем-то напоминала чемпионат мира по футболу. Начиналось все с выставки, во время которой к каждой команде подходили несколько членов жюри и оценивали демонстрацию проектов с технической точки зрения. В следующий этап прошли 32 команды из 54, и внутри групп по 4 команды развернулась борьба за выход в полуфинал. Каждый этап оценивали независимые бригады жюри. У двух проектов, не прошедших в полуфинал напрямую, был шанс все-таки получить свои путевки, завоевав приз зрительских симпатий. В финале встретились 4 самые стойкие команды для борьбы за главный приз в 100 000$ и менторскую сессию с генеральным директором Microsoft Сатьей Наделла.

    Выставка


    Выставка — это весьма занимательное и живое событие. У каждой команды было свое небольшое пространство, которое они использовали по своему усмотрению. Кто-то привлекал внимание красочными роллапами, другие — необычными конструкциями, интересными костюмами или хорошими раздаточными материалами: конфетами, брошюрами и стикерами.


    Техническая выставка проектов

    Во время выставки команды общаются не только с жюри, но также с прессой и блогерами, и знакомятся с другими участниками соревнования. Новые знакомства и общение — одни из главных достоинств Imagine Cup. Никто не уезжает из Сиэтла без новых знакомств с людьми со всего мира.

    Wildcard round


    Самый динамичный этап конкурса — это Pitch Battle. Он позволял попасть в полуфинал в обход борьбы в четвертьфинале. Каждой команде давалось лишь 2 минуты и микрофон, чтобы представить свой проект остальным участникам, которые потом сами выбирали победителя.

    Наша команда из МГУ выиграла этот этап, обойдя более 20 команд со всего мира. Роме удалось покорить всех своим рассказом и, что самое главное, заставить смеяться весь зал. Уже потом мы узнали от Ромы, что он очень волновался во время выступления, хотя из зрительного зала это было совсем незаметно.


    Pitch Battle, слева Рома из команды EverMind

    Роман Кривоногов, участник команды МГУ EverMind:
    Я знал текст, который следовало говорить, я долго и упорно репетировал, я подбадривал себя и всё равно ничего не мог с собой поделать: руки и ноги тряслись так, как будто вместо них у меня отбойные молотки. Я думал, что выроню микрофон, и молился, чтобы текст не вылетал из головы. Он, конечно же, вылетал.

    Презентации


    Полуфиналы и четвертьфиналы проходили в виде презентаций. Командам давалось по 10 минут на выступление: 5 минут на презентацию и демонстрацию и 5 минут на ответы на вопросы жюри.

    К этому этапу наши команды готовились в течение нескольких месяцев до финала. Критерии оценки были известны заранее и нужно было успеть осветить все обозначенные в них вопросы:

    • 50% — Технологии и реализация
    • 20% — Инновационность
    • 15% — Актуальность
    • 15% — План выхода на рынок

    Было очень непросто уложить весь свой рассказ в 5 минут. Так много хотелось успеть донести до членов жюри, чтобы представить свой проект в наулучшем свете, соответствовать критериям и успеть провести демонстрацию решения. Поэтому мы снова и снова репетировали сами дома и вместе с остальными командами в офисе Microsoft на протяжении нескольких месяцев.

    Две наши команды участвовали в этих этапах: мы (МФТИ) в четвертьфинале и МГУ в полуфинале, но к сожалению, нашим командам не удалось пройти дальше.

    Победителями стала команда X.GLU из Чехии. Они сделали глюкометр и мобильное приложение для геймификации процесса наблюдения за уровнем глюкозы у детей, страдающих диабетом. Второе и третье место заняли команды из Америки и Аргентины. Посмотреть на презентации финалистов можно здесь.


    Слева четыре команды-финалисты, справа победители, команда X.GLU из Чехии

    Стоит отметить, что в этом году жюри конкурса отдавали предпочтение проектам, связанным с социальными темами и здоровьем. Так две из четырех команд, прошедших в финал, представляли проекты, связанные со здоровьем. Команда из Аргентины помогала находить людей во время чрезвычайных происшествий с помощью квадрокоптеров. Возможно, это поможет вам правильно выбрать идею для своего проекта в следующем году ;)

    Кроме соревнований


    Помимо соревновательной составляющей Imagine Cup — это отличный способ завести новые знакомства, поделиться своими идеями со всем миром, собрать множество отзывов и полезных советов, а также послушать наставления от генерального директора Microsoft Сатьи Наделла. Вечеринка после завершения конкурса была отличным способом узнать получше других участников, что и было, по нашему мнению, одним из самых главных плюсов соревнования.

    Андрей Саутин, участник команды МФТИ MeetArticles:
    Соревнование в этом году проводилось в рекордно сжатые сроки (2 дня вместо 4 дней в прошлом году и недели в более ранние года). Тем не менее даже этого времени было достаточно, чтобы почувствовать, что ты приехал не просто на соревнование, а еще и в некое подобие летнего студенческого лагеря, лагеря амбициозных творческих ребят-сверстников-единомышленников. Общение с ними — это не только отличная практика английского и других иностранных языков, но и прекрасная возможность узнать много нового о других странах и культурах, весело провести время и, самое главное, найти друзей по всему миру.


    Слева Сатья Наделла с участниками, справа вечеринка после соревнования

    Многие участники благодаря конкурсу впервые побывали в Америке и продолжили свое путешествие по другим городам после конкурса. Это небольшое приключение стало отличным завершением нашего долгого пути к финалу Imagine Cup.


    Российская команда Imagine Cup 2017

    Надеюсь, что наша история сподвигнет еще больше студентов принять участие в Imagine Cup в следующем году, и российские команды смогут победить всех в финале. Не откладывайте на будущее свои идеи, собирайте команду единомышленников и презентуйте их миру прямо сейчас! Не упускайте отличную возможность набраться опыта и посмотреть мир.

    Мария Сандрикова, mashaka
    участница команды MФТИ MeetArticles
    Original source: habrahabr.ru (comments, light).

    https://habrahabr.ru/post/337852/


    Метки:  

    Сеть магазинов «М.Видео» проведёт хакатон по искусственному интеллекту

    Среда, 13 Сентября 2017 г. 14:42 + в цитатник

    Метки:  

    Positive Technologies на GitHub

    Среда, 13 Сентября 2017 г. 14:06 + в цитатник
    KvanTTT сегодня в 14:06 Разработка

    Positive Technologies на GitHub

      Поздравляю программистов с их профессиональным днем! В связи с этим праздником наша компания Positive Technologies решила рассказать о своей деятельности, напрямую связанной с разработкой, а именно с открытым исходным кодом и GitHub.


      Positive Technologies  GitHub


      В последнее время все больше и больше компаний, таких как Google, Microsoft, Facebook, JetBrains, выкладывают в открытый доступ исходный код как небольших, так и крупных проектов. Positive Technologies славится не только высококлассными специалистами по информационной безопасности, но и большим количеством профессиональных разработчиков. Это позволяет ей также вносить свой посильный вклад в развитие движения Open Source.


      У PT есть следующие GitHub-организации, поддерживающие открытые проекты компании:



      Мы подробно описали первую организацию с ее проектами и кратко — все остальные.


      Содержание



      Организации


      Positive Technologies


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


      Open DevOps Community


      Open DevOps Community

      Цель сообщества — сформировать открытые готовые решения для управления полным циклом процесса разработки, тестирования и смежных процессов, а также доставки, развёртывания и лицензирования продуктов.


      На данный момент сообщество находится в начальной стадии развития, но уже сейчас в нем можно найти некоторые полезные инструменты, написанные на Python. Да, мы его любим.


      Активные проекты:


      1. crosspm — универсальный пакетный менеджер, который позволяет скачивать пакеты для сборок многокомпонентных продуктов, используя правила, заданные в манифесте.
      2. vspheretools — инструмент, который позволяет управлять виртуальными машинами на vSphere прямо из консоли. Также есть возможность подключать его как API-библиотеку в своих Python-скриптах.
      3. YouTrack Python 3 Client Library — Python-клиент для работы с API YouTrack.
      4. TFS API Python client — Python-клиент для работы с API Team Foundation Server от Microsoft.
      5. A Python client for Artifactory — Python-клиент для работы с API хранилища бинарных данных Artifactory.
      6. FuzzyClassificator — универсальный нейронечёткий классификатор произвольных объектов, свойства которых могут быть оценены на нечёткой измерительной шкале.

      Каждый инструмент имеет автоматическую сборку в Travis CI с выкладкой в PyPI-репозиторий, где их можно найти и установить через стандартный pip install.


      Готовятся к публикации еще несколько инструментов:


      1. CrossBuilder — система организации кросс-платформенных сборок build as a code, а-ля Travis CI, но независящая от используемой CI-системы (TeamCity, Jenkins, GitLab-CI и т. п.).
      2. ChangelogBuilder — генератор релиз-нотов с описанием изменений по продукту, который получает и агрегирует данные из различных трекеров (TFS, YouTrack, GitLab и т. п.).
      3. polyglot.sketchplugin — плагин для системы Sketch, которым пользуются дизайнеры для упрощения работы с мультиязычной вёрсткой.

      В качестве контрибьюторов любого инструмента приглашаются все желающие. У нас есть типовой проект ExampleProject, в котором содержатся общая структура и подробная инструкция по созданию собственного проекта в сообществе. Фактически достаточно его скопировать и сделать свой проект по аналогии. Если у вас есть идеи или инструменты для автоматизации чего-либо, давайте делиться ими с сообществом под MIT-лицензией! Это модно, почётно, престижно :)


      Positive Research


      Группа исследователей, содержащая репозиторий AttackDetection, в который команда обнаружения атак выкладывает правила для определения эксплуатации уязвимостей с помощью систем обнаружения вторжений Snort и Suricata IDS. Основная цель проекта — создание правил для уязвимостей, имеющих широкое распространение и высокий уровень опасности (high impact). Репозиторий содержит файлы для интеграции с oinkmaster — скриптом для обновления и развертывания правил в указанных IDS. А для теста самих правил прилагаются pcap-файлы с трафиком. Стоит отметить, что репозиторий уже набрал свыше 100 добавлений в избранное, а за год добавилось около 40 новых уязвимостей, среди которых BadTunnel, ETERNALBLUE, ImageTragick, EPICBANANA, SambaCry. Все анонсы о новых угрозах публикуются в Twitter.


      Positive JS


      Сообщество по разработке инструментария (преимущественно веб), используемого в продуктах PT.


      Проекты


      PT.PM


      PT.PM Logo

      PT Pattern Matching Engine — универсальный сигнатурный анализатор кода, который принимает на вход пользовательские шаблоны, описанные на специальном языке. Данный движок испольуется в бесплатном инструменте для проверки веб-приложений на наличие уязвимых компонентов Approof, а также в анализаторе исходного кода PT Application Inspector.



      Процесс анализа состоит из нескольких этапов:


      1. Парсинг исходного кода в дерево разбора.
      2. Преобразование дерева в унифицированный формат.
      3. Сопоставление дерева с пользовательскими шаблонами.

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


      В PT.PM внедрена непрерывная интеграция, поддерживаются сборка и тестирование модулей проекта как под Windows, так и под Linux (Mono). Процесс разработки организуется с помощью размеченных метками задач (Issues) и пул-реквестов. Наряду с разработкой ведется документация проекта, а результаты всех значимых сборок публикуются в формате как пакетов NuGet, так и «сырых» артефактов. Организацию PT.PM, вероятно, можно считать образцовой, к которой хотелось бы стремиться во всех остальных проектах.


      Для первого этапа, а именно парсинга исходного кода, используются парсеры на базе ANTLR. Этот инструмент генерирует их для различных языков (рантаймов) на основе формальных грамматик, для которых существует репозиторий. Наша компания его активно развивает. В настоящее время поддерживается генерация под Java, C#, Python 2 и 3, JavaScript, C++, Go и Swift, причём поддержка последних трех была добавлена совсем недавно.


      Стоит отметить, что ANTLR используется не только в проектах PT направления Application Security, но и в Max Patrol SIEM: там он используется для обработки собственного языка DSL (Domain Specific Language), который применяется для описания динамических групп активов. Обмен опытом в этой сфере позволил не тратить время на задачи, которые уже были решены ранее.


      Грамматики ANTLR


      При участии Positive Technologies были разработаны и улучшены грамматики для языков PL/SQL, T-SQL, MySQL, PHP, Java 8 и C#.


      PL/SQL


      Грамматики SQL имеют обширный синтаксис с большим количеством ключевых слов. К счастью, грамматика PL/SQL существовала под ANTLR 3 и портировать её под ANTLR 4 было не очень сложно.


      T-SQL


      Для T-SQL не было найдено достойных парсеров, не говоря уже об открытых, и мы долго и кропотливо восстанавливали грамматику из документации MSDN. Однако результат получился достойным: она уже охватывает много распространённых синтаксических конструкций, опрятно выглядит, независима от рантайма и покрыта тестами (примерами SQL-запросов из той же MSDN). С 2015 в нее внесли свой вклад более 15 сторонних пользователей. Более того, эта грамматика сейчас уже используется и в DBFW, прототипе межсетевого экрана уровня систем управления базами данных, подпроекте PT Application Firewall. Денис Колегов с Арсением Реутовым рассказывали о нем на PHDays VII: «Как разработать DBFW с нуля».


      MySQL


      Грамматика, разработанная вышеупомянутой командой, в первую очередь Иваном Худяшовым и Денисом Колеговым, на основе T-SQL. Она также используется в DBFW.


      PHP


      Данная грамматика транслировалась из грамматики Bison в ANTLR. Она интересна тем, что поддерживает парсинг сразу PHP, JavaScript и HTML. Точнее, участки кода JavaScript и HTML парсятся в текст, который позже обрабатывается парсерами конкретно под эти языки.


      Java8


      Эта грамматика была разработана совсем недавно. За основу была взята грамматика предыдущей версии Java 7. Доработка была относительно быстрой, так как отличий между версиями немного.


      C#


      Это по большей части экспериментальная грамматика, созданная для сравнения скоростей парсеров на основе ANTLR и парсера Roslyn.


      Разработка и перспективы


      ANTLR Logo

      О деталях разработки грамматик можно почитать в нашей прошлогодней статье «Теория и практика парсинга исходников с помощью ANTLR и Roslyn».


      Как видно по истории изменений, эти грамматики дорабатываются не только усилиями Positive Technologies, но и большим количеством сторонних разработчиков. За время этой кооперации репозиторий вырос не только количественно, но и качественно.


      PT.SourceStats


      Позволяет собирать статистику для проектов на различных языках программирования и используется в бесплатном продукте Approof.


      AspxParser


      В рамках данного проекта разрабатывается парсер страниц ASPX, который используется не только в открытом движке PT.PM, но и во внутреннем анализаторе .NET-приложений (AI.Net), основанном на абстрактной интерпретации кода.


      FP Community Rules


      Approof Logo

      В репозитории идет разработка наборов правил в формате YARA, которые используются в модуле сигнатурного анализа проектов в Approof. В августе прошлого года в рамках PDUG (юзер-группы по безопасной разработке) Алексей Гончаров делал доклад о модуле FingerPrint, используемом в PT AI и Approof.


      Движок FingerPrint запускается на наборе исходных кодов сайта (бэкенда, фронтенда) и в соответствии с описанными правилами YARA ищет известные версии сторонних компонентов (например, библиотеку bla-bla версии 3). Правила составляются так, что содержат сигнатуры уязвимых версии библиотек с текстовым описанием проблемы.


      Правило представляет собой нескольких условий для проверки файла. Например, условие наличия в файле определенных строк. Если файл им удовлетворяет, то Approof в итоговом отчете выдает информацию об обнаруженных уязвимостях в определенном компоненте с версией N, а также описания относящихся к ним CVE.


      Подробнее об этом можно почитать в статье Дениса Ефремова (ИСП РАН) «Разработка правил для Approof». Также см. его доклад «Автоматизация построения правил для Approof» на PDUG секции PHDays.


      Учебно-демонстрационные проекты


      На PHDays VII в рамках PDUG прошел мастер-класс «Appsec Outback». Для него были разработаны учебно-демонстрационные версии статического анализатора кода Mantaray и межсетевого экрана Schockfish. Данные проекты имеют все основные механизмы, которые используются в реальных средствах защиты. Но, в отличие от последних, их основная цель продемонстрировать алгоритмы и методы защиты, помочь понять процесс анализа и защиты приложений, а также проиллюстрировать фундаментальные теоретические возможности и ограничения технологий.


      Также в репозитории имеются примеры реализации механизмов защиты:


      • DOMSanitizer — модуль для обнаружения XSS-атак на стороне веб-браузера.
      • DOMParanoid — модуль (security linter) для проверки безопасности HTML.

      Лицензия


      В наших проектах используются как разрешительные лицензии (MIT, Apache), так и собственная, которая подразумевает бесплатное использование исключительно в некоммерческих целях.


      Заключение


      Процесс переезда на GitHub оказался полезным и дал нам опыт в различных областях — в настройке DevOps под Windows и Linux, написании документации, в разработке.


      Positive Technologies развивает Open Source проекты и планирует расширять эту активность.


      При конвертации Markdown из формата GitHub в формат Habrahabr использовался HabraMark.

      Original source: habrahabr.ru (comments, light).

      https://habrahabr.ru/post/327957/


      Метки:  

      [Из песочницы] Программирование с использованием PCAP

      Среда, 13 Сентября 2017 г. 13:59 + в цитатник
      Lupus_Anay сегодня в 13:59 Разработка

      Программирование с использованием PCAP

      Данный текст является переводом статьи Тима Карстенса Programming with pcap 2002 года. В русскоязычном интернете не так много информации по PCAP. Перевод сделан в первую очередь для людей, которым интересна тема захвата трафика, но при этом они плохо владеют английским языком. Под катом, собственно, сам перевод.


      Вступление


      Давайте начнем с того, что определим, для кого написана эта статья. Очевидно, что некоторое базовое знание C необходимо (если, конечно, вы не хотите просто понять теорию), для понимания кода приведенного в статье, но вам не нужно быть ниндзя программирования: в тех моментах, которые могут быть понятны только более опытными программистам я постараюсь подробно объяснить все концепции. Так же, пониманию может помочь некоторое базовое знание работы сетей, учитывая что PCAP — это библиотека для реализации сниффинга (Прим. переводчика: Сниффинг — процесс захвата сетевого трафика, своего, или чужого). Все представленные здесь примеры кода были протестированы на FreeBSD 4.3 с ядром по умолчанию.


      Начало работы: Общая форма приложения PCAP


      Первая вещь которую необходимо понять — общая структура PCAP сниффера. Она может выглядеть следующим образом:


      1. Начнем с определения идентификатора интерфейса, трафик с которого мы хотим получить. В Linux это может быть что нибудь вроде eth0, в BSD это может быть xl1, и тому подобное. Мы можем либо указать этот идентификатор в строке, либо попросить PCAP предоставить его нам.
      2. Далее необходимо инициализировать PCAP. На данном этапе нам нужно передать PCAP имя устройства, с которым мы будем работать. При необходимости мы можем захватить трафик с нескольких устройств. Для их различия мы будем использовать дескрипторы сеансов. Так же, как и во время работы с файлами, нам нужно назвать наш сеанс захвата трафика, что бы мы могли отличить его от других подобных сеансов.
      3. В случае, если мы хотим получить какой то определенный трафик (например, только TCP/IP пакеты, или пакеты только с порта 23 и так далее) мы должны создать набор правил, "скомпилировать" их, и применить их к конкретному сеансу. Это трехфазный, тесно связанный процесс. Набор правил изначально находится в строке, а после компилируется в понятный PCAP формат. Компиляция производится вызовом функции внутри нашей программы, она не связана с использованием какого либо внешнего приложения. Далее мы говорим PCAP применить этот фильтр к необходимой нам сессии.
      4. Наконец, мы говорим PCAP начать захват трафика. В случае использования pcap_loop, PCAP будет работать до тех пор, пока не получит столько пакетов, сколько мы ему указали. Каждый раз, когда он получает новый пакет, он вызывает определенную нами функцию. Эта функция может делать все что мы хотим. Она может прочитать пакет, и передать информацию пользователю, она может сохранить его в файл, или вовсе не делать ничего.
      5. После того, как мы закончим работу по захвату, сессию можно закрыть.
        На самом деле это очень простой процесс. Всего пять шагов, один из которых не обязательный (шаг 3). Давайте рассмотрим каждый шаг, и их реализации.

      Определение устройства


      Это ужасно просто. Есть два способа определить устройство, которое мы хотим прослушивать.


      Первый — просто позволить пользователю сказать программе имя того устройства с которого он хочет захватывать трафик. Рассмотрим этот код:


      #include 
      #include 
      
      int main(int argc, char *argv[])
      {
          char *dev = argv[1];
          printf("Device: %s\n", dev);
          return(0);
      }

      Пользователь определяет устройство указывая его имя в качестве первого аргумента программы. Теперь, строка dev содержит имя интерфейса который мы будем прослушивать в формате понятном PCAP (конечно, при условии, что пользователь дал нам реальное имя интерфейса)


      Второй способ также очень прост. Давайте взглянем на программу:


      #include 
      #include 
      
      int main(int argc, char *argv[])
      {
          char *dev, errbuf[PCAP_ERRBUF_SIZE];
      
          dev = pcap_lookupdev(errbuf);
          if (dev == NULL) 
          {
              fprintf(stderr, "Couldn't find default device: %s\n", errbuf);
              return(2);
          }
          printf("Device: %s\n", dev);
          return(0);
      }

      В этом случае, PCAP просто установит имя устройства самостоятельно. "Но подожди, Тим", вы скажете. "Что делать со строкой errbuf?". Большинство PCAP команд позволяют нам передать им строку в качестве одного из аргументов. С какой целью? В том случае, если выполнение команды не удастся, PCAP запишет описание ошибки в переданную строку. В этом случае, если выполнение pcap_lookupdev() провалится, сообщение об ошибке будет помещено в errbuf. Круто, не правда ли? Вот так вот и устанавливается имя устройства для захвата трафика.


      Настройка устройства для сниффинга


      Задача создания сессии захвата трафика так же очень проста. Для этого мы будем использовать функцию pcap_open_live(). Прототип этой функции:


      pcap_t *pcap_open_live(char *device, int snaplen, int promisc, int to_ms, char *ebuf)

      Первый аргумент — это имя устройства которое мы определили в предыдущем разделе. snaplen это целое число, которое определяет максимальное число байтов, которое может захватить PCAP. promisc, когда установлен в true, устанавливает устройство в неразборчивый режим (так или иначе, даже если он установлен в false, в определенных случаях интерфейс может находится в неразборчивом режиме). to_ms это время чтения в миллисекундах (значение 0 означает отсутствие таймаута; по крайней мере на некоторых платформах, это означает что вы можете дождаться появления достаточного количества пакетов для прекращения сниффинга до того, как закончите анализ этих пакетов. Поэтому вы должны использовать ненулевое время). Наконец, ebuf это строка в которой мы можем хранить сообщения об ошибках (так же, как мы делали до этого с errbuf). Функция возвращает дескриптор сеанса.


      Для демонстрации, рассмотрим этот фрагмент кода:


      #include 
      ...
      pcap_t *handle;
      
      handle = pcap_open_live(dev, BUFSIZ, 1, 1000, errbuf);
      if (handle == NULL) 
      {
          fprintf(stderr, "Couldn't open device %s: %s\n", dev, errbuf);
          return(2);
      }

      Этот код открывает устройство помещенное в переменную dev, говорит читать столько байтов, сколько указано в BUFSIZ (константа, которая определена в pcap.h). Мы говорим переключить устройство в неразборчивый режим, что бы захватывать трафик до момента возникновения какой либо ошибки, и в случает ошибки, поместить ее описание в строку errbuf; и после, в случае ошибки, используем эту строку что бы вывести сообщение о том, что пошло не так.


      Замечания по поводу разборчивого/неразборчивого режимов сниффинга: два способа очень различны по стилю. Обычно, интерфейс находится в разборчивом режиме, захватывая только тот трафик, который отправлен именно ему. Только трафик направленный от него, к нему, или маршрутизированный через него будет захвачен сниффером. Неразборчивый режим, наоборот, захватывает весь трафик который проходит через кабель. В среде без коммутации это может быть весь сетевой трафик. Очевидным преимуществом этого способа является то, возможно захватить большее количество пакетов, что может быть полезным, или нет, в зависимости от цели захвата трафика. Однако существуют и недостатки. Неразборчивый режим легко детектируется, один узел может четко определить, находится ли другой в неразборчивом режиме или нет. Так же, он работает только в не коммутируемой среде (например хаб, или маршрутизатор использующий APR). Еще одним недостатком является то, что в сетях с большим количеством трафика может не хватить системных ресурсов для захвата и анализа всех пакетов.


      Не все устройства предоставляют одни и те же заголовки канального уровня в прочитанных вами пакетах. Ethernet устройства, и некоторые не-Ethernet устройства, могут предоставить Ethernet заголовки, но другие типы устройств, например такие как замыкающие устройства в BSD и OS X, PPP-интерфейсы, и Wi-Fi-интерфейсы в режиме мониторинга — нет.


      Вам нужно определить тип заголовков канального уровня, которые предоставляет устройство, и использовать для анализа содержимого пакетов. pcap_datalink() возвращает тип заголовков канального уровня. (Cм. список значений заголовков канального уровня. Возвращаемые значения — значения DHT_ в этом списке)


      Если ваша программа не поддерживает заголовки канального уровня предоставляемые устройством, то она должна будет прекратить работу, с помощью подобного кода:


      if (pcap_datalink(handle) != DLT_EN10MB) 
      {
          fprintf(stderr, "Device %s doesn't provide Ethernet headers -not  supported\n", dev);
          return(2);
      }

      который сработает если устройство не поддерживает Ethernet — заголовки. Это может сработать для кода приведенного ниже, который использует заголовки Ethernet.


      Фильтрация трафика


      Часто мы заинтересованы в захвате только определенного типа трафика. Для примера — бывает такое, что единственное что мы хотим — это захватить трафик с порта 23(telnet) для поиска паролей. Или возможно мы хотим перехватить файл который был отправлен через порт 21(FTP). Может быть мы хотим захватить только DNS трафик (порт 53 UDP). Однако, бывают редкие случаи, когда мы просто хотим слепо захватывать весь интернет трафик. Давайте рассмотрим функции pcap_compile() и pcap_setfilter().


      Процесс очень простой. После того, как мы вызвали pcap_open_live() и имеем работающую сессию сниффинга, мы можем применить наш фильтр. Вы спросите, почему просто не использовать обычные if/else if выражения? Две причины: первая — фильтр PCAP эффективнее, потому что он фильтрует непосредственно через BPF; соответственно нам нужно куда меньшее количество ресурсов, ведь драйвер BPF делает это напрямую. Вторая — это то, что фильтры PCAP просто проще.


      Перед тем, как применить фильтр, мы должны скомпилировать его. Условие фильтра содержится в обычной строке (или массиве char). Синтаксис достаточно хорошо документирован на главной странице tcpdump.org; Я оставлю это вам на самостоятельное рассмотрение. Однако, мы будем использовать простые тестовые выражения, и, возможно, вы достаточно догадливы что бы самостоятельно вывести правила синтаксиса этих условий из приведенных примеров.


      Что бы скомпилировать фильтр мы вызываем функцию pcap_compile(). Прототип определяет эту функцию как:


      int pcap_compile(pcap_t *p, struct bpf_program *fp, char *str, int optimize, bpf_u_int32 netmask)

      Первый аргумент — это наш дескриптор сессии (pcap_t* handle в нашем предыдущем примере). Следующий — это указатель на место, где мы будем хранить скомпилированную версию фильтра. Далее идет само выражение, в обычном строковом формате. После идет целое число, которое определяет, нужно ли оптимизировать выражения фильтра, или нет (0 — нет, 1 — да). Наконец, мы должны определить сетевую маску той сети, к которой мы применяем фильтр. Функция возвращает -1 при ошибке; все остальные значения означают успех.


      После компиляции фильтра, время применить его. Вызовем pcap_setfilter(). Следуя нашему формату объяснения PCAP, мы должны рассмотреть прототип этой функции:


      int pcap_setfilter(pcap_t *p, struct bpf_program *fp)

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


      Возможно этот пример поможет вам понять лучше:


      Пример задания, компиляции и применения PCAP фильтра
      #include 
      ...
      pcap_t *handle;  /* Дескриптор сесси */
      char dev[] = "rl0";  /* Устройство для сниффинга */
      char errbuf[PCAP_ERRBUF_SIZE]; /* Строка для хранения ошибок */
      struct bpf_program fp;  /* Скомпилированный фильтр */
      char filter_exp[] = "port 23"; /* Выражение фильтра */
      bpf_u_int32 mask;  /* Сетевая маска устройства */
      bpf_u_int32 net;  /* IP устройства */
      
      if (pcap_lookupnet(dev, &net, &mask, errbuf) == -1) {
          fprintf(stderr, "Can't get netmask for device %s\n", dev);
          net = 0;
          mask = 0;
      }
      
      handle = pcap_open_live(dev, BUFSIZ, 1, 1000, errbuf);
      if (handle == NULL) {
          fprintf(stderr, "Couldn't open device %s: %s\n", dev, errbuf);
          return(2);
      }
      
      if (pcap_compile(handle, &fp, filter_exp, 0, net) == -1) {
          fprintf(stderr, "Couldn't parse filter %s: %s\n", filter_exp, pcap_geterr(handle));
          return(2);
      }
      
      if (pcap_setfilter(handle, &fp) == -1) {
          fprintf(stderr, "Couldn't install filter %s: %s\n", filter_exp, pcap_geterr(handle));
          return(2);
      }

      Эта программа настроена на сниффинг трафика который проходит через порт 23, в неразборчивом режиме, на устройстве rl0.


      Мы можете заметить, что предыдущий пример содержит функцию, о которой мы еще не говорили. pcap_lookupnet() — это функция которая, получая имя устройства возвращает IPv4 сетевой номер и соответствующую сетевую маску (сетевой номер — это адрес IPv4 ANDed с сетевой маской, поэтому он содержит только сетевую часть адреса). Это существенно, потому что нам нужно знать сетевую маску для применения фильтра.


      По моему опыту, этот фильтр не работает в некоторых ОС. В моей тестовой среде я обнаружил, что OpenBSD 2.9 c ядром по умолчанию поддерживает этот тип фильтра, но FreeBSD 4.3 с ядром по умолчанию — нет. Ваш опыт может отличаться.


      Реальный сниффинг


      На текущем этапе мы узнали как определить устройство, приготовить его для захвата трафика, и применить фильтры. Теперь время захватить несколько пакетов. Есть два основных способа захватывать пакеты. Мы можем просто захватить один пакет, или мы можем войти в цикл, который выполняется пока не будет захвачено n пакетов. Мы начнем с того, что покажем, как можно захватить один пакет, и после рассмотрим методы использования циклов. Взглянем на прототип pcap_next():


      u_char *pcap_next(pcap_t *p, struct pcap_pkthdr *h)

      Первый аргумент — дескриптор сессии. Второй — указатель на структуру которая содержит общую информацию о пакете, конкретно — время в которое он был захвачен, длина пакета, и длина его определенной части (например, если он фрагментированный). pcap_next() возвращает u_char указатель на пакет, который описан в структуре. Мы поговорим о чтении пакетов позже.


      Это демонстрация использования pcap_next() для захвата пакетов:


      Захват одного пакета
      #include 
      #include 
      
      int main(int argc, char *argv[])
      {
          pcap_t *handle;   /* Дескриптор сессии */
          char *dev;   /* Устройсто для сниффинга */
          char errbuf[PCAP_ERRBUF_SIZE]; /* Строка для хранения ошибки */
          struct bpf_program fp;  /* Скомпилированный фильтр */
          char filter_exp[] = "port 23"; /* Выражение фильтра */
          bpf_u_int32 mask;  /* Сетевая маска */
          bpf_u_int32 net;  /* IP */
          struct pcap_pkthdr header; /* Заголовок который нам дает PCAP */
          const u_char *packet;  /* Пакет */
      
          /* Определение устройства */
          dev = pcap_lookupdev(errbuf);
          if (dev == NULL) 
          {
              fprintf(stderr, "Couldn't find default device: %s\n", errbuf);
              return(2);
          }
      
          /* Определение свойств устройства */
          if (pcap_lookupnet(dev, &net, &mask, errbuf) == -1) 
          {
              fprintf(stderr, "Couldn't get netmask for device %s: %s\n", dev,   errbuf);
              net = 0;
              mask = 0;
          }
      
          /* Создание сессии в неразборчивом режиме */
          handle = pcap_open_live(dev, BUFSIZ, 1, 1000, errbuf);
          if (handle == NULL) 
          {
              fprintf(stderr, "Couldn't open device %s: %s\n", dev, errbuf);
              return(2);
          }
      
       /* Компиляция и применения фильтра */
          if (pcap_compile(handle, &fp, filter_exp, 0, net) == -1) 
          {
              fprintf(stderr, "Couldn't parse filter %s: %s\n", filter_exp, pcap_geterr(handle));
              return(2);
          }
      
          if (pcap_setfilter(handle, &fp) == -1) 
          {
              fprintf(stderr, "Couldn't install filter %s: %s\n", filter_exp, pcap_geterr(handle));
              return(2);
          }
      
          /* Захват пакета */
          packet = pcap_next(handle, &header);
          /* Вывод его длины */
          printf("Jacked a packet with length of [%d]\n", header.len);
          /* Закрытие сессии */
          pcap_close(handle);
          return(0);
      }

      Приложение захватывает трафик любого устройства, полученное через pcap_loockupdev(), помещая его в неразборчивый режим. Оно обнаруживает что пакет попадает в порт 23 (telnet) и сообщает пользователю размер пакета (в байтах). Опять же, программа включает в себя вызов pcap_close(), который мы обсудим позже (хотя он вполне понятен).


      Второй способ захвата трафика — использование pcap_loop() или pcap_dispatch() (который в свою очередь сам использует pcap_loop()). Что бы понять использование этих двух функций, нам нужно понять идею функции обратного вызова.


      Функция обратного вызова (callback function) не является чем то новым, это обычная вещь в большом количестве API. Концепция, которая стоит за функцией обратного вызова очень проста. Предположим, что у есть программа которая ждет события определенного рода. Просто для примера, предположим что программа ждет нажатие клавиши. Каждый раз, когда пользователь нажимает клавишу, моя программа вызовет функцию, что бы обработать это нажатие клавиши. Это и есть функция обратного вызова. Эти функции используются в PCAP, но вместо вызова их в момент нажатия клавиши, они вызываются тогда, когда PCAP захватывает пакет. Использовать функции обратного вызова можно только в pcap_loop() и pcap_dispatch() которые очень похожи в этом плане. Каждая из них вызывает функцию обратного вызова каждый раз, когда попадется пакет который проходит сквозь фильтр (если конечно фильтр есть. Если нет, то все пакеты, которые были захвачены вызовут функцию обратного вызова).


      Прототип pcap_loop() приведен ниже:


      int pcap_loop(pcap_t *p, int cnt, pcap_handler callback, u_char *user)

      Первый аргумент — дескриптор сессии. Дальше идет целое число, которое сообщает pcap_loop() количество пакетов, которые нужно захватить (отрицательное значение говорит о том, что цикл должен выполняться до возникновения ошибки). Третий аргумент — имя функции обратного вызова (только идентификатор, без параметров). Последний аргумент полезен в некоторых приложениях, но в большинстве случаев он просто устанавливается NULL. Предположим, что у нас есть аргументы, которые мы хотим передать функции обратного вызова, в дополнение к тем, которые передает ей pcap_loop(). Последний аргумент как раз то место, где мы это сделаем. Очевидно, вы должны привести их к u_char * типу, что бы убедится что вы получите верные результаты. Как мы увидим позже, PCAP использует некоторые интересные способы передачи информации в виде u_char *. После того, как мы покажем пример того, как PCAP делает это, будет очевидно как сделать это и в этом моменте. Если нет — обратитесь к справочному тексту по С, так как объяснения указателей находятся за рамками темы этого документа. pcap_dispatch() почти идентична в использовании. Единственное различие между pcap_dispatch() и pcap_loop() это то, что pcap_dispatch() будет обрабатывать только первую серию пакетов полученных из системы, тогда как pcap_loop() будет продолжать обработку пакетов или партий пакетов до тех пор пока счетчик не закончится. Для более глубокого обсуждения различий, смотрите официальную документацию PCAP.


      Прежде чем мы приведем пример использования pcap_loop(), мы должны проверить формат нашей функции обратного вызова. Мы не можем самостоятельно определить прототип функции обратного вызова, иначе pcap_loop() не будет знать, как использовать ее. Так что мы должны использовать этот формат в качестве прототипа нашей функции обратного вызова:


      void got_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet);

      Давайте разберем его более детально. Первое — функция должна иметь void тип. Это логично, потому что pcap_loop() в любом случае не знал бы, что делать с возвращаемым значением. Первый аргумент соответствует последнему аргументу pcap_loop(). Независимо от того, какое значение передается последним аргументом pcap_loop(), оно передается первому аргументу нашей функции обратного вызова. Второй аргумент — это PCAP заголовок, который содержит информацию о том, когда пакет был захвачен, насколько он большой, и так далее. Структура pcap_pkthdr определена в файле pcap.h как:


      struct pcap_pkthdr {
          struct timeval ts; /* Время захвата */
          bpf_u_int32 caplen; /* Длина заголовка */
          bpf_u_int32 len; /* Длина пакета */
      };

      Эти значения должны быть достаточно понятными. Последний аргумент — самый интересный из всех, и самый сложный для понимания начинающему программисту. Это другой указатель на u_char, и он указывает на первый байт раздела данных содержащихся в пакете, который был захвачен pcap_loop().


      Но как можно использовать эту переменную (названную packet) в прототипе? Пакет содержит много атрибутов, так что, как можно предположить, это не строка, а набор структур (для примера, пакет TCP/IP содержит в себе Ethernet заголовок, IP заголовок, TCP заголовок, и наконец, данные). Этот u_char указатель указывает на сериализованную версию этих структур. Что бы начать использовать какую нибудь из них необходимо произвести некоторые интересные преобразования типов.


      Первое, мы должны определить сами структуры, прежде чем мы сможем привести данные к ним. Следующая структура используется мной для чтения TCP/IP пакета из Ethernet.


      Объявления структур Ethernet, IP, TCP
      /* Ethernet адреса состоят из 6 байт */
      #define ETHER_ADDR_LEN 6
      
       /* Заголовок Ethernet */
       struct sniff_ethernet {
          u_char ether_dhost[ETHER_ADDR_LEN]; /* Адрес назначения */
          u_char ether_shost[ETHER_ADDR_LEN]; /* Адрес источника */
          u_short ether_type; /* IP? ARP? RARP? и т.д. */
       };
      
       /* IP header */
       struct sniff_ip {
          u_char ip_vhl;  /* версия << 4 | длина заголовка >> 2 */
          u_char ip_tos;  /* тип службы */
          u_short ip_len;  /* общая длина */
          u_short ip_id;  /* идентефикатор */
          u_short ip_off;  /* поле фрагмента смещения */
          #define IP_RF 0x8000  /* reserved флаг фрагмента */
          #define IP_DF 0x4000  /* dont флаг фрагмента */
          #define IP_MF 0x2000  /* more флаг фрагмента */
          #define IP_OFFMASK 0x1fff /* маска для битов фрагмента */
          u_char ip_ttl;  /* время жизни */
          u_char ip_p;  /* протокол */
          u_short ip_sum;  /* контрольная сумма */
          struct in_addr ip_src,ip_dst; /* адрес источника и адрес назначения */
       };
       #define IP_HL(ip)  (((ip)->ip_vhl) & 0x0f)
       #define IP_V(ip)  (((ip)->ip_vhl) >> 4)
      
       /* TCP header */
       typedef u_int tcp_seq;
      
       struct sniff_tcp {
          u_short th_sport; /* порт источника */
          u_short th_dport; /* порт назначения */
          tcp_seq th_seq;  /* номер последовательности */
          tcp_seq th_ack;  /* номер подтверждения */
          u_char th_offx2; /* смещение данных, rsvd */
          #define TH_OFF(th) (((th)->th_offx2 & 0xf0) >> 4)
          u_char th_flags;
          #define TH_FIN 0x01
          #define TH_SYN 0x02
          #define TH_RST 0x04
          #define TH_PUSH 0x08
          #define TH_ACK 0x10
          #define TH_URG 0x20
          #define TH_ECE 0x40
          #define TH_CWR 0x80
          #define TH_FLAGS (TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG|TH_ECE|TH_CWR)
          u_short th_win;  /* окно */
          u_short th_sum;  /* контрольная сумма */
          u_short th_urp;  /* экстренный указатель */
      };

      Так как в итоге это все относится к PCAP и нашему загадочному u_char указателю? Эти структуры определяют заголовки, которые предшествуют данным пакета. И как мы в итоге можем разбить пакет? Приготовьтесь увидеть одно из самых практичных использований указателей (для всех новичков в С которые думают что указатели бесполезны говорю: это не так).


      Опять же, мы будем предполагать, что мы имеем дело с TCP/IP пакетом Ethernet. Этот же метод применяется к любому пакету. Единственное различие — это тип структуры, которые вы фактически используете. Итак, давайте начнем с определения переменных и определения времени компиляции. Нам нужно будет деконструировать данные пакета.


      /* Заголовки Ethernet всегда состоят из 14 байтов */
      #define SIZE_ETHERNET 14
      
      const struct sniff_ethernet *ethernet; /* Заголовок Ethernet */
      const struct sniff_ip *ip; /* Заголовок IP */
      const struct sniff_tcp *tcp; /* Заголовок TCP */
      const char *payload; /* Данные пакета */
      
      u_int size_ip;
      u_int size_tcp;

      И теперь мы делаем наше магическое преобразование типов:


      ethernet = (struct sniff_ethernet*)(packet);
      ip = (struct sniff_ip*)(packet + SIZE_ETHERNET);
      size_ip = IP_HL(ip)*4;
      if (size_ip < 20) {
          printf("   * Invalid IP header length: %u bytes\n", size_ip);
          return;
      }
      tcp = (struct sniff_tcp*)(packet + SIZE_ETHERNET + size_ip);
      size_tcp = TH_OFF(tcp)*4;
      if (size_tcp < 20) {
          printf("   * Invalid TCP header length: %u bytes\n", size_tcp);
          return;
      }
      payload = (u_char *)(packet + SIZE_ETHERNET + size_ip + size_tcp);

      Как это работает? Рассмотрим структуру пакета в памяти. u_char указатель — просто переменная содержащая адрес в памяти.


      Ради простоты, давайте скажем, что адрес на который указывает этот указатель это Х. Тогда, если наши структуры просто находятся в линии, то первая из них — sniff_ethernet, будет расположена в памяти по адресу Х, так же мы можем легко найти адрес структуры после нее. Этот адрес — это Х плюс длина Ethernet заголовка, которая равна 14, или SIZE_ETHERNET.


      Аналогично, если у нас есть адрес этого заголовка, то адрес структуры после него — это сам адрес плюс длина этого заголовка. Заголовок IP, в отличие от заголовка Ethernet, не имеет фиксированной длины. Его длина указывается как количество 4-байтовых слов по полю заголовка IP. Поскольку это количество 4-байтных слов, оно должно быть умножено на 4, что бы указать размер в байтах. Минимальная длина этого заголовка составляет 20 байтов.


      TCP заголовок так же имеет вариативную длину, эта длина указывается как число 4-байтных слов, в поле "смещения данных" заголовка TCP, и его минимальная длина так же равна 20 байтам.


      Итак, давайте сделаем диаграмму:


      VARIABLE LOCATION(in bytes)
      sniff_ethernet X
      sniff_ip X + SIZE_ETHERNET
      sniff_tcp X + SIZE_ETHERNET + {IP header length}
      payload X + SIZE_ETHERNET + {IP header length} + {TCP header length}

      sniff_ethernet структура, находясь в первой линии, просто находится по адресу Х. sniff_ip, которая следует прямо за sniff_ethernet, это адрес Х плюс такое количество байтов, которое занимает структура sniff_ethernet (14 байтов или SIZE_ETHERNET). sniff_tcp находится прямо после двух предыдущих структур, так что его локация это — X плюс размер Ethernet, и IP заголовок. (14 байтов, и 4 раза длина заголовка IP). Наконец, данные (для которых не существует определенной структуры) расположены после них всех.


      Итак, на данном этапе мы знаем, как использовать функцию обратного вызова, вызвать ее и получить данные из полученного пакета. Здесь я приложу исходный код готового сниффера. Просто скачайте sniffer.c и попробуйте сами.


      Завершение


      На данном этапе вы должны быть способны написать сниффер используя PCAP. Вы изучили базовые концепты которые стоят за открытием PCAP сессии, узнали главные детали о сниффиге пакетов, применении фильтров, и использования функций обратного вызова. Теперь пришло время выйти и самостоятельно захватить трафик.


      Тим Карстенс 2002. Все права защищены. Распространение и использование, с модификацией и без нее разрешены при соблюдении следующих условий:
      Копия должна содержать вышеупомянутое уведомление об авторских правах и этот список условий:
      Имя Тима Карстенса не может использоваться для одобрения или продвижения продуктов, полученных из этого документа, без специального предварительного письменного разрешения.

      This document is Copyright 2002 Tim Carstens. All rights reserved. Redistribution and use, with or without modification, are permitted provided that the following conditions are met:
      Redistribution must retain the above copyright notice and this list of conditions.
      The name of Tim Carstens may not be used to endorse or promote products derived from this document without specific prior written permission.
      / Insert 'wh00t' for the BSD license here /
      Original source: habrahabr.ru (comments, light).

      https://habrahabr.ru/post/337840/


      Метки:  

      Создание и нормализация словарей. Выбираем лучшее, убираем лишнее

      Среда, 13 Сентября 2017 г. 13:37 + в цитатник
      antgorka сегодня в 13:37 Разработка

      Создание и нормализация словарей. Выбираем лучшее, убираем лишнее



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

        Инструменты


        crunch

        Пожалуй, один из самых известных инструментов для быстрого создания словарей. Он по умолчанию входит в популярный дистрибутив для проведения пентеста Kali Linux.

        Инструмент работает в нескольких режимах:

        Создание словаря, состоящего из перечисленных символов, например чисел

        crunch 4 5 1234567890 -o all_numbers_from_4_to_5.txt



        Создается словарь длиной от четырех до пяти цифр.

        Создание словаря по шаблону

        crunch 10 10 qwe RTY 123 \#\@ -t P^@@,ord%% -o Password_template.txt
        



        Сперва указывается длина пароля — 10 символов. Затем перечисляются наборы символов: буквы в нижнем регистре, буквы в верхнем регистре, цифры и спецсимволы. Ключ -t задает шаблон, где

        • ^ — спецсимволы
        • @ — буквы в нижнем регистре
        • , — буквы в верхнем регистре
        • % — цифры

        И третий режим работы crunch — перестановки.

        crunch 1 1 -p Alex Company Position



        Словарь состоит из всех возможных комбинаций слов Alex, Company и Position.

        Подробнее изучить инструмент можно через стандартные man страницы, они достаточно подробные.

        maskprocessor

        Иногда требуется указать не только наборы под конкретный тип символов, а вообще свой набор, включающий и буквы, и цифры, и спецсимволы. В этом случае можно воспользоваться утилитой maskprocessor от брутфорсера hashcat. Скачать ее можно с официального гитхаба hashcat.

        Вы можете задать до четырех собственных наборов символов и использовать готовые наборы

        ?l = abcdefghijklmnopqrstuvwxyz
        ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
        ?d = 0123456789
        ?s =  !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
        ?a = ?l?u?d?s
        ?b = 0x00 - 0xff

        Пример использования

        mp64.bin -1 Pp -2 \@\#\$ ?1assw?2r?d



        Или можно задать набор из цифр, но добавить к нему еще несколько спецсимволов так

        mp64.bin -1 Qq -2 ?d\@\#\$ ?1werty_12?2

        Получаем такой результат



        John the Ripper

        Популярный брутфорсер John the Ripper (JTR) тоже позволяет генерировать словари на основе правил. Делается это при помощи ключа --rules, а сами правила описываются в файле john.conf

        Вот так выглядит стандартное правило, используемое для взлома NTLM хэша

        [List.Rules:NT]
        :
        -c T0Q
        -c T1QT[z0]
        -c T2QT[z0]T[z1]
        -c T3QT[z0]T[z1]T[z2]
        -c T4QT[z0]T[z1]T[z2]T[z3]
        -c T5QT[z0]T[z1]T[z2]T[z3]T[z4]
        -c T6QT[z0]T[z1]T[z2]T[z3]T[z4]T[z5]
        -c T7QT[z0]T[z1]T[z2]T[z3]T[z4]T[z5]T[z6]
        -c T8QT[z0]T[z1]T[z2]T[z3]T[z4]T[z5]T[z6]T[z7]
        -c T9QT[z0]T[z1]T[z2]T[z3]T[z4]T[z5]T[z6]T[z7]T[z8]
        -c TAQT[z0]T[z1]T[z2]T[z3]T[z4]T[z5]T[z6]T[z7]T[z8]T[z9]
        -c TBQT[z0]T[z1]T[z2]T[z3]T[z4]T[z5]T[z6]T[z7]T[z8]T[z9]T[zA]
        -c TCQT[z0]T[z1]T[z2]T[z3]T[z4]T[z5]T[z6]T[z7]T[z8]T[z9]T[zA]T[zB]
        -c TDQT[z0]T[z1]T[z2]T[z3]T[z4]T[z5]T[z6]T[z7]T[z8]T[z9]T[zA]T[zB]T[zC]

        В первой строчке сказано, что нужно изменить регистр символа на нулевой позиции (T0), символ Q позволяет не допустить дубликатов в результирующем словаре. Во второй строке символ на первой позиции меняет свой регистр, затем скобки задают препроцессор, чтобы были сгенерированы пароли и с измененным нулевым символом и так далее.

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

        john -w:QWERTY123.dict --stdout --rules:NT
        



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

        hashcat-tools

        Еще одним полезным инструментом является набор утилит от популярного брутфорсера hashcat.

        Скачать их можно с официального сайта.

        Рассмотрим некоторые их них. Описания всех утилит на английском языке можно найти тут.

        combinanor.bin — позволяет генерировать словарь из слов, входящих в два других словаря.



        combinanor3.bin делает то же самое, но на вход принимает три файла, вместо двух.

        combipow.bin — создает все возможные комбинации из слов, перечисленных в файле (похоже на ключ -p в crunch)



        cutb.bin — обрезает слова в словаре до указанной длины. Можно указывать смещение (offset)



        expander.bin — получает на ввод слова, разбирает их на символы, комбинирует и отправляет в STDOUT



        permute.bin — создает словарь, который используется hashcat при атаке типа Permutation attack. Перед использованием словарь нужно пропустить через утилиту prepare.

        gate.bin — разбивает словарь на несколько частей для параллельной обработки несколькими ядрами или несколькими машинами. В примере ниже мы разбиваем стандартный словарь JTR на две части. В первую часть попадают слова под номером 0, 2, 4, 6,…. Во вторую 1, 3, 5, 7,…



        len.bin — оставляет в словаре только слова определенной длины от min до max



        mli2.bin — объединяет два словаря.

        req-include.bin — крайне полезный инструмент, который убирает из словаря все, что не подходит под заданные правила. Например, вы знаете, что по парольной политике в пароле обязательно присутствует буква в верхнем регистре, цифра и спецсимвол.



        Число выбрано исходя из таблицы



        Если таким образом нормализовать известный словарь rockyou, то можно сократить его размер в 270 раз! и не тратить ресурсы на заведомо ложные комбинации.



        req-exclude.bin делает то же самое, что req-include, но с точностью до наоборот.

        rli.bin — эта утилита удаляет значения из первого словаря, если они встречаются во втором. Полезно использовать, если вы создаете один словарь из нескольких.

        Когда под рукой нет утилит



        Может оказаться так, что воспользоваться набором hashcat-utils или crunch нет возможности, а нужно срочно создать словарь или нормализовать его. Некоторые алгоритмы довольно сложны в реализации, но базовые операции можно выполнить просто в командной строке.

        Простой словарь с датами можно создать серией подобных команд

        echo 0{1..9}0{1..9}19{60..99} | tr ' ' '\n' >> dates
        



        Если нужно разбить словарь на части для параллельной обработки, можно воспользоваться командой split

        split -d -l 1000 password.lst splitted_



        Быстро объединить два словаря можно так

        cat dict1 dict2 > combined_dict



        Чтобы сделать заглавной первую или последнюю буквы в каждом слове, нужно выполнить, соответственно, команды

        sed 's/^./\u&/' dict_file
        sed 's/.$/\u&/' dict_file

        Для перевода регистра в нижний нужно заметить «u» на «l»

        Дописать что-то в начало каждого слова из словаря можно так

        sed 's/^./word/' dict_file

        А так можно дописать слово в конец

        sed 's/.$/word/' dict_file
        

        Следующей командой можно добавить в начало число от 0 до 99 к каждому слову в словаре

        for i in $(cat dict_file) ; do seq -f %02.0f$i 0 99 ; done > numbers_dict_file
        

        Можно очистить словарь от значений, в которых не присутствует хотя бы 2 числа так

        nawk 'gsub("[0-9]","&",$0)==2' password.lst

        Получаем



        Это лишь некоторые примеры. Можно писать более сложные обработки на Python и других скриптовых языках. Но всегда нужно помнить, что создание качественного словаря и его нормализация под целевой протокол — важный этап при проведении тестирования на проникновение.
        Original source: habrahabr.ru (comments, light).

        https://habrahabr.ru/post/337718/


        Метки:  

        «Восточный» — наш космодром

        Среда, 13 Сентября 2017 г. 11:00 + в цитатник
        virtser сегодня в 11:00 Управление

        «Восточный» — наш космодром

          В 2012 году на месте космодрома «Восточный» в Амурской области была только тайга. Построить здесь за три с половиной года самый современный космодром в мире, пусть пока только первую его очередь, — колоссальная работа. Нашей компании «ИНСИСТЕМС» посчастливилось участвовать в этом проекте. Объект оказался очень непростым, начиная с того, что он очень большой, и заканчивая сложными климатическими условиями, удаленностью, отсутствием какой бы то ни было инфраструктуры. Проект потребовал от нас много сил, энергии и нестандартных подходов.

          В этом посте я хотел рассказать, как мы решали задачи, которые перед нами возникали в ходе реализации этого грандиозного проекта, а подборка фотографий поможет читателям все увидеть «своими» глазами.




          О «Восточном»



          Космодром «Восточный» расположен в Амурской области, в восьми тысячах километров от Москвы. Это первый гражданский космодром России.

          Его площадь составляет 1035 кв. км (что сравнимо с Москвой в пределах МКАД), площадь под строительство — 96,6 кв. км. На космодроме более 450 сооружений. Протяженность автомобильных и железных дорог космодрома — более 200 км. В строительстве объекта принимало участие более 400 подрядных организаций.



          Для тех, кто хочет почитать про другие космодромы, мы сделали подборку интересных фактов и спрятали ее под спойлер.

          О космосе
          Космическая отрасль – одна из самых молодых. Первый искусственный спутник Земли был запущен 4 октября 1957 года. Первый полет человека состоялся 12 апреля 1961 года. Впервые человек вышел в открытый космос 18 марта 1965 года, высадился на Луну – 21 июля 1969 года. Первый беспилотный полет на Марс состоялся 20 июля 1976 года, а первый полет за пределы солнечной системы – летом 2012 года.

          На сегодняшний день в мире 22 действующих космодрома:
          США — 6
          Китай — 4
          Россия — 3
          Франция — 2
          Япония — 2
          Южная Корея — 1
          КНДР — 1
          Израиль — 1
          Индия — 1
          Бразилия — 1
          1 мобильный стартовый комплекс «Морской старт» (Россия)


          Данные за 1957-2014 гг.

          Космодром изнутри — это:

          • Стартовый комплекс
          • Командный пункт
          • Технические комплексы
          • Заправочные станции
          • Центр эксплуатации районов падения
          • Метрологический комплекс
          • Метеорологический комплекс
          • Комплекс изготовления и хранения топлива
          • Вспомогательные служебные объекты


          Космодром Байконур (Казахстан)

          Самый эксплуатируемый космодром
          Площадь — 6717 кв. км
          9 стартовых площадок, 15 технических комплексов, 6 заправочно-нейтрализационных станций
          Ракета-носители: Протон, Зенит, Союз, Циклон, Рокот, Днепр
          В аренде у Казахстана до 2050 года
          Единственный на сегодня космодром в России, с которого осуществляются пилотируемые запуски.

          Космодром Плесецк (Архангельская область)

          Самый северный космодром в мире
          Площадь — 1762 кв. км
          8 стартовых площадок, 4 технических комплекса, 2 заправочно-нейтрализационных станции
          Ракета-носители: Рокот, Циклон, Космос-3М, Р-7, Ангара
          С 1994 года — первый государственный испытательный космодром Министерства обороны РФ.


          Начало



          23 января 2014 года состоялась наша первая командировка на «Восточный».


          Вот так выглядел монтажно-испытательный комплекс, когда мы туда попали в первый раз. Это был просто бетонный каркас


          А это место нашего будущего городка — русское поле

          Основные объекты технического комплекса — монтажно-испытательные корпуса космических аппаратов и ракет-носителей, заправочно-нейтрализационая станция, склад блоков с тепловым тамбуром, энергоблок, трансбордерная галерея. Они объединены в один тепловой контур с целью обеспечения непрерывности технологического процесса подготовки космических аппаратов и ракет-носителей к запуску в суровых условиях резко континентального климата Амурской области.
          Первый объект — склад блоков с тепловым тамбуром, который в тот момент выглядел как металлокаркас.


          Склад блоков

          По технологии сюда приезжают части ракет и космических аппаратов. Здесь, уже находясь в отапливаемом контуре, они выгружаются, складируются и через трансбордерную галерею доставляются в монтажно-испытательные корпуса.  


          Трансбордерная галерея



          Вот это здание — заправочно-нейтрализационная станция (ЗНС), она примыкает к монтажно-испытательному корпусу космических аппаратов (МИК КА). Внутри МИК КА космические аппараты собираются, проходят различные испытания и тесты, и уже полностью готовые к запуску, отправляются в ЗНС на заправку. Далее уже заправленный космический аппарат перемещается в монтажно-испытательный корпус ракет-носителей (МИК РН). Топливо, используемое в двигателях космических аппаратов, является токсичным. Поэтому вопросам безопасности здесь уделено особое внимание: предусмотрены автоматические системы газового анализа и сигнализации, аварийной вентиляции, предусмотрены тамбур-шлюзы и большое количество организационных мер безопасности.


          Заправочно-нейтрализационная станция

          Вот это монтажно-испытательный корпус ракет-носителей.



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

          К лету 2014 года из окна вертолета стартовый комплекс выглядел так.



          Наша зона ответственности


          Задача «ИНСИСТЕМС» и хабаровской компании «ЛАНИТ-ПАРТНЕР», с которой мы вместе работали на проекте, была оснастить инженерными системами несколько объектов технического комплекса космодрома: монтажно-испытательный комплекс ракет-носителей (МИК РН), энергоблок, холодильный центр и заправочно-нейтрализационную станцию.

          В нашей зоне ответственности были:

          • механические системы (вентиляция, кондиционирование, холодоснабжение, отопление, индивидуальные тепловые пункты (ИТП), водоснабжение, водоотведение, канализация),
          • системы электропитания и электроснабжения (трансформаторные подстанции 10/0,4 кВт, ДГУ, ИБП, распределительные сети 0,4 кВт),
          • противопожарные системы (пожарная сигнализация, оповещение, пожаротушение, дымоудаление, контроль загазованности),
          • сервисные системы и системы связи (СКС, ЛВС, СТС, часофикация, командная связь),
          • автоматизация и диспетчеризация инженерных систем.


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

          Управление бытом


          Амурская область – дотационный регион. В 2016 году занял 67-е место в рейтинге российских регионов по качеству жизни.

          Ближайший к космодрому населенный пункт в 25 км — это Углегорск. Называть его городом пока рано. Живет в этом поселке 5,5 тысяч человек. Райцентры тоже довольно немноголюдны и далеко расположены: Свободный (55 тысяч человек) — 80 км, Шимановск (19 тысяч человек) — 83 км, Белогорск (67 тысяч человек) — 120 км.

          До столицы Амурского края города Благовещенск нужно проехать 230 км. Здесь живет 224 тысячи человек (для сравнения: население района Выхино в Москве — 226 тысяч).


          В наш первый приезд мы разместились в Углегорске. Это типовой военный городок, закрытая территория, ...

          … вход по пропускам


          В Углегорске мы жили, пока не построили свой городок на космодроме. Для нас Углегорск был последним оплотом цивилизации. Например, здесь есть магазин, где можно купить мороженое. Кстати, на первых порах устойчивый интернет тоже был только в Углегорске.

          Летом поселок тоже неповторим

          Градообразующим объектом Углегорска до 2007 года был космодром Свободный. Поэтому тема космоса здесь повсюду


          От Углегорска до космодрома всего 25 километров, но дорога занимала около часа на машине (мы передвигались в зависимости от ситуации или на пикапе Mitsubishi, или микроавтобусе Toyota Hiace, или на грузовичке KIA Bongo). Ехать приходилось по грунтовой дороге, разбитой большегрузными самосвалами, которые здесь курсировали постоянно. На фото еще не самый плохой вариант. Когда проложили асфальт, доехать можно было за 20 минут

          А это земля, которую генподрядчик выделил нам под строительство нашего городка

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

          Во-первых, на территории 2 га мы построили бытовой городок с общежитием на 350 человек и полноценной столовой. Здесь же располагались офисные помещения, теплый склад, гараж.


          Общежитие у нас было, скажем так, на три звезды


          А вот наша столовая определенно получилась на пять звезд. Завтракать, обедать и ужинать к нам ходили не только наши сотрудники, но и сотрудники большинства подрядчиков космодрома. В августе 2014 года у нас состоялся первый обед


          Даже сделали волейбольную площадку и тренажерный зал

          Управление ресурсами



          Мы зашли на объект как две независимые компании «ИНСИСТЕМС» и «ЛАНИТ-ПАРТНЕР», каждая со своим уставом. Опыта работы на похожих по размерам проектах не было почти ни у кого. Местных квалифицированных кадров практически нет. Вообще «местные» — понятие условное: все равно все работают по вахтовому методу.

          В результате мы сформировали единую дирекцию проекта, которая управляла всей оперативной работой. Основную массу инженеров и монтажников мы привезли из Москвы, Хабаровска, Краснодара, Владивостока, Липецка, Чебоксар. В близлежащих городах удалось найти специалистов более широкого применения: водителей, поваров и чернорабочих.

          За два года работы на проекте сотрудниками «ИНСИСТЕМС» было совершено 586 командировок. Мы пролетели на самолетах более 6,5 млн км (это как 162 раза вокруг экватора или как 17 раз от Земли до Луны).


          Празднуем День строителя, 2015 год

          Управление коммуникациями


          Основные действующие лица проекта находились в трех часовых поясах: Амурская область (Мск+6), Хабаровский край (Мск+7), Москва. В 7 утра по местному времени работы начинались и в 8 вечера по Москве заканчивались. Когда Дальний Восток уходил спать, Москва продолжала трудиться. Но тем не менее, был налажен полноценный информационный обмен. (Кстати, за время проекта нами было направлено 2546 официальных писем.)

          Почти сразу было принято важное правило — все решения принимаются на объекте.

          А с этой машиной у нас связаны особые воспоминания.


          В марте 2016 года должно было состояться подписание акта выполненных работ на холодильный центр. Для нас это был ключевой акт, и счет шел на дни. К определенной дате мы должны были подписать акт, получить визу у людей на площадке и где-то еще. Затем с этим актом нужно было поехать в офис заказчика, где должны поставить печати. После этого акт становится бухгалтерским документом.

          Была суббота. (К слову, считается, что на объекте нет выходных. Если в документе указано до 25-го числа каждого месяца, значит, точно до 25-го все должно быть сделано и подписано, даже если этот день выпадает на субботу или воскресенье.) Мы собрали подписи всех, кроме главного человека, на подписи которого ставится синяя печать. А этот человек сидит в Благовещенске (за 230 км!), уехал на выходные.

          Со всеми договорились по телефону, сели в машину. За руль садится руководитель нашего краснодарского филиала — мастер спорта по раллийным гонкам — и ставит рекорд на участке «космодром — Благовещенск» по времени. Гнал он в районе 200 километров в час. Подписал акт, а потом вернулся (!) и успел поставить сверху подпись и печать. Мы смогли все закрыть именно первым кварталом 2016 года. Все в последние часы было сделано.



          Управление содержанием


          Серьезным испытанием для нас стал обвал рубля. Сметы на поставку оборудования из-за рубежа были составлены по курсу 45 рублей за евро. Дополнительных бюджетных средств на строительство не предусматривалось. В итоге совместно с проектным институтом мы заменили часть импортного оборудования отечественным. Часть систем перепроектировали. Холодильный центр мощностью 8,75 МВт сконструировали самостоятельно. Это позволило сократить стоимость на 28%, а срок изготовления — в 2 раза. Подробнее о холодильном центре я расскажу ниже.

          Управление сроками


          Управление сроками зачастую сводится к тому, чтобы «убегая от медведя, бежать быстрее товарища», т.е. работать в относительных сроках, а не в календарных.
          В отсутствии четких планов наладить ритмичную работу на производстве невозможно. Побороть эту проблему нам удалось двумя способами: работать параллельно на нескольких участках, перебрасывая рабочую силу с одного на другой, и в пиковые нагрузки привлекать дополнительный персонал, не требующий мобилизации (студенты стройотрядов, бригады и разнорабочие смежных подрядчиков).

          Управление поставками


          Для обеспечения работ мы доставили в Амурскую область более 160 сорокафутовых контейнеров с грузами и материалами. Только у нашей компании было свыше 450 поставщиков со всего мира – от Испании до Вьетнама. Нами были использованы все виды транспорта: воздушный, железнодорожный, морской, автомобильный.



          Что нами сделано


          Просто некоторые цифры
          Трубы — 131,6 км
          Воздуховоды — 28,4 км
          Лоток — 29,6 км
          Кабель — 1444 км
          Шинопроводы — 3,8 км
          Вентустановки — 443 шт
          Фанкойлы — 223 шт
          Прецизионные кондиционеры — 28 шт
          Чиллеры — 16 шт
          Чиллеры — 14,4 МВт
          Тепловые завесы — 84 шт
          Радиаторы отопления — 1028 шт
          Трансформаторы — 26,1 МВт
          Силовые шкафы и шкафы автоматики — 689 шт
          Светильники — 8600 шт

          Систем, которыми мы занимались на объекте, было много. Мне кажется, что рассказывать о типовых СКС и ЛВС не так интересно. Поэтому кратко остановлюсь на самых сложных работах, которые потребовали от нас нестандартных решений.

          Холодильный центр


          Во-первых, это, конечно, наша любимая история, предмет особой гордости наших инженеров —холодильный центр.

          Зимой в Амурской области температура достигает -40°С, а летом — +38°С. Гигантский холодильный центр обеспечивает поддержание нужных климатических параметров в залах сборки монтажно-испытательных комплексов ракет-носителей (МИК РН) и космических аппаратов (МИК КА). Производительность холодильного центра космодрома составляет 8,75 МВт. Это сопоставимо с системой охлаждения шести ледовых дворцов или комплекса офисных зданий площадью около 150 тыс. кв. м.

          Нами было разработано и предложено решение о замене проектного холодильного центра производства Smardt-OPK Chillers AG (Германия) на аналогичный производства SME-ИНСИСТЕМС. В состав холодильного центра входят компрессоры. Их еще пока в России не производят вообще. Да и в мире их производством занимается небольшое количество заводов. Наша задача состояла в том, чтобы спроектировать конструктивные решения, которые позволили бы произвести максимум подготовительных монтажных работ в заводских условиях, чтобы упростить и ускорить монтаж на объекте, и мы ее решили.

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



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



          Модуль готовится к транспортировке

          Все критичные элементы систем холодильного центра имеют резерв (холодильные машины, сухие охладители жидкости, насосное оборудование, распределительные трассы). Расчетная температура эксплуатации — от -48°С до +32°С. Конструкция холодильного центра рассчитана на сейсмическую устойчивость 7 баллов.


          Идет монтаж. 28 сухих градирин, внешних блоков кондиционеров занимают целое поле


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

          Вентиляция зала сборки МИК РН



          Общая площадь МИК РН — свыше 45 тыс. км. м. Монтаж воздуховодов под потолком на высоте 33 м (представьте десятиэтажный дом) вели бригады промышленных альпинистов.

          Было установлено 16 вентиляционных установок, каждая из которых состоит из трех секций (приточная, вытяжная, фильтрующая) и размещена на трехуровневых мезонинах.






          Мы обеспечили помещению с два футбольных поля 9-й класс чистоты (такой же, как у предоперационных или в боксах микробиологических лабораторий). Для этого нужны целый комплекс мероприятий, строительные конструкции и инженерное обеспечение. В нашу зону ответственности входила система вентиляции. Это больше двух километров герметичных воздуховодов диаметром до 1600 мм, смонтированных в запотолочном пространстве, 24 установки общеобменной вентиляции со специальными секциями фильтров грубой и тонкой очистки.




          Начало монтажа вентмашин

          Суммарная производительность вентиляционных установок составляет 1,68 млн м3/час.







          Аварийная вентиляция заправочно-нейтрализационной станции


          В двигательных установках пилотируемых кораблей, спутников, орбитальных и межпланетных станций применяются высокотоксичные компоненты, например, гептил. Поэтому в заправочно-вентиляционной станции в зоне заправки, а также в зале сборки МИК РН в зонах производства работ на заправленных космических аппаратах во избежание выброса вредных веществ в атмосферу установлена система аварийной вентиляции со специальными нейтрализующими фильтрами-поглотителями компонентов ракетного топлива. Она включается в автоматическом режиме по сигналу от датчиков системы контроля загазованности.

          Нами установлено 18 комплектов по три блока фильтров. Эти фильтры — уникальные изделия, которые производит единственный завод в России. Масса одного такого фильтра — 2400 кг, а изготовление занимает 9 месяцев.





          Если хочется взглянуть на грандиозную инфраструктуру «Восточного» изнутри, то вы можете посмотреть фильм компании «ЛАНИТ-ПАРТНЕР» о системах, которые мы делали на объекте:




          Фильм посвящен Дню космонавтики — 56-й годовщине первого полета человека в космос.

          Космодромные уроки


          Этот проект стал для "ИНСИСТЕМС" и "ЛАНИТ-ПАРТНЕР" вызовом. Но не с технической точки зрения, ведь инженерные системы — это абсолютно наша тема, а на космодроме мы не делали ничего такого, чего не делали раньше. Объект был сложен с управленческой точки зрения — по объемам, срокам, видам оборудования и т.д. Это как художника попросили бы: «Нарисуй то же самое, но только на поверхности размером 10 х10 метров».

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

          Original source: habrahabr.ru (comments, light).

          https://habrahabr.ru/post/337770/


          Метки:  

          «Восточный» — наш космодром

          Среда, 13 Сентября 2017 г. 11:00 + в цитатник
          virtser сегодня в 11:00 Управление

          «Восточный» — наш космодром

            В 2012 году на месте космодрома «Восточный» в Амурской области была только тайга. Построить здесь за три с половиной года самый современный космодром в мире, пусть пока только первую его очередь, — колоссальная работа. Нашей компании «ИНСИСТЕМС» посчастливилось участвовать в этом проекте. Объект оказался очень непростым, начиная с того, что он очень большой, и заканчивая сложными климатическими условиями, удаленностью, отсутствием какой бы то ни было инфраструктуры. Проект потребовал от нас много сил, энергии и нестандартных подходов.

            В этом посте я хотел рассказать, как мы решали задачи, которые перед нами возникали в ходе реализации этого грандиозного проекта, а подборка фотографий поможет читателям все увидеть «своими» глазами.




            О «Восточном»



            Космодром «Восточный» расположен в Амурской области, в восьми тысячах километров от Москвы. Это первый гражданский космодром России.

            Его площадь составляет 1035 кв. км (что сравнимо с Москвой в пределах МКАД), площадь под строительство — 96,6 кв. км. На космодроме более 450 сооружений. Протяженность автомобильных и железных дорог космодрома — более 200 км. В строительстве объекта принимало участие более 400 подрядных организаций.



            Для тех, кто хочет почитать про другие космодромы, мы сделали подборку интересных фактов и спрятали ее под спойлер.

            О космосе
            Космическая отрасль – одна из самых молодых. Первый искусственный спутник Земли был запущен 4 октября 1957 года. Первый полет человека состоялся 12 апреля 1961 года. Впервые человек вышел в открытый космос 18 марта 1965 года, высадился на Луну – 21 июля 1969 года. Первый беспилотный полет на Марс состоялся 20 июля 1976 года, а первый полет за пределы солнечной системы – летом 2012 года.

            На сегодняшний день в мире 22 действующих космодрома:
            США — 6
            Китай — 4
            Россия — 3
            Франция — 2
            Япония — 2
            Южная Корея — 1
            КНДР — 1
            Израиль — 1
            Индия — 1
            Бразилия — 1
            1 мобильный стартовый комплекс «Морской старт» (Россия)


            Данные за 1957-2014 гг.

            Космодром изнутри — это:

            • Стартовый комплекс
            • Командный пункт
            • Технические комплексы
            • Заправочные станции
            • Центр эксплуатации районов падения
            • Метрологический комплекс
            • Метеорологический комплекс
            • Комплекс изготовления и хранения топлива
            • Вспомогательные служебные объекты


            Космодром Байконур (Казахстан)

            Самый эксплуатируемый космодром
            Площадь — 6717 кв. км
            9 стартовых площадок, 15 технических комплексов, 6 заправочно-нейтрализационных станций
            Ракета-носители: Протон, Зенит, Союз, Циклон, Рокот, Днепр
            В аренде у Казахстана до 2050 года
            Единственный на сегодня космодром в России, с которого осуществляются пилотируемые запуски.

            Космодром Плесецк (Архангельская область)

            Самый северный космодром в мире
            Площадь — 1762 кв. км
            8 стартовых площадок, 4 технических комплекса, 2 заправочно-нейтрализационных станции
            Ракета-носители: Рокот, Циклон, Космос-3М, Р-7, Ангара
            С 1994 года — первый государственный испытательный космодром Министерства обороны РФ.


            Начало



            23 января 2014 года состоялась наша первая командировка на «Восточный».


            Вот так выглядел монтажно-испытательный комплекс, когда мы туда попали в первый раз. Это был просто бетонный каркас


            А это место нашего будущего городка — русское поле

            Основные объекты технического комплекса — монтажно-испытательные корпуса космических аппаратов и ракет-носителей, заправочно-нейтрализационая станция, склад блоков с тепловым тамбуром, энергоблок, трансбордерная галерея. Они объединены в один тепловой контур с целью обеспечения непрерывности технологического процесса подготовки космических аппаратов и ракет-носителей к запуску в суровых условиях резко континентального климата Амурской области.
            Первый объект — склад блоков с тепловым тамбуром, который в тот момент выглядел как металлокаркас.


            Склад блоков

            По технологии сюда приезжают части ракет и космических аппаратов. Здесь, уже находясь в отапливаемом контуре, они выгружаются, складируются и через трансбордерную галерею доставляются в монтажно-испытательные корпуса.  


            Трансбордерная галерея



            Вот это здание — заправочно-нейтрализационная станция (ЗНС), она примыкает к монтажно-испытательному корпусу космических аппаратов (МИК КА). Внутри МИК КА космические аппараты собираются, проходят различные испытания и тесты, и уже полностью готовые к запуску, отправляются в ЗНС на заправку. Далее уже заправленный космический аппарат перемещается в монтажно-испытательный корпус ракет-носителей (МИК РН). Топливо, используемое в двигателях космических аппаратов, является токсичным. Поэтому вопросам безопасности здесь уделено особое внимание: предусмотрены автоматические системы газового анализа и сигнализации, аварийной вентиляции, предусмотрены тамбур-шлюзы и большое количество организационных мер безопасности.


            Заправочно-нейтрализационная станция

            Вот это монтажно-испытательный корпус ракет-носителей.



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

            К лету 2014 года из окна вертолета стартовый комплекс выглядел так.



            Наша зона ответственности


            Задача «ИНСИСТЕМС» и хабаровской компании «ЛАНИТ-ПАРТНЕР», с которой мы вместе работали на проекте, была оснастить инженерными системами несколько объектов технического комплекса космодрома: монтажно-испытательный комплекс ракет-носителей (МИК РН), энергоблок, холодильный центр и заправочно-нейтрализационную станцию.

            В нашей зоне ответственности были:

            • механические системы (вентиляция, кондиционирование, холодоснабжение, отопление, индивидуальные тепловые пункты (ИТП), водоснабжение, водоотведение, канализация),
            • системы электропитания и электроснабжения (трансформаторные подстанции 10/0,4 кВт, ДГУ, ИБП, распределительные сети 0,4 кВт),
            • противопожарные системы (пожарная сигнализация, оповещение, пожаротушение, дымоудаление, контроль загазованности),
            • сервисные системы и системы связи (СКС, ЛВС, СТС, часофикация, командная связь),
            • автоматизация и диспетчеризация инженерных систем.


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

            Управление бытом


            Амурская область – дотационный регион. В 2016 году занял 67-е место в рейтинге российских регионов по качеству жизни.

            Ближайший к космодрому населенный пункт в 25 км — это Углегорск. Называть его городом пока рано. Живет в этом поселке 5,5 тысяч человек. Райцентры тоже довольно немноголюдны и далеко расположены: Свободный (55 тысяч человек) — 80 км, Шимановск (19 тысяч человек) — 83 км, Белогорск (67 тысяч человек) — 120 км.

            До столицы Амурского края города Благовещенск нужно проехать 230 км. Здесь живет 224 тысячи человек (для сравнения: население района Выхино в Москве — 226 тысяч).


            В наш первый приезд мы разместились в Углегорске. Это типовой военный городок, закрытая территория, ...

            … вход по пропускам


            В Углегорске мы жили, пока не построили свой городок на космодроме. Для нас Углегорск был последним оплотом цивилизации. Например, здесь есть магазин, где можно купить мороженое. Кстати, на первых порах устойчивый интернет тоже был только в Углегорске.

            Летом поселок тоже неповторим

            Градообразующим объектом Углегорска до 2007 года был космодром Свободный. Поэтому тема космоса здесь повсюду


            От Углегорска до космодрома всего 25 километров, но дорога занимала около часа на машине (мы передвигались в зависимости от ситуации или на пикапе Mitsubishi, или микроавтобусе Toyota Hiace, или на грузовичке KIA Bongo). Ехать приходилось по грунтовой дороге, разбитой большегрузными самосвалами, которые здесь курсировали постоянно. На фото еще не самый плохой вариант. Когда проложили асфальт, доехать можно было за 20 минут

            А это земля, которую генподрядчик выделил нам под строительство нашего городка

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

            Во-первых, на территории 2 га мы построили бытовой городок с общежитием на 350 человек и полноценной столовой. Здесь же располагались офисные помещения, теплый склад, гараж.


            Общежитие у нас было, скажем так, на три звезды


            А вот наша столовая определенно получилась на пять звезд. Завтракать, обедать и ужинать к нам ходили не только наши сотрудники, но и сотрудники большинства подрядчиков космодрома. В августе 2014 года у нас состоялся первый обед


            Даже сделали волейбольную площадку и тренажерный зал

            Управление ресурсами



            Мы зашли на объект как две независимые компании «ИНСИСТЕМС» и «ЛАНИТ-ПАРТНЕР», каждая со своим уставом. Опыта работы на похожих по размерам проектах не было почти ни у кого. Местных квалифицированных кадров практически нет. Вообще «местные» — понятие условное: все равно все работают по вахтовому методу.

            В результате мы сформировали единую дирекцию проекта, которая управляла всей оперативной работой. Основную массу инженеров и монтажников мы привезли из Москвы, Хабаровска, Краснодара, Владивостока, Липецка, Чебоксар. В близлежащих городах удалось найти специалистов более широкого применения: водителей, поваров и чернорабочих.

            За два года работы на проекте сотрудниками «ИНСИСТЕМС» было совершено 586 командировок. Мы пролетели на самолетах более 6,5 млн км (это как 162 раза вокруг экватора или как 17 раз от Земли до Луны).


            Празднуем День строителя, 2015 год

            Управление коммуникациями


            Основные действующие лица проекта находились в трех часовых поясах: Амурская область (Мск+6), Хабаровский край (Мск+7), Москва. В 7 утра по местному времени работы начинались и в 8 вечера по Москве заканчивались. Когда Дальний Восток уходил спать, Москва продолжала трудиться. Но тем не менее, был налажен полноценный информационный обмен. (Кстати, за время проекта нами было направлено 2546 официальных писем.)

            Почти сразу было принято важное правило — все решения принимаются на объекте.

            А с этой машиной у нас связаны особые воспоминания.


            В марте 2016 года должно было состояться подписание акта выполненных работ на холодильный центр. Для нас это был ключевой акт, и счет шел на дни. К определенной дате мы должны были подписать акт, получить визу у людей на площадке и где-то еще. Затем с этим актом нужно было поехать в офис заказчика, где должны поставить печати. После этого акт становится бухгалтерским документом.

            Была суббота. (К слову, считается, что на объекте нет выходных. Если в документе указано до 25-го числа каждого месяца, значит, точно до 25-го все должно быть сделано и подписано, даже если этот день выпадает на субботу или воскресенье.) Мы собрали подписи всех, кроме главного человека, на подписи которого ставится синяя печать. А этот человек сидит в Благовещенске (за 230 км!), уехал на выходные.

            Со всеми договорились по телефону, сели в машину. За руль садится руководитель нашего краснодарского филиала — мастер спорта по раллийным гонкам — и ставит рекорд на участке «космодром — Благовещенск» по времени. Гнал он в районе 200 километров в час. Подписал акт, а потом вернулся (!) и успел поставить сверху подпись и печать. Мы смогли все закрыть именно первым кварталом 2016 года. Все в последние часы было сделано.



            Управление содержанием


            Серьезным испытанием для нас стал обвал рубля. Сметы на поставку оборудования из-за рубежа были составлены по курсу 45 рублей за евро. Дополнительных бюджетных средств на строительство не предусматривалось. В итоге совместно с проектным институтом мы заменили часть импортного оборудования отечественным. Часть систем перепроектировали. Холодильный центр мощностью 8,75 МВт сконструировали самостоятельно. Это позволило сократить стоимость на 28%, а срок изготовления — в 2 раза. Подробнее о холодильном центре я расскажу ниже.

            Управление сроками


            Управление сроками зачастую сводится к тому, чтобы «убегая от медведя, бежать быстрее товарища», т.е. работать в относительных сроках, а не в календарных.
            В отсутствии четких планов наладить ритмичную работу на производстве невозможно. Побороть эту проблему нам удалось двумя способами: работать параллельно на нескольких участках, перебрасывая рабочую силу с одного на другой, и в пиковые нагрузки привлекать дополнительный персонал, не требующий мобилизации (студенты стройотрядов, бригады и разнорабочие смежных подрядчиков).

            Управление поставками


            Для обеспечения работ мы доставили в Амурскую область более 160 сорокафутовых контейнеров с грузами и материалами. Только у нашей компании было свыше 450 поставщиков со всего мира – от Испании до Вьетнама. Нами были использованы все виды транспорта: воздушный, железнодорожный, морской, автомобильный.



            Что нами сделано


            Просто некоторые цифры
            Трубы — 131,6 км
            Воздуховоды — 28,4 км
            Лоток — 29,6 км
            Кабель — 1444 км
            Шинопроводы — 3,8 км
            Вентустановки — 443 шт
            Фанкойлы — 223 шт
            Прецизионные кондиционеры — 28 шт
            Чиллеры — 16 шт
            Чиллеры — 14,4 МВт
            Тепловые завесы — 84 шт
            Радиаторы отопления — 1028 шт
            Трансформаторы — 26,1 МВт
            Силовые шкафы и шкафы автоматики — 689 шт
            Светильники — 8600 шт

            Систем, которыми мы занимались на объекте, было много. Мне кажется, что рассказывать о типовых СКС и ЛВС не так интересно. Поэтому кратко остановлюсь на самых сложных работах, которые потребовали от нас нестандартных решений.

            Холодильный центр


            Во-первых, это, конечно, наша любимая история, предмет особой гордости наших инженеров —холодильный центр.

            Зимой в Амурской области температура достигает -40°С, а летом — +38°С. Гигантский холодильный центр обеспечивает поддержание нужных климатических параметров в залах сборки монтажно-испытательных комплексов ракет-носителей (МИК РН) и космических аппаратов (МИК КА). Производительность холодильного центра космодрома составляет 8,75 МВт. Это сопоставимо с системой охлаждения шести ледовых дворцов или комплекса офисных зданий площадью около 150 тыс. кв. м.

            Нами было разработано и предложено решение о замене проектного холодильного центра производства Smardt-OPK Chillers AG (Германия) на аналогичный производства SME-ИНСИСТЕМС. В состав холодильного центра входят компрессоры. Их еще пока в России не производят вообще. Да и в мире их производством занимается небольшое количество заводов. Наша задача состояла в том, чтобы спроектировать конструктивные решения, которые позволили бы произвести максимум подготовительных монтажных работ в заводских условиях, чтобы упростить и ускорить монтаж на объекте, и мы ее решили.

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



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



            Модуль готовится к транспортировке

            Все критичные элементы систем холодильного центра имеют резерв (холодильные машины, сухие охладители жидкости, насосное оборудование, распределительные трассы). Расчетная температура эксплуатации — от -48°С до +32°С. Конструкция холодильного центра рассчитана на сейсмическую устойчивость 7 баллов.


            Идет монтаж. 28 сухих градирин, внешних блоков кондиционеров занимают целое поле


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

            Вентиляция зала сборки МИК РН



            Общая площадь МИК РН — свыше 45 тыс. км. м. Монтаж воздуховодов под потолком на высоте 33 м (представьте десятиэтажный дом) вели бригады промышленных альпинистов.

            Было установлено 16 вентиляционных установок, каждая из которых состоит из трех секций (приточная, вытяжная, фильтрующая) и размещена на трехуровневых мезонинах.






            Мы обеспечили помещению с два футбольных поля 9-й класс чистоты (такой же, как у предоперационных или в боксах микробиологических лабораторий). Для этого нужны целый комплекс мероприятий, строительные конструкции и инженерное обеспечение. В нашу зону ответственности входила система вентиляции. Это больше двух километров герметичных воздуховодов диаметром до 1600 мм, смонтированных в запотолочном пространстве, 24 установки общеобменной вентиляции со специальными секциями фильтров грубой и тонкой очистки.




            Начало монтажа вентмашин

            Суммарная производительность вентиляционных установок составляет 1,68 млн м3/час.







            Аварийная вентиляция заправочно-нейтрализационной станции


            В двигательных установках пилотируемых кораблей, спутников, орбитальных и межпланетных станций применяются высокотоксичные компоненты, например, гептил. Поэтому в заправочно-вентиляционной станции в зоне заправки, а также в зале сборки МИК РН в зонах производства работ на заправленных космических аппаратах во избежание выброса вредных веществ в атмосферу установлена система аварийной вентиляции со специальными нейтрализующими фильтрами-поглотителями компонентов ракетного топлива. Она включается в автоматическом режиме по сигналу от датчиков системы контроля загазованности.

            Нами установлено 18 комплектов по три блока фильтров. Эти фильтры — уникальные изделия, которые производит единственный завод в России. Масса одного такого фильтра — 2400 кг, а изготовление занимает 9 месяцев.





            Если хочется взглянуть на грандиозную инфраструктуру «Восточного» изнутри, то вы можете посмотреть фильм компании «ЛАНИТ-ПАРТНЕР» о системах, которые мы делали на объекте:




            Фильм посвящен Дню космонавтики — 56-й годовщине первого полета человека в космос.

            Космодромные уроки


            Этот проект стал для "ИНСИСТЕМС" и "ЛАНИТ-ПАРТНЕР" вызовом. Но не с технической точки зрения, ведь инженерные системы — это абсолютно наша тема, а на космодроме мы не делали ничего такого, чего не делали раньше. Объект был сложен с управленческой точки зрения — по объемам, срокам, видам оборудования и т.д. Это как художника попросили бы: «Нарисуй то же самое, но только на поверхности размером 10 х10 метров».

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

            Original source: habrahabr.ru (comments, light).

            https://habrahabr.ru/post/337770/


            Метки:  

            «Восточный» — наш космодром

            Среда, 13 Сентября 2017 г. 11:00 + в цитатник
            virtser сегодня в 11:00 Управление

            «Восточный» — наш космодром

              В 2012 году на месте космодрома «Восточный» в Амурской области была только тайга. Построить здесь за три с половиной года самый современный космодром в мире, пусть пока только первую его очередь, — колоссальная работа. Нашей компании «ИНСИСТЕМС» посчастливилось участвовать в этом проекте. Объект оказался очень непростым, начиная с того, что он очень большой, и заканчивая сложными климатическими условиями, удаленностью, отсутствием какой бы то ни было инфраструктуры. Проект потребовал от нас много сил, энергии и нестандартных подходов.

              В этом посте я хотел рассказать, как мы решали задачи, которые перед нами возникали в ходе реализации этого грандиозного проекта, а подборка фотографий поможет читателям все увидеть «своими» глазами.




              О «Восточном»



              Космодром «Восточный» расположен в Амурской области, в восьми тысячах километров от Москвы. Это первый гражданский космодром России.

              Его площадь составляет 1035 кв. км (что сравнимо с Москвой в пределах МКАД), площадь под строительство — 96,6 кв. км. На космодроме более 450 сооружений. Протяженность автомобильных и железных дорог космодрома — более 200 км. В строительстве объекта принимало участие более 400 подрядных организаций.



              Для тех, кто хочет почитать про другие космодромы, мы сделали подборку интересных фактов и спрятали ее под спойлер.

              О космосе
              Космическая отрасль – одна из самых молодых. Первый искусственный спутник Земли был запущен 4 октября 1957 года. Первый полет человека состоялся 12 апреля 1961 года. Впервые человек вышел в открытый космос 18 марта 1965 года, высадился на Луну – 21 июля 1969 года. Первый беспилотный полет на Марс состоялся 20 июля 1976 года, а первый полет за пределы солнечной системы – летом 2012 года.

              На сегодняшний день в мире 22 действующих космодрома:
              США — 6
              Китай — 4
              Россия — 3
              Франция — 2
              Япония — 2
              Южная Корея — 1
              КНДР — 1
              Израиль — 1
              Индия — 1
              Бразилия — 1
              1 мобильный стартовый комплекс «Морской старт» (Россия)


              Данные за 1957-2014 гг.

              Космодром изнутри — это:

              • Стартовый комплекс
              • Командный пункт
              • Технические комплексы
              • Заправочные станции
              • Центр эксплуатации районов падения
              • Метрологический комплекс
              • Метеорологический комплекс
              • Комплекс изготовления и хранения топлива
              • Вспомогательные служебные объекты


              Космодром Байконур (Казахстан)

              Самый эксплуатируемый космодром
              Площадь — 6717 кв. км
              9 стартовых площадок, 15 технических комплексов, 6 заправочно-нейтрализационных станций
              Ракета-носители: Протон, Зенит, Союз, Циклон, Рокот, Днепр
              В аренде у Казахстана до 2050 года
              Единственный на сегодня космодром в России, с которого осуществляются пилотируемые запуски.

              Космодром Плесецк (Архангельская область)

              Самый северный космодром в мире
              Площадь — 1762 кв. км
              8 стартовых площадок, 4 технических комплекса, 2 заправочно-нейтрализационных станции
              Ракета-носители: Рокот, Циклон, Космос-3М, Р-7, Ангара
              С 1994 года — первый государственный испытательный космодром Министерства обороны РФ.


              Начало



              23 января 2014 года состоялась наша первая командировка на «Восточный».


              Вот так выглядел монтажно-испытательный комплекс, когда мы туда попали в первый раз. Это был просто бетонный каркас


              А это место нашего будущего городка — русское поле

              Основные объекты технического комплекса — монтажно-испытательные корпуса космических аппаратов и ракет-носителей, заправочно-нейтрализационая станция, склад блоков с тепловым тамбуром, энергоблок, трансбордерная галерея. Они объединены в один тепловой контур с целью обеспечения непрерывности технологического процесса подготовки космических аппаратов и ракет-носителей к запуску в суровых условиях резко континентального климата Амурской области.
              Первый объект — склад блоков с тепловым тамбуром, который в тот момент выглядел как металлокаркас.


              Склад блоков

              По технологии сюда приезжают части ракет и космических аппаратов. Здесь, уже находясь в отапливаемом контуре, они выгружаются, складируются и через трансбордерную галерею доставляются в монтажно-испытательные корпуса.  


              Трансбордерная галерея



              Вот это здание — заправочно-нейтрализационная станция (ЗНС), она примыкает к монтажно-испытательному корпусу космических аппаратов (МИК КА). Внутри МИК КА космические аппараты собираются, проходят различные испытания и тесты, и уже полностью готовые к запуску, отправляются в ЗНС на заправку. Далее уже заправленный космический аппарат перемещается в монтажно-испытательный корпус ракет-носителей (МИК РН). Топливо, используемое в двигателях космических аппаратов, является токсичным. Поэтому вопросам безопасности здесь уделено особое внимание: предусмотрены автоматические системы газового анализа и сигнализации, аварийной вентиляции, предусмотрены тамбур-шлюзы и большое количество организационных мер безопасности.


              Заправочно-нейтрализационная станция

              Вот это монтажно-испытательный корпус ракет-носителей.



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

              К лету 2014 года из окна вертолета стартовый комплекс выглядел так.



              Наша зона ответственности


              Задача «ИНСИСТЕМС» и хабаровской компании «ЛАНИТ-ПАРТНЕР», с которой мы вместе работали на проекте, была оснастить инженерными системами несколько объектов технического комплекса космодрома: монтажно-испытательный комплекс ракет-носителей (МИК РН), энергоблок, холодильный центр и заправочно-нейтрализационную станцию.

              В нашей зоне ответственности были:

              • механические системы (вентиляция, кондиционирование, холодоснабжение, отопление, индивидуальные тепловые пункты (ИТП), водоснабжение, водоотведение, канализация),
              • системы электропитания и электроснабжения (трансформаторные подстанции 10/0,4 кВт, ДГУ, ИБП, распределительные сети 0,4 кВт),
              • противопожарные системы (пожарная сигнализация, оповещение, пожаротушение, дымоудаление, контроль загазованности),
              • сервисные системы и системы связи (СКС, ЛВС, СТС, часофикация, командная связь),
              • автоматизация и диспетчеризация инженерных систем.


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

              Управление бытом


              Амурская область – дотационный регион. В 2016 году занял 67-е место в рейтинге российских регионов по качеству жизни.

              Ближайший к космодрому населенный пункт в 25 км — это Углегорск. Называть его городом пока рано. Живет в этом поселке 5,5 тысяч человек. Райцентры тоже довольно немноголюдны и далеко расположены: Свободный (55 тысяч человек) — 80 км, Шимановск (19 тысяч человек) — 83 км, Белогорск (67 тысяч человек) — 120 км.

              До столицы Амурского края города Благовещенск нужно проехать 230 км. Здесь живет 224 тысячи человек (для сравнения: население района Выхино в Москве — 226 тысяч).


              В наш первый приезд мы разместились в Углегорске. Это типовой военный городок, закрытая территория, ...

              … вход по пропускам


              В Углегорске мы жили, пока не построили свой городок на космодроме. Для нас Углегорск был последним оплотом цивилизации. Например, здесь есть магазин, где можно купить мороженое. Кстати, на первых порах устойчивый интернет тоже был только в Углегорске.

              Летом поселок тоже неповторим

              Градообразующим объектом Углегорска до 2007 года был космодром Свободный. Поэтому тема космоса здесь повсюду


              От Углегорска до космодрома всего 25 километров, но дорога занимала около часа на машине (мы передвигались в зависимости от ситуации или на пикапе Mitsubishi, или микроавтобусе Toyota Hiace, или на грузовичке KIA Bongo). Ехать приходилось по грунтовой дороге, разбитой большегрузными самосвалами, которые здесь курсировали постоянно. На фото еще не самый плохой вариант. Когда проложили асфальт, доехать можно было за 20 минут

              А это земля, которую генподрядчик выделил нам под строительство нашего городка

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

              Во-первых, на территории 2 га мы построили бытовой городок с общежитием на 350 человек и полноценной столовой. Здесь же располагались офисные помещения, теплый склад, гараж.


              Общежитие у нас было, скажем так, на три звезды


              А вот наша столовая определенно получилась на пять звезд. Завтракать, обедать и ужинать к нам ходили не только наши сотрудники, но и сотрудники большинства подрядчиков космодрома. В августе 2014 года у нас состоялся первый обед


              Даже сделали волейбольную площадку и тренажерный зал

              Управление ресурсами



              Мы зашли на объект как две независимые компании «ИНСИСТЕМС» и «ЛАНИТ-ПАРТНЕР», каждая со своим уставом. Опыта работы на похожих по размерам проектах не было почти ни у кого. Местных квалифицированных кадров практически нет. Вообще «местные» — понятие условное: все равно все работают по вахтовому методу.

              В результате мы сформировали единую дирекцию проекта, которая управляла всей оперативной работой. Основную массу инженеров и монтажников мы привезли из Москвы, Хабаровска, Краснодара, Владивостока, Липецка, Чебоксар. В близлежащих городах удалось найти специалистов более широкого применения: водителей, поваров и чернорабочих.

              За два года работы на проекте сотрудниками «ИНСИСТЕМС» было совершено 586 командировок. Мы пролетели на самолетах более 6,5 млн км (это как 162 раза вокруг экватора или как 17 раз от Земли до Луны).


              Празднуем День строителя, 2015 год

              Управление коммуникациями


              Основные действующие лица проекта находились в трех часовых поясах: Амурская область (Мск+6), Хабаровский край (Мск+7), Москва. В 7 утра по местному времени работы начинались и в 8 вечера по Москве заканчивались. Когда Дальний Восток уходил спать, Москва продолжала трудиться. Но тем не менее, был налажен полноценный информационный обмен. (Кстати, за время проекта нами было направлено 2546 официальных писем.)

              Почти сразу было принято важное правило — все решения принимаются на объекте.

              А с этой машиной у нас связаны особые воспоминания.


              В марте 2016 года должно было состояться подписание акта выполненных работ на холодильный центр. Для нас это был ключевой акт, и счет шел на дни. К определенной дате мы должны были подписать акт, получить визу у людей на площадке и где-то еще. Затем с этим актом нужно было поехать в офис заказчика, где должны поставить печати. После этого акт становится бухгалтерским документом.

              Была суббота. (К слову, считается, что на объекте нет выходных. Если в документе указано до 25-го числа каждого месяца, значит, точно до 25-го все должно быть сделано и подписано, даже если этот день выпадает на субботу или воскресенье.) Мы собрали подписи всех, кроме главного человека, на подписи которого ставится синяя печать. А этот человек сидит в Благовещенске (за 230 км!), уехал на выходные.

              Со всеми договорились по телефону, сели в машину. За руль садится руководитель нашего краснодарского филиала — мастер спорта по раллийным гонкам — и ставит рекорд на участке «космодром — Благовещенск» по времени. Гнал он в районе 200 километров в час. Подписал акт, а потом вернулся (!) и успел поставить сверху подпись и печать. Мы смогли все закрыть именно первым кварталом 2016 года. Все в последние часы было сделано.



              Управление содержанием


              Серьезным испытанием для нас стал обвал рубля. Сметы на поставку оборудования из-за рубежа были составлены по курсу 45 рублей за евро. Дополнительных бюджетных средств на строительство не предусматривалось. В итоге совместно с проектным институтом мы заменили часть импортного оборудования отечественным. Часть систем перепроектировали. Холодильный центр мощностью 8,75 МВт сконструировали самостоятельно. Это позволило сократить стоимость на 28%, а срок изготовления — в 2 раза. Подробнее о холодильном центре я расскажу ниже.

              Управление сроками


              Управление сроками зачастую сводится к тому, чтобы «убегая от медведя, бежать быстрее товарища», т.е. работать в относительных сроках, а не в календарных.
              В отсутствии четких планов наладить ритмичную работу на производстве невозможно. Побороть эту проблему нам удалось двумя способами: работать параллельно на нескольких участках, перебрасывая рабочую силу с одного на другой, и в пиковые нагрузки привлекать дополнительный персонал, не требующий мобилизации (студенты стройотрядов, бригады и разнорабочие смежных подрядчиков).

              Управление поставками


              Для обеспечения работ мы доставили в Амурскую область более 160 сорокафутовых контейнеров с грузами и материалами. Только у нашей компании было свыше 450 поставщиков со всего мира – от Испании до Вьетнама. Нами были использованы все виды транспорта: воздушный, железнодорожный, морской, автомобильный.



              Что нами сделано


              Просто некоторые цифры
              Трубы — 131,6 км
              Воздуховоды — 28,4 км
              Лоток — 29,6 км
              Кабель — 1444 км
              Шинопроводы — 3,8 км
              Вентустановки — 443 шт
              Фанкойлы — 223 шт
              Прецизионные кондиционеры — 28 шт
              Чиллеры — 16 шт
              Чиллеры — 14,4 МВт
              Тепловые завесы — 84 шт
              Радиаторы отопления — 1028 шт
              Трансформаторы — 26,1 МВт
              Силовые шкафы и шкафы автоматики — 689 шт
              Светильники — 8600 шт

              Систем, которыми мы занимались на объекте, было много. Мне кажется, что рассказывать о типовых СКС и ЛВС не так интересно. Поэтому кратко остановлюсь на самых сложных работах, которые потребовали от нас нестандартных решений.

              Холодильный центр


              Во-первых, это, конечно, наша любимая история, предмет особой гордости наших инженеров —холодильный центр.

              Зимой в Амурской области температура достигает -40°С, а летом — +38°С. Гигантский холодильный центр обеспечивает поддержание нужных климатических параметров в залах сборки монтажно-испытательных комплексов ракет-носителей (МИК РН) и космических аппаратов (МИК КА). Производительность холодильного центра космодрома составляет 8,75 МВт. Это сопоставимо с системой охлаждения шести ледовых дворцов или комплекса офисных зданий площадью около 150 тыс. кв. м.

              Нами было разработано и предложено решение о замене проектного холодильного центра производства Smardt-OPK Chillers AG (Германия) на аналогичный производства SME-ИНСИСТЕМС. В состав холодильного центра входят компрессоры. Их еще пока в России не производят вообще. Да и в мире их производством занимается небольшое количество заводов. Наша задача состояла в том, чтобы спроектировать конструктивные решения, которые позволили бы произвести максимум подготовительных монтажных работ в заводских условиях, чтобы упростить и ускорить монтаж на объекте, и мы ее решили.

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



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



              Модуль готовится к транспортировке

              Все критичные элементы систем холодильного центра имеют резерв (холодильные машины, сухие охладители жидкости, насосное оборудование, распределительные трассы). Расчетная температура эксплуатации — от -48°С до +32°С. Конструкция холодильного центра рассчитана на сейсмическую устойчивость 7 баллов.


              Идет монтаж. 28 сухих градирин, внешних блоков кондиционеров занимают целое поле


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

              Вентиляция зала сборки МИК РН



              Общая площадь МИК РН — свыше 45 тыс. км. м. Монтаж воздуховодов под потолком на высоте 33 м (представьте десятиэтажный дом) вели бригады промышленных альпинистов.

              Было установлено 16 вентиляционных установок, каждая из которых состоит из трех секций (приточная, вытяжная, фильтрующая) и размещена на трехуровневых мезонинах.






              Мы обеспечили помещению с два футбольных поля 9-й класс чистоты (такой же, как у предоперационных или в боксах микробиологических лабораторий). Для этого нужны целый комплекс мероприятий, строительные конструкции и инженерное обеспечение. В нашу зону ответственности входила система вентиляции. Это больше двух километров герметичных воздуховодов диаметром до 1600 мм, смонтированных в запотолочном пространстве, 24 установки общеобменной вентиляции со специальными секциями фильтров грубой и тонкой очистки.




              Начало монтажа вентмашин

              Суммарная производительность вентиляционных установок составляет 1,68 млн м3/час.







              Аварийная вентиляция заправочно-нейтрализационной станции


              В двигательных установках пилотируемых кораблей, спутников, орбитальных и межпланетных станций применяются высокотоксичные компоненты, например, гептил. Поэтому в заправочно-вентиляционной станции в зоне заправки, а также в зале сборки МИК РН в зонах производства работ на заправленных космических аппаратах во избежание выброса вредных веществ в атмосферу установлена система аварийной вентиляции со специальными нейтрализующими фильтрами-поглотителями компонентов ракетного топлива. Она включается в автоматическом режиме по сигналу от датчиков системы контроля загазованности.

              Нами установлено 18 комплектов по три блока фильтров. Эти фильтры — уникальные изделия, которые производит единственный завод в России. Масса одного такого фильтра — 2400 кг, а изготовление занимает 9 месяцев.





              Если хочется взглянуть на грандиозную инфраструктуру «Восточного» изнутри, то вы можете посмотреть фильм компании «ЛАНИТ-ПАРТНЕР» о системах, которые мы делали на объекте:




              Фильм посвящен Дню космонавтики — 56-й годовщине первого полета человека в космос.

              Космодромные уроки


              Этот проект стал для "ИНСИСТЕМС" и "ЛАНИТ-ПАРТНЕР" вызовом. Но не с технической точки зрения, ведь инженерные системы — это абсолютно наша тема, а на космодроме мы не делали ничего такого, чего не делали раньше. Объект был сложен с управленческой точки зрения — по объемам, срокам, видам оборудования и т.д. Это как художника попросили бы: «Нарисуй то же самое, но только на поверхности размером 10 х10 метров».

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

              Original source: habrahabr.ru (comments, light).

              https://habrahabr.ru/post/337770/


              Метки:  

              Расследование утечек информации из корпоративной базы данных перевозчика

              Среда, 13 Сентября 2017 г. 10:27 + в цитатник
              bogatrev сегодня в 10:27 Разработка

              Расследование утечек информации из корпоративной базы данных перевозчика

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

                Из единого центра информация о координатах груза расходится к заказчикам. Все работает в автоматизированном режиме. Для удобства контроля доставки, в стоимость услуг включен сервис по информированию клиентов о местонахождении их грузов.



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

                С технической точки зрения информацию о своем грузе можно получить двумя путями.
                Первый — на сайте перевозчика, второй, более сложный — подключив свою логистическую информационную систему (АСУ клиентов) непосредственно к базе перевозчика. Все запросы АСУ клиентов к базе данных (БД) перевозчика реализованы посредством набора Хранимых Процедур. Для управления доступом каждому клиенту выделяется его собственный аккаунт с набором необходимых ему полномочий и прав.



                Специалисты перевозчика понимали, что кроме данных о местоположении груза, из их базы может утекать и другая информация. Кто и с какой целью их будет использовать не известно, но настораживает. Предположительно клиентами таких сайтов могут быть не только конкуренты, но и сами клиенты перевозчика, пожелавшие иметь альтернативный канал контроля. Также информация по грузовикам может быть интересна тем, кто сумел неофициально «пристроить» свой груз в кузове, например, договорившись с водителем. Налицо явная утечка информации, и нашей задачей было выяснить метод ее организации.

                Для начала мы провели анализ информации, которую предоставляют эти продавцы краденного. Оказалось, что спектр их услуг достаточно широк. За вполне разумные деньги, которые может себе позволить даже частное лицо, можно получить информацию о местонахождении конкретного грузовика или груза в данный момент. Можно оформить подписку на отслеживание груза или транспортного средства, тогда вам на почту или по SMS будут приходить данные с той периодичностью, на которую вам хватит денег.

                Для продолжения расследования мы выбрали метод «контрольной закупки». Мы зарегистрировались на одном из таких криминальных ресурсов и заплатили за несколько десятков запросов о координатах грузовика. Мы планировали при оформлении каждого запроса отслеживать источники обращений к центральной базе данных перевозчика.

                Ознакомившись со структурой базы, мы поняли, что информация о координатах того или иного транспортного средства может быть получена либо из таблицы базы, либо из представления (View). Мы выбрали один из грузовиков компании, который находился в рейсе, попросили администраторов базы данных диспетчерского центра включить трассировку обращений к таблице и представлениях, содержащих данные о координатах грузовика. В течение трех последующих часов мы сделали 10 запросов на мошенническом сайте и по каждому запросу получили GPS-координаты. Данные по каждому запросу к нам приходили с задержкой не более секунды. За эти три часа набралось около 70 мегабайт текстовых журналов. Анализировать их мы отправились в свой офис, где были подходящие инструменты, оставив в покое администраторов базы.

                В ходе анализа мы поняли, что данные в ответ на наши запросы приходят в режиме онлайн, и версии об утечках из резервных копий, или об обработке запросов в ручном режиме были отметены. Мы надеялись, что в течение секунды после нашего запроса в трассировке появятся данные о внешнем клиенте, который «сливает» информацию. Результаты анализа были неутешительными — в трассировке, сделанной стандартными средствами СУБД, была информация по обращениям к таблице и представлениям, но отсутствовала информация о конкретных запросах к данным по нашему грузовику. Оказалось, что в секунду обращений к таблице и представлениям более двух сотен, и выделить среди них обращения, сделанные в ответ на наши запросы, не представляется возможным.

                Назрела необходимость в дополнительном инструментарии, который даст нам содержимое каждого конкретного обращения к таблице или представлению. Множество инструментов могут анализировать SQL-запросы и им подобные в трафике, но в нашем случае необходимо было ПО, которое не только сможет перехватывать запросы от хранимых процедур к базе на том же сервере, но и «разбирать» их содержимое.

                Хорошо, что такой инструмент нам удалось быстро найти и договориться о его временном использовании. Данное решение (InfoSphere Guardium) может анализировать запросы от хранимых процедур с помощью программного агента непосредственно на сервере БД. Проводя анализ запросов «на лету», система позволяет получить все необходимые нам данные. После ночных работ по установке и настройке, мы снова провели серию из 10 запросов данных по нашему грузовику на «левом» ресурсе. В этот раз, благодаря встроенным методам фильтрации нашей аналитической системы, мы получили список из 12 аккаунтов, к которым «улетали» данные по координатам нашего грузовика в течение секунды после каждого нашего запроса. За любым из таких аккаунтов стоит АСУ одного из клиентов перевозчика. Встала задача определить, какая конкретно АСУ клиента передает данные на сторону, для чего мы воспользовались методом установки индивидуальных «меток».

                Совместно с администраторами БД мы немного модифицировали те хранимые процедуры, с использованием которых выявленные нами 12 аккаунтов забирают данные из базы. Модификация преследовала одну цель — в зависимости от аккаунта вносить индивидуальные корректировки в координаты грузовика. Для каждой из 12 АСУ были сформированы индивидуальные координаты, отличающиеся двумя последними цифрами, все отправленные нами значения тщательно сохранялись в специальном журнале. Получив «помеченные» координаты с криминального сайта, мы, обратившись к журналу выдачи меток, смогли выявить ту АСУ, которая сливает данные.

                Теперь настал довольно деликатный момент — для дальнейшего расследования нужны были данные с АСУ клиента. Это означало, что клиент должен быть хотя бы частично посвящен в суть дела. Более того, если данные сливает администратор этой АСУ, он может успеть замести все следы. Необходимо было действовать очень осторожно. Обстоятельства сложились удачно, т.к. была достигнута договоренность о взаимодействии на уровне служб безопасности перевозчика и этого клиента — крупного логистического оператора. Служба безопасности клиента согласилась предоставить нам журналы сервера АСУ. Анализ журналов дал нам единственный аккаунт, получавший данные с метками. Аккаунт принадлежал одному из сотрудников логистической компании. Что было с ним дальше история умалчивает. Главное, что цель была достигнута — продажа украденных данных остановилась.
                Original source: habrahabr.ru (comments, light).

                https://habrahabr.ru/post/337804/


                Расследование утечек информации из корпоративной базы данных перевозчика

                Среда, 13 Сентября 2017 г. 10:27 + в цитатник
                bogatrev сегодня в 10:27 Разработка

                Расследование утечек информации из корпоративной базы данных перевозчика

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

                  Из единого центра информация о координатах груза расходится к заказчикам. Все работает в автоматизированном режиме. Для удобства контроля доставки, в стоимость услуг включен сервис по информированию клиентов о местонахождении их грузов.



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

                  С технической точки зрения информацию о своем грузе можно получить двумя путями.
                  Первый — на сайте перевозчика, второй, более сложный — подключив свою логистическую информационную систему (АСУ клиентов) непосредственно к базе перевозчика. Все запросы АСУ клиентов к базе данных (БД) перевозчика реализованы посредством набора Хранимых Процедур. Для управления доступом каждому клиенту выделяется его собственный аккаунт с набором необходимых ему полномочий и прав.



                  Специалисты перевозчика понимали, что кроме данных о местоположении груза, из их базы может утекать и другая информация. Кто и с какой целью их будет использовать не известно, но настораживает. Предположительно клиентами таких сайтов могут быть не только конкуренты, но и сами клиенты перевозчика, пожелавшие иметь альтернативный канал контроля. Также информация по грузовикам может быть интересна тем, кто сумел неофициально «пристроить» свой груз в кузове, например, договорившись с водителем. Налицо явная утечка информации, и нашей задачей было выяснить метод ее организации.

                  Для начала мы провели анализ информации, которую предоставляют эти продавцы краденного. Оказалось, что спектр их услуг достаточно широк. За вполне разумные деньги, которые может себе позволить даже частное лицо, можно получить информацию о местонахождении конкретного грузовика или груза в данный момент. Можно оформить подписку на отслеживание груза или транспортного средства, тогда вам на почту или по SMS будут приходить данные с той периодичностью, на которую вам хватит денег.

                  Для продолжения расследования мы выбрали метод «контрольной закупки». Мы зарегистрировались на одном из таких криминальных ресурсов и заплатили за несколько десятков запросов о координатах грузовика. Мы планировали при оформлении каждого запроса отслеживать источники обращений к центральной базе данных перевозчика.

                  Ознакомившись со структурой базы, мы поняли, что информация о координатах того или иного транспортного средства может быть получена либо из таблицы базы, либо из представления (View). Мы выбрали один из грузовиков компании, который находился в рейсе, попросили администраторов базы данных диспетчерского центра включить трассировку обращений к таблице и представлениях, содержащих данные о координатах грузовика. В течение трех последующих часов мы сделали 10 запросов на мошенническом сайте и по каждому запросу получили GPS-координаты. Данные по каждому запросу к нам приходили с задержкой не более секунды. За эти три часа набралось около 70 мегабайт текстовых журналов. Анализировать их мы отправились в свой офис, где были подходящие инструменты, оставив в покое администраторов базы.

                  В ходе анализа мы поняли, что данные в ответ на наши запросы приходят в режиме онлайн, и версии об утечках из резервных копий, или об обработке запросов в ручном режиме были отметены. Мы надеялись, что в течение секунды после нашего запроса в трассировке появятся данные о внешнем клиенте, который «сливает» информацию. Результаты анализа были неутешительными — в трассировке, сделанной стандартными средствами СУБД, была информация по обращениям к таблице и представлениям, но отсутствовала информация о конкретных запросах к данным по нашему грузовику. Оказалось, что в секунду обращений к таблице и представлениям более двух сотен, и выделить среди них обращения, сделанные в ответ на наши запросы, не представляется возможным.

                  Назрела необходимость в дополнительном инструментарии, который даст нам содержимое каждого конкретного обращения к таблице или представлению. Множество инструментов могут анализировать SQL-запросы и им подобные в трафике, но в нашем случае необходимо было ПО, которое не только сможет перехватывать запросы от хранимых процедур к базе на том же сервере, но и «разбирать» их содержимое.

                  Хорошо, что такой инструмент нам удалось быстро найти и договориться о его временном использовании. Данное решение (InfoSphere Guardium) может анализировать запросы от хранимых процедур с помощью программного агента непосредственно на сервере БД. Проводя анализ запросов «на лету», система позволяет получить все необходимые нам данные. После ночных работ по установке и настройке, мы снова провели серию из 10 запросов данных по нашему грузовику на «левом» ресурсе. В этот раз, благодаря встроенным методам фильтрации нашей аналитической системы, мы получили список из 12 аккаунтов, к которым «улетали» данные по координатам нашего грузовика в течение секунды после каждого нашего запроса. За любым из таких аккаунтов стоит АСУ одного из клиентов перевозчика. Встала задача определить, какая конкретно АСУ клиента передает данные на сторону, для чего мы воспользовались методом установки индивидуальных «меток».

                  Совместно с администраторами БД мы немного модифицировали те хранимые процедуры, с использованием которых выявленные нами 12 аккаунтов забирают данные из базы. Модификация преследовала одну цель — в зависимости от аккаунта вносить индивидуальные корректировки в координаты грузовика. Для каждой из 12 АСУ были сформированы индивидуальные координаты, отличающиеся двумя последними цифрами, все отправленные нами значения тщательно сохранялись в специальном журнале. Получив «помеченные» координаты с криминального сайта, мы, обратившись к журналу выдачи меток, смогли выявить ту АСУ, которая сливает данные.

                  Теперь настал довольно деликатный момент — для дальнейшего расследования нужны были данные с АСУ клиента. Это означало, что клиент должен быть хотя бы частично посвящен в суть дела. Более того, если данные сливает администратор этой АСУ, он может успеть замести все следы. Необходимо было действовать очень осторожно. Обстоятельства сложились удачно, т.к. была достигнута договоренность о взаимодействии на уровне служб безопасности перевозчика и этого клиента — крупного логистического оператора. Служба безопасности клиента согласилась предоставить нам журналы сервера АСУ. Анализ журналов дал нам единственный аккаунт, получавший данные с метками. Аккаунт принадлежал одному из сотрудников логистической компании. Что было с ним дальше история умалчивает. Главное, что цель была достигнута — продажа украденных данных остановилась.
                  Original source: habrahabr.ru (comments, light).

                  https://habrahabr.ru/post/337804/


                  Расследование утечек информации из корпоративной базы данных перевозчика

                  Среда, 13 Сентября 2017 г. 10:27 + в цитатник
                  bogatrev сегодня в 10:27 Разработка

                  Расследование утечек информации из корпоративной базы данных перевозчика

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

                    Из единого центра информация о координатах груза расходится к заказчикам. Все работает в автоматизированном режиме. Для удобства контроля доставки, в стоимость услуг включен сервис по информированию клиентов о местонахождении их грузов.



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

                    С технической точки зрения информацию о своем грузе можно получить двумя путями.
                    Первый — на сайте перевозчика, второй, более сложный — подключив свою логистическую информационную систему (АСУ клиентов) непосредственно к базе перевозчика. Все запросы АСУ клиентов к базе данных (БД) перевозчика реализованы посредством набора Хранимых Процедур. Для управления доступом каждому клиенту выделяется его собственный аккаунт с набором необходимых ему полномочий и прав.



                    Специалисты перевозчика понимали, что кроме данных о местоположении груза, из их базы может утекать и другая информация. Кто и с какой целью их будет использовать не известно, но настораживает. Предположительно клиентами таких сайтов могут быть не только конкуренты, но и сами клиенты перевозчика, пожелавшие иметь альтернативный канал контроля. Также информация по грузовикам может быть интересна тем, кто сумел неофициально «пристроить» свой груз в кузове, например, договорившись с водителем. Налицо явная утечка информации, и нашей задачей было выяснить метод ее организации.

                    Для начала мы провели анализ информации, которую предоставляют эти продавцы краденного. Оказалось, что спектр их услуг достаточно широк. За вполне разумные деньги, которые может себе позволить даже частное лицо, можно получить информацию о местонахождении конкретного грузовика или груза в данный момент. Можно оформить подписку на отслеживание груза или транспортного средства, тогда вам на почту или по SMS будут приходить данные с той периодичностью, на которую вам хватит денег.

                    Для продолжения расследования мы выбрали метод «контрольной закупки». Мы зарегистрировались на одном из таких криминальных ресурсов и заплатили за несколько десятков запросов о координатах грузовика. Мы планировали при оформлении каждого запроса отслеживать источники обращений к центральной базе данных перевозчика.

                    Ознакомившись со структурой базы, мы поняли, что информация о координатах того или иного транспортного средства может быть получена либо из таблицы базы, либо из представления (View). Мы выбрали один из грузовиков компании, который находился в рейсе, попросили администраторов базы данных диспетчерского центра включить трассировку обращений к таблице и представлениях, содержащих данные о координатах грузовика. В течение трех последующих часов мы сделали 10 запросов на мошенническом сайте и по каждому запросу получили GPS-координаты. Данные по каждому запросу к нам приходили с задержкой не более секунды. За эти три часа набралось около 70 мегабайт текстовых журналов. Анализировать их мы отправились в свой офис, где были подходящие инструменты, оставив в покое администраторов базы.

                    В ходе анализа мы поняли, что данные в ответ на наши запросы приходят в режиме онлайн, и версии об утечках из резервных копий, или об обработке запросов в ручном режиме были отметены. Мы надеялись, что в течение секунды после нашего запроса в трассировке появятся данные о внешнем клиенте, который «сливает» информацию. Результаты анализа были неутешительными — в трассировке, сделанной стандартными средствами СУБД, была информация по обращениям к таблице и представлениям, но отсутствовала информация о конкретных запросах к данным по нашему грузовику. Оказалось, что в секунду обращений к таблице и представлениям более двух сотен, и выделить среди них обращения, сделанные в ответ на наши запросы, не представляется возможным.

                    Назрела необходимость в дополнительном инструментарии, который даст нам содержимое каждого конкретного обращения к таблице или представлению. Множество инструментов могут анализировать SQL-запросы и им подобные в трафике, но в нашем случае необходимо было ПО, которое не только сможет перехватывать запросы от хранимых процедур к базе на том же сервере, но и «разбирать» их содержимое.

                    Хорошо, что такой инструмент нам удалось быстро найти и договориться о его временном использовании. Данное решение (InfoSphere Guardium) может анализировать запросы от хранимых процедур с помощью программного агента непосредственно на сервере БД. Проводя анализ запросов «на лету», система позволяет получить все необходимые нам данные. После ночных работ по установке и настройке, мы снова провели серию из 10 запросов данных по нашему грузовику на «левом» ресурсе. В этот раз, благодаря встроенным методам фильтрации нашей аналитической системы, мы получили список из 12 аккаунтов, к которым «улетали» данные по координатам нашего грузовика в течение секунды после каждого нашего запроса. За любым из таких аккаунтов стоит АСУ одного из клиентов перевозчика. Встала задача определить, какая конкретно АСУ клиента передает данные на сторону, для чего мы воспользовались методом установки индивидуальных «меток».

                    Совместно с администраторами БД мы немного модифицировали те хранимые процедуры, с использованием которых выявленные нами 12 аккаунтов забирают данные из базы. Модификация преследовала одну цель — в зависимости от аккаунта вносить индивидуальные корректировки в координаты грузовика. Для каждой из 12 АСУ были сформированы индивидуальные координаты, отличающиеся двумя последними цифрами, все отправленные нами значения тщательно сохранялись в специальном журнале. Получив «помеченные» координаты с криминального сайта, мы, обратившись к журналу выдачи меток, смогли выявить ту АСУ, которая сливает данные.

                    Теперь настал довольно деликатный момент — для дальнейшего расследования нужны были данные с АСУ клиента. Это означало, что клиент должен быть хотя бы частично посвящен в суть дела. Более того, если данные сливает администратор этой АСУ, он может успеть замести все следы. Необходимо было действовать очень осторожно. Обстоятельства сложились удачно, т.к. была достигнута договоренность о взаимодействии на уровне служб безопасности перевозчика и этого клиента — крупного логистического оператора. Служба безопасности клиента согласилась предоставить нам журналы сервера АСУ. Анализ журналов дал нам единственный аккаунт, получавший данные с метками. Аккаунт принадлежал одному из сотрудников логистической компании. Что было с ним дальше история умалчивает. Главное, что цель была достигнута — продажа украденных данных остановилась.
                    Original source: habrahabr.ru (comments, light).

                    https://habrahabr.ru/post/337804/


                    Детский сад, штаны на лямках: откуда берутся программисты

                    Среда, 13 Сентября 2017 г. 07:36 + в цитатник
                    SmirkinDA сегодня в 07:36 Управление

                    Детский сад, штаны на лямках: откуда берутся программисты


                      Жил был мальчик. Стал программистом. Примерно так может начинаться и заканчиваться короткая биографическая справка о любом разработчике. При этом очевидно, что далеко не все в детстве и даже в юности планировали связать свою судьбу с высокими технологиями. Было любопытно покопаться в детских пеленках и узнать о детских мечтах айтишников из разных стран. Enjoy!
                      З.Ы. Пользуясь случаем поздравляем с Днем программиста всех сопричастных!

                      Марко Каласан


                      Челюсть моя ударилась о пол, когда узнал, что этот македонский парнишка в возрасте восьми лет стал самым молодым в мире сертифицированным системным администратором Microsoft, получив сертификат Microsoft Certified Professional. В возрасте девяти лет, он также успешно сдал экзамен на получение сертификата системного инженера Microsoft Certified Systems Engineer. Кстати, сейчас Марко уже 17 лет. К этому времени, он успел написать книгу по Windows 7 и продолжает кодить.



                      Марк Цукерберг


                      Вы знали, что основатель Facebook учился в Гарварде на факультете психологии? Марк Цукерберг родился в штате Нью-Йорк в семье стоматолога и психиатра. Помимо него у родителей еще трое дочерей. С ранних лет Марк проявлял интерес к программированию. В школе он отличился тем, что создал довольно популярную сетевую компьютерную стратегическую игру. Несмотря на то, что уже в юности мировые корпорации заметили талантливого программиста и предлагали ему работу, молодой человек выбрал факультет психологии Гарвардского университета. Будучи студентом Марк создал Facebook и по-началу забросил учебу. Но совсем недавно Цукерберг вернулся в Гарвард и получил диплом почетного доктора Гарвардского университета. Кстати, там он озвучил весьма воодушевляющую речь.



                      Линус Торвальдс


                      Кажется, что папа Linux в тихой Финляндии с детства хотел быть программистом. Учитывая, что к первому компьютеру парнишка прикоснулся в 12 лет. В 1981 году Лео, дед Линуса, математик, познакомил внука с ЭВМ Commodore VIC-20, используемой им для математических вычислений. Линус заинтересовался программированием и прочитал руководства к машине. Затем он начал читать компьютерные журналы и писать собственные программы, сначала на Бейсике, а затем на Ассемблере. Со школьных лет Линус получал стипендии за успехи по математике. Первой купленной им ЭВМ была Sinclair QL, тогда стоивший почти 2 000 долларов США.


                      Тест на внимательность. Найдете на школьной фотографии старину Линуса?


                      Сергей Брин


                      Сегодня мало кому нужно объяснять, кто такой Сергей Михайлович Брин. Один из людей меняющих наш мир и прочие эпитеты связанные с Google. А сорок четыре года назад появившийся в семье советских математиков малыш мало тянул на хозяина цифрового мира. Между тем, учитывая то, что и дед, и отец были видными математиками, думать, что сын в будущем начнет выращивать цветочки не приходилось.



                      В шесть лет Брин с родителями переехали из СССР в США. Там же он пошел в школу. Со школьной программой парнишка справлялся легко. У Сергея никогда не возникало проблем в изучении точных наук, более того, математику он просто полюбил. Родители были уверены, что ребёнок пойдёт по их стопам, станет инженером, научным сотрудником или преподавателем. Сергей оправдывал ожидания родителей. Математика и компьютерная наука стали его глубоким увлечением. В школе Сергей регулярно спорил с учителями, ставя под серьёзное сомнение их знания и компетентность. В математике молодой Брин был на голову выше своих преподавателей.



                      Отец рассказывал о Сергее, что тот рос обычным мальчиком, но всегда старался быть ближе к компьютеру. Начиналось всё с игр и старенького Commodore 64s, одного из первых персональных компьютеров. Это был подарок девятилетнему ребёнку на день рождения. Правда, бабушка была недовольна. Что вырастет из этого ребёнка, ворчала она, если он часами не отходит от компьютера. В самом начале 80-х, когда даже в США компьютеры оставались технической диковинкой, Брин освоил программирование и выбрал главную дорогу своей жизни. Его интересы сосредоточились на математике, применительно к новейшим компьютерным технологиям. По этой тропинке и пошло его саморазвитие.



                      В 1993 году Брин поступил в Стэнфордский университет штата Калифорния. Именно там он познакомился со своим нынешним другом и соратником Лари Пейджем. О рождении Google сложены легенды, так что на этой истории долго останавливаться особо не будем.

                      Павел Дуров


                      Вообще русский Цукерберг, если бы не создал Вконтакте, вполне мог бы быть лингвистом-переводчиком. Дуров учился в классе с углубленным изучением четырех иностранных языков. После окончания Академической гимназии с отличием он поступил на филологический факультет СПбГУ (специальность «Английская филология и перевод»). Кстати, университет Павел закончил с красным дипломом, который, по слухам, до сих пор не забрал из вуза.



                      Павла Дурова отличает страсть к языкам: «Учи иностранные языки. Это нереально расширит глубину восприятия мира и откроет невиданные перспективы для обучения, развития и карьерного роста», – такой совет он как-то раз дал читателям на своей странице «Вконтакте». На ней же перечислены языки, которыми владеет Павел Дуров: помимо английского, французского, немецкого, испанского и итальянского, он знает латынь и персидский.

                      Виталик Бутерин


                      Коломенскому парнишке Виталику Бутерину 23 года. Большую часть жизни крипто-гуру живет в Канаде, но связи с Родиной не потерял. О себе Виталик распространяется мало. Говорит лишь, что с детства увлекался математикой, программированием и компьютерными играми. Несколько лет Бутерин безвылазно играл в World of Warcraft. Не исключено, что не создай он Ethereum, вполне бы мог стать звездным киберспортсменом. Кстати, многие спрашивают, почему Виталия Дмитриевича до сих пор называют Виталиком, тот в ответ говорит, что так к нему обращаются с детства. Интересно, какое у него было прозвище в школе?



                      Николай Добровольский


                      Сооснователь и вице-президент Parallels до того, как успешно скрестил ужа и ежа запустил с командой единомышленников Windows на Mac, благополучно грыз гранит науки в лингвистической школе. Увлечений была масса, но уже в 10 лет пытливый ум и неутомимые стопы завели Николая в столичный Дом пионеров. Тамошний кружок программирования привил тягу к кодотворчеству. Через пару лет была первая победа во всесоюзном конкурсе программистов, затем премия им.Зворыкина и много чего еще. Далее состоялось знакомство со Стивом Джобсом и мировой триумф Parallels.



                      Жил, был, стал…


                      Пройдясь по биографиям видных программистов и предпринимателей в сфере IT, возник резонный вопрос, неужели все люди занятые в отрасли с юных лет грезили точными науками, цифрами и кодами? Не долго думая, расспросил ребят из команды Parallels, кем они хотели быть в детстве.

                      Дмитрий Гейнисман, Team Leader
                      — В детстве хотел быть Оптимусом Праймом. Работая сегодня с техподдержкой наших пользователей можно сказать, что частично мое желание исполнилось.



                      Сергей Бондарь, системный администратор
                      — Я хотел быть водителем мусоровоза, большого, оранжевого, с кучей рычажков.



                      Илья Вербин, Sr Software Developer
                      — Посмотрите на фоточку, думаю сразу станет понятно, кем я хотел быть в детстве.



                      Руслан Садовников, Lead Software Developer
                      — Хотел быть DJ.



                      Антон Дяйкин, директор образовательных программ
                      — Хотел быть герпетологом, изучать змей. Попал в академическую среду и мечта исполнилась.



                      Илья Коломейцев, Software Developer
                      — Хотел стать музыкантом или DJ.



                      Дима Смиркин, пиарщик
                      — Я хотел быть брокером на бирже или сразу бандитом. У них были БМВ.



                      Делитесь в комментариях своими детскими мечтами и фотками. Интересно, кто кем хотел быть и что из этого получилось.
                      Original source: habrahabr.ru (comments, light).

                      https://habrahabr.ru/post/337674/


                      Детский сад, штаны на лямках: откуда берутся программисты

                      Среда, 13 Сентября 2017 г. 07:36 + в цитатник
                      SmirkinDA сегодня в 07:36 Управление

                      Детский сад, штаны на лямках: откуда берутся программисты


                        Жил был мальчик. Стал программистом. Примерно так может начинаться и заканчиваться короткая биографическая справка о любом разработчике. При этом очевидно, что далеко не все в детстве и даже в юности планировали связать свою судьбу с высокими технологиями. Было любопытно покопаться в детских пеленках и узнать о детских мечтах айтишников из разных стран. Enjoy!
                        З.Ы. Пользуясь случаем поздравляем с Днем программиста всех сопричастных!

                        Марко Каласан


                        Челюсть моя ударилась о пол, когда узнал, что этот македонский парнишка в возрасте восьми лет стал самым молодым в мире сертифицированным системным администратором Microsoft, получив сертификат Microsoft Certified Professional. В возрасте девяти лет, он также успешно сдал экзамен на получение сертификата системного инженера Microsoft Certified Systems Engineer. Кстати, сейчас Марко уже 17 лет. К этому времени, он успел написать книгу по Windows 7 и продолжает кодить.



                        Марк Цукерберг


                        Вы знали, что основатель Facebook учился в Гарварде на факультете психологии? Марк Цукерберг родился в штате Нью-Йорк в семье стоматолога и психиатра. Помимо него у родителей еще трое дочерей. С ранних лет Марк проявлял интерес к программированию. В школе он отличился тем, что создал довольно популярную сетевую компьютерную стратегическую игру. Несмотря на то, что уже в юности мировые корпорации заметили талантливого программиста и предлагали ему работу, молодой человек выбрал факультет психологии Гарвардского университета. Будучи студентом Марк создал Facebook и по-началу забросил учебу. Но совсем недавно Цукерберг вернулся в Гарвард и получил диплом почетного доктора Гарвардского университета. Кстати, там он озвучил весьма воодушевляющую речь.



                        Линус Торвальдс


                        Кажется, что папа Linux в тихой Финляндии с детства хотел быть программистом. Учитывая, что к первому компьютеру парнишка прикоснулся в 12 лет. В 1981 году Лео, дед Линуса, математик, познакомил внука с ЭВМ Commodore VIC-20, используемой им для математических вычислений. Линус заинтересовался программированием и прочитал руководства к машине. Затем он начал читать компьютерные журналы и писать собственные программы, сначала на Бейсике, а затем на Ассемблере. Со школьных лет Линус получал стипендии за успехи по математике. Первой купленной им ЭВМ была Sinclair QL, тогда стоивший почти 2 000 долларов США.


                        Тест на внимательность. Найдете на школьной фотографии старину Линуса?


                        Сергей Брин


                        Сегодня мало кому нужно объяснять, кто такой Сергей Михайлович Брин. Один из людей меняющих наш мир и прочие эпитеты связанные с Google. А сорок четыре года назад появившийся в семье советских математиков малыш мало тянул на хозяина цифрового мира. Между тем, учитывая то, что и дед, и отец были видными математиками, думать, что сын в будущем начнет выращивать цветочки не приходилось.



                        В шесть лет Брин с родителями переехали из СССР в США. Там же он пошел в школу. Со школьной программой парнишка справлялся легко. У Сергея никогда не возникало проблем в изучении точных наук, более того, математику он просто полюбил. Родители были уверены, что ребёнок пойдёт по их стопам, станет инженером, научным сотрудником или преподавателем. Сергей оправдывал ожидания родителей. Математика и компьютерная наука стали его глубоким увлечением. В школе Сергей регулярно спорил с учителями, ставя под серьёзное сомнение их знания и компетентность. В математике молодой Брин был на голову выше своих преподавателей.



                        Отец рассказывал о Сергее, что тот рос обычным мальчиком, но всегда старался быть ближе к компьютеру. Начиналось всё с игр и старенького Commodore 64s, одного из первых персональных компьютеров. Это был подарок девятилетнему ребёнку на день рождения. Правда, бабушка была недовольна. Что вырастет из этого ребёнка, ворчала она, если он часами не отходит от компьютера. В самом начале 80-х, когда даже в США компьютеры оставались технической диковинкой, Брин освоил программирование и выбрал главную дорогу своей жизни. Его интересы сосредоточились на математике, применительно к новейшим компьютерным технологиям. По этой тропинке и пошло его саморазвитие.



                        В 1993 году Брин поступил в Стэнфордский университет штата Калифорния. Именно там он познакомился со своим нынешним другом и соратником Лари Пейджем. О рождении Google сложены легенды, так что на этой истории долго останавливаться особо не будем.

                        Павел Дуров


                        Вообще русский Цукерберг, если бы не создал Вконтакте, вполне мог бы быть лингвистом-переводчиком. Дуров учился в классе с углубленным изучением четырех иностранных языков. После окончания Академической гимназии с отличием он поступил на филологический факультет СПбГУ (специальность «Английская филология и перевод»). Кстати, университет Павел закончил с красным дипломом, который, по слухам, до сих пор не забрал из вуза.



                        Павла Дурова отличает страсть к языкам: «Учи иностранные языки. Это нереально расширит глубину восприятия мира и откроет невиданные перспективы для обучения, развития и карьерного роста», – такой совет он как-то раз дал читателям на своей странице «Вконтакте». На ней же перечислены языки, которыми владеет Павел Дуров: помимо английского, французского, немецкого, испанского и итальянского, он знает латынь и персидский.

                        Виталик Бутерин


                        Коломенскому парнишке Виталику Бутерину 23 года. Большую часть жизни крипто-гуру живет в Канаде, но связи с Родиной не потерял. О себе Виталик распространяется мало. Говорит лишь, что с детства увлекался математикой, программированием и компьютерными играми. Несколько лет Бутерин безвылазно играл в World of Warcraft. Не исключено, что не создай он Ethereum, вполне бы мог стать звездным киберспортсменом. Кстати, многие спрашивают, почему Виталия Дмитриевича до сих пор называют Виталиком, тот в ответ говорит, что так к нему обращаются с детства. Интересно, какое у него было прозвище в школе?



                        Николай Добровольский


                        Сооснователь и вице-президент Parallels до того, как успешно скрестил ужа и ежа запустил с командой единомышленников Windows на Mac, благополучно грыз гранит науки в лингвистической школе. Увлечений была масса, но уже в 10 лет пытливый ум и неутомимые стопы завели Николая в столичный Дом пионеров. Тамошний кружок программирования привил тягу к кодотворчеству. Через пару лет была первая победа во всесоюзном конкурсе программистов, затем премия им.Зворыкина и много чего еще. Далее состоялось знакомство со Стивом Джобсом и мировой триумф Parallels.



                        Жил, был, стал…


                        Пройдясь по биографиям видных программистов и предпринимателей в сфере IT, возник резонный вопрос, неужели все люди занятые в отрасли с юных лет грезили точными науками, цифрами и кодами? Не долго думая, расспросил ребят из команды Parallels, кем они хотели быть в детстве.

                        Дмитрий Гейнисман, Team Leader
                        — В детстве хотел быть Оптимусом Праймом. Работая сегодня с техподдержкой наших пользователей можно сказать, что частично мое желание исполнилось.



                        Сергей Бондарь, системный администратор
                        — Я хотел быть водителем мусоровоза, большого, оранжевого, с кучей рычажков.



                        Илья Вербин, Sr Software Developer
                        — Посмотрите на фоточку, думаю сразу станет понятно, кем я хотел быть в детстве.



                        Руслан Садовников, Lead Software Developer
                        — Хотел быть DJ.



                        Антон Дяйкин, директор образовательных программ
                        — Хотел быть герпетологом, изучать змей. Попал в академическую среду и мечта исполнилась.



                        Илья Коломейцев, Software Developer
                        — Хотел стать музыкантом или DJ.



                        Дима Смиркин, пиарщик
                        — Я хотел быть брокером на бирже или сразу бандитом. У них были БМВ.



                        Делитесь в комментариях своими детскими мечтами и фотками. Интересно, кто кем хотел быть и что из этого получилось.
                        Original source: habrahabr.ru (comments, light).

                        https://habrahabr.ru/post/337674/


                        Детский сад, штаны на лямках: откуда берутся программисты

                        Среда, 13 Сентября 2017 г. 07:36 + в цитатник
                        SmirkinDA сегодня в 07:36 Управление

                        Детский сад, штаны на лямках: откуда берутся программисты


                          Жил был мальчик. Стал программистом. Примерно так может начинаться и заканчиваться короткая биографическая справка о любом разработчике. При этом очевидно, что далеко не все в детстве и даже в юности планировали связать свою судьбу с высокими технологиями. Было любопытно покопаться в детских пеленках и узнать о детских мечтах айтишников из разных стран. Enjoy!
                          З.Ы. Пользуясь случаем поздравляем с Днем программиста всех сопричастных!

                          Марко Каласан


                          Челюсть моя ударилась о пол, когда узнал, что этот македонский парнишка в возрасте восьми лет стал самым молодым в мире сертифицированным системным администратором Microsoft, получив сертификат Microsoft Certified Professional. В возрасте девяти лет, он также успешно сдал экзамен на получение сертификата системного инженера Microsoft Certified Systems Engineer. Кстати, сейчас Марко уже 17 лет. К этому времени, он успел написать книгу по Windows 7 и продолжает кодить.



                          Марк Цукерберг


                          Вы знали, что основатель Facebook учился в Гарварде на факультете психологии? Марк Цукерберг родился в штате Нью-Йорк в семье стоматолога и психиатра. Помимо него у родителей еще трое дочерей. С ранних лет Марк проявлял интерес к программированию. В школе он отличился тем, что создал довольно популярную сетевую компьютерную стратегическую игру. Несмотря на то, что уже в юности мировые корпорации заметили талантливого программиста и предлагали ему работу, молодой человек выбрал факультет психологии Гарвардского университета. Будучи студентом Марк создал Facebook и по-началу забросил учебу. Но совсем недавно Цукерберг вернулся в Гарвард и получил диплом почетного доктора Гарвардского университета. Кстати, там он озвучил весьма воодушевляющую речь.



                          Линус Торвальдс


                          Кажется, что папа Linux в тихой Финляндии с детства хотел быть программистом. Учитывая, что к первому компьютеру парнишка прикоснулся в 12 лет. В 1981 году Лео, дед Линуса, математик, познакомил внука с ЭВМ Commodore VIC-20, используемой им для математических вычислений. Линус заинтересовался программированием и прочитал руководства к машине. Затем он начал читать компьютерные журналы и писать собственные программы, сначала на Бейсике, а затем на Ассемблере. Со школьных лет Линус получал стипендии за успехи по математике. Первой купленной им ЭВМ была Sinclair QL, тогда стоивший почти 2 000 долларов США.


                          Тест на внимательность. Найдете на школьной фотографии старину Линуса?


                          Сергей Брин


                          Сегодня мало кому нужно объяснять, кто такой Сергей Михайлович Брин. Один из людей меняющих наш мир и прочие эпитеты связанные с Google. А сорок четыре года назад появившийся в семье советских математиков малыш мало тянул на хозяина цифрового мира. Между тем, учитывая то, что и дед, и отец были видными математиками, думать, что сын в будущем начнет выращивать цветочки не приходилось.



                          В шесть лет Брин с родителями переехали из СССР в США. Там же он пошел в школу. Со школьной программой парнишка справлялся легко. У Сергея никогда не возникало проблем в изучении точных наук, более того, математику он просто полюбил. Родители были уверены, что ребёнок пойдёт по их стопам, станет инженером, научным сотрудником или преподавателем. Сергей оправдывал ожидания родителей. Математика и компьютерная наука стали его глубоким увлечением. В школе Сергей регулярно спорил с учителями, ставя под серьёзное сомнение их знания и компетентность. В математике молодой Брин был на голову выше своих преподавателей.



                          Отец рассказывал о Сергее, что тот рос обычным мальчиком, но всегда старался быть ближе к компьютеру. Начиналось всё с игр и старенького Commodore 64s, одного из первых персональных компьютеров. Это был подарок девятилетнему ребёнку на день рождения. Правда, бабушка была недовольна. Что вырастет из этого ребёнка, ворчала она, если он часами не отходит от компьютера. В самом начале 80-х, когда даже в США компьютеры оставались технической диковинкой, Брин освоил программирование и выбрал главную дорогу своей жизни. Его интересы сосредоточились на математике, применительно к новейшим компьютерным технологиям. По этой тропинке и пошло его саморазвитие.



                          В 1993 году Брин поступил в Стэнфордский университет штата Калифорния. Именно там он познакомился со своим нынешним другом и соратником Лари Пейджем. О рождении Google сложены легенды, так что на этой истории долго останавливаться особо не будем.

                          Павел Дуров


                          Вообще русский Цукерберг, если бы не создал Вконтакте, вполне мог бы быть лингвистом-переводчиком. Дуров учился в классе с углубленным изучением четырех иностранных языков. После окончания Академической гимназии с отличием он поступил на филологический факультет СПбГУ (специальность «Английская филология и перевод»). Кстати, университет Павел закончил с красным дипломом, который, по слухам, до сих пор не забрал из вуза.



                          Павла Дурова отличает страсть к языкам: «Учи иностранные языки. Это нереально расширит глубину восприятия мира и откроет невиданные перспективы для обучения, развития и карьерного роста», – такой совет он как-то раз дал читателям на своей странице «Вконтакте». На ней же перечислены языки, которыми владеет Павел Дуров: помимо английского, французского, немецкого, испанского и итальянского, он знает латынь и персидский.

                          Виталик Бутерин


                          Коломенскому парнишке Виталику Бутерину 23 года. Большую часть жизни крипто-гуру живет в Канаде, но связи с Родиной не потерял. О себе Виталик распространяется мало. Говорит лишь, что с детства увлекался математикой, программированием и компьютерными играми. Несколько лет Бутерин безвылазно играл в World of Warcraft. Не исключено, что не создай он Ethereum, вполне бы мог стать звездным киберспортсменом. Кстати, многие спрашивают, почему Виталия Дмитриевича до сих пор называют Виталиком, тот в ответ говорит, что так к нему обращаются с детства. Интересно, какое у него было прозвище в школе?



                          Николай Добровольский


                          Сооснователь и вице-президент Parallels до того, как успешно скрестил ужа и ежа запустил с командой единомышленников Windows на Mac, благополучно грыз гранит науки в лингвистической школе. Увлечений была масса, но уже в 10 лет пытливый ум и неутомимые стопы завели Николая в столичный Дом пионеров. Тамошний кружок программирования привил тягу к кодотворчеству. Через пару лет была первая победа во всесоюзном конкурсе программистов, затем премия им.Зворыкина и много чего еще. Далее состоялось знакомство со Стивом Джобсом и мировой триумф Parallels.



                          Жил, был, стал…


                          Пройдясь по биографиям видных программистов и предпринимателей в сфере IT, возник резонный вопрос, неужели все люди занятые в отрасли с юных лет грезили точными науками, цифрами и кодами? Не долго думая, расспросил ребят из команды Parallels, кем они хотели быть в детстве.

                          Дмитрий Гейнисман, Team Leader
                          — В детстве хотел быть Оптимусом Праймом. Работая сегодня с техподдержкой наших пользователей можно сказать, что частично мое желание исполнилось.



                          Сергей Бондарь, системный администратор
                          — Я хотел быть водителем мусоровоза, большого, оранжевого, с кучей рычажков.



                          Илья Вербин, Sr Software Developer
                          — Посмотрите на фоточку, думаю сразу станет понятно, кем я хотел быть в детстве.



                          Руслан Садовников, Lead Software Developer
                          — Хотел быть DJ.



                          Антон Дяйкин, директор образовательных программ
                          — Хотел быть герпетологом, изучать змей. Попал в академическую среду и мечта исполнилась.



                          Илья Коломейцев, Software Developer
                          — Хотел стать музыкантом или DJ.



                          Дима Смиркин, пиарщик
                          — Я хотел быть брокером на бирже или сразу бандитом. У них были БМВ.



                          Делитесь в комментариях своими детскими мечтами и фотками. Интересно, кто кем хотел быть и что из этого получилось.
                          Original source: habrahabr.ru (comments, light).

                          https://habrahabr.ru/post/337674/


                          Чтоб root стоял и фичи были

                          Среда, 13 Сентября 2017 г. 00:01 + в цитатник
                          RegionSoft сегодня в 00:01 Разработка

                          Чтоб root стоял и фичи были

                            Сегодня 256-й день в году, а значит настал профессиональный праздник программистов, разработчиков, девелоперов, кодеров. В общем, всех тех, кто делает современную жизнь современной, технику умной, работу удобной — короче, улучшает этот мир. Мы долго думали, что же такое написать, но в итоге наткнулись на крутые свежие комиксы о жизни разработчиков и решили, что им будет и день, и место. Для тех, у кого, как и у нас «инглиш политех финишд», мы перевели смысл и немного адаптировали к российским реалиям. С праздником, друзья!

                            Картинка взята тут, подпись наша

                            Пара слов о том, как это было. Мы нашли комиксы прекрасных авторов в блоге разработчиков таймтрекеров Toggl и уже не могли остановиться их рассматривать. Написали в техподдержку на своём bad english, что мы небольшая компания-разработчик CRM-систем из России и хотим опубликовать это дело к дню программиста в своем блоге на Хабре. Нам ответили, что дают согласие и что english не такой уж и bad. На сей позитивной ноте мы и засели за перевод и адаптацию. Работать над этим постом было реально в кайф — есть, над чем погрустить и посмеяться.

                            Рабочее окружение программиста


                            Трудно быть богом разработчиком, даже если ты работаешь в компании-вендоре. Все мы приходим на работу и, о ужас, нас окружают люди, которые с одной стороны, считают нас расой типа инопланетян, а с другой — верят в наши сверхспособности. Итак, кто все эти люди?


                            Аналитики, SEO-шники и лидогенераторы. По-нашему, интернет-маркетологи. Чёрные маги интернета, прокачанные в тёмном искусстве генерации кликов (не путать с кликбейтом!), трафика и конверсий. Да-да, мы действительно нашли этот комикс по поисковому запросу.

                            Техподдержка. Фронтлайновые войска со стальными нервами. Саппортовые коммандос имеют странную способность говорить «Нет» так, что это не звучит как «Нет» (нам бы такое в процессе создания ТЗ и внесения в него 458-ой итерации правок!). Техподдержка, в основном, миролюбива (ибо вымотана?).

                            Финансовый директор (в российских реалиях — бухгалтерия). Хранитель казны и клада. Озабочен обслуживанием финансовых обязательств. Часто говорит «Нет», но в целом иногда позволяет какие-то расходы на глупые запросы, чтобы поддержать мир и иллюзию демократии в компании. В российских реалиях владеет мощным оружием массового поражения программистов и тыж-программистов (обычно по трудовой — системных администраторов) — учётной системой 1С.

                            SMM-щик. Хипстер по профессии или профессиональный хипстер — тут зависит от уровня достигнутого дзена. Предпочитает общаться с помощью GIF-ок. SMM-хипстеры — единственные, кто может навык ведения Твиттера или Фейсбука указывать как скилл в своём резюме.

                            Продакт-менеджер. Деньги останавливаются здесь. На его клавиатуре есть горячие клавиши для набора фраз «Сделай это», «Насколько это трудно?», «Нет», нам чаще встречалось — «Срочно. Важно». Не очень-то дружелюбен.

                            Фронтенд-разработчики, они же «не тру инженеры» на жаргоне бэкендеров. Сильны в классическом роке или гангста рэпе (или обоих). Странность их хобби может сравниться только с надписями на их футболках.

                            Офисный ниндзя. Когда-либо задавались вопросом, откуда берутся у вас все эти цветные стикеры, бесплатные печеньки и рабочие гаджеты? Это дело рук офисного ниндзя. Истинные ниндзя всегда остаются незамеченными — видна только их работа.

                            CEO, он же генеральный директор, босс, шеф и т.д. Он же особо важная персона. Наиболее комфортно он себя ощущает перед лицом новых вызовов, ожидая большие изменения (или внезапный выход нового продукта), когда всё начинает работать очень гладко.

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

                            Мы в РегионСофт не берёмся делить разработчиков на бэкенд и фронтенд в силу того, что мы вообще делаем десктопное ПО для бизнеса, и у нас все фулстек. Но насчёт героев и бесшумных рыцарей — это да, это нам по нраву. Гораздо лучше, чем футболки с обозначением головы и туловища с помощью тегов.

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

                            Серверы. Только они одни работают в режиме 24/7. Быть бы, как сервер…

                            Семь кругов ада разработчиков


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


                            Первый круг, фактически дантевский лимб разработчика — бодрствовать и находиться вне дома в полдень (без доступа к Playstation).

                            Второй круг — люди. И документация, документация эта вся тоже реально задолбала. Маркетинг и продажи и их вечное вот это: «Ты уже накодил половину своего сайта? Маловато для нас работаешь, я прав?» (amirite — сокращение от «am I right?»). На этом же круге обитают типа-технические HR-ы: «Привет, ты знаешь JavaScript? Ну потому что мы как раз в поисках программиста Java!»

                            Третий круг — клиенты (ну это в оригинале третий, у нас, как у любого разработчика CRM-систем, это девятый и дополнительный ещё какой-нибудь). Дикие люди. Пещерные. Особенно продвинутые бесят. Ну и эти, которые ворохами присылают новые идеи и «совсем небольшие изменения».

                            Четвёртый круг горяч. Менеджеры, продакты, управленцы — нечисть! Они обовьют тебя, перекроют кислород и будут трындеть: «Ну чё, уже сделано? Ну чё, уже сделано? Готово, да? Ну а сейчас уже готово?» Они же — любители бесполезных совещаний. Иногда они реально рассказывают о том, что они жрали на обед! (Мы такого не встречали, но ролик «Эксперт» про красные линии от заказчика многим нашим знаком).

                            Пятый круг ада — плохой код. Ох, грехи программистские. Легаси код на корню рубит твои лучшие идеи и пожирает твой мозг, твой собственный старый код жжёт память и глаза стыдом. Отдельно идут горы костылей, велосипедов и прочих диких решений, которые поддерживают всё и сразу и разработаны на каком-то мутном стэке.

                            Шестой круг — отрыв и отвлечение от работы. «Ты чем-то занят?» (Ну что вы, на работе, как можно!) «А ты можешь выгрузить мне кое-какие данные? Да неее, мне не к спеху, сегодня вечером устроит». На этом же кругу находится мифическая пропасть «Вчера» — такое место, где всё должно быть готово согласно сегодняшней информации.

                            Не верите, что мы от этого страдаем? Не верите?! Просто посмотрите вот этот старый и правдивый комикс.


                            И на последнем круге ломается источник внутреннего света и энергии — кофемашина :-)

                            Но мы все умеем работать. В команде. По-своему


                            Офисные ребята знают толк в своей работе, но со стороны это выглядит весьма специфично. Разберём на примере перегоревшей лампочки.


                            ИТ-саппорт, техническая поддержка. Они выкручивают лампочку и вкручивают её обратно в надежде, что она загорится, потом щёлкают выключателем. Если манипуляция не приводит к успеху, сообщают клиенту, что комната по-прежнему в темноте и стоит заказать новую комнату со склада.

                            Фронтэнд-разработчики красят лампу в жёлтый цвет и втирают бэкенду, что лампочка работает, но только в дневное время.

                            Менеджер проекта фигачит по перегоревшей лампочке бейсбольной битой, лампа в итоге разбита — и на фронтэндеров сваливается новый тикет.

                            Маркетологи разрабатывают концепцию и договариваются, что темнота — это новый свет. А потом маркетолог даёт вам возможность почитать пост об этом в блоге, а сам идёт доигрывать в Candy Crush.

                            Телемаркетолог (для хабровцев, кто не в теме, — в российских реалиях это девочки на холодных звонках) приносит больше лампочек, ещё больше, совсем много лампочек.

                            Оператор (у кого-то завхоз, у кого-то сисадмин, у кого-то секретарь) получает сообщение, что нужно исправить лампочку до двуз часов, выдаёт фонарик и со спокойной совестью продолжает спать.

                            Бэкенд-разработчики удивляются, откуда у всех взялись проблемы с этими лампочками, вспоминает, что забыл задеплоить свет в базу данных, успокаивается и валит вину на фронтэнд.

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



                            Перевод и адаптация — разработчик CRM-систем RegionSoft Developer Studio
                            Источник картинок — блог разработчика таймтрекеров Toggl.com
                            Источник КДПВ — комментарий пользователя портала фотографов Penta_Club

                            P.S.: если у вас есть более удачные идеи перевода фрагментов, пишите в комментариях — добавим.
                            Original source: habrahabr.ru (comments, light).

                            https://habrahabr.ru/post/337778/


                            Метки:  

                            Уязвимость BlueBorne в протоколе Bluetooth затрагивает миллиарды устройств

                            Вторник, 12 Сентября 2017 г. 23:08 + в цитатник
                            LukaSafonov вчера в 23:08 Разработка

                            Уязвимость BlueBorne в протоколе Bluetooth затрагивает миллиарды устройств

                              image
                               
                              Исследователи из компании Armis обнаружили восемь критичных уязвимостей в реализациях Bluetooth. Уязвимости получили следующие CVE: CVE-2017-0781, CVE-2017-0782, CVE-2017-0783, CVE-2017-0785 (Android); CVE-2017-1000251, СVE-2017-1000250 (Linux); CVE-2017-8628 (Windows). Устройства на iOS пока не получили CVE-идентификатора. Все уязвимости объединены под общим названием: BlueBorne.

                              Вектор атаки BlueBorne может потенциально повлиять на все устройства с возможностями Bluetooth, которых чем 8,2 миллиарда. Bluetooth является ведущим и наиболее распространенным протоколом для ближней связи и используется всеми устройствами — от обычных компьютеров и мобильных устройств до устройств IoT, таких как телевизоры, часы, автомобили и медицинские приборы.

                              Вектор атаки BlueBorne не требует взаимодействия с пользователем, совместим со всеми версиями программного обеспечения и не требует каких-либо предварительных условий или конфигурирования активного Bluetooth. Устройства с поддержкой Bluetooth постоянно ищут входящие соединения с любых устройств, а не только те, с которыми они были сопряжены. Это делает BlueBorne одной из самых опасных атак, обнаруженных за последние годы, и позволяет злоумышленнику успешно атаковать устройство.

                              Три из восьми уязвимостей BlueBorne оцениваются как сверхкритичные и позволяют злоумышленникам получить полный контроль над устройством.

                              Техническое описание атаки доступно здесь.

                              Видео демонстрации атаки Windows:






                              Видео демонстрации атаки Linux:






                              Видео демонстрации атаки Android:




                              Original source: habrahabr.ru (comments, light).

                              https://habrahabr.ru/post/337780/


                              Метки:  

                              ReactOS 0.4.6 доступен для загрузки

                              Вторник, 12 Сентября 2017 г. 22:15 + в цитатник
                              Jeditobe сегодня в 22:15 Разработка

                              ReactOS 0.4.6 доступен для загрузки

                                Привет всем хабра-читателям!

                                Практически одновременно с развязкой третьего сезона сериала Twin Peaks мы выпустили очередной релиз операционной системы ReactOS с номером 0.4.6. Релиз доступен для загрузки прямо сейчас, и совсем не нужно ждать октября или ноября, как в случае с iPhone X.



                                Скачать | Прочитать официальную новость | Посмотреть список изменений | TL;DR | Тесты

                                В этом релизе Вас ожидает поддержа распределенной файловой системы NFS, улучшенная поддержка файловой системы UDF, в очередной раз обновленная поддержка тем оформления и значительно исправленный шрифтовой движок.

                                image

                                Так же стоит отметить, что в релизе присуствует первоначальная реализация движка Shim (Microsoft Windows Application Compatibility Infrastructure), применяемого в Windows для обеспечения совместимости с приложениями, собранными для старых версий ОС. По умолчанию Shim пока отключен и требует явной активации в реестре.

                                По сравнению с прошлым выпуском добавлено более миллиона новых unit-тестов, оценивающих соответствие с поведением Windows. Общие число unit-тестов преодолело отметку в 14 миллионов, из которых завершаются ошибкой 18419 (0.129%)

                                Всего закрыто 186 отчётов об ошибках, из которых самая старая проблема (CORE-4107, невозможность зарегистрировать Firefox как браузер по умолчанию) оставалась неисправленной 8 лет.

                                Судьба USB


                                К сожалению, мы пока все еще не можем порадовать вас включением всех новейших исправлений USB-стека в основную ветвь разработки и, соответственно, официальные релизные образы. Но Вадим Галянт, основной автор упомянутх исправлений для USB-драйверов, подготовил неофициальные тестовые образы со всеми своими наработками на данный момент. А Андрей Шаталов даже создал образ жесткого диска с предустановленным ReactOS с фиксами от Вадима.

                                Мы с нетерпением ждем ваших впечатлений, пожеланий и баг-репортов, и уже наполную работаем над подготовкой релиза 0.4.7. Пишите свои комментарии!

                                И помните: ReactOS совсем не то, чем кажется!
                                Original source: habrahabr.ru (comments, light).

                                https://habrahabr.ru/post/337772/


                                Метки:  

                                Поиск сообщений в rss_rss_hh_full
                                Страницы: 1824 ... 1529 1528 [1527] 1526 1525 ..
                                .. 1 Календарь