SlideShare a Scribd company logo
1 of 49
Download to read offline
F u z z i n g - т е с т и р о в а н и е
п р и л о ж е н и й
2
{“status”: “Привет”}
3
{“status”: “‫"خ‬"""‫س‬‫"ا‬"""‫پ‬ ‫"ال‬"""""""""‫س‬‫}”ار‬
4
{“status”: “u0000”}
5
AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw

?= *CJj9Ni
P|" FU[p1Ս{aZO{I
?"R=/"oWG]`cO(Z~J||hOXqxyO-]m4X ,V2z3sWŭ[9c!X90<qӷS]'wZqS

]:ig]?J+*:>=|6w*ُ‫ص‬N5ub4EM6GvnY;4c=h$Pe$I?w+mIFQI$JRI$I$$Hrж*{xlXǺ=EcAۣqtLJ)(=w4o$*5K‫۽‬A[}GmU]F细
f[9a-/-zq5KswSF~c3[?3z>‫ݿ‬
U[vCCXҳ7ֺwTA'p+PDtVae8T}m6X*{
mtkr-g~goEkEgH3huXhpi}HMduF]^ivSZ%]VkC+Mm_i}wC]nN굞^}N~N;^KZ=J$qh-xkѱZ[NQ?62' i(?'!H7I$
$I)I$JRC$)Ͳ‫ں‬
-fN+gsnN>VgKɽ2ec
Z‫ڬ‬shW-xs"y}t>Ƿ~UNW;r>8#d‫ܣ‬fVf3$_lγK[}!K{q"W‫ظ‬wOP>UAOscwi‫ޱ‬zk麹

;7nYܾ|*1<1&71t"13e0U‫ޥ‬v]}vv^{Cmծs]ǩckeNO.iGV6m{?HW1‫ف‬l1
s}5 oh<pu}fK`e5w-‫ٻ‬F}'m@t‫ۏ‬KMkeg
.cJÖꮩʹ6Eiw̰ C?(N9_A<:zMgR5Xcь|K?y7~}zjq' uu]gV9]nC!bou

F(UUV=lw-|~s]_lY#9ȁ2

