SlideShare a Scribd company logo
1 of 48
Japan Linux Symposium 2009 2009.10.23 Daisuke Numaguchi Tetsuo Handa  Giuseppe La Tona NTT DATA CORPORATION
[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
TOMOYO overview ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
MAC(Mandatory Access Control) ,[object Object],[object Object],[object Object],[object Object],2009/10/23 Copyright (C) 2009 NTT Data Corporation
How to use TOMOYO? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Android overview Copyright (C) 2009 NTT Data Corporation 2009/10/23
Android Kernel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Dalvik and Zygote ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Dalvik and Zygote ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23 fork() application zygote Dalvik VM
Android boot sequence adbd vold  (mount) rild  (radio) debuggerd installd … Binder Copyright (C) 2009 NTT Data Corporation 2009/10/23 systemserver service manager service manager System Services Dalvik VM fork() Dalvik VM Dalvik VM Dalvik VM GUI service manager service manager Applications Home Runtime Kernel init init Daemons init init init Native Servers servicemanager registration mediaserver zygote exec() fork() Dalvik specialization
Android security model (1/2) ,[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23 Dalvik VM Application 1 Zygote Dalvik VM Application 2 Dalvik VM Application 3 Dalvik VM Application 4
Android security model (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
TOMOYO Linux versions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Android kernel ,[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Android kernel ,[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Android kernel ,[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Porting TOMOYO to Android ,[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Patching Android Kernel  ,[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation  2009/10/23 Kernel TOMOYO Linux
Adapting ccstools ,[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Modifying Android boot (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Modifying Android boot (2/2) ,[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation ,[object Object],[object Object],2009/10/23
Creating policy ,[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
TOMOYO on Android overview Copyright (C) 2009 NTT Data Corporation 2009/10/23
TOMOYO on Android overview Copyright (C) 2009 NTT Data Corporation TOMOYO tools TOMOYO patch 2009/10/23
EDITING POLICY (VIA AGENT) Copyright (C) 2009 NTT Data Corporation 2009/10/23
Copyright (C) 2009 NTT Data Corporation Android emulator (Goldfish) TOMOYO Linux (kernel patch) Android runtime Application framework TOMOYO Agent ccs-editpolicy-agent  app Ubuntu 8.04 app app app Libraries Policy editor ccs-editpolicy TCP/IP 2009/10/23
Copyright (C) 2009 NTT Data Corporation 2009/10/23
Profile number Copyright (C) 2009 NTT Data Corporation 2009/10/23
Copyright (C) 2009 NTT Data Corporation Profile 0 for disabled, 1 for learning,    2 for permissive, 3 for enforcing  2009/10/23
Profile number Copyright (C) 2009 NTT Data Corporation 2009/10/23
service zygote  /system/bin/app_process  -Xzygote /system/bin --zygote --start-system-server Copyright (C) 2009 NTT Data Corporation 2009/10/23 init init Daemons servicemanager mediaserver zygote
Problem with splitting domains ,[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23 Adapting ccstools service manager service manager Applications System Server
Problem with splitting domains ,[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23 Adapting ccstools service manager service manager Applications System Server zygote Dalvik VM Dalvik VM Dalvik VM fork()
Problem with splitting domains ,[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Problem with splitting domains <kernel>  /init  /system/bin/app_process Copyright (C) 2009 NTT Data Corporation 2009/10/23
TOMOYO’s MAC and Android DAC ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
TOMOYO’s MAC and Android DAC ,[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
An example ,[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Solution ,[object Object],[object Object],In this way only   the process with UID in HTTP_USERS group will be able to connect Copyright (C) 2009 NTT Data Corporation 2009/10/23
Solution ,[object Object],In this way  only  browser will be able to connect Copyright (C) 2009 NTT Data Corporation 2009/10/23 UID=10012
DEMO: Make policy for Web browser ,[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Saving access logs ,[object Object],Copyright (C) 2009 NTT Data Corporation /usr/sbin/ccs-auditd  /tmp/grant_log  /tmp/reject_log  127.0.0.1:10000 2009/10/23 #2009-10-19 10:07:15# profile=1 mode=learning (global-pid=36) task={ pid=36 ppid=1 uid=0 gid=0 euid=0 egid=0 suid=0 sgid=0 fsuid=0 fsgid=0 state[0]=0 state[1]=0 state[2]=0 type!=execute_handler } path1={ uid=0 gid=2000 ino=537 major=31 minor=0 perm=0755 type=file } path1.parent={ uid=0 gid=2000 ino=468 perm=0755 } exec={ realpath=&quot;/system/bin/app_process&quot; argc=5 envc=10 argv[]={ &quot;/system/bin/app_process&quot; &quot;-Xzygote&quot; &quot;/system/bin&quot; &quot;--zygote&quot; &quot;--start-system-server&quot; } envp[]={ &quot;PATH=/sbin:/system/sbin:/system/bin:/system/xbin&quot; &quot;LD_LIBRARY_PATH=/system/lib&quot; &quot;ANDROID_BOOTLOGO=1&quot; &quot;ANDROID_ROOT=/system&quot; &quot;ANDROID_ASSETS=/system/app&quot; &quot;ANDROID_DATA=/data&quot; &quot;EXTERNAL_STORAGE=/sdcard&quot; &quot;BOOTCLASSPATH=/system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar&quot; &quot;ANDROID_PROPERTY_WORKSPACE=9,32768&quot; &quot;ANDROID_SOCKET_zygote=10&quot; } } <kernel> /init allow_execute /system/bin/app_process ,[object Object]
Policy error handler ,[object Object],Copyright (C) 2009 NTT Data Corporation Access request Permitted by policy? Permitted by handler? YES Access granted Access rejected YES NO NO 2009/10/23
Conclusions ,[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Thank you for your attention Copyright (C) 2009 NTT Data Corporation Daisuke Numaguchi  <numaguchid@nttdata.co.jp> Tetsuo Handa  <penguin-kernel@i-love.sakura.ne.jp> Giuseppe La Tona  <giuseppelatona@gmail.com> 2009/10/23
Information ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23
Copyrights ,[object Object],[object Object],[object Object],[object Object],Copyright (C) 2009 NTT Data Corporation 2009/10/23

More Related Content

What's hot

Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded DevicesQi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded DevicesNational Cheng Kung University
 
Develop Community-based Android Distribution and Upstreaming Experience
Develop Community-based Android Distribution and Upstreaming Experience Develop Community-based Android Distribution and Upstreaming Experience
Develop Community-based Android Distribution and Upstreaming Experience National Cheng Kung University
 
Android is NOT just 'Java on Linux'
Android is NOT just 'Java on Linux'Android is NOT just 'Java on Linux'
Android is NOT just 'Java on Linux'Tetsuyuki Kobayashi
 
Android graphic system (SurfaceFlinger) : Design Pattern's perspective
Android graphic system (SurfaceFlinger) : Design Pattern's perspectiveAndroid graphic system (SurfaceFlinger) : Design Pattern's perspective
Android graphic system (SurfaceFlinger) : Design Pattern's perspectiveBin Chen
 
Android crash debugging
Android crash debuggingAndroid crash debugging
Android crash debuggingAshish Agrawal
 
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsQ4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsLinaro
 

What's hot (20)

Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded DevicesQi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
 
Improve Android System Component Performance
Improve Android System Component PerformanceImprove Android System Component Performance
Improve Android System Component Performance
 
Build Programming Language Runtime with LLVM
Build Programming Language Runtime with LLVMBuild Programming Language Runtime with LLVM
Build Programming Language Runtime with LLVM
 
Applied Computer Science Concepts in Android
Applied Computer Science Concepts in AndroidApplied Computer Science Concepts in Android
Applied Computer Science Concepts in Android
 
Explore Android Internals
Explore Android InternalsExplore Android Internals
Explore Android Internals
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Learn C Programming Language by Using GDB
Learn C Programming Language by Using GDBLearn C Programming Language by Using GDB
Learn C Programming Language by Using GDB
 
Develop Community-based Android Distribution and Upstreaming Experience
Develop Community-based Android Distribution and Upstreaming Experience Develop Community-based Android Distribution and Upstreaming Experience
Develop Community-based Android Distribution and Upstreaming Experience
 
Android is NOT just 'Java on Linux'
Android is NOT just 'Java on Linux'Android is NOT just 'Java on Linux'
Android is NOT just 'Java on Linux'
 
Low Level View of Android System Architecture
Low Level View of Android System ArchitectureLow Level View of Android System Architecture
Low Level View of Android System Architecture
 
Discover System Facilities inside Your Android Phone
Discover System Facilities inside Your Android Phone Discover System Facilities inside Your Android Phone
Discover System Facilities inside Your Android Phone
 
Android IPC Mechanism
Android IPC MechanismAndroid IPC Mechanism
Android IPC Mechanism
 
Android graphic system (SurfaceFlinger) : Design Pattern's perspective
Android graphic system (SurfaceFlinger) : Design Pattern's perspectiveAndroid graphic system (SurfaceFlinger) : Design Pattern's perspective
Android graphic system (SurfaceFlinger) : Design Pattern's perspective
 
Jnode
JnodeJnode
Jnode
 
Understanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual MachineUnderstanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual Machine
 
Android crash debugging
Android crash debuggingAndroid crash debugging
Android crash debugging
 
ARM and SoC Traning Part I -- Overview
ARM and SoC Traning Part I -- OverviewARM and SoC Traning Part I -- Overview
ARM and SoC Traning Part I -- Overview
 
Implement Checkpointing for Android
Implement Checkpointing for AndroidImplement Checkpointing for Android
Implement Checkpointing for Android
 
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsQ4.11: Porting Android to new Platforms
Q4.11: Porting Android to new Platforms
 
Android Custom Kernel/ROM design
Android Custom Kernel/ROM designAndroid Custom Kernel/ROM design
Android Custom Kernel/ROM design
 

Similar to Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)

Symbian OS - Platform Security
Symbian OS - Platform SecuritySymbian OS - Platform Security
Symbian OS - Platform SecurityAndreas Jakl
 
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...VirtualTech Japan Inc.
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212Yoojoo Jang
 
Hack In Paris 2011 - Practical Sandboxing
Hack In Paris 2011 - Practical SandboxingHack In Paris 2011 - Practical Sandboxing
Hack In Paris 2011 - Practical SandboxingTom Keetch
 
Using Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure SystemsUsing Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure SystemsYoshitake Kobayashi
 
An Essential Relationship between Real-time and Resource Partitioning
An Essential Relationship between Real-time and Resource PartitioningAn Essential Relationship between Real-time and Resource Partitioning
An Essential Relationship between Real-time and Resource PartitioningYoshitake Kobayashi
 
Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?
Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?
Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?Julien Vermillard
 
EclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems Toolbox
EclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems ToolboxEclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems Toolbox
EclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems ToolboxBrett Hackleman
 
thcon23_The_Android_Security_Model.pdf
thcon23_The_Android_Security_Model.pdfthcon23_The_Android_Security_Model.pdf
thcon23_The_Android_Security_Model.pdfAvulaVenkatesh3
 
Wonho Park_20151209
Wonho Park_20151209Wonho Park_20151209
Wonho Park_20151209Wonho Park
 
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...The Linux Foundation
 
Resume-LIN-en-2014
Resume-LIN-en-2014Resume-LIN-en-2014
Resume-LIN-en-2014lin xianjin
 
Resume-LIN-en-2014
Resume-LIN-en-2014Resume-LIN-en-2014
Resume-LIN-en-2014lin xianjin
 
Container based android
Container based androidContainer based android
Container based androidLihan Chen
 
Java ME - 01 - Overview
Java ME - 01 - OverviewJava ME - 01 - Overview
Java ME - 01 - OverviewAndreas Jakl
 
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...François Le Droff
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialBenjamin Cabé
 
Android ak
Android akAndroid ak
Android ak88130359
 

Similar to Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009) (20)

Deep inside TOMOYO Linux
Deep inside TOMOYO LinuxDeep inside TOMOYO Linux
Deep inside TOMOYO Linux
 
Symbian OS - Platform Security
Symbian OS - Platform SecuritySymbian OS - Platform Security
Symbian OS - Platform Security
 
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212
 
Hack In Paris 2011 - Practical Sandboxing
Hack In Paris 2011 - Practical SandboxingHack In Paris 2011 - Practical Sandboxing
Hack In Paris 2011 - Practical Sandboxing
 
Using Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure SystemsUsing Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure Systems
 
An Essential Relationship between Real-time and Resource Partitioning
An Essential Relationship between Real-time and Resource PartitioningAn Essential Relationship between Real-time and Resource Partitioning
An Essential Relationship between Real-time and Resource Partitioning
 
Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?
Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?
Iot Conference Berlin M2M,IoT, device management: one protocol to rule them all?
 
EclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems Toolbox
EclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems ToolboxEclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems Toolbox
EclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems Toolbox
 
thcon23_The_Android_Security_Model.pdf
thcon23_The_Android_Security_Model.pdfthcon23_The_Android_Security_Model.pdf
thcon23_The_Android_Security_Model.pdf
 
Eclipse RT Day
Eclipse RT DayEclipse RT Day
Eclipse RT Day
 
Wonho Park_20151209
Wonho Park_20151209Wonho Park_20151209
Wonho Park_20151209
 
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
 
Resume-LIN-en-2014
Resume-LIN-en-2014Resume-LIN-en-2014
Resume-LIN-en-2014
 
Resume-LIN-en-2014
Resume-LIN-en-2014Resume-LIN-en-2014
Resume-LIN-en-2014
 
Container based android
Container based androidContainer based android
Container based android
 
Java ME - 01 - Overview
Java ME - 01 - OverviewJava ME - 01 - Overview
Java ME - 01 - Overview
 
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
 
Android ak
Android akAndroid ak
Android ak
 

More from Toshiharu Harada, Ph.D

Job's 2005 Stanford Speech Translation Kit
Job's 2005 Stanford Speech Translation KitJob's 2005 Stanford Speech Translation Kit
Job's 2005 Stanford Speech Translation KitToshiharu Harada, Ph.D
 
’You’ve got to find what you love,’ Jobs says
’You’ve got to find what you love,’ Jobs says’You’ve got to find what you love,’ Jobs says
’You’ve got to find what you love,’ Jobs saysToshiharu Harada, Ph.D
 
CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御Toshiharu Harada, Ph.D
 
The role of "pathname based access control" in security"
The role of "pathname based access control" in security"The role of "pathname based access control" in security"
The role of "pathname based access control" in security"Toshiharu Harada, Ph.D
 
振る舞いに基づくSSHブルートフォースアタック対策
振る舞いに基づくSSHブルートフォースアタック対策振る舞いに基づくSSHブルートフォースアタック対策
振る舞いに基づくSSHブルートフォースアタック対策Toshiharu Harada, Ph.D
 
僕より少し遅く生まれてきた君たちへ
僕より少し遅く生まれてきた君たちへ僕より少し遅く生まれてきた君たちへ
僕より少し遅く生まれてきた君たちへToshiharu Harada, Ph.D
 
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」Toshiharu Harada, Ph.D
 
20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」
20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」
20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」Toshiharu Harada, Ph.D
 
Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...
Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...
Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...Toshiharu Harada, Ph.D
 
プロセス実行履歴に基づくアクセスポリシー自動生成システム
プロセス実行履歴に基づくアクセスポリシー自動生成システムプロセス実行履歴に基づくアクセスポリシー自動生成システム
プロセス実行履歴に基づくアクセスポリシー自動生成システムToshiharu Harada, Ph.D
 
使いこなせて安全なLinuxを目指して
使いこなせて安全なLinuxを目指して使いこなせて安全なLinuxを目指して
使いこなせて安全なLinuxを目指してToshiharu Harada, Ph.D
 

More from Toshiharu Harada, Ph.D (20)

20090703 tomoyo thankyou
20090703 tomoyo thankyou20090703 tomoyo thankyou
20090703 tomoyo thankyou
 
Job's 2005 Stanford Speech Translation Kit
Job's 2005 Stanford Speech Translation KitJob's 2005 Stanford Speech Translation Kit
Job's 2005 Stanford Speech Translation Kit
 
’You’ve got to find what you love,’ Jobs says
’You’ve got to find what you love,’ Jobs says’You’ve got to find what you love,’ Jobs says
’You’ve got to find what you love,’ Jobs says
 
CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御
 
TOMOYO Linuxのご紹介
TOMOYO Linuxのご紹介TOMOYO Linuxのご紹介
TOMOYO Linuxのご紹介
 
LSM Leaks
LSM LeaksLSM Leaks
LSM Leaks
 
The role of "pathname based access control" in security"
The role of "pathname based access control" in security"The role of "pathname based access control" in security"
The role of "pathname based access control" in security"
 
Tomoyo linux introduction
Tomoyo linux introductionTomoyo linux introduction
Tomoyo linux introduction
 
Your First Guide to "secure Linux"
Your First Guide to "secure Linux"Your First Guide to "secure Linux"
Your First Guide to "secure Linux"
 
振る舞いに基づくSSHブルートフォースアタック対策
振る舞いに基づくSSHブルートフォースアタック対策振る舞いに基づくSSHブルートフォースアタック対策
振る舞いに基づくSSHブルートフォースアタック対策
 
僕より少し遅く生まれてきた君たちへ
僕より少し遅く生まれてきた君たちへ僕より少し遅く生まれてきた君たちへ
僕より少し遅く生まれてきた君たちへ
 
Why TOMOYO Linux?
Why TOMOYO Linux?Why TOMOYO Linux?
Why TOMOYO Linux?
 
ComSys2009
ComSys2009ComSys2009
ComSys2009
 
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
 
20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」
20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」
20031020 「プロセス実行履歴に基づくアクセスポリシー自動生成システム」
 
Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...
Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...
Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Secu...
 
プロセス実行履歴に基づくアクセスポリシー自動生成システム
プロセス実行履歴に基づくアクセスポリシー自動生成システムプロセス実行履歴に基づくアクセスポリシー自動生成システム
プロセス実行履歴に基づくアクセスポリシー自動生成システム
 
TOMOYO Linux
TOMOYO LinuxTOMOYO Linux
TOMOYO Linux
 
使いこなせて安全なLinuxを目指して
使いこなせて安全なLinuxを目指して使いこなせて安全なLinuxを目指して
使いこなせて安全なLinuxを目指して
 
TOMOYO Linuxへの道
TOMOYO Linuxへの道TOMOYO Linuxへの道
TOMOYO Linuxへの道
 

Recently uploaded

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
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
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
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
"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
 
"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
 
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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

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?
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
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)
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
"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...
 
"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
 
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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)

  • 1. Japan Linux Symposium 2009 2009.10.23 Daisuke Numaguchi Tetsuo Handa Giuseppe La Tona NTT DATA CORPORATION
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Android overview Copyright (C) 2009 NTT Data Corporation 2009/10/23
  • 7.
  • 8.
  • 9.
  • 10. Android boot sequence adbd vold (mount) rild (radio) debuggerd installd … Binder Copyright (C) 2009 NTT Data Corporation 2009/10/23 systemserver service manager service manager System Services Dalvik VM fork() Dalvik VM Dalvik VM Dalvik VM GUI service manager service manager Applications Home Runtime Kernel init init Daemons init init init Native Servers servicemanager registration mediaserver zygote exec() fork() Dalvik specialization
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. TOMOYO on Android overview Copyright (C) 2009 NTT Data Corporation 2009/10/23
  • 25. TOMOYO on Android overview Copyright (C) 2009 NTT Data Corporation TOMOYO tools TOMOYO patch 2009/10/23
  • 26. EDITING POLICY (VIA AGENT) Copyright (C) 2009 NTT Data Corporation 2009/10/23
  • 27. Copyright (C) 2009 NTT Data Corporation Android emulator (Goldfish) TOMOYO Linux (kernel patch) Android runtime Application framework TOMOYO Agent ccs-editpolicy-agent app Ubuntu 8.04 app app app Libraries Policy editor ccs-editpolicy TCP/IP 2009/10/23
  • 28. Copyright (C) 2009 NTT Data Corporation 2009/10/23
  • 29. Profile number Copyright (C) 2009 NTT Data Corporation 2009/10/23
  • 30. Copyright (C) 2009 NTT Data Corporation Profile 0 for disabled, 1 for learning, 2 for permissive, 3 for enforcing 2009/10/23
  • 31. Profile number Copyright (C) 2009 NTT Data Corporation 2009/10/23
  • 32. service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server Copyright (C) 2009 NTT Data Corporation 2009/10/23 init init Daemons servicemanager mediaserver zygote
  • 33.
  • 34.
  • 35.
  • 36. Problem with splitting domains <kernel> /init /system/bin/app_process Copyright (C) 2009 NTT Data Corporation 2009/10/23
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46. Thank you for your attention Copyright (C) 2009 NTT Data Corporation Daisuke Numaguchi <numaguchid@nttdata.co.jp> Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp> Giuseppe La Tona <giuseppelatona@gmail.com> 2009/10/23
  • 47.
  • 48.

Editor's Notes

  1. May I begin now? Thank you for such an opportunity to talk about tomoyo I am not fluent in English but I will give it a try. My name is Daisuke Numaguchi. I&apos;m working in secure os group in NTTdata corporation. I&apos;ve been employed here for 5 years. I&apos;m conducting tomoyo linux promotional activities.
  2. 最初に tomoyo と Android がどのようなものか紹介をしておきます。
  3. TOMOYO Linux is a lightweight MAC implementation for Linux and Embedded Linux developed by NTT Data Corporation. It performs pathname-based MAC ( Mandatory Access Control ) , separating security domains according to process invocation history, which describes the system behavior. tomoyo は2つのものから成り立っている。 1つめはカーネルのパッチで、 tomoyo のためのパッチを追加するものです。 2つめは tomoyo のポリシーと呼ばれるアクセスコントロール設定を マネージメントするためのユーティリティです。
  4. ここで強制アクセス制御について簡単に触れておきます。 強制アクセス制御は、ポリシーにしたがって access を制限するものです。 管理者であっても、例外なく制御をおこなうものです。 Linux の場合は、 SELinux, Smack, tomoyo ・・・などいくつか種類があります。
  5. それでは tomoyo がどのようなところで活用できるかを少し紹介します。 まず「プロテクト」、 MAC ツールとしてのふつうの使い方です。 次に、 TOMOYO Linux has a special mode called &amp;quot;learning&amp;quot; mode. In learning mode, TOMOYO Linux analyzes the accesses occured in the kernel and stores them as MAC policy. 「学習」、 tomoyo はパス名のアクセス制御をしているので、 ポリシーを見ることで、自分が作ったアプリケーションが どのような振る舞いをするのか 簡単に知ることができます。 学習だけで使うことも可能ですが、アプリケーションのデバッグにも使うことができます。
  6. Android はプロンプトモデル (prompting model) を採用している。 このプロンプトモデルは、ユーザにファイルを実行してもよいか、尋ねるタイプのモデルです。 Android は各アプリケーションが ( システム内の各部分も同様に ) 固有のプロセスで実行する、 マルチプロセスシステムです。アプリケーションとシステムの間のセキュリティは、 標準的な Linux と同様にしてアプリケーションに割り当てられたユーザ・グループ ID 制御により、 プロセスレベルで確保されます。
  7. ここからは Android へ tomoyo の適用についてお話していきます
  8. Android で tomoyo が起動するように Android を設定していきます。
  9. Android に適用したイメージです。 Tomoyo はカーネル上で動作し、 Android 上で MAC を使えるようになります。
  10. 今日、皆さんに見てもらうデモの環境です。 Android の tomoyo は、ネットワークを使って設定を変更するようにしています。 Android の tomoyo エージェントとホスト側の editpolicy プログラムが通信することになります。 Android に限らず、リモート管理機能は便利だと思います。
  11. Editpolicy プログラムは tomoyo のポリシーを管理するツールです。
  12. Tomoyo ではドメインと呼ばれるプログラム単位でポリシーを管理しています。 Tomoyo ではこのドメインポリシーを適切に設定することが重要になります。 これをみることで、プログラムの呼び出し順序を見ていくことができます。 例えば /system/bin/app_process は、 &lt;kernel&gt; /init の順番で呼び出されていることがわかります。 &lt;kernel&gt; は、ツリーの起点を表しています。 この部分は、プロファイル番号です。 TOMOYO manages the policy by a program unit to be called a domain in Tomoyo. It becomes important that I set domain policy corectly in Tomoyo. For example, I understand that /system/bin/app_process is called by kernel /init. &lt;kernel&gt;is starting point of a domain tree. The second column is a profile number.
  13. Profile defines tomoyo’s operation mode.
  14. ドメインをプロセスの親子関係で表示しています。 /init プログラムから sh (シェル)や servicemanager というプログラムが呼び出されていることがわかります。