Top Banner
Dev(Sec)Ops and the Hunter/Farmer model Fabrizio Zeno Cornelli CODEMOTION MILAN - SPECIAL EDITION 10 – 11 NOVEMBER 2017
76

Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Jan 21, 2018

Download

Technology

Codemotion
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Dev(Sec)Ops and the Hunter/Farmer model

Fabrizio Zeno Cornelli

CODEMOTION MILAN - SPECIAL EDITION 10 – 11 NOVEMBER 2017

Page 2: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Thanks to Randall Munroe: xkcd.com

Page 3: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Get a Good Password

$ dd if=/dev/random count=1

| base64 | cut -c1-22

c4EdYgLedpD30qKJ6YAKjQ

Use 128 bit

Page 4: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

$ gsort -R ˜/dict/words.txt

| head -4 | paste -sd ‘-‘ -

Get a Good Password

Use dictionary

Page 5: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

11 bits to index words.txt?

128/11 !" 12

Get a Good Password

How many words?

Page 6: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Why Password0! Is not good?

Page 7: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

HOW TO CRACK A PASSWORD

Page 8: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017
Page 9: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

How passwords work

stored[user] = hash(password)

hash(password) !" stored[user] $→ auth

Page 10: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

How to crack a password

Retrieve stored hashes

Deduce hash

Plaintext? Done :

- Bruteforce attack

- Dictionary attack

Page 11: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Brute force Attack

Test every single possible password.

From ‘a’ up to ‘ZZZZZZZZ..ZZZ’

Page 12: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Dictionary Attack

hash(guess) !" stored $→ (^-^)

$ john stored.txt

Page 13: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

stored = set(‘abFZSxKKdq5s6’, ‘ulMGRyl03i2gm’ …)

dic = [‘password’, ‘12345’, …]

rules = [‘:’, ‘u’, … ‘so0’, ‘cAz[0-9][!$§]’]

_guesses = jexpand(dic, rules) # [‘password’, ‘PASSWORD’, …, ‘passw0rd’, ‘Password0!’…]

[ g for g in _guesses if hash(g) in stored ]

How to crack a password

Page 14: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

So what?

Page 15: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017
Page 16: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

FABRIZIO [email protected]

Page 17: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

CV

CTO, Enterprise srl

DEV / QA Manager, HT

Consultant, from 2016

Page 18: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017
Page 19: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

DEVELOPER“if it ain’t broke, don’t fix it”

Page 20: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Constructive

Page 21: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Design then code (and test)

Page 22: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

High level languagesGood PracticesRTFMFrameworks and Libraries

Progra()ing skills (some languages)

Page 23: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Don’t reinvent the wheel

Page 24: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

DRIVEN BY Sense of order Growth Collaboration Planning/OCD issues

Page 25: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Dev Proverbs

The ends does not justify the mean

Choose two: good, fast, cheap

Any fool can write code that a computer can understand. Good progra()ers write code that humans can understand. [M. Fowler]

Page 26: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

HACKER“shit happens”

Page 27: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Deconstructive: Reverse Engineer

Page 28: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Lateral Thinking

Page 29: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Subvert the manual

Page 30: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Shortcut / quick and dirty

Page 31: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Must be the first

Page 32: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Low level Languages

(C, asm)

Page 33: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

DRIVEN BY Challenge Showing off Boring issues

Page 34: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Hacking Proverbs

the ends justify the means

a clever person solves a problem, a wise person avoids it

a lot goes a shecat to the grease, that she leaves the little arm

Page 35: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Comparative table

Deductive Inductive

Deconstructive Constructive

Reverse Engineering Progra()ing skills

Lateral Thinking Good Practice

Shortcut Design then code

Subvert the manual RTFM

Shortcut Frameworks and libs

Incautious Conservative

Low level lang High level lang

Hacker Developer

Page 36: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Shared values

Page 37: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Discipline / Focus

Page 38: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Imagination

Page 39: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Patience

Page 40: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017
Page 41: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Farmer Hunter model

B2B Sales model

Page 42: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Hunter focused on creating new sales opportunities, prospecting and closing. “eat what they kill.”

Page 43: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Farmer manages and sells to existing relationships. account manager

Page 44: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Hunter vs FarmerTake charge Let things develop

Aggressive Laid Back

Prospector Planner

Competitive Collaborative

Always be closing So, what do you think

Individualist Team player

Short term Long term

Risky Safe

Page 45: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Hunter vs Farmer

Really a coincidence? Is there any anthropologic root?

Page 46: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

STONE AGEanthropologic session

Page 47: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Small clans

Nomadic

Hunters

Page 48: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Resources Developer

Languageand politics

Villages and cities

Farmers

Page 49: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Hunter vs Farmer

nomadic / autonomy permanent settlements

innovation tradition

initiative patience

indipendence collaboration

Page 50: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Are we changed?

We still “feel” the connection with cats and dogs

Trium Brain theory (Paul MacLean)

Page 51: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

PALEOLITHIC HUNTER HACKER

Page 52: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

NEOLITHIC FARMER DEVELOPER

Page 53: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Are we Hunters or Farmers?

Both of them

Page 54: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Be a hunter get your POC

Page 55: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Be a farmer: evolve an idea to a product

Page 56: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Make your team

0

20

40

60

80

POC Project Dev Maintain/PT

Hunter Farmer

Page 57: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

DEVSECOPS“hunter as a service”

Page 58: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Defenders cannot win

Page 59: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Defenders cannot win

Defending is more difficult

Attackers can abuse any vulnerability

Page 60: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Multi Layer defence

Page 61: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Multi Layer defence

Defending is expensive

How can I prove that I’m secure?

Page 62: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Popper’s refutability

Page 63: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Popper’s refutability

the inherent possibility that a statement can be proven false

- Halting problem

- “this system is secure”

Page 64: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Popper’s refutability

POSITIVISM

proof $→ true

REFUTABILITY

paradox $→ false

Page 65: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

DevSecOps’ Refutability

each part should be testable and tested

devsecops is the continuous invalidation process

Page 66: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

anti pattern

Page 67: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

security by obscurity

Page 68: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Russell’s inductivist turkey PART 1

Page 69: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Russell’s inductivist turkey PART 2

Page 70: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Hiring

Page 71: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Hiring

“I’m looking for a hacker”

“We need a developer”

Page 72: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Hiring

You have a few hours to match

Does your candidate fits your job needs?

Does your job appeal to the candidate?

Is your candidate a person or a resource?

Page 73: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017
Page 74: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

1,2,3,4,5?

That's amazing! I've got the same combination on my luggage.

Page 75: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

Thanks

Fabio Sangiovanni

Mariachiara Pezzotti

Federico Gandellini

Luciano Colosio

Page 76: Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter Farmer - Codemotion Milan 2017

THANK YOUhacked potato for you

(no animal was harmed in the making of this presentation)