PJZ٨=s1N(o3;m+D]VkY=l~_vRfL.qY}<>n>Wި$9Ŏi]Umc[`N{?ѿJq]:N#g9p
oR9tP:g}@6m_1?I7]q=߈YogliVXk
k,1^63‫ٷ‬pXCkkyl5+kOofi^'
l+4BּVxEnHmo{zJc'0V6ooc͵5

k{7;k8= cƲ+}~ce+}HHT`H"wpq{EѴ=2շu3ѳmPL?R.ߥ
~zKƾXxaWzM}s1]m6K7,:#[AH:
6
А Л Е К С Е Й
Н А Б Е Р Е Ж Н Ы Й
S O F T W A R E E N G I N E E R &
P E N T E S T E R
E - m a i l : i n w a d y @ g m a i l . c o m
T g : @ i n w a d y
Занимаюсь аудитом и
информационной безопасностью
мобильных приложений. До
вовлечения в сферу
информационной безопасности
работал разработчиком в
компании Mail.Ru. Увлекаюсь
блокчейном, смартконтрактами и
разработкой высоконагруженных
систем.
7
ПЛАН
• Ч Т О Т А К О Е Ф А З З И Н Г
• И Н С Т Р У М Е Н Т Ы Д Л Я Ф А З З И Н Г А
• К О Г Д А Ф А З З И Н Г П Р И Н О С И Т П О Л Ь З У
• М О Б И Л Ь Н Ы Е П Р И Л О Ж Е Н И Я
• П О С Л Е Д С Т В И Я И П Р О Б Л Е М Ы
• К О М У Н У Ж Е Н Ф А З З И Н Г
• A I D L F U Z Z ( п р и м е р )
8
КАКАЯ ПРОБЛЕМА
9
ЧТО ТАКОЕ ФАЗЗИНГ
10
Ошибки в коде
А т ы н а ш е л
Н е п р а в и л ь н о е
у п р а в л е н и е
п а м я т ь ю
A S S E R T- с о б ы т и я
Н е п р а в и л ь н а я
о б р а б о т к а n u l l
Н е п р а в и л ь н а я
о б р а б о т к а
и с к л ю ч е н и й
D e a d l o c k s
I n f i n i t e l o o p s
Н е о п р е д е л е н н о е
п о в е д е н и е
Н е п р а в и л ь н о е
у п р а в л е н и е
р е с у р с а м и
О ш и б к и в
б и з н е с - л о г и к е
11
П р и м е р ы у т и л и т :
• R a d a m s a
• F u z z b o x
• Z z u f
• B a s i c f u z z i n g f r a m e w o r k ( B F F )
• h t t p s : / / g i t h u b . c o m / t r a i l o f b i t s / m a n t i c o r e
ИНСТРУМЕНТЫ ДЛЯ ФАЗЗИНГ
12
F u z z C o m p i l e r B i n a r y
КАК ЭТО РАБОТАЕТ
S o u r c e c o d e
13
ПРИМЕР ФАЗЗИНГА
int main(int argc, char *argv[])
{
char buf[40]= {0};
FILE *input = NULL;
input = fopen(argv[1], "r");
if(input != 0)
{
fscanf(input, "%s", &buf);
printf("buf is %sn", buf);
vuln(buf);
fclose(input);
}
else
{
printf("bad file!");
}
return 0;
}
14
ПРИМЕР ФАЗЗИНГА
15
ПРИМЕР ФАЗЗИНГА
16
ПРИМЕР ФАЗЗИНГА
17
ПРИМЕР ФАЗЗИНГА
int vuln(char *Data) {
int num = rand() % 100 + 1;
printf("Data is generated, num is %dn", num);
if(Data[0] == 'C' && num == 25) {
raise(SIGSEGV);
}
else if(Data[0] == 'F' && num == 90) {
raise(SIGSEGV);
}
else {
printf("it is good!n");
}
return 0;
}
18
КОГДА ФАЗЗИНГ ПОЛЕЗЕН
З А Б А В Н О , Н О Э Т О Т М А Л Е Н Ь К И Й Т Е С Т В С Е Р А В Н О Н И К Т О Н Е У В И Д И Т
Р а б о т а с о с л о ж н ы м и
д а н н ы м и в п р и л о ж е н и и
К о д н е д о с т а т о ч н о
п р о в е р е н ( р е в ь ю )
Л ю б а я о ш и б к а
м о ж е т п р и в е с т и
к у б ы т к а м
Б и з н е с у н у ж н о ,
ч т о б ы к о д
н и к о г д а н е п а д а л
К о д н а п и с а н
н а C / C + +
К о д м о ж е т п р и н и м а т ь
б о л ь ш о е к о л и ч е с т в о
п а р а м е т р о в н а в х о д
К о д и с п о л ь з у е т с я
п р и м е ж п р о ц е с с н о м
в з а и м о д е й с т в и и
В к о д е м н о г о
a s s e r t - б л о к о в
19
КОМУ НУЖЕН ФАЗЗИНГ
ВЫВОД
20
КОМУ НУЖЕН ФАЗЗИНГ
В С Е М
ВЫВОД
21
М О Б И Л Ь Н Ы Е П Р И Л О Ж Е Н И Я
22
ПОСЛЕДСТВИЯ
23
ПОСЛЕДСТВИЯ
24
ПОСЛЕДСТВИЯ
25
A N D R O I D
26
КОГО ФАЗЗИТЬ
Android
=
27
package test;
public class Crashing
{
public static void main(String[] args) throws
java.io.IOException
{
byte[] buffer = new byte[100];
// Make this crash on very likely generated inputs
but not on
// files inside in/ directory:
if (System.in.read(buffer) > 10) {
throw new RuntimeException("I will crash now!");
}
}
}
https://github.com/Barro/java-afl.git
28
29
30
31
ВЫВОД
• J a v a - O K
• K o t l i n - O K
32
ВЫВОД
A n d r o i d
J AVA - O K K O T L I N - O K
Ф А З З И Н Г
В О З М О Ж Е Н
33
i O S
34
КОГО ФАЗЗИТЬ
iOS=
35
36
ВЫВОД
A n d r o i d
S W I F T - FA I L
Ф А З З И Н Г
З А Т Р У Д Н И Т Е Л Е Н
O b j C - O K
37
A I D L F U Z Z
38
39
40
41
42
43
44
ПОДКЛЮЧЕНИЕ “radamsa” (NDK)
45
ПОЛУЧАЕМ СПИСОК СЕРВИСОВ
46
КИДАЕМ ПАКЕТЫ (FUZZ)
47
48
ЦЕЛЬ “AIDL Fuzzing”
Т У Т М О Г Л А Б Ы Т Ь В А Ш А Р Е К Л А М А
A O S P F u z z i n g
C u s t o m A I D L - s c h e m e F u z z i n g
F u z z i n g E n g i n e o n A n d r o i d
O p e n s o u r c e c o d e
49
PA R A D I S E C U R I T Y
Занимаемся исследованиями в
сфере мобильных устройств

