go в продакшене вирмейкера

37
Go в продакшене вирмейкера Борис Рютин @dukebarman «Цифровое оружие и защита» © 2014

Upload: boris-ryutin

Post on 05-Jul-2015

1.063 views

Category:

Technology


2 download

DESCRIPTION

Slides from Zero Nights 2014

TRANSCRIPT

Page 1: Go в продакшене вирмейкера

Go в продакшене вирмейкера

Борис Рютин@dukebarman

«Цифровое оружие и защита»© 2014

Page 2: Go в продакшене вирмейкера

Что такое Go?

Page 3: Go в продакшене вирмейкера

Создатели Go

• Роберт Гризмер

• Роб Пайк

• Кен Томпсон

Page 4: Go в продакшене вирмейкера

Основные мотивации

• Безопасность

• Масштабируемость

• Время сборки

Page 5: Go в продакшене вирмейкера

Особенности #1

• Компилируется в машинный код

• Автоматическое управление памятью, сборщик мусора

• Строгая статическая типизация

• Конкурентное программирование

• Есть принципы ОО, но нет классов и наследования

Page 6: Go в продакшене вирмейкера

Синтаксис

Page 7: Go в продакшене вирмейкера

Особенности #2

• Нет исключений

• Есть указатели, но нет арифметических операций

Page 8: Go в продакшене вирмейкера

Исключения

Page 9: Go в продакшене вирмейкера

Указатели

Page 10: Go в продакшене вирмейкера

Плюсы

• Лёгкость освоения

• Скорость

• Кроссплатформеность

• Параллелизм

• Opensource

• Обаятельный талисман

Page 11: Go в продакшене вирмейкера

Минусы

• РАЗМЕР файла

• Отсутствие generics и переопределения операторов

• Отсутствие GUI

• Это не С/C++ и многие ждут Rust

Page 12: Go в продакшене вирмейкера

Где используется

• Google

• Yandex

• Soundcloud

• Docker

• CoreOS

• Twitch

Page 13: Go в продакшене вирмейкера

Тёмная стороны силы

Page 14: Go в продакшене вирмейкера

Инструментарий

• GDB (+ runtime-gdb.py)

• IDA, radare2

Page 15: Go в продакшене вирмейкера

Zygnatures. strip=false

Page 16: Go в продакшене вирмейкера

Zygnatures. strip=true

Page 17: Go в продакшене вирмейкера

Zygnatures

Page 18: Go в продакшене вирмейкера

Zygnatures

Page 19: Go в продакшене вирмейкера

Windows. Type

Page 20: Go в продакшене вирмейкера

Windows. Infostealer

Page 21: Go в продакшене вирмейкера

Windows. Infostealer

Page 22: Go в продакшене вирмейкера

Вызов DLL

Page 23: Go в продакшене вирмейкера

Вызов DLL

Page 24: Go в продакшене вирмейкера

Вызов DLL

Page 25: Go в продакшене вирмейкера

GoArm

• strings | grep 'func(‘

• r2>izz~func

Page 26: Go в продакшене вирмейкера

GoArm

Page 27: Go в продакшене вирмейкера

Светлая стороны силы

Page 28: Go в продакшене вирмейкера

Инструментарий

• IDE: Intelij IDEA + плагин, gosublime, LiteIDE, vimgo

• Установщик (golang.org, репозиторий)

• Настройка окружения (GOPATH, GOROOT)

Page 29: Go в продакшене вирмейкера

«Программы-шутки»?

• godoor

• Schoolware

Page 30: Go в продакшене вирмейкера

AV сканеры

• asgard-cli

• gonotifyav

• ipinformer

Page 31: Go в продакшене вирмейкера

SkyNet

GoDrone Bots GoBot

Page 32: Go в продакшене вирмейкера

Распределенные вычисления

• btcd

• mumax

Page 33: Go в продакшене вирмейкера

Стрессовое тестирование

• Go-meter

Page 34: Go в продакшене вирмейкера

Массовое тестирование

• Heartbleed

• Shellshock

• SSH/sitescanner/AuthenticationScanner/…

Page 35: Go в продакшене вирмейкера

Wopbot?

Page 36: Go в продакшене вирмейкера

Оптимизация