SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
@benjammingh for DevSecCon 2017 1
Who's this clown?
— Security Engineer at Stripe
— Infrastructure security at Etsy
— Operations monkey at Puppet Labs
— Was once retweeted by William Gibson!
— basically, kind of a big deal
https://twitter.com/skullmandible/status/411281851131523072
@benjammingh for DevSecCon 2017 2
Agenda
— Intro (we're crushing this already)
— Mac OS history and sadness
— Malware reversing and how
— 5 minute break
— Discovering problems in the first place
— Hardening?
— Fin
@benjammingh for DevSecCon 2017 3
Intro
This is workshop, not an amzing slide deck, please throw
any and all questions my way.
PLEASE experiment, as hard as you can.
This is not exhaustive, thankfully.
@benjammingh for DevSecCon 2017 4
The VM
It's nasty.
It has no network adaptor on it, so can only harm itself.
Requires VMware Fusion on a Mac, due to licensing (the
trial is on the drive too)
@benjammingh for DevSecCon 2017 5
but first, a li!le history
@benjammingh for DevSecCon 2017 6
Once upon a time, macs looked like this
@benjammingh for DevSecCon 2017 7
and this
@benjammingh for DevSecCon 2017 8
macs are secure!
@benjammingh for DevSecCon 2017 9
This is actually the grandparent of your mac
@benjammingh for DevSecCon 2017 10
@benjammingh for DevSecCon 2017 11
So what Ben?
— NeXTSTEP originally released in 1989.
— The Mach Kernel project ran from 1985 to 1994.
(somewhat hyperbolic, but you see what I'm saying)
@benjammingh for DevSecCon 2017 12
How scary?
/* XXX this is _not_ designed to be fast */
/* wordexp is also rife with security "challenges", unless you pass it
WRDE_NOCMD it *must* support subshell expansion, and even if you
don't beause it has to support so much of the standard shell (all
the odd little variable expansion options for example) it is hard
to do without a subshell). It is probbably just plan a Bad Idea
to call in anything setuid, or executing remotely. */
int wordexp(const char *__restrict__ words,
wordexp_t *__restrict__ pwe, int flags) {
/* cbuf_l's inital value needs to be big enough for 'cmd' plus
about 20 chars */
size_t cbuf_l = 1024;
char *cbuf = NULL;
/* Put a NUL byte between each word, and at the end */
char *cmd = "/usr/bin/perl -e 'print join(chr(0), @ARGV), chr(0)' -- ";
libc/gen/wordexp.c from the Apple FOSS mirror on github
@benjammingh for DevSecCon 2017 13
So macs are not as secure as
their marketing makes out.
@benjammingh for DevSecCon 2017 14
@benjammingh for DevSecCon 2017 15
Taking apart Mac malware
@benjammingh for DevSecCon 2017 16
(don't download this, it's full of malware)
@benjammingh for DevSecCon 2017 17
[durazac:malware]% hdiutil attach -readonly -noautoopen MacKeeper.dmg
/dev/disk2 /Volumes/MacKeeper Installer
[durazac:malware]% cd /Volumes/MacKeeper Installer
[durazac:MacKeeper Installer]% ls
MacKeeper.pkg
@benjammingh for DevSecCon 2017 18
[durazac:malware]% mkdir mc ; cd mc
[durazac:malware]% file /Volumes/MacKeeper Installer/MacKeeper.pkg
/Volumes/MacKeeper Installer/MacKeeper.pkg: xar archive version 1, SHA-1 checksum
[durazac:mc]% xar -x -f /Volumes/MacKeeper Installer/MacKeeper.pkg
xar - eXtensible ARchiver
@benjammingh for DevSecCon 2017 19
Moar packages!
[durazac:mc]% ls -l
total 16
-rw-r--r-- 1 ben staff 6344 Oct 4 20:43 Distribution
drwxr-xr-x 6 ben staff 192 Oct 4 20:43 LaunchOffer.pkg
drwxr-xr-x 7 ben staff 224 Oct 4 20:43 MacKeeper.pkg
drwxr-xr-x 23 ben staff 736 Oct 4 20:43 Resources
drwxr-xr-x 7 ben staff 224 Oct 4 20:43 comzeobitmackeeper.pkg
@benjammingh for DevSecCon 2017 20
comzeobitmackeeper.pkg
(wtf?)
@benjammingh for DevSecCon 2017 21
Extract the pre/post install scripts
[durazac:comzeobitmackeeper.pkg]% mkdir installscripts
[durazac:comzeobitmackeeper.pkg]% cd installscripts
[durazac:installscripts]% tar zxvf ../Scripts
x postinstall
@benjammingh for DevSecCon 2017 22
Extract the payload
[durazac:comzeobitmackeeper.pkg]% mkdir paidload
[durazac:comzeobitmackeeper.pkg]% cd paidload
[durazac:paidload]% tar zxvf ../Payload
x .
[durazac:paidload]% ls -la ../Payload
-rw-r--r-- 1 ben staff 82 Oct 5 04:43 ../Payload
Wait, there's no payload?
@benjammingh for DevSecCon 2017 23
$EDITOR postinstall
@benjammingh for DevSecCon 2017 24
[durazac:~]% for ((i=0; i<=4; i++)) { echo 
'LkdrJsYk22BjaHVOE3GOnE1VLCrnV/sTam3BaGjNOJp8O4fjMrBjekTT
94idx4n5A3EtUzi/lRtLoJvx2zhu3HG7PP/HsJnExsrj6UK4/CVsCCi/4
l0JcFGW1RPAzyHmqIEpi3cQ5RbYt3qXv8XVGtHvLNFCTYJk4z3F4J+2qf
wZSS9mYVMkz9RgADO6WT4pQlqQoyHFXi5guCzIuZEYn5IHDLANtlqqnzD
7z1Nvl328SDp9nT9ZfQPd5EGt5veFncPM8qObrXqdUr1Ib8zIWt4FjYjH
N6rtIk+S3QXluOMA8v8/SaUxj8zFZNjJy/3dKNzByl70ePGKKnJ16JIZo
1BOFG5Ate3x/87ECj7fTgVjR1TRuPHbvUtgeSMdmVNtmI+rOKFehPUSjb
HXQiw/RNyCIE7WlcSczl/0P04HOZmeTaFdxetWvKwI8kIiD0dQbFQBalN
cS8qgtG1gAllMqKFnjYD6wWXeQTBaWuBBo8FfCEuXKiFvrBoBiZlFxeQK' 
| base64 -D 
| dd bs=128 count=1 skip=$i 2>/dev/null 
| openssl rsautl -verify -pubin -inkey somekey 2>/dev/null 
} | python -mjson.tool
@benjammingh for DevSecCon 2017 25
Which outputs
{
"affid": "358.20580063.1507174981.32.mzb",
"arePopupsAggressive": false,
"bundleId": "29_317511156",
"enableAnalytics": true,
"extendedStatisticIntervalInDays": 30,
"ga_cid": "805354281.1507174983",
"systemScanHasSignupStep": true,
"trialDays": 0,
"trtId": "FF2B241D-9456-4D5E-A4D5-50B67C3F0715",
"trtVersion": 11
}
@benjammingh for DevSecCon 2017 26
38 MAC_ADDRESS=$(networksetup -getmacaddress en0 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}')
39 if [ -z "$MAC_ADDRESS" ]; then
40 ▸ MAC_ADDRESS=$(networksetup -getmacaddress en1 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}')
41 fi
42
43 SERIAL_NUMBER=$(ioreg -c IOPlatformExpertDevice -d 2 | awk -F" '/IOPlatformSerialNumber/{print $(NF-1)}')
44
45 DEVICE_ID=$(echo "${SERIAL_NUMBER}|${MAC_ADDRESS}" | sed -e 's/:/%3A/g;s/|/%7C/g')
...
53 ▸ ▸ REINSTALL_DATA="step=MKInstallEvents&affid=${AFFID}&bundleId=${BUNDLEID}&prodID=${MK_PRODUCT_ID}&version=${SOURCE_VERSION}&device_id=${DEVICE_ID}....
...
57 ▸ ▸ curl -q -f --silent --data "$REINSTALL_DATA" "http://event.mackeeper.com/event.php"
it's sending my MAC address where now!?
@benjammingh for DevSecCon 2017 27
[durazac:comzeobitmackeeper.pkg]% <Payload gunzip -cd| tar vtf -
drwxrwxr-t 2 0 80 0 May 12 02:42 .
[durazac:comzeobitmackeeper.pkg]% lsbom Bom
. 41775 0/80
Wait, so there is no payload, it just runs that super
sketch script!?!?
@benjammingh for DevSecCon 2017 28
MacKeeperOffers.pkg
Now we just do the same for MacKeeperOffers until we find something interesting
[durazac:MacKeeperOffers]% strings -a checkinstall | tail -12
JustCloud
MegaBackup
YahooSearch
Appswell
YoutubeConverter
/Applications/MegaBackup.app
/Applications/JustCloud.app
com.apple.Safari
HomePage
hspart=iry
/Applications/Appswell.app
/Applications/Softorino YouTube Converter X.app
@benjammingh for DevSecCon 2017 29
@benjammingh for DevSecCon 2017 30
Looking at the Offers.pkg/Scripts/MegaBackup line 55
[durazac:~]% TID=1
[durazac:~]% URL='http://land.megabackup.com/'
[durazac:~]% URL+='paramss=phexafefced9b4b5c9ac9297a0af999'
[durazac:~]% URL+='cd2e8cb90b1b5cecfc1e2c8cad5cdd9ddcec49d'
[durazac:~]% URL+='aadcd2d5a9a490e3e5c0d1c3ded5cdd0cfdbce9'
[durazac:~]% URL+="496dfded99c&trt=51_72&tid_ext=${TID}"
[durazac:~]%
[durazac:~]% curl -q -f -L --max-redirs 150 
--output some.file "$URL"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 40238 100 40238 0 0 29387 0 0:00:01 0:00:01 --:--:-- 51455
[durazac:~]% file some.file
some.file: xar archive - version 1
@benjammingh for DevSecCon 2017 31
go all the way back to the first dir
[durazac:mc]% egrep -Riha -o 'https?://[-.a-z0-9_]+/' . | sort -u
http://cdn.mackeeper.com/
http://event.mackeeper.com/
http://land.megabackup.com/
http://ldrapi1.megabackup.com/
http://mackeeperapp.mackeeper.com/
http://www.apple.com/
@benjammingh for DevSecCon 2017 32
Blocking domains
— If you run your own resolvers, then my talk on
sinkholing from 2014
— If you use OpenDNS * and you should!
read here
— on the cheap * obviously doesn't scale
cat <<EOF | sudo tee -a /etc/hosts && pkill -HUP mDNSResponder
127.0.0.1 cdn.mackeeper.com event.mackeeper.com mackeeperapp.mackeeper.com
EOF
@benjammingh for DevSecCon 2017 33
xa!r
Extended attributes!
[durazac:Downloads]% ls -l Hopper-4.1.4-demo.dmg
-rw-r--r--@ 1 barn staff 28746615 Apr 28 14:51 Hopper-4.1.4-demo.dmg
[durazac:Downloads]% ls -l@ Hopper-4.1.4-demo.dmg
-rw-r--r--@ 1 barn staff 28746615 Apr 28 14:51 Hopper-4.1.4-demo.dmg
com.apple.diskimages.fsck 20
com.apple.diskimages.recentcksum 80
com.apple.metadata:kMDItemWhereFroms 151
com.apple.quarantine 71
@benjammingh for DevSecCon 2017 34
com.apple.quarantine:
@benjammingh for DevSecCon 2017 35
Xprotect
from /System/Library/CoreServices/XProtect.bundle/Contents/Resources/XProtect.plist
<plist version="1.0">
<array>
<dict>
<key>Description</key>
<string>OSX.AceInstaller.B.2</string>
<key>LaunchServices</key>
<dict>
<key>LSItemContentType</key>
<string>com.apple.application-bundle</string>
</dict>
<key>Matches</key>
<array>
<dict>
<key>MatchFile</key>
<dict>
<key>NSURLTypeIdentifierKey</key>
<string>public.unix-executable</string>
</dict>
<key>MatchType</key>
<string>Match</string>
<key>Pattern</key>
<string>7365744F66666572734C6162656C</string>
</dict>
@benjammingh for DevSecCon 2017 36
and com.apple.metadata:kMDItemWhereFroms
bash-3.2# mdls -name kMDItemWhereFroms Hopper-4.2.21-demo.dmg
kMDItemWhereFroms = (
"https://d2ap6ypl1xbe4k.cloudfront.net/Hopper-4.2.21-demo.dmg",
"https://www.hopperapp.com/download.html"
)
@benjammingh for DevSecCon 2017 37
@benjammingh for DevSecCon 2017 38
Finding them
@benjammingh for DevSecCon 2017 39
Host based IDS
— MIDAS - Intrusion Detection for Macs(super dead now)
— OSSEC - Open Source HIDS SECurity
Threaty threats paid things
— Carbon Black Response
— Clown Strike - Falcon
— Red Canary
@benjammingh for DevSecCon 2017 40
Knock knock!
git clone from
https://github.com/synack/knockknock.git
@benjammingh for DevSecCon 2017 41
Gui version of knock knock
By the same author, Patrick Wardle.
objective-see.com/products/knockknock.html
@benjammingh for DevSecCon 2017 42
OSXcollector
Written in python by Yelp
More of a forensics tool.
Little more invasive say, my default dumps browser history.
/usr/bin/python osxcollector.py
spits out a tarball, inside that are system logs and a JSON
report.
@benjammingh for DevSecCon 2017 43
bash-3.2# cat osxcollect-2017_10_18-09_23_37.json 
| while read line ; 
do echo "$line" | python -mjson.tool || break ; 
done 
| less -R
{
"osxcollector_incident_id": "osxcollect-2017_10_18-09_23_37",
"osxcollector_section": "version",
"osxcollector_version": "1.9"
}
{
"fde": false,
"machine": "x86_64",
"nodename": "dsc.local",
"osxcollector_incident_id": "osxcollect-2017_10_18-09_23_37",
"osxcollector_section": "system_info",
"release": "17.0.0",
"sysname": "Darwin",
"version": "Darwin Kernel Version 17.0.0: Thu Aug 24 21:48:19 PDT 2017; root:xnu-4570.1.46~2/RELEASE_X86_64"
}
@benjammingh for DevSecCon 2017 44
OSquery
— built at Facebook (it scales)
— cross platform (plan9, TOS, Xenix)
— open source https://github.com/facebook/osquery/
— has a logo that makes you think of Gravatar
@benjammingh for DevSecCon 2017 45
OSquery cont.
— Kolide - Beautiful osquery management tool.
— Doorman - Doorman, OSS tool for doing the same.
— Envdb - Looks pretty nice (but I've not used it yet)
These are for fleet deployments, as osquery is just a SQL
REPL for your system.
@benjammingh for DevSecCon 2017 46
But let's play with it!
[durazac:~]% osqueryi
Using a virtual database. Need help, type '.help'
osquery> .mode line
osquery> select * from osquery_info;
pid = 1068
uuid = 564D335B-A20C-A42B-AB3B-9FCFCA4C07E7
instance_id = 9e14be42-d47a-4f88-b226-26366c20c67c
version = 2.9.0
config_hash = df8743dd7fe17219a15ac0860d61c26d868ebc73
config_valid = 1
extensions = active
build_platform = darwin
build_distro = 10.12
start_time = 1508341272
watcher = -1
@benjammingh for DevSecCon 2017 47
osquery> .tables
=> acpi_tables
=> ad_config
=> alf
=> alf_exceptions
=> alf_explicit_auths
=> alf_services
=> app_schemes
=> apps
=> arp_cache
=> asl
or, more readably, osquery table schema docs
@benjammingh for DevSecCon 2017 48
fun osquery examples
osquery> SELECT * From file
...> where path like "/Users/%/Library/LaunchAgents/com.%.MacKeeper.Helper.plist"
...> OR path like "/Users/%/Documents/MacKeeper Backups"
...> OR path = "/Applications/MacKeeper.app" ;
osquery> select distinct( user ) from logged_in_users;
more fun on a server
osquery> select * from kernel_extensions where name not like 'com.apple.%';
not amaze on the VM, but good on my laptop
@benjammingh for DevSecCon 2017 49
Hardening
@benjammingh for DevSecCon 2017 50
Step 1
Manage your macs!
— Fleetsmith - Fantastic new MaaS offering
— Chef/Puppet - needs no introduction
— Munki - manage software installs, rather than just have
them
— Simian - Simian is an enterprise-class Mac OS X
software deployment solution, buuuut it's Google
— JSS Jamf - Is another alternative, I guess
@benjammingh for DevSecCon 2017 51
Step 2
Just use Chrome
— Pwn 2 Own's pricing scale
— BrowserScope says so
— Zerodium will pay you $150k for an exploit for
Chrome, vs $80k for FreedomFox
@benjammingh for DevSecCon 2017 52
Step 3
— Make sure Gatekeeper is set to "app store" or "app store & signed" only (now the default)
@benjammingh for DevSecCon 2017 53
Step 3.5
— this doesn't solve homebrew, where you can just
install whatever you wish
[durazac~]% brew install sqlmap 1
==> Downloading https://github.com/sqlmapproject/sqlmap/archive/1.1.10.tar.gz
==> Downloading from https://codeload.github.com/sqlmapproject/sqlmap/tar.gz/1.1.10
######################################################################## 100.0%
! /usr/local/Cellar/sqlmap/1.1.10: 543 files, 10.3MB, built in 17 seconds
@benjammingh for DevSecCon 2017 54
Step 4
More restrictions
— Santa! - Santa is a binary whitelisting/blacklisting
system for macOS
@benjammingh for DevSecCon 2017 55
Hardening vs. reality
You could make everyone in your company run OpenBSD
on their laptop.
You would go out of business very quickly.
There's no good easy answer. ):
@benjammingh for DevSecCon 2017 56
Would you like to know more?
— Reverse Engineering Mac Malware - Sarah Edwards
— When Macs Get Hacked -Sarah Edwards
— Hipster DFIR on OSX - Scott J. Roberts
— Syscall Auditing at scale - Ryan Huber
— Tracking a stolen code-signing certificate with
osquery - Mike Myers
— Methods of Malware Persistence - Patrick Wardle
@benjammingh for DevSecCon 2017 57
Come work at
Our great jobs pages
@benjammingh for DevSecCon 2017 58
Thank you!
@benjammingh for DevSecCon 2017 59

Más contenido relacionado

La actualidad más candente

DevOops & How I hacked you DevopsDays DC June 2015
DevOops & How I hacked you DevopsDays DC June 2015DevOops & How I hacked you DevopsDays DC June 2015
DevOops & How I hacked you DevopsDays DC June 2015Chris Gates
 
Windows attacks - AT is the new black
Windows attacks - AT is the new blackWindows attacks - AT is the new black
Windows attacks - AT is the new blackChris Gates
 
DevOops Redux Ken Johnson Chris Gates - AppSec USA 2016
DevOops Redux Ken Johnson Chris Gates  - AppSec USA 2016DevOops Redux Ken Johnson Chris Gates  - AppSec USA 2016
DevOops Redux Ken Johnson Chris Gates - AppSec USA 2016Chris Gates
 
The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014
The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014
The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014Puppet
 
Regex Considered Harmful: Use Rosie Pattern Language Instead
Regex Considered Harmful: Use Rosie Pattern Language InsteadRegex Considered Harmful: Use Rosie Pattern Language Instead
Regex Considered Harmful: Use Rosie Pattern Language InsteadAll Things Open
 
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon
 
Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...
Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...
Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...Chris Gates
 
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Clark Everetts
 
Php Dependency Management with Composer ZendCon 2017
Php Dependency Management with Composer ZendCon 2017Php Dependency Management with Composer ZendCon 2017
Php Dependency Management with Composer ZendCon 2017Clark Everetts
 
2017 DevSecCon ZAP Scripting Workshop
2017 DevSecCon ZAP Scripting Workshop2017 DevSecCon ZAP Scripting Workshop
2017 DevSecCon ZAP Scripting WorkshopSimon Bennetts
 
AWS Survival Guide
AWS Survival GuideAWS Survival Guide
AWS Survival GuideKen Johnson
 
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon
 
Banfootguns devseccon 2019
Banfootguns devseccon 2019Banfootguns devseccon 2019
Banfootguns devseccon 2019Morgan Roman
 
Open Canary - novahackers
Open Canary - novahackersOpen Canary - novahackers
Open Canary - novahackersChris Gates
 
Mitigating Exploits Using Apple's Endpoint Security
Mitigating Exploits Using Apple's Endpoint SecurityMitigating Exploits Using Apple's Endpoint Security
Mitigating Exploits Using Apple's Endpoint SecurityCsaba Fitzl
 
Security in serverless world
Security in serverless worldSecurity in serverless world
Security in serverless worldYan Cui
 
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting ClassThe Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting ClassRob Fuller
 
Invoke-Obfuscation nullcon 2017
Invoke-Obfuscation nullcon 2017Invoke-Obfuscation nullcon 2017
Invoke-Obfuscation nullcon 2017Daniel Bohannon
 
Exploiting XPC in AntiVirus
Exploiting XPC in AntiVirusExploiting XPC in AntiVirus
Exploiting XPC in AntiVirusCsaba Fitzl
 

La actualidad más candente (20)

DevOops & How I hacked you DevopsDays DC June 2015
DevOops & How I hacked you DevopsDays DC June 2015DevOops & How I hacked you DevopsDays DC June 2015
DevOops & How I hacked you DevopsDays DC June 2015
 
Windows attacks - AT is the new black
Windows attacks - AT is the new blackWindows attacks - AT is the new black
Windows attacks - AT is the new black
 
DevOops Redux Ken Johnson Chris Gates - AppSec USA 2016
DevOops Redux Ken Johnson Chris Gates  - AppSec USA 2016DevOops Redux Ken Johnson Chris Gates  - AppSec USA 2016
DevOops Redux Ken Johnson Chris Gates - AppSec USA 2016
 
The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014
The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014
The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014
 
Regex Considered Harmful: Use Rosie Pattern Language Instead
Regex Considered Harmful: Use Rosie Pattern Language InsteadRegex Considered Harmful: Use Rosie Pattern Language Instead
Regex Considered Harmful: Use Rosie Pattern Language Instead
 
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
 
Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...
Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...
Big Bang Theory: The Evolution of Pentesting High Security Enviroments IT Def...
 
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
 
Php Dependency Management with Composer ZendCon 2017
Php Dependency Management with Composer ZendCon 2017Php Dependency Management with Composer ZendCon 2017
Php Dependency Management with Composer ZendCon 2017
 
2017 DevSecCon ZAP Scripting Workshop
2017 DevSecCon ZAP Scripting Workshop2017 DevSecCon ZAP Scripting Workshop
2017 DevSecCon ZAP Scripting Workshop
 
AWS Survival Guide
AWS Survival GuideAWS Survival Guide
AWS Survival Guide
 
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
 
Banfootguns devseccon 2019
Banfootguns devseccon 2019Banfootguns devseccon 2019
Banfootguns devseccon 2019
 
Open Canary - novahackers
Open Canary - novahackersOpen Canary - novahackers
Open Canary - novahackers
 
Mitigating Exploits Using Apple's Endpoint Security
Mitigating Exploits Using Apple's Endpoint SecurityMitigating Exploits Using Apple's Endpoint Security
Mitigating Exploits Using Apple's Endpoint Security
 
Invoke-DOSfuscation
Invoke-DOSfuscationInvoke-DOSfuscation
Invoke-DOSfuscation
 
Security in serverless world
Security in serverless worldSecurity in serverless world
Security in serverless world
 
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting ClassThe Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
 
Invoke-Obfuscation nullcon 2017
Invoke-Obfuscation nullcon 2017Invoke-Obfuscation nullcon 2017
Invoke-Obfuscation nullcon 2017
 
Exploiting XPC in AntiVirus
Exploiting XPC in AntiVirusExploiting XPC in AntiVirus
Exploiting XPC in AntiVirus
 

Similar a DevSecCon London 2017 - MacOS security, hardening and forensics 101 by Ben Hughes

Adrian Mouat - Docker Tips and Tricks
 Adrian Mouat - Docker Tips and Tricks Adrian Mouat - Docker Tips and Tricks
Adrian Mouat - Docker Tips and TricksKevin Cross
 
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindProfiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindSam Keen
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014biicode
 
Docker Security workshop slides
Docker Security workshop slidesDocker Security workshop slides
Docker Security workshop slidesDocker, Inc.
 
introduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraformintroduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraformniyof97
 
Moving from Jenkins 1 to 2 declarative pipeline adventures
Moving from Jenkins 1 to 2 declarative pipeline adventuresMoving from Jenkins 1 to 2 declarative pipeline adventures
Moving from Jenkins 1 to 2 declarative pipeline adventuresFrits Van Der Holst
 
The Fairy Tale of the One Command Build Script
The Fairy Tale of the One Command Build ScriptThe Fairy Tale of the One Command Build Script
The Fairy Tale of the One Command Build ScriptDocker, Inc.
 
Docker Demo @ IuK Seminar
Docker Demo @ IuK SeminarDocker Demo @ IuK Seminar
Docker Demo @ IuK SeminarMartin Scharm
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis OverviewLeo Lorieri
 
2012 coscup - Build your PHP application on Heroku
2012 coscup - Build your PHP application on Heroku2012 coscup - Build your PHP application on Heroku
2012 coscup - Build your PHP application on Herokuronnywang_tw
 
Docker Registry + Basic Auth
Docker Registry + Basic AuthDocker Registry + Basic Auth
Docker Registry + Basic AuthRemotty
 
Into The Box 2018 Going live with commandbox and docker
Into The Box 2018 Going live with commandbox and dockerInto The Box 2018 Going live with commandbox and docker
Into The Box 2018 Going live with commandbox and dockerOrtus Solutions, Corp
 
Going live with BommandBox and docker Into The Box 2018
Going live with BommandBox and docker Into The Box 2018Going live with BommandBox and docker Into The Box 2018
Going live with BommandBox and docker Into The Box 2018Ortus Solutions, Corp
 
Toolbox of a Ruby Team
Toolbox of a Ruby TeamToolbox of a Ruby Team
Toolbox of a Ruby TeamArto Artnik
 
Using Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsSander van der Burg
 
Scripting for infosecs
Scripting for infosecsScripting for infosecs
Scripting for infosecsnancysuemartin
 

Similar a DevSecCon London 2017 - MacOS security, hardening and forensics 101 by Ben Hughes (20)

Adrian Mouat - Docker Tips and Tricks
 Adrian Mouat - Docker Tips and Tricks Adrian Mouat - Docker Tips and Tricks
Adrian Mouat - Docker Tips and Tricks
 
Dev ops
Dev opsDev ops
Dev ops
 
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindProfiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / Webgrind
 
Gradle como alternativa a maven
Gradle como alternativa a mavenGradle como alternativa a maven
Gradle como alternativa a maven
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
Docker Security workshop slides
Docker Security workshop slidesDocker Security workshop slides
Docker Security workshop slides
 
introduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraformintroduction-infra-as-a-code using terraform
introduction-infra-as-a-code using terraform
 
Moving from Jenkins 1 to 2 declarative pipeline adventures
Moving from Jenkins 1 to 2 declarative pipeline adventuresMoving from Jenkins 1 to 2 declarative pipeline adventures
Moving from Jenkins 1 to 2 declarative pipeline adventures
 
The Fairy Tale of the One Command Build Script
The Fairy Tale of the One Command Build ScriptThe Fairy Tale of the One Command Build Script
The Fairy Tale of the One Command Build Script
 
Docker Demo @ IuK Seminar
Docker Demo @ IuK SeminarDocker Demo @ IuK Seminar
Docker Demo @ IuK Seminar
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 
Osol Pgsql
Osol PgsqlOsol Pgsql
Osol Pgsql
 
2012 coscup - Build your PHP application on Heroku
2012 coscup - Build your PHP application on Heroku2012 coscup - Build your PHP application on Heroku
2012 coscup - Build your PHP application on Heroku
 
Docker Registry + Basic Auth
Docker Registry + Basic AuthDocker Registry + Basic Auth
Docker Registry + Basic Auth
 
Into The Box 2018 Going live with commandbox and docker
Into The Box 2018 Going live with commandbox and dockerInto The Box 2018 Going live with commandbox and docker
Into The Box 2018 Going live with commandbox and docker
 
Going live with BommandBox and docker Into The Box 2018
Going live with BommandBox and docker Into The Box 2018Going live with BommandBox and docker Into The Box 2018
Going live with BommandBox and docker Into The Box 2018
 
Toolbox of a Ruby Team
Toolbox of a Ruby TeamToolbox of a Ruby Team
Toolbox of a Ruby Team
 
Using Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutions
 
Scripting for infosecs
Scripting for infosecsScripting for infosecs
Scripting for infosecs
 
Containers for sysadmins
Containers for sysadminsContainers for sysadmins
Containers for sysadmins
 

Más de DevSecCon

DevSecCon London 2019: Workshop: Cloud Agnostic Security Testing with Scout S...
DevSecCon London 2019: Workshop: Cloud Agnostic Security Testing with Scout S...DevSecCon London 2019: Workshop: Cloud Agnostic Security Testing with Scout S...
DevSecCon London 2019: Workshop: Cloud Agnostic Security Testing with Scout S...DevSecCon
 
DevSecCon London 2019: Are Open Source Developers Security’s New Front Line?
DevSecCon London 2019: Are Open Source Developers Security’s New Front Line?DevSecCon London 2019: Are Open Source Developers Security’s New Front Line?
DevSecCon London 2019: Are Open Source Developers Security’s New Front Line?DevSecCon
 
DevSecCon London 2019: How to Secure OpenShift Environments and What Happens ...
DevSecCon London 2019: How to Secure OpenShift Environments and What Happens ...DevSecCon London 2019: How to Secure OpenShift Environments and What Happens ...
DevSecCon London 2019: How to Secure OpenShift Environments and What Happens ...DevSecCon
 
DevSecCon Seattle 2019: Containerizing IT Security Knowledge
DevSecCon Seattle 2019: Containerizing IT Security KnowledgeDevSecCon Seattle 2019: Containerizing IT Security Knowledge
DevSecCon Seattle 2019: Containerizing IT Security KnowledgeDevSecCon
 
DevSecCon Seattle 2019: Decentralized Authorization - Implementing Fine Grain...
DevSecCon Seattle 2019: Decentralized Authorization - Implementing Fine Grain...DevSecCon Seattle 2019: Decentralized Authorization - Implementing Fine Grain...
DevSecCon Seattle 2019: Decentralized Authorization - Implementing Fine Grain...DevSecCon
 
DevSecCon Seattle 2019: Liquid Software as the real solution for the Sec in D...
DevSecCon Seattle 2019: Liquid Software as the real solution for the Sec in D...DevSecCon Seattle 2019: Liquid Software as the real solution for the Sec in D...
DevSecCon Seattle 2019: Liquid Software as the real solution for the Sec in D...DevSecCon
 
DevSecCon Seattle 2019: Fully Automated production deployments with HIPAA/HIT...
DevSecCon Seattle 2019: Fully Automated production deployments with HIPAA/HIT...DevSecCon Seattle 2019: Fully Automated production deployments with HIPAA/HIT...
DevSecCon Seattle 2019: Fully Automated production deployments with HIPAA/HIT...DevSecCon
 
DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...
DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...
DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...DevSecCon
 
DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...
DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...
DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...DevSecCon
 
DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...
DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...
DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...DevSecCon
 
DevSecCon Singapore 2019: Workshop - Burp extension writing workshop
DevSecCon Singapore 2019: Workshop - Burp extension writing workshopDevSecCon Singapore 2019: Workshop - Burp extension writing workshop
DevSecCon Singapore 2019: Workshop - Burp extension writing workshopDevSecCon
 
DevSecCon Singapore 2019: Embracing Security - A changing DevOps landscape
DevSecCon Singapore 2019: Embracing Security - A changing DevOps landscapeDevSecCon Singapore 2019: Embracing Security - A changing DevOps landscape
DevSecCon Singapore 2019: Embracing Security - A changing DevOps landscapeDevSecCon
 
DevSecCon Singapore 2019: Web Services aren’t as secure as we think
DevSecCon Singapore 2019: Web Services aren’t as secure as we thinkDevSecCon Singapore 2019: Web Services aren’t as secure as we think
DevSecCon Singapore 2019: Web Services aren’t as secure as we thinkDevSecCon
 
DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...
DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...
DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...DevSecCon
 
DevSecCon Singapore 2019: The journey of digital transformation through DevSe...
DevSecCon Singapore 2019: The journey of digital transformation through DevSe...DevSecCon Singapore 2019: The journey of digital transformation through DevSe...
DevSecCon Singapore 2019: The journey of digital transformation through DevSe...DevSecCon
 
DevSecCon Singapore 2019: Preventative Security for Kubernetes
DevSecCon Singapore 2019: Preventative Security for KubernetesDevSecCon Singapore 2019: Preventative Security for Kubernetes
DevSecCon Singapore 2019: Preventative Security for KubernetesDevSecCon
 
DevSecCon London 2018: Is your supply chain your achille's heel
DevSecCon London 2018: Is your supply chain your achille's heelDevSecCon London 2018: Is your supply chain your achille's heel
DevSecCon London 2018: Is your supply chain your achille's heelDevSecCon
 
DevSecCon London 2018: Get rid of these TLS certificates
DevSecCon London 2018: Get rid of these TLS certificatesDevSecCon London 2018: Get rid of these TLS certificates
DevSecCon London 2018: Get rid of these TLS certificatesDevSecCon
 
DevSecCon London 2018: Open DevSecOps
DevSecCon London 2018: Open DevSecOpsDevSecCon London 2018: Open DevSecOps
DevSecCon London 2018: Open DevSecOpsDevSecCon
 
DevSecCon London 2018: Building effective DevSecOps teams through role-playin...
DevSecCon London 2018: Building effective DevSecOps teams through role-playin...DevSecCon London 2018: Building effective DevSecOps teams through role-playin...
DevSecCon London 2018: Building effective DevSecOps teams through role-playin...DevSecCon
 

Más de DevSecCon (20)

DevSecCon London 2019: Workshop: Cloud Agnostic Security Testing with Scout S...
DevSecCon London 2019: Workshop: Cloud Agnostic Security Testing with Scout S...DevSecCon London 2019: Workshop: Cloud Agnostic Security Testing with Scout S...
DevSecCon London 2019: Workshop: Cloud Agnostic Security Testing with Scout S...
 
DevSecCon London 2019: Are Open Source Developers Security’s New Front Line?
DevSecCon London 2019: Are Open Source Developers Security’s New Front Line?DevSecCon London 2019: Are Open Source Developers Security’s New Front Line?
DevSecCon London 2019: Are Open Source Developers Security’s New Front Line?
 
DevSecCon London 2019: How to Secure OpenShift Environments and What Happens ...
DevSecCon London 2019: How to Secure OpenShift Environments and What Happens ...DevSecCon London 2019: How to Secure OpenShift Environments and What Happens ...
DevSecCon London 2019: How to Secure OpenShift Environments and What Happens ...
 
DevSecCon Seattle 2019: Containerizing IT Security Knowledge
DevSecCon Seattle 2019: Containerizing IT Security KnowledgeDevSecCon Seattle 2019: Containerizing IT Security Knowledge
DevSecCon Seattle 2019: Containerizing IT Security Knowledge
 
DevSecCon Seattle 2019: Decentralized Authorization - Implementing Fine Grain...
DevSecCon Seattle 2019: Decentralized Authorization - Implementing Fine Grain...DevSecCon Seattle 2019: Decentralized Authorization - Implementing Fine Grain...
DevSecCon Seattle 2019: Decentralized Authorization - Implementing Fine Grain...
 
DevSecCon Seattle 2019: Liquid Software as the real solution for the Sec in D...
DevSecCon Seattle 2019: Liquid Software as the real solution for the Sec in D...DevSecCon Seattle 2019: Liquid Software as the real solution for the Sec in D...
DevSecCon Seattle 2019: Liquid Software as the real solution for the Sec in D...
 
DevSecCon Seattle 2019: Fully Automated production deployments with HIPAA/HIT...
DevSecCon Seattle 2019: Fully Automated production deployments with HIPAA/HIT...DevSecCon Seattle 2019: Fully Automated production deployments with HIPAA/HIT...
DevSecCon Seattle 2019: Fully Automated production deployments with HIPAA/HIT...
 
DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...
DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...
DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...
 
DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...
DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...
DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...
 
DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...
DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...
DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...
 
DevSecCon Singapore 2019: Workshop - Burp extension writing workshop
DevSecCon Singapore 2019: Workshop - Burp extension writing workshopDevSecCon Singapore 2019: Workshop - Burp extension writing workshop
DevSecCon Singapore 2019: Workshop - Burp extension writing workshop
 
DevSecCon Singapore 2019: Embracing Security - A changing DevOps landscape
DevSecCon Singapore 2019: Embracing Security - A changing DevOps landscapeDevSecCon Singapore 2019: Embracing Security - A changing DevOps landscape
DevSecCon Singapore 2019: Embracing Security - A changing DevOps landscape
 
DevSecCon Singapore 2019: Web Services aren’t as secure as we think
DevSecCon Singapore 2019: Web Services aren’t as secure as we thinkDevSecCon Singapore 2019: Web Services aren’t as secure as we think
DevSecCon Singapore 2019: Web Services aren’t as secure as we think
 
DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...
DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...
DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...
 
DevSecCon Singapore 2019: The journey of digital transformation through DevSe...
DevSecCon Singapore 2019: The journey of digital transformation through DevSe...DevSecCon Singapore 2019: The journey of digital transformation through DevSe...
DevSecCon Singapore 2019: The journey of digital transformation through DevSe...
 
DevSecCon Singapore 2019: Preventative Security for Kubernetes
DevSecCon Singapore 2019: Preventative Security for KubernetesDevSecCon Singapore 2019: Preventative Security for Kubernetes
DevSecCon Singapore 2019: Preventative Security for Kubernetes
 
DevSecCon London 2018: Is your supply chain your achille's heel
DevSecCon London 2018: Is your supply chain your achille's heelDevSecCon London 2018: Is your supply chain your achille's heel
DevSecCon London 2018: Is your supply chain your achille's heel
 
DevSecCon London 2018: Get rid of these TLS certificates
DevSecCon London 2018: Get rid of these TLS certificatesDevSecCon London 2018: Get rid of these TLS certificates
DevSecCon London 2018: Get rid of these TLS certificates
 
DevSecCon London 2018: Open DevSecOps
DevSecCon London 2018: Open DevSecOpsDevSecCon London 2018: Open DevSecOps
DevSecCon London 2018: Open DevSecOps
 
DevSecCon London 2018: Building effective DevSecOps teams through role-playin...
DevSecCon London 2018: Building effective DevSecOps teams through role-playin...DevSecCon London 2018: Building effective DevSecOps teams through role-playin...
DevSecCon London 2018: Building effective DevSecOps teams through role-playin...
 

Último

Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 

Último (20)

Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 

DevSecCon London 2017 - MacOS security, hardening and forensics 101 by Ben Hughes

  • 2. Who's this clown? — Security Engineer at Stripe — Infrastructure security at Etsy — Operations monkey at Puppet Labs — Was once retweeted by William Gibson! — basically, kind of a big deal https://twitter.com/skullmandible/status/411281851131523072 @benjammingh for DevSecCon 2017 2
  • 3. Agenda — Intro (we're crushing this already) — Mac OS history and sadness — Malware reversing and how — 5 minute break — Discovering problems in the first place — Hardening? — Fin @benjammingh for DevSecCon 2017 3
  • 4. Intro This is workshop, not an amzing slide deck, please throw any and all questions my way. PLEASE experiment, as hard as you can. This is not exhaustive, thankfully. @benjammingh for DevSecCon 2017 4
  • 5. The VM It's nasty. It has no network adaptor on it, so can only harm itself. Requires VMware Fusion on a Mac, due to licensing (the trial is on the drive too) @benjammingh for DevSecCon 2017 5
  • 6. but first, a li!le history @benjammingh for DevSecCon 2017 6
  • 7. Once upon a time, macs looked like this @benjammingh for DevSecCon 2017 7
  • 8. and this @benjammingh for DevSecCon 2017 8
  • 9. macs are secure! @benjammingh for DevSecCon 2017 9
  • 10. This is actually the grandparent of your mac @benjammingh for DevSecCon 2017 10
  • 12. So what Ben? — NeXTSTEP originally released in 1989. — The Mach Kernel project ran from 1985 to 1994. (somewhat hyperbolic, but you see what I'm saying) @benjammingh for DevSecCon 2017 12
  • 13. How scary? /* XXX this is _not_ designed to be fast */ /* wordexp is also rife with security "challenges", unless you pass it WRDE_NOCMD it *must* support subshell expansion, and even if you don't beause it has to support so much of the standard shell (all the odd little variable expansion options for example) it is hard to do without a subshell). It is probbably just plan a Bad Idea to call in anything setuid, or executing remotely. */ int wordexp(const char *__restrict__ words, wordexp_t *__restrict__ pwe, int flags) { /* cbuf_l's inital value needs to be big enough for 'cmd' plus about 20 chars */ size_t cbuf_l = 1024; char *cbuf = NULL; /* Put a NUL byte between each word, and at the end */ char *cmd = "/usr/bin/perl -e 'print join(chr(0), @ARGV), chr(0)' -- "; libc/gen/wordexp.c from the Apple FOSS mirror on github @benjammingh for DevSecCon 2017 13
  • 14. So macs are not as secure as their marketing makes out. @benjammingh for DevSecCon 2017 14
  • 16. Taking apart Mac malware @benjammingh for DevSecCon 2017 16
  • 17. (don't download this, it's full of malware) @benjammingh for DevSecCon 2017 17
  • 18. [durazac:malware]% hdiutil attach -readonly -noautoopen MacKeeper.dmg /dev/disk2 /Volumes/MacKeeper Installer [durazac:malware]% cd /Volumes/MacKeeper Installer [durazac:MacKeeper Installer]% ls MacKeeper.pkg @benjammingh for DevSecCon 2017 18
  • 19. [durazac:malware]% mkdir mc ; cd mc [durazac:malware]% file /Volumes/MacKeeper Installer/MacKeeper.pkg /Volumes/MacKeeper Installer/MacKeeper.pkg: xar archive version 1, SHA-1 checksum [durazac:mc]% xar -x -f /Volumes/MacKeeper Installer/MacKeeper.pkg xar - eXtensible ARchiver @benjammingh for DevSecCon 2017 19
  • 20. Moar packages! [durazac:mc]% ls -l total 16 -rw-r--r-- 1 ben staff 6344 Oct 4 20:43 Distribution drwxr-xr-x 6 ben staff 192 Oct 4 20:43 LaunchOffer.pkg drwxr-xr-x 7 ben staff 224 Oct 4 20:43 MacKeeper.pkg drwxr-xr-x 23 ben staff 736 Oct 4 20:43 Resources drwxr-xr-x 7 ben staff 224 Oct 4 20:43 comzeobitmackeeper.pkg @benjammingh for DevSecCon 2017 20
  • 22. Extract the pre/post install scripts [durazac:comzeobitmackeeper.pkg]% mkdir installscripts [durazac:comzeobitmackeeper.pkg]% cd installscripts [durazac:installscripts]% tar zxvf ../Scripts x postinstall @benjammingh for DevSecCon 2017 22
  • 23. Extract the payload [durazac:comzeobitmackeeper.pkg]% mkdir paidload [durazac:comzeobitmackeeper.pkg]% cd paidload [durazac:paidload]% tar zxvf ../Payload x . [durazac:paidload]% ls -la ../Payload -rw-r--r-- 1 ben staff 82 Oct 5 04:43 ../Payload Wait, there's no payload? @benjammingh for DevSecCon 2017 23
  • 25. [durazac:~]% for ((i=0; i<=4; i++)) { echo 'LkdrJsYk22BjaHVOE3GOnE1VLCrnV/sTam3BaGjNOJp8O4fjMrBjekTT 94idx4n5A3EtUzi/lRtLoJvx2zhu3HG7PP/HsJnExsrj6UK4/CVsCCi/4 l0JcFGW1RPAzyHmqIEpi3cQ5RbYt3qXv8XVGtHvLNFCTYJk4z3F4J+2qf wZSS9mYVMkz9RgADO6WT4pQlqQoyHFXi5guCzIuZEYn5IHDLANtlqqnzD 7z1Nvl328SDp9nT9ZfQPd5EGt5veFncPM8qObrXqdUr1Ib8zIWt4FjYjH N6rtIk+S3QXluOMA8v8/SaUxj8zFZNjJy/3dKNzByl70ePGKKnJ16JIZo 1BOFG5Ate3x/87ECj7fTgVjR1TRuPHbvUtgeSMdmVNtmI+rOKFehPUSjb HXQiw/RNyCIE7WlcSczl/0P04HOZmeTaFdxetWvKwI8kIiD0dQbFQBalN cS8qgtG1gAllMqKFnjYD6wWXeQTBaWuBBo8FfCEuXKiFvrBoBiZlFxeQK' | base64 -D | dd bs=128 count=1 skip=$i 2>/dev/null | openssl rsautl -verify -pubin -inkey somekey 2>/dev/null } | python -mjson.tool @benjammingh for DevSecCon 2017 25
  • 26. Which outputs { "affid": "358.20580063.1507174981.32.mzb", "arePopupsAggressive": false, "bundleId": "29_317511156", "enableAnalytics": true, "extendedStatisticIntervalInDays": 30, "ga_cid": "805354281.1507174983", "systemScanHasSignupStep": true, "trialDays": 0, "trtId": "FF2B241D-9456-4D5E-A4D5-50B67C3F0715", "trtVersion": 11 } @benjammingh for DevSecCon 2017 26
  • 27. 38 MAC_ADDRESS=$(networksetup -getmacaddress en0 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}') 39 if [ -z "$MAC_ADDRESS" ]; then 40 ▸ MAC_ADDRESS=$(networksetup -getmacaddress en1 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}') 41 fi 42 43 SERIAL_NUMBER=$(ioreg -c IOPlatformExpertDevice -d 2 | awk -F" '/IOPlatformSerialNumber/{print $(NF-1)}') 44 45 DEVICE_ID=$(echo "${SERIAL_NUMBER}|${MAC_ADDRESS}" | sed -e 's/:/%3A/g;s/|/%7C/g') ... 53 ▸ ▸ REINSTALL_DATA="step=MKInstallEvents&affid=${AFFID}&bundleId=${BUNDLEID}&prodID=${MK_PRODUCT_ID}&version=${SOURCE_VERSION}&device_id=${DEVICE_ID}.... ... 57 ▸ ▸ curl -q -f --silent --data "$REINSTALL_DATA" "http://event.mackeeper.com/event.php" it's sending my MAC address where now!? @benjammingh for DevSecCon 2017 27
  • 28. [durazac:comzeobitmackeeper.pkg]% <Payload gunzip -cd| tar vtf - drwxrwxr-t 2 0 80 0 May 12 02:42 . [durazac:comzeobitmackeeper.pkg]% lsbom Bom . 41775 0/80 Wait, so there is no payload, it just runs that super sketch script!?!? @benjammingh for DevSecCon 2017 28
  • 29. MacKeeperOffers.pkg Now we just do the same for MacKeeperOffers until we find something interesting [durazac:MacKeeperOffers]% strings -a checkinstall | tail -12 JustCloud MegaBackup YahooSearch Appswell YoutubeConverter /Applications/MegaBackup.app /Applications/JustCloud.app com.apple.Safari HomePage hspart=iry /Applications/Appswell.app /Applications/Softorino YouTube Converter X.app @benjammingh for DevSecCon 2017 29
  • 31. Looking at the Offers.pkg/Scripts/MegaBackup line 55 [durazac:~]% TID=1 [durazac:~]% URL='http://land.megabackup.com/' [durazac:~]% URL+='paramss=phexafefced9b4b5c9ac9297a0af999' [durazac:~]% URL+='cd2e8cb90b1b5cecfc1e2c8cad5cdd9ddcec49d' [durazac:~]% URL+='aadcd2d5a9a490e3e5c0d1c3ded5cdd0cfdbce9' [durazac:~]% URL+="496dfded99c&trt=51_72&tid_ext=${TID}" [durazac:~]% [durazac:~]% curl -q -f -L --max-redirs 150 --output some.file "$URL" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 40238 100 40238 0 0 29387 0 0:00:01 0:00:01 --:--:-- 51455 [durazac:~]% file some.file some.file: xar archive - version 1 @benjammingh for DevSecCon 2017 31
  • 32. go all the way back to the first dir [durazac:mc]% egrep -Riha -o 'https?://[-.a-z0-9_]+/' . | sort -u http://cdn.mackeeper.com/ http://event.mackeeper.com/ http://land.megabackup.com/ http://ldrapi1.megabackup.com/ http://mackeeperapp.mackeeper.com/ http://www.apple.com/ @benjammingh for DevSecCon 2017 32
  • 33. Blocking domains — If you run your own resolvers, then my talk on sinkholing from 2014 — If you use OpenDNS * and you should! read here — on the cheap * obviously doesn't scale cat <<EOF | sudo tee -a /etc/hosts && pkill -HUP mDNSResponder 127.0.0.1 cdn.mackeeper.com event.mackeeper.com mackeeperapp.mackeeper.com EOF @benjammingh for DevSecCon 2017 33
  • 34. xa!r Extended attributes! [durazac:Downloads]% ls -l Hopper-4.1.4-demo.dmg -rw-r--r--@ 1 barn staff 28746615 Apr 28 14:51 Hopper-4.1.4-demo.dmg [durazac:Downloads]% ls -l@ Hopper-4.1.4-demo.dmg -rw-r--r--@ 1 barn staff 28746615 Apr 28 14:51 Hopper-4.1.4-demo.dmg com.apple.diskimages.fsck 20 com.apple.diskimages.recentcksum 80 com.apple.metadata:kMDItemWhereFroms 151 com.apple.quarantine 71 @benjammingh for DevSecCon 2017 34
  • 37. and com.apple.metadata:kMDItemWhereFroms bash-3.2# mdls -name kMDItemWhereFroms Hopper-4.2.21-demo.dmg kMDItemWhereFroms = ( "https://d2ap6ypl1xbe4k.cloudfront.net/Hopper-4.2.21-demo.dmg", "https://www.hopperapp.com/download.html" ) @benjammingh for DevSecCon 2017 37
  • 39. Finding them @benjammingh for DevSecCon 2017 39
  • 40. Host based IDS — MIDAS - Intrusion Detection for Macs(super dead now) — OSSEC - Open Source HIDS SECurity Threaty threats paid things — Carbon Black Response — Clown Strike - Falcon — Red Canary @benjammingh for DevSecCon 2017 40
  • 41. Knock knock! git clone from https://github.com/synack/knockknock.git @benjammingh for DevSecCon 2017 41
  • 42. Gui version of knock knock By the same author, Patrick Wardle. objective-see.com/products/knockknock.html @benjammingh for DevSecCon 2017 42
  • 43. OSXcollector Written in python by Yelp More of a forensics tool. Little more invasive say, my default dumps browser history. /usr/bin/python osxcollector.py spits out a tarball, inside that are system logs and a JSON report. @benjammingh for DevSecCon 2017 43
  • 44. bash-3.2# cat osxcollect-2017_10_18-09_23_37.json | while read line ; do echo "$line" | python -mjson.tool || break ; done | less -R { "osxcollector_incident_id": "osxcollect-2017_10_18-09_23_37", "osxcollector_section": "version", "osxcollector_version": "1.9" } { "fde": false, "machine": "x86_64", "nodename": "dsc.local", "osxcollector_incident_id": "osxcollect-2017_10_18-09_23_37", "osxcollector_section": "system_info", "release": "17.0.0", "sysname": "Darwin", "version": "Darwin Kernel Version 17.0.0: Thu Aug 24 21:48:19 PDT 2017; root:xnu-4570.1.46~2/RELEASE_X86_64" } @benjammingh for DevSecCon 2017 44
  • 45. OSquery — built at Facebook (it scales) — cross platform (plan9, TOS, Xenix) — open source https://github.com/facebook/osquery/ — has a logo that makes you think of Gravatar @benjammingh for DevSecCon 2017 45
  • 46. OSquery cont. — Kolide - Beautiful osquery management tool. — Doorman - Doorman, OSS tool for doing the same. — Envdb - Looks pretty nice (but I've not used it yet) These are for fleet deployments, as osquery is just a SQL REPL for your system. @benjammingh for DevSecCon 2017 46
  • 47. But let's play with it! [durazac:~]% osqueryi Using a virtual database. Need help, type '.help' osquery> .mode line osquery> select * from osquery_info; pid = 1068 uuid = 564D335B-A20C-A42B-AB3B-9FCFCA4C07E7 instance_id = 9e14be42-d47a-4f88-b226-26366c20c67c version = 2.9.0 config_hash = df8743dd7fe17219a15ac0860d61c26d868ebc73 config_valid = 1 extensions = active build_platform = darwin build_distro = 10.12 start_time = 1508341272 watcher = -1 @benjammingh for DevSecCon 2017 47
  • 48. osquery> .tables => acpi_tables => ad_config => alf => alf_exceptions => alf_explicit_auths => alf_services => app_schemes => apps => arp_cache => asl or, more readably, osquery table schema docs @benjammingh for DevSecCon 2017 48
  • 49. fun osquery examples osquery> SELECT * From file ...> where path like "/Users/%/Library/LaunchAgents/com.%.MacKeeper.Helper.plist" ...> OR path like "/Users/%/Documents/MacKeeper Backups" ...> OR path = "/Applications/MacKeeper.app" ; osquery> select distinct( user ) from logged_in_users; more fun on a server osquery> select * from kernel_extensions where name not like 'com.apple.%'; not amaze on the VM, but good on my laptop @benjammingh for DevSecCon 2017 49
  • 51. Step 1 Manage your macs! — Fleetsmith - Fantastic new MaaS offering — Chef/Puppet - needs no introduction — Munki - manage software installs, rather than just have them — Simian - Simian is an enterprise-class Mac OS X software deployment solution, buuuut it's Google — JSS Jamf - Is another alternative, I guess @benjammingh for DevSecCon 2017 51
  • 52. Step 2 Just use Chrome — Pwn 2 Own's pricing scale — BrowserScope says so — Zerodium will pay you $150k for an exploit for Chrome, vs $80k for FreedomFox @benjammingh for DevSecCon 2017 52
  • 53. Step 3 — Make sure Gatekeeper is set to "app store" or "app store & signed" only (now the default) @benjammingh for DevSecCon 2017 53
  • 54. Step 3.5 — this doesn't solve homebrew, where you can just install whatever you wish [durazac~]% brew install sqlmap 1 ==> Downloading https://github.com/sqlmapproject/sqlmap/archive/1.1.10.tar.gz ==> Downloading from https://codeload.github.com/sqlmapproject/sqlmap/tar.gz/1.1.10 ######################################################################## 100.0% ! /usr/local/Cellar/sqlmap/1.1.10: 543 files, 10.3MB, built in 17 seconds @benjammingh for DevSecCon 2017 54
  • 55. Step 4 More restrictions — Santa! - Santa is a binary whitelisting/blacklisting system for macOS @benjammingh for DevSecCon 2017 55
  • 56. Hardening vs. reality You could make everyone in your company run OpenBSD on their laptop. You would go out of business very quickly. There's no good easy answer. ): @benjammingh for DevSecCon 2017 56
  • 57. Would you like to know more? — Reverse Engineering Mac Malware - Sarah Edwards — When Macs Get Hacked -Sarah Edwards — Hipster DFIR on OSX - Scott J. Roberts — Syscall Auditing at scale - Ryan Huber — Tracking a stolen code-signing certificate with osquery - Mike Myers — Methods of Malware Persistence - Patrick Wardle @benjammingh for DevSecCon 2017 57
  • 58. Come work at Our great jobs pages @benjammingh for DevSecCon 2017 58
  • 59. Thank you! @benjammingh for DevSecCon 2017 59