More Related Content

What's hot

Hf labs education day. rocket science
Hf labs education day. rocket scienceHf labs education day. rocket science
Hf labs education day. rocket scienceOlga Kiseleva
 
Что нового в Perl 5.14
Что нового в Perl 5.14Что нового в Perl 5.14
Что нового в Perl 5.14Andrew Shitov
 
Применение Agile Scrum для реализации автоматизированного рабочего места врач...
Применение Agile Scrum для реализации автоматизированного рабочего места врач...Применение Agile Scrum для реализации автоматизированного рабочего места врач...
Применение Agile Scrum для реализации автоматизированного рабочего места врач...ph.d. Dmitry Stepanov
 
Bled grammaire orthographe conjugaison www.french free.com (1)
Bled grammaire orthographe conjugaison www.french free.com (1)Bled grammaire orthographe conjugaison www.french free.com (1)
Bled grammaire orthographe conjugaison www.french free.com (1)YassineJazairi
 
Кроссворд Adobe photoshop
Кроссворд Adobe photoshopКроссворд Adobe photoshop
Кроссворд Adobe photoshopmarunasorokina
 
Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...
Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...
Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...IT-Доминанта
 
Георгий Зайцев - Reversing golang
Георгий Зайцев - Reversing golangГеоргий Зайцев - Reversing golang
Георгий Зайцев - Reversing golangDefconRussia
 
Денис Чистяков: Паттерны проектирования
Денис Чистяков: Паттерны проектированияДенис Чистяков: Паттерны проектирования
Денис Чистяков: Паттерны проектированияYandex
 

What's hot (9)

Hf labs education day. rocket science
Hf labs education day. rocket scienceHf labs education day. rocket science
Hf labs education day. rocket science
 
Что нового в Perl 5.14
Что нового в Perl 5.14Что нового в Perl 5.14
Что нового в Perl 5.14
 
Применение Agile Scrum для реализации автоматизированного рабочего места врач...
Применение Agile Scrum для реализации автоматизированного рабочего места врач...Применение Agile Scrum для реализации автоматизированного рабочего места врач...
Применение Agile Scrum для реализации автоматизированного рабочего места врач...
 
Bled grammaire orthographe conjugaison www.french free.com (1)
Bled grammaire orthographe conjugaison www.french free.com (1)Bled grammaire orthographe conjugaison www.french free.com (1)
Bled grammaire orthographe conjugaison www.french free.com (1)
 
Кроссворд Adobe photoshop
Кроссворд Adobe photoshopКроссворд Adobe photoshop
Кроссворд Adobe photoshop
 
Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...
Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...
Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...
 
Георгий Зайцев - Reversing golang
Георгий Зайцев - Reversing golangГеоргий Зайцев - Reversing golang
Георгий Зайцев - Reversing golang
 
Денис Чистяков: Паттерны проектирования
Денис Чистяков: Паттерны проектированияДенис Чистяков: Паттерны проектирования
Денис Чистяков: Паттерны проектирования
 
Img 0002
Img 0002Img 0002
Img 0002
 

Similar to Уходим глубоко в Fuzzing и применим его, где только можно, Алексей Набережный. 8 июня, 2019

Kabrita® GOLD для профессионалов.
Kabrita® GOLD для профессионалов.Kabrita® GOLD для профессионалов.
Kabrita® GOLD для профессионалов.kabritaru
 
Телеком разработка Broadworks от Artsofte
Телеком разработка Broadworks от ArtsofteТелеком разработка Broadworks от Artsofte
Телеком разработка Broadworks от ArtsofteDaniil Pervukhin
 
Frontend в enterprise или сказка про WebAssembly
Frontend в enterprise или сказка про WebAssemblyFrontend в enterprise или сказка про WebAssembly
Frontend в enterprise или сказка про WebAssemblyArturDr
 
Прогнозування виробництва електроенергії ВЕС у коросткостроковій перспективі
Прогнозування виробництва електроенергії ВЕС у коросткостроковій перспективіПрогнозування виробництва електроенергії ВЕС у коросткостроковій перспективі
Прогнозування виробництва електроенергії ВЕС у коросткостроковій перспективіroman_b13
 
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»Yandex
 
Евгений Вольнов, руководитель отдела рекламных технологий Independent Media. ...
Евгений Вольнов, руководитель отдела рекламных технологий Independent Media. ...Евгений Вольнов, руководитель отдела рекламных технологий Independent Media. ...
Евгений Вольнов, руководитель отдела рекламных технологий Independent Media. ...MediaMakers2016
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование LinuxAnthony Shoumikhin
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование LinuxAnthony Shoumikhin
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование LinuxAnthony Shoumikhin
 
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/LinuxDefconRussia
 
static - defcon russia 20
static  - defcon russia 20static  - defcon russia 20
static - defcon russia 20DefconRussia
 
Введение в реверс-инжиниринг вредоносного ПО - Сергей Харюк
Введение в реверс-инжиниринг вредоносного ПО - Сергей ХарюкВведение в реверс-инжиниринг вредоносного ПО - Сергей Харюк
Введение в реверс-инжиниринг вредоносного ПО - Сергей ХарюкHackIT Ukraine
 
«Новые инструменты в платном трафике», Ирина Чикишева, е96.ru
«Новые инструменты в платном трафике», Ирина Чикишева, е96.ru«Новые инструменты в платном трафике», Ирина Чикишева, е96.ru
«Новые инструменты в платном трафике», Ирина Чикишева, е96.ruweb2win
 

Similar to Уходим глубоко в Fuzzing и применим его, где только можно, Алексей Набережный. 8 июня, 2019 (16)

Kabrita® GOLD для профессионалов.
Kabrita® GOLD для профессионалов.Kabrita® GOLD для профессионалов.
Kabrita® GOLD для профессионалов.
 
Телеком разработка Broadworks от Artsofte
Телеком разработка Broadworks от ArtsofteТелеком разработка Broadworks от Artsofte
Телеком разработка Broadworks от Artsofte
 
Frontend в enterprise или сказка про WebAssembly
Frontend в enterprise или сказка про WebAssemblyFrontend в enterprise или сказка про WebAssembly
Frontend в enterprise или сказка про WebAssembly
 
Прогнозування виробництва електроенергії ВЕС у коросткостроковій перспективі
Прогнозування виробництва електроенергії ВЕС у коросткостроковій перспективіПрогнозування виробництва електроенергії ВЕС у коросткостроковій перспективі
Прогнозування виробництва електроенергії ВЕС у коросткостроковій перспективі
 
тд 39
тд 39тд 39
тд 39
 
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
 
Евгений Вольнов, руководитель отдела рекламных технологий Independent Media. ...
Евгений Вольнов, руководитель отдела рекламных технологий Independent Media. ...Евгений Вольнов, руководитель отдела рекламных технологий Independent Media. ...
Евгений Вольнов, руководитель отдела рекламных технологий Independent Media. ...
 
річний план 2015
річний план 2015річний план 2015
річний план 2015
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование Linux
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование Linux
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование Linux
 
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
 
static - defcon russia 20
static  - defcon russia 20static  - defcon russia 20
static - defcon russia 20
 
Введение в реверс-инжиниринг вредоносного ПО - Сергей Харюк
Введение в реверс-инжиниринг вредоносного ПО - Сергей ХарюкВведение в реверс-инжиниринг вредоносного ПО - Сергей Харюк
Введение в реверс-инжиниринг вредоносного ПО - Сергей Харюк
 
«Новые инструменты в платном трафике», Ирина Чикишева, е96.ru
«Новые инструменты в платном трафике», Ирина Чикишева, е96.ru«Новые инструменты в платном трафике», Ирина Чикишева, е96.ru
«Новые инструменты в платном трафике», Ирина Чикишева, е96.ru
 
Hamster Robotics
Hamster RoboticsHamster Robotics
Hamster Robotics
 

More from Mail.ru Group

Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...
Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...
Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...Mail.ru Group
 
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...Mail.ru Group
 
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир Дубровин
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир ДубровинДругая сторона баг-баунти-программ: как это выглядит изнутри, Владимир Дубровин
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир ДубровинMail.ru Group
 
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...Mail.ru Group
 
Управление инцидентами в Почте Mail.ru, Антон Викторов
Управление инцидентами в Почте Mail.ru, Антон ВикторовУправление инцидентами в Почте Mail.ru, Антон Викторов
Управление инцидентами в Почте Mail.ru, Антон ВикторовMail.ru Group
 
DAST в CI/CD, Ольга Свиридова
DAST в CI/CD, Ольга СвиридоваDAST в CI/CD, Ольга Свиридова
DAST в CI/CD, Ольга СвиридоваMail.ru Group
 
Почему вам стоит использовать свой велосипед и почему не стоит Александр Бел...
Почему вам стоит использовать свой велосипед и почему не стоит  Александр Бел...Почему вам стоит использовать свой велосипед и почему не стоит  Александр Бел...
Почему вам стоит использовать свой велосипед и почему не стоит Александр Бел...Mail.ru Group
 
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...
CV в пайплайне распознавания ценников товаров: трюки и хитрости  Николай Масл...CV в пайплайне распознавания ценников товаров: трюки и хитрости  Николай Масл...
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...Mail.ru Group
 
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidia
RAPIDS: ускоряем Pandas и scikit-learn на GPU  Павел Клеменков, NVidiaRAPIDS: ускоряем Pandas и scikit-learn на GPU  Павел Клеменков, NVidia
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidiaMail.ru Group
 
WebAuthn в реальной жизни, Анатолий Остапенко
WebAuthn в реальной жизни, Анатолий ОстапенкоWebAuthn в реальной жизни, Анатолий Остапенко
WebAuthn в реальной жизни, Анатолий ОстапенкоMail.ru Group
 
AMP для электронной почты, Сергей Пешков
AMP для электронной почты, Сергей ПешковAMP для электронной почты, Сергей Пешков
AMP для электронной почты, Сергей ПешковMail.ru Group
 
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила Стрелков
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила СтрелковКак мы захотели TWA и сделали его без мобильных разработчиков, Данила Стрелков
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила СтрелковMail.ru Group
 
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...Mail.ru Group
 
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.ТаксиМетапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.ТаксиMail.ru Group
 
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru GroupКак не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru GroupMail.ru Group
 
Этика искусственного интеллекта, Александр Кармаев (AI Journey)
Этика искусственного интеллекта, Александр Кармаев (AI Journey)Этика искусственного интеллекта, Александр Кармаев (AI Journey)
Этика искусственного интеллекта, Александр Кармаев (AI Journey)Mail.ru Group
 
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...Mail.ru Group
 
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...Конвергенция технологий как тренд развития искусственного интеллекта, Владими...
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...Mail.ru Group
 
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)Mail.ru Group
 
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()Mail.ru Group
 

More from Mail.ru Group (20)

Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...
Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...
Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...
 
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...
 
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир Дубровин
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир ДубровинДругая сторона баг-баунти-программ: как это выглядит изнутри, Владимир Дубровин
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир Дубровин
 
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...
 
Управление инцидентами в Почте Mail.ru, Антон Викторов
Управление инцидентами в Почте Mail.ru, Антон ВикторовУправление инцидентами в Почте Mail.ru, Антон Викторов
Управление инцидентами в Почте Mail.ru, Антон Викторов
 
DAST в CI/CD, Ольга Свиридова
DAST в CI/CD, Ольга СвиридоваDAST в CI/CD, Ольга Свиридова
DAST в CI/CD, Ольга Свиридова
 
Почему вам стоит использовать свой велосипед и почему не стоит Александр Бел...
Почему вам стоит использовать свой велосипед и почему не стоит  Александр Бел...Почему вам стоит использовать свой велосипед и почему не стоит  Александр Бел...
Почему вам стоит использовать свой велосипед и почему не стоит Александр Бел...
 
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...
CV в пайплайне распознавания ценников товаров: трюки и хитрости  Николай Масл...CV в пайплайне распознавания ценников товаров: трюки и хитрости  Николай Масл...
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...
 
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidia
RAPIDS: ускоряем Pandas и scikit-learn на GPU  Павел Клеменков, NVidiaRAPIDS: ускоряем Pandas и scikit-learn на GPU  Павел Клеменков, NVidia
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidia
 
WebAuthn в реальной жизни, Анатолий Остапенко
WebAuthn в реальной жизни, Анатолий ОстапенкоWebAuthn в реальной жизни, Анатолий Остапенко
WebAuthn в реальной жизни, Анатолий Остапенко
 
AMP для электронной почты, Сергей Пешков
AMP для электронной почты, Сергей ПешковAMP для электронной почты, Сергей Пешков
AMP для электронной почты, Сергей Пешков
 
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила Стрелков
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила СтрелковКак мы захотели TWA и сделали его без мобильных разработчиков, Данила Стрелков
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила Стрелков
 
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
 
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.ТаксиМетапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
 
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru GroupКак не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
 
Этика искусственного интеллекта, Александр Кармаев (AI Journey)
Этика искусственного интеллекта, Александр Кармаев (AI Journey)Этика искусственного интеллекта, Александр Кармаев (AI Journey)
Этика искусственного интеллекта, Александр Кармаев (AI Journey)
 
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...
 
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...Конвергенция технологий как тренд развития искусственного интеллекта, Владими...
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...
 
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)
 
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
 

Уходим глубоко в Fuzzing и применим его, где только можно, Алексей Набережный. 8 июня, 2019

  • 1. F u z z i n g - т е с т и р о в а н и е п р и л о ж е н и й
  • 5. 5 AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw
 ?= *CJj9Ni P|" FU[p1Ս{aZO{I ?"R=/"oWG]`cO(Z~J||hOXqxyO-]m4X ,V2z3sWŭ[9c!X90<qӷS]'wZqS
 ]:ig]?J+*:>=|6w*ُ‫ص‬N5ub4EM6GvnY;4c=h$Pe$I?w+mIFQI$JRI$I$$Hrж*{xlXǺ=EcAۣqtLJ)(=w4o$*5K‫۽‬A[}GmU]F细 f[9a-/-zq5KswSF~c3[?3z>‫ݿ‬ U[vCCXҳ7ֺwTA'p+PDtVae8T}m6X*{ mtkr-g~goEkEgH3huXhpi}HMduF]^ivSZ%]VkC+Mm_i}wC]nN굞^}N~N;^KZ=J$qh-xkѱZ[NQ?62' i(?'!H7I$ $I)I$JRC$)Ͳ‫ں‬ -fN+gsnN>VgKɽ2ec Z‫ڬ‬shW-xs"y}t>Ƿ~UNW;r>8#d‫ܣ‬fVf3$_lγK[}!K{q"W‫ظ‬wOP>UAOscwi‫ޱ‬zk麹
 ;7nYܾ|*1<1&71t"13e0U‫ޥ‬v]}vv^{Cmծs]ǩckeNO.iGV6m{?HW1‫ف‬l1 s}5 oh<pu}fK`e5w-‫ٻ‬F}'m@t‫ۏ‬KMkeg .cJÖꮩʹ6Eiw̰ C?(N9_A<:zMgR5Xcь|K?y7~}zjq' uu]gV9]nC!bou
 F(UUV=lw-|~s]_lY#9ȁ2
 PJZ٨=s1N(o3;m+D]VkY=l~_vRfL.qY}<>n>Wި$9Ŏi]Umc[`N{?ѿJq]:N#g9p oR9tP:g}@6m_1?I7]q=߈YogliVXk k,1^63‫ٷ‬pXCkkyl5+kOofi^' l+4BּVxEnHmo{zJc'0V6ooc͵5
 k{7;k8= cƲ+}~ce+}HHT`H"wpq{EѴ=2շu3ѳmPL?R.ߥ ~zKƾXxaWzM}s1]m6K7,:#[AH:
  • 6. 6 А Л Е К С Е Й Н А Б Е Р Е Ж Н Ы Й S O F T W A R E E N G I N E E R & P E N T E S T E R E - m a i l : i n w a d y @ g m a i l . c o m T g : @ i n w a d y Занимаюсь аудитом и информационной безопасностью мобильных приложений. До вовлечения в сферу информационной безопасности работал разработчиком в компании Mail.Ru. Увлекаюсь блокчейном, смартконтрактами и разработкой высоконагруженных систем.
  • 7. 7 ПЛАН • Ч Т О Т А К О Е Ф А З З И Н Г • И Н С Т Р У М Е Н Т Ы Д Л Я Ф А З З И Н Г А • К О Г Д А Ф А З З И Н Г П Р И Н О С И Т П О Л Ь З У • М О Б И Л Ь Н Ы Е П Р И Л О Ж Е Н И Я • П О С Л Е Д С Т В И Я И П Р О Б Л Е М Ы • К О М У Н У Ж Е Н Ф А З З И Н Г • A I D L F U Z Z ( п р и м е р )
  • 10. 10 Ошибки в коде А т ы н а ш е л Н е п р а в и л ь н о е у п р а в л е н и е п а м я т ь ю A S S E R T- с о б ы т и я Н е п р а в и л ь н а я о б р а б о т к а n u l l Н е п р а в и л ь н а я о б р а б о т к а и с к л ю ч е н и й D e a d l o c k s I n f i n i t e l o o p s Н е о п р е д е л е н н о е п о в е д е н и е Н е п р а в и л ь н о е у п р а в л е н и е р е с у р с а м и О ш и б к и в б и з н е с - л о г и к е
  • 11. 11 П р и м е р ы у т и л и т : • R a d a m s a • F u z z b o x • Z z u f • B a s i c f u z z i n g f r a m e w o r k ( B F F ) • h t t p s : / / g i t h u b . c o m / t r a i l o f b i t s / m a n t i c o r e ИНСТРУМЕНТЫ ДЛЯ ФАЗЗИНГ
  • 12. 12 F u z z C o m p i l e r B i n a r y КАК ЭТО РАБОТАЕТ S o u r c e c o d e
  • 13. 13 ПРИМЕР ФАЗЗИНГА int main(int argc, char *argv[]) { char buf[40]= {0}; FILE *input = NULL; input = fopen(argv[1], "r"); if(input != 0) { fscanf(input, "%s", &buf); printf("buf is %sn", buf); vuln(buf); fclose(input); } else { printf("bad file!"); } return 0; }
  • 17. 17 ПРИМЕР ФАЗЗИНГА int vuln(char *Data) { int num = rand() % 100 + 1; printf("Data is generated, num is %dn", num); if(Data[0] == 'C' && num == 25) { raise(SIGSEGV); } else if(Data[0] == 'F' && num == 90) { raise(SIGSEGV); } else { printf("it is good!n"); } return 0; }
  • 18. 18 КОГДА ФАЗЗИНГ ПОЛЕЗЕН З А Б А В Н О , Н О Э Т О Т М А Л Е Н Ь К И Й Т Е С Т В С Е Р А В Н О Н И К Т О Н Е У В И Д И Т Р а б о т а с о с л о ж н ы м и д а н н ы м и в п р и л о ж е н и и К о д н е д о с т а т о ч н о п р о в е р е н ( р е в ь ю ) Л ю б а я о ш и б к а м о ж е т п р и в е с т и к у б ы т к а м Б и з н е с у н у ж н о , ч т о б ы к о д н и к о г д а н е п а д а л К о д н а п и с а н н а C / C + + К о д м о ж е т п р и н и м а т ь б о л ь ш о е к о л и ч е с т в о п а р а м е т р о в н а в х о д К о д и с п о л ь з у е т с я п р и м е ж п р о ц е с с н о м в з а и м о д е й с т в и и В к о д е м н о г о a s s e r t - б л о к о в
  • 21. 21 М О Б И Л Ь Н Ы Е П Р И Л О Ж Е Н И Я
  • 25. 25 A N D R O I D
  • 27. 27 package test; public class Crashing { public static void main(String[] args) throws java.io.IOException { byte[] buffer = new byte[100]; // Make this crash on very likely generated inputs but not on // files inside in/ directory: if (System.in.read(buffer) > 10) { throw new RuntimeException("I will crash now!"); } } } https://github.com/Barro/java-afl.git
  • 28. 28
  • 29. 29
  • 30. 30
  • 31. 31 ВЫВОД • J a v a - O K • K o t l i n - O K
  • 32. 32 ВЫВОД A n d r o i d J AVA - O K K O T L I N - O K Ф А З З И Н Г В О З М О Ж Е Н
  • 35. 35
  • 36. 36 ВЫВОД A n d r o i d S W I F T - FA I L Ф А З З И Н Г З А Т Р У Д Н И Т Е Л Е Н O b j C - O K
  • 37. 37 A I D L F U Z Z
  • 38. 38
  • 39. 39
  • 40. 40
  • 41. 41
  • 42. 42
  • 43. 43
  • 47. 47
  • 48. 48 ЦЕЛЬ “AIDL Fuzzing” Т У Т М О Г Л А Б Ы Т Ь В А Ш А Р Е К Л А М А A O S P F u z z i n g C u s t o m A I D L - s c h e m e F u z z i n g F u z z i n g E n g i n e o n A n d r o i d O p e n s o u r c e c o d e
  • 49. 49 PA R A D I S E C U R I T Y Занимаемся исследованиями в сфере мобильных устройств