SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
複数のセキュアOSのセキュリティポリシー設定の
自動生成のための構文主導変換方式の提案と考察
安藤類央 国立情報学研究所
橋本正樹 情報セキュリティ大学院大学
第170回マルチメディア通信と分散処理・第76回コン
ピュータセキュリティ合同研究発表会
2017年3月2日 10:00 - 11:00
概要 アクセス制御用のDSL開発
本論文では、セキュア OS である SELinux と TOMOYO Linux のセ
キュリティポリシー設定を、同 一の集合定義と操作表現からの構文主
導変換を用いて自動生成を行う手法を提案する。
生成元のポリシー表現では、LALR(1)を用いたDSL実装を行い、
下記2点のフェーズでの適用例を示す。
■ ログイン時のアクセス制御強化:共通のDSLから、SELinuxのRBAC、
TOMOYOのConditional ACLを生成
■ 複数プロセスから構成されるhttpdデーモンのシグナルのアクセス制御:
共通のDSLから、SELinuxのアクセスベクタ、TOMOYOのAllow_signalディ
レクティブ
関連研究
①Watson, R. N. M., Anderson, J., Laurie, B., and Kennaway, K. Capsicum: practical capabilities for
UNIX. In Proceedings of the 19th USENIX Security Symposium, Washington, DC, August 2010.
(Best Student Paper, Most Notable Publication 2011 - Cambridge Ring)
②P.A. Porras, S. Shin, S. Yegneswaran, M.W. Fong, M. Tyson, and G. Gu, "A Security Enforcement
Kernel for OpenFlow Networks," in Proceedings of the ACM Sigcomm Workshop on Hot Topics in
Software Defined Networking (HotSDN), Helsinki, FI, August 2012.
③GemRBAC-DSL: a High-level Specification Language for Role-based Access Control Policies
Ben Fadhel, Ameni; Bianculli, Domenico; Briand, Lionelin 21st ACM Symposium on Access
Control Models and Technologies (SACMAT 2016) (2016, June)
④Canonical Completeness in Lattice-Based Languages for Attribute-Based Access Control
Williams, C. & Crampton, J. 12 Dec 2016 7th ACM Conference on Data and Application Security
and Privacy. ACM Press
提案手法の概要と適用対象
RBACConditional ACL
allow_signalディレクティブ signal access vector
TOMOYO Linux SELinux ログイン処理時の
ユーザ集合の処理
Httpd稼働時の
複数のプロセスの
シグナルのブロー
ドキャスト
解決策:
EXCLUDE, INCLUDE
ディレクティブの導入に
よる認可ユーザ集合
ポリシーの自動生成
解決策:
HTTPディレクティブの導入
による複数のhttpdサブ
プロセス設定の一括生成
TE: Type Enforcement
Secure OS: DAC and MAC
Subject
User
Linux
DAC
SELinux
MAC
Object
/etc/passwd
System_u:object_r:lib_t
user_u:user_r:user_t
SELinux User SELinux role SELinux type
<kernel> /usr/sbin/sshd /bin/bash
<kernel> /usr/sbin/sshd /bin/bash /bin/ls
<kernel> /usr/sbin/sshd /bin/bash /bin/tar
<kernel> /usr/sbin/sshd /bin/bash /bin/cat
Subject
Process / User
検査方法の分類
■構文主導型 (Syntax Directed Translation)
- This translator consists of a parser (or grammar) with embedded actions that immediately generate output.
正規表現、有限オートマトン
ITS4: a static vulnerability scanner for C and C++ code, Computer Security Applications, ACSAC 2002
Chucky: exposing missing checks in source code for vulnerability discovery ccs 2013
■ルール方式 (Rule Based Translation)
- Rule-based translators use the DSL of a particular rule engine to specify a set of “this goes to that” translation
rules.
遷移規則、プッシュダウンオートマトン
Using programmer-written compiler extensions to catch security holes SSP 2002
Checking system rules using system-specific, programmer-written compiler extensions OSDI 2000
■モデル駆動方式 (Model Driven Translation)
- From the input model, a translator can emit output directly, build up strings, build up templates (documents with
“holes” in them where we can stick values), or build up specialized output objects
モデル検査・Concolic execution
MOPS: an infrastructure for examining security properties of software CCS2002
KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs, Usenix Sec
2011
構文主導変換
入力 出力
構文解析
および出力の
書き出し
入力 出力規則処理
入力 出力構文解析
中間表現生成
意味解析
と生成
文法・ルール
構文主導変換
規則方式変換
モデル駆動変換
字句解析・構文解析の手法
• 再帰下降構文解析(さいきかこうこうぶんかいせ
き、Recursive Descent Parsing)は、相互再帰型
の手続き(あるいは再帰的でない同等の手続き)
で構成されるLL法のトップダウン構文解析。実装
例: Boost::spirit
• LL法またはLL構文解析とは、文脈自由文法のサブ
セットのためのトップダウン構文解析法の一種。k
個の字句(トークン)を先読みする場合、LL(k)
と表記する。実装例:Java, ANTLR, Android
• LRは、文脈自由文法の最右導出型の構文解析手法
/構文解析器。 LALR は、Lookahead-LR (先読み
上昇型最右導出)の略。LALR(1) はLR 法に比較
すると、スタックと表 をコンパクトにまとめるこ
とが可能であり、より実用的である。実装例:
Bison/flex, PostgreSQL
LOGIN SET ID PERMIT PROCESS SIGNAL
POLICY
ポリシー構文木とセマンティックアクション
Parser (Bison)
Lexer
(Flex)
Start
Semantic
Action
Policy
Representation
ログイン処理時の
ユーザ集合の処理
Httpd稼働時の
複数のプロセスの
シグナルのブロー
ドキャスト
SELinux と TOMOYO Linux のセキュリティポリシー設定を、同 一の集合定義
と操作表現(DSL)からの構文主導変換を用いて自動生成を行う
適用対象:TOMOYO LinuxとSELinuxのドメイン遷移
<kernel>
<kernel> /sbin/init
<kernel> /sbin/init
/etc/rc.d/rc.sysinit
<kernel> /sbin/init /etc/rc.d/rc
<kernel> /sbin/init /etc/rc.d/rc …
foo
<kernel> /sbin/init /etc/rc.d/rc …
bar
kernel_t init_t initrc_t
sysadm_
t
httpd_t sshd_t
sysadm_
t
staff_t user_t
Init_t
↓
Apache_t
Apache_exec_t
execve()
1
2
適用例1:httpdデーモン稼働時の複数の
subprocessとシグナル送信
Process File
User Process
File
Process Process
r/w
exec
r/w
Process
signal
signal
DSL
LALR
Semantic
Action
Access
Vector
Allow_signal
ディレクティブ
適用例1:httpdデーモン稼働時の複数の
subprocessとシグナル送信
/* pattern B */
%token ALLOW
%token HTTP
%token SIGNAL
/* pattern B: signal */
| policy ALLOW HTTP SIGNAL {
printf("SELinux: allow httpd_t httpd_sys_script_t:process signull; n");
printf("TOMOYO: allow_signal 15 httpd httpd signull; n);
}
;
適用例2:ログイン後のユーザの集合操作
root
taskID = 0 taskID != 0
userID =
unconfined userID != unconfined
Conditional
ACLで集合を切り分ける
User Mapping
集合を切り分ける
適用例2:ログイン後のユーザの集合操作
/* pattern A */
%token EXCLUDE
%token INCLUDE
%token LOGIN
%token DASH
/* pattern A: login */
policy:
| policy LOGIN EXCLUDE STRING {
if(strcmp("root", yyla.value.string) == 0)
printf("TOMOYO: file execute /bin/bash task.uid!=0 n");
/* Linux newuser -> SELinux user_u */
printf("SELinux: semanage login -a -s user_A not_root_user n");
}
| policy LOGIN INCLUDE NUMBER DASH NUMBER {
printf("TOMOYO: file execute /bin/bash task.uid=%d-%d n");
printf("SELinux: semanage login -a -s user_B root_user n");
}
適用例2:httpdデーモン稼働時の複数の
subprocessとシグナル送信
Process File
User Process
File
Process Process
r/w
exec
r/w
Process
signal
signal
DSL
LALR
Semantic
Action
Access
Vector
Allow_signal
ディレクティブ
適用例2:httpdデーモン稼働時の複数の
subprocessとシグナル送信
/* pattern B */
%token ALLOW
%token HTTP
%token SIGNAL
/* pattern B: signal */
| policy ALLOW HTTP SIGNAL {
printf("SELinux: allow httpd_t httpd_sys_script_t:process signull; n");
printf("TOMOYO: allow_signal 15 httpd httpd signull; n);
}
;
まとめ アクセス制御用のDSL開発
本論文では、セキュア OS である SELinux と TOMOYO Linux のセ
キュリティポリシー設定を、同 一の集合定義と操作表現からの構文主
導変換を用いて自動生成を行う手法を提案した。
生成元のポリシー表現では、LALR(1)を用いたDSL実装を行い、
下記2点のフェーズでの適用例を示した。
■ ログイン時のアクセス制御強化:共通のDSLから、SELinuxのRBAC、TOMOYOのConditional
ACLを生成
■ 複数プロセスから構成されるhttpdデーモンのシグナルのアクセス制御:共通のDSLから、
SELinuxのアクセスベクタ、TOMOYOのAllow_signalディレクティブ
今後の課題
■ アプリケーションレイヤでのアクセス制御への適用
■ルール規則変換器、モデル駆動ベース方式のための遷移規則集や中間表現の開発

Contenu connexe

En vedette

Ia 2016-12-15
Ia 2016-12-15Ia 2016-12-15
Ia 2016-12-15Ruo Ando
 
Practicing What We Preach
Practicing What We PreachPracticing What We Preach
Practicing What We Preachalbeaudin
 
情報セキュリティと標準化Ii 参考資料-クラウドのセキュリティその2
情報セキュリティと標準化Ii 参考資料-クラウドのセキュリティその2情報セキュリティと標準化Ii 参考資料-クラウドのセキュリティその2
情報セキュリティと標準化Ii 参考資料-クラウドのセキュリティその2Ruo Ando
 
情報セキュリティと標準化I 第6回-公開用
情報セキュリティと標準化I 第6回-公開用情報セキュリティと標準化I 第6回-公開用
情報セキュリティと標準化I 第6回-公開用Ruo Ando
 
Scis2017 2007-01-27-02
Scis2017 2007-01-27-02Scis2017 2007-01-27-02
Scis2017 2007-01-27-02Ruo Ando
 
情報セキュリティと標準化I 第4回-公開用
情報セキュリティと標準化I 第4回-公開用情報セキュリティと標準化I 第4回-公開用
情報セキュリティと標準化I 第4回-公開用Ruo Ando
 
Arquitectura ecológica sorprendente
Arquitectura ecológica sorprendenteArquitectura ecológica sorprendente
Arquitectura ecológica sorprendenteMassimo Filippa
 
Beer and Branding for Graduate BioSciences (Oct 2016)
Beer and Branding for Graduate BioSciences (Oct 2016)Beer and Branding for Graduate BioSciences (Oct 2016)
Beer and Branding for Graduate BioSciences (Oct 2016)KR_Barker
 
Fitur 2017 Massimo Filippa
Fitur 2017 Massimo FilippaFitur 2017 Massimo Filippa
Fitur 2017 Massimo FilippaMassimo Filippa
 
2017 OFEA online resources to improve your marketing & your life
2017 OFEA  online resources to improve your marketing & your life2017 OFEA  online resources to improve your marketing & your life
2017 OFEA online resources to improve your marketing & your lifeJessica Carlo
 
Resume Writing for Immigrants
Resume Writing for Immigrants Resume Writing for Immigrants
Resume Writing for Immigrants Lilia Hadjiivanova
 

En vedette (16)

Ia 2016-12-15
Ia 2016-12-15Ia 2016-12-15
Ia 2016-12-15
 
CMSI計算科学技術特論A (2015) 第9回
CMSI計算科学技術特論A (2015) 第9回CMSI計算科学技術特論A (2015) 第9回
CMSI計算科学技術特論A (2015) 第9回
 
Practicing What We Preach
Practicing What We PreachPracticing What We Preach
Practicing What We Preach
 
情報セキュリティと標準化Ii 参考資料-クラウドのセキュリティその2
情報セキュリティと標準化Ii 参考資料-クラウドのセキュリティその2情報セキュリティと標準化Ii 参考資料-クラウドのセキュリティその2
情報セキュリティと標準化Ii 参考資料-クラウドのセキュリティその2
 
情報セキュリティと標準化I 第6回-公開用
情報セキュリティと標準化I 第6回-公開用情報セキュリティと標準化I 第6回-公開用
情報セキュリティと標準化I 第6回-公開用
 
Scis2017 2007-01-27-02
Scis2017 2007-01-27-02Scis2017 2007-01-27-02
Scis2017 2007-01-27-02
 
情報セキュリティと標準化I 第4回-公開用
情報セキュリティと標準化I 第4回-公開用情報セキュリティと標準化I 第4回-公開用
情報セキュリティと標準化I 第4回-公開用
 
Arquitectura ecológica sorprendente
Arquitectura ecológica sorprendenteArquitectura ecológica sorprendente
Arquitectura ecológica sorprendente
 
Beer and Branding for Graduate BioSciences (Oct 2016)
Beer and Branding for Graduate BioSciences (Oct 2016)Beer and Branding for Graduate BioSciences (Oct 2016)
Beer and Branding for Graduate BioSciences (Oct 2016)
 
Fitur 2017 Massimo Filippa
Fitur 2017 Massimo FilippaFitur 2017 Massimo Filippa
Fitur 2017 Massimo Filippa
 
Codi secret nivell 2
Codi secret nivell 2Codi secret nivell 2
Codi secret nivell 2
 
Què llegeix
Què llegeixQuè llegeix
Què llegeix
 
Presentación Voxy
Presentación VoxyPresentación Voxy
Presentación Voxy
 
Veo deduzco-porque
Veo deduzco-porqueVeo deduzco-porque
Veo deduzco-porque
 
2017 OFEA online resources to improve your marketing & your life
2017 OFEA  online resources to improve your marketing & your life2017 OFEA  online resources to improve your marketing & your life
2017 OFEA online resources to improve your marketing & your life
 
Resume Writing for Immigrants
Resume Writing for Immigrants Resume Writing for Immigrants
Resume Writing for Immigrants
 

Similaire à 複数のセキュアOSのセキュリティポリシー設定の自動生成のための構文主導変換方式の提案と考察

Css2014 ruo ando_2014-10-23-01
Css2014 ruo ando_2014-10-23-01Css2014 ruo ando_2014-10-23-01
Css2014 ruo ando_2014-10-23-01Ruo Ando
 
Scis2015 ruo ando_2015-01-20-01
Scis2015 ruo ando_2015-01-20-01Scis2015 ruo ando_2015-01-20-01
Scis2015 ruo ando_2015-01-20-01Ruo Ando
 
10年前から始まったマイクロソフトのDevOps~今とこれから~
10年前から始まったマイクロソフトのDevOps~今とこれから~10年前から始まったマイクロソフトのDevOps~今とこれから~
10年前から始まったマイクロソフトのDevOps~今とこれから~智治 長沢
 
技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution Engine技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution EngineAsuka Nakajima
 
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)Hiroshi Tokumaru
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説Daisuke Nishino
 
090916 X D E V今だから理解する[
090916 X D E V今だから理解する[090916 X D E V今だから理解する[
090916 X D E V今だから理解する[Masami Suzuki
 
RFC8341(Network Configuration Access Control Model)の勉強資料。
RFC8341(Network Configuration Access Control Model)の勉強資料。RFC8341(Network Configuration Access Control Model)の勉強資料。
RFC8341(Network Configuration Access Control Model)の勉強資料。Tetsuya Hasegawa
 
Osc2017 tokyo spring_soss_sig
Osc2017 tokyo spring_soss_sigOsc2017 tokyo spring_soss_sig
Osc2017 tokyo spring_soss_sigKazuki Omo
 
デブサミ2008 .NETの仕組み
デブサミ2008 .NETの仕組みデブサミ2008 .NETの仕組み
デブサミ2008 .NETの仕組みTakeshi Shinmura
 
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)cloudconductor
 
Dep001 infrastructure as_code_!_linux_な人から見
Dep001 infrastructure as_code_!_linux_な人から見Dep001 infrastructure as_code_!_linux_な人から見
Dep001 infrastructure as_code_!_linux_な人から見Tech Summit 2016
 
Statically detecting vulnerability under memory pressure using exhaustive search
Statically detecting vulnerability under memory pressure usingexhaustive searchStatically detecting vulnerability under memory pressure usingexhaustive search
Statically detecting vulnerability under memory pressure using exhaustive searchRuo Ando
 
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoyauroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoyaKenichi Hoshi
 
RACCOON 活用シーン Vol.5(2021/03/04)
RACCOON 活用シーン Vol.5(2021/03/04)RACCOON 活用シーン Vol.5(2021/03/04)
RACCOON 活用シーン Vol.5(2021/03/04)Tatsuya Kurobuchi
 
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏Insight Technology, Inc.
 
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界オラクルエンジニア通信
 
Intel OpenVINO™ ツールキットのご紹介
Intel OpenVINO™ ツールキットのご紹介Intel OpenVINO™ ツールキットのご紹介
Intel OpenVINO™ ツールキットのご紹介Hiroshi Ouchiyama
 

Similaire à 複数のセキュアOSのセキュリティポリシー設定の自動生成のための構文主導変換方式の提案と考察 (20)

Css2014 ruo ando_2014-10-23-01
Css2014 ruo ando_2014-10-23-01Css2014 ruo ando_2014-10-23-01
Css2014 ruo ando_2014-10-23-01
 
Scis2015 ruo ando_2015-01-20-01
Scis2015 ruo ando_2015-01-20-01Scis2015 ruo ando_2015-01-20-01
Scis2015 ruo ando_2015-01-20-01
 
10年前から始まったマイクロソフトのDevOps~今とこれから~
10年前から始まったマイクロソフトのDevOps~今とこれから~10年前から始まったマイクロソフトのDevOps~今とこれから~
10年前から始まったマイクロソフトのDevOps~今とこれから~
 
技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution Engine技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution Engine
 
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 
090916 X D E V今だから理解する[
090916 X D E V今だから理解する[090916 X D E V今だから理解する[
090916 X D E V今だから理解する[
 
RFC8341(Network Configuration Access Control Model)の勉強資料。
RFC8341(Network Configuration Access Control Model)の勉強資料。RFC8341(Network Configuration Access Control Model)の勉強資料。
RFC8341(Network Configuration Access Control Model)の勉強資料。
 
Osc2017 tokyo spring_soss_sig
Osc2017 tokyo spring_soss_sigOsc2017 tokyo spring_soss_sig
Osc2017 tokyo spring_soss_sig
 
デブサミ2008 .NETの仕組み
デブサミ2008 .NETの仕組みデブサミ2008 .NETの仕組み
デブサミ2008 .NETの仕組み
 
20180216 sapporo techbar_db_migration
20180216 sapporo techbar_db_migration20180216 sapporo techbar_db_migration
20180216 sapporo techbar_db_migration
 
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
 
Dep001 infrastructure as_code_!_linux_な人から見
Dep001 infrastructure as_code_!_linux_な人から見Dep001 infrastructure as_code_!_linux_な人から見
Dep001 infrastructure as_code_!_linux_な人から見
 
Statically detecting vulnerability under memory pressure using exhaustive search
Statically detecting vulnerability under memory pressure usingexhaustive searchStatically detecting vulnerability under memory pressure usingexhaustive search
Statically detecting vulnerability under memory pressure using exhaustive search
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoyauroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
 
RACCOON 活用シーン Vol.5(2021/03/04)
RACCOON 活用シーン Vol.5(2021/03/04)RACCOON 活用シーン Vol.5(2021/03/04)
RACCOON 活用シーン Vol.5(2021/03/04)
 
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
 
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
 
Intel OpenVINO™ ツールキットのご紹介
Intel OpenVINO™ ツールキットのご紹介Intel OpenVINO™ ツールキットのご紹介
Intel OpenVINO™ ツールキットのご紹介
 

Plus de Ruo Ando

KISTI-NII Joint Security Workshop 2023.pdf
KISTI-NII Joint Security Workshop 2023.pdfKISTI-NII Joint Security Workshop 2023.pdf
KISTI-NII Joint Security Workshop 2023.pdfRuo Ando
 
Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤
Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤
Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤Ruo Ando
 
解説#86 決定木 - ss.pdf
解説#86 決定木 - ss.pdf解説#86 決定木 - ss.pdf
解説#86 決定木 - ss.pdfRuo Ando
 
SaaSアカデミー for バックオフィス アイドルと学ぶDX講座 ~アイドル戦略に見るDXを専門家が徹底解説~
SaaSアカデミー for バックオフィス アイドルと学ぶDX講座  ~アイドル戦略に見るDXを専門家が徹底解説~SaaSアカデミー for バックオフィス アイドルと学ぶDX講座  ~アイドル戦略に見るDXを専門家が徹底解説~
SaaSアカデミー for バックオフィス アイドルと学ぶDX講座 ~アイドル戦略に見るDXを専門家が徹底解説~Ruo Ando
 
解説#83 情報エントロピー
解説#83 情報エントロピー解説#83 情報エントロピー
解説#83 情報エントロピーRuo Ando
 
解説#82 記号論理学
解説#82 記号論理学解説#82 記号論理学
解説#82 記号論理学Ruo Ando
 
解説#81 ロジスティック回帰
解説#81 ロジスティック回帰解説#81 ロジスティック回帰
解説#81 ロジスティック回帰Ruo Ando
 
解説#74 連結リスト
解説#74 連結リスト解説#74 連結リスト
解説#74 連結リストRuo Ando
 
解説#76 福岡正信
解説#76 福岡正信解説#76 福岡正信
解説#76 福岡正信Ruo Ando
 
解説#77 非加算無限
解説#77 非加算無限解説#77 非加算無限
解説#77 非加算無限Ruo Ando
 
解説#1 C言語ポインタとアドレス
解説#1 C言語ポインタとアドレス解説#1 C言語ポインタとアドレス
解説#1 C言語ポインタとアドレスRuo Ando
 
解説#78 誤差逆伝播
解説#78 誤差逆伝播解説#78 誤差逆伝播
解説#78 誤差逆伝播Ruo Ando
 
解説#73 ハフマン符号
解説#73 ハフマン符号解説#73 ハフマン符号
解説#73 ハフマン符号Ruo Ando
 
【技術解説20】 ミニバッチ確率的勾配降下法
【技術解説20】 ミニバッチ確率的勾配降下法【技術解説20】 ミニバッチ確率的勾配降下法
【技術解説20】 ミニバッチ確率的勾配降下法Ruo Ando
 
【技術解説4】assertion failureとuse after-free
【技術解説4】assertion failureとuse after-free【技術解説4】assertion failureとuse after-free
【技術解説4】assertion failureとuse after-freeRuo Ando
 
ITmedia Security Week 2021 講演資料
ITmedia Security Week 2021 講演資料 ITmedia Security Week 2021 講演資料
ITmedia Security Week 2021 講演資料 Ruo Ando
 
ファジングの解説
ファジングの解説ファジングの解説
ファジングの解説Ruo Ando
 
AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月
AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月
AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月Ruo Ando
 
【AI実装4】TensorFlowのプログラムを読む2 非線形回帰
【AI実装4】TensorFlowのプログラムを読む2 非線形回帰【AI実装4】TensorFlowのプログラムを読む2 非線形回帰
【AI実装4】TensorFlowのプログラムを読む2 非線形回帰Ruo Ando
 
Intel Trusted Computing Group 1st Workshop
Intel Trusted Computing Group 1st WorkshopIntel Trusted Computing Group 1st Workshop
Intel Trusted Computing Group 1st WorkshopRuo Ando
 

Plus de Ruo Ando (20)

KISTI-NII Joint Security Workshop 2023.pdf
KISTI-NII Joint Security Workshop 2023.pdfKISTI-NII Joint Security Workshop 2023.pdf
KISTI-NII Joint Security Workshop 2023.pdf
 
Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤
Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤
Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤
 
解説#86 決定木 - ss.pdf
解説#86 決定木 - ss.pdf解説#86 決定木 - ss.pdf
解説#86 決定木 - ss.pdf
 
SaaSアカデミー for バックオフィス アイドルと学ぶDX講座 ~アイドル戦略に見るDXを専門家が徹底解説~
SaaSアカデミー for バックオフィス アイドルと学ぶDX講座  ~アイドル戦略に見るDXを専門家が徹底解説~SaaSアカデミー for バックオフィス アイドルと学ぶDX講座  ~アイドル戦略に見るDXを専門家が徹底解説~
SaaSアカデミー for バックオフィス アイドルと学ぶDX講座 ~アイドル戦略に見るDXを専門家が徹底解説~
 
解説#83 情報エントロピー
解説#83 情報エントロピー解説#83 情報エントロピー
解説#83 情報エントロピー
 
解説#82 記号論理学
解説#82 記号論理学解説#82 記号論理学
解説#82 記号論理学
 
解説#81 ロジスティック回帰
解説#81 ロジスティック回帰解説#81 ロジスティック回帰
解説#81 ロジスティック回帰
 
解説#74 連結リスト
解説#74 連結リスト解説#74 連結リスト
解説#74 連結リスト
 
解説#76 福岡正信
解説#76 福岡正信解説#76 福岡正信
解説#76 福岡正信
 
解説#77 非加算無限
解説#77 非加算無限解説#77 非加算無限
解説#77 非加算無限
 
解説#1 C言語ポインタとアドレス
解説#1 C言語ポインタとアドレス解説#1 C言語ポインタとアドレス
解説#1 C言語ポインタとアドレス
 
解説#78 誤差逆伝播
解説#78 誤差逆伝播解説#78 誤差逆伝播
解説#78 誤差逆伝播
 
解説#73 ハフマン符号
解説#73 ハフマン符号解説#73 ハフマン符号
解説#73 ハフマン符号
 
【技術解説20】 ミニバッチ確率的勾配降下法
【技術解説20】 ミニバッチ確率的勾配降下法【技術解説20】 ミニバッチ確率的勾配降下法
【技術解説20】 ミニバッチ確率的勾配降下法
 
【技術解説4】assertion failureとuse after-free
【技術解説4】assertion failureとuse after-free【技術解説4】assertion failureとuse after-free
【技術解説4】assertion failureとuse after-free
 
ITmedia Security Week 2021 講演資料
ITmedia Security Week 2021 講演資料 ITmedia Security Week 2021 講演資料
ITmedia Security Week 2021 講演資料
 
ファジングの解説
ファジングの解説ファジングの解説
ファジングの解説
 
AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月
AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月
AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月
 
【AI実装4】TensorFlowのプログラムを読む2 非線形回帰
【AI実装4】TensorFlowのプログラムを読む2 非線形回帰【AI実装4】TensorFlowのプログラムを読む2 非線形回帰
【AI実装4】TensorFlowのプログラムを読む2 非線形回帰
 
Intel Trusted Computing Group 1st Workshop
Intel Trusted Computing Group 1st WorkshopIntel Trusted Computing Group 1st Workshop
Intel Trusted Computing Group 1st Workshop
 

複数のセキュアOSのセキュリティポリシー設定の自動生成のための構文主導変換方式の提案と考察

  • 2. 概要 アクセス制御用のDSL開発 本論文では、セキュア OS である SELinux と TOMOYO Linux のセ キュリティポリシー設定を、同 一の集合定義と操作表現からの構文主 導変換を用いて自動生成を行う手法を提案する。 生成元のポリシー表現では、LALR(1)を用いたDSL実装を行い、 下記2点のフェーズでの適用例を示す。 ■ ログイン時のアクセス制御強化:共通のDSLから、SELinuxのRBAC、 TOMOYOのConditional ACLを生成 ■ 複数プロセスから構成されるhttpdデーモンのシグナルのアクセス制御: 共通のDSLから、SELinuxのアクセスベクタ、TOMOYOのAllow_signalディ レクティブ
  • 3. 関連研究 ①Watson, R. N. M., Anderson, J., Laurie, B., and Kennaway, K. Capsicum: practical capabilities for UNIX. In Proceedings of the 19th USENIX Security Symposium, Washington, DC, August 2010. (Best Student Paper, Most Notable Publication 2011 - Cambridge Ring) ②P.A. Porras, S. Shin, S. Yegneswaran, M.W. Fong, M. Tyson, and G. Gu, "A Security Enforcement Kernel for OpenFlow Networks," in Proceedings of the ACM Sigcomm Workshop on Hot Topics in Software Defined Networking (HotSDN), Helsinki, FI, August 2012. ③GemRBAC-DSL: a High-level Specification Language for Role-based Access Control Policies Ben Fadhel, Ameni; Bianculli, Domenico; Briand, Lionelin 21st ACM Symposium on Access Control Models and Technologies (SACMAT 2016) (2016, June) ④Canonical Completeness in Lattice-Based Languages for Attribute-Based Access Control Williams, C. & Crampton, J. 12 Dec 2016 7th ACM Conference on Data and Application Security and Privacy. ACM Press
  • 4. 提案手法の概要と適用対象 RBACConditional ACL allow_signalディレクティブ signal access vector TOMOYO Linux SELinux ログイン処理時の ユーザ集合の処理 Httpd稼働時の 複数のプロセスの シグナルのブロー ドキャスト 解決策: EXCLUDE, INCLUDE ディレクティブの導入に よる認可ユーザ集合 ポリシーの自動生成 解決策: HTTPディレクティブの導入 による複数のhttpdサブ プロセス設定の一括生成 TE: Type Enforcement
  • 5. Secure OS: DAC and MAC Subject User Linux DAC SELinux MAC Object /etc/passwd System_u:object_r:lib_t user_u:user_r:user_t SELinux User SELinux role SELinux type <kernel> /usr/sbin/sshd /bin/bash <kernel> /usr/sbin/sshd /bin/bash /bin/ls <kernel> /usr/sbin/sshd /bin/bash /bin/tar <kernel> /usr/sbin/sshd /bin/bash /bin/cat Subject Process / User
  • 6. 検査方法の分類 ■構文主導型 (Syntax Directed Translation) - This translator consists of a parser (or grammar) with embedded actions that immediately generate output. 正規表現、有限オートマトン ITS4: a static vulnerability scanner for C and C++ code, Computer Security Applications, ACSAC 2002 Chucky: exposing missing checks in source code for vulnerability discovery ccs 2013 ■ルール方式 (Rule Based Translation) - Rule-based translators use the DSL of a particular rule engine to specify a set of “this goes to that” translation rules. 遷移規則、プッシュダウンオートマトン Using programmer-written compiler extensions to catch security holes SSP 2002 Checking system rules using system-specific, programmer-written compiler extensions OSDI 2000 ■モデル駆動方式 (Model Driven Translation) - From the input model, a translator can emit output directly, build up strings, build up templates (documents with “holes” in them where we can stick values), or build up specialized output objects モデル検査・Concolic execution MOPS: an infrastructure for examining security properties of software CCS2002 KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs, Usenix Sec 2011
  • 7. 構文主導変換 入力 出力 構文解析 および出力の 書き出し 入力 出力規則処理 入力 出力構文解析 中間表現生成 意味解析 と生成 文法・ルール 構文主導変換 規則方式変換 モデル駆動変換
  • 8. 字句解析・構文解析の手法 • 再帰下降構文解析(さいきかこうこうぶんかいせ き、Recursive Descent Parsing)は、相互再帰型 の手続き(あるいは再帰的でない同等の手続き) で構成されるLL法のトップダウン構文解析。実装 例: Boost::spirit • LL法またはLL構文解析とは、文脈自由文法のサブ セットのためのトップダウン構文解析法の一種。k 個の字句(トークン)を先読みする場合、LL(k) と表記する。実装例:Java, ANTLR, Android • LRは、文脈自由文法の最右導出型の構文解析手法 /構文解析器。 LALR は、Lookahead-LR (先読み 上昇型最右導出)の略。LALR(1) はLR 法に比較 すると、スタックと表 をコンパクトにまとめるこ とが可能であり、より実用的である。実装例: Bison/flex, PostgreSQL
  • 9. LOGIN SET ID PERMIT PROCESS SIGNAL POLICY ポリシー構文木とセマンティックアクション Parser (Bison) Lexer (Flex) Start Semantic Action Policy Representation ログイン処理時の ユーザ集合の処理 Httpd稼働時の 複数のプロセスの シグナルのブロー ドキャスト SELinux と TOMOYO Linux のセキュリティポリシー設定を、同 一の集合定義 と操作表現(DSL)からの構文主導変換を用いて自動生成を行う
  • 10. 適用対象:TOMOYO LinuxとSELinuxのドメイン遷移 <kernel> <kernel> /sbin/init <kernel> /sbin/init /etc/rc.d/rc.sysinit <kernel> /sbin/init /etc/rc.d/rc <kernel> /sbin/init /etc/rc.d/rc … foo <kernel> /sbin/init /etc/rc.d/rc … bar kernel_t init_t initrc_t sysadm_ t httpd_t sshd_t sysadm_ t staff_t user_t Init_t ↓ Apache_t Apache_exec_t execve() 1 2
  • 11. 適用例1:httpdデーモン稼働時の複数の subprocessとシグナル送信 Process File User Process File Process Process r/w exec r/w Process signal signal DSL LALR Semantic Action Access Vector Allow_signal ディレクティブ
  • 12. 適用例1:httpdデーモン稼働時の複数の subprocessとシグナル送信 /* pattern B */ %token ALLOW %token HTTP %token SIGNAL /* pattern B: signal */ | policy ALLOW HTTP SIGNAL { printf("SELinux: allow httpd_t httpd_sys_script_t:process signull; n"); printf("TOMOYO: allow_signal 15 httpd httpd signull; n); } ;
  • 13. 適用例2:ログイン後のユーザの集合操作 root taskID = 0 taskID != 0 userID = unconfined userID != unconfined Conditional ACLで集合を切り分ける User Mapping 集合を切り分ける
  • 14. 適用例2:ログイン後のユーザの集合操作 /* pattern A */ %token EXCLUDE %token INCLUDE %token LOGIN %token DASH /* pattern A: login */ policy: | policy LOGIN EXCLUDE STRING { if(strcmp("root", yyla.value.string) == 0) printf("TOMOYO: file execute /bin/bash task.uid!=0 n"); /* Linux newuser -> SELinux user_u */ printf("SELinux: semanage login -a -s user_A not_root_user n"); } | policy LOGIN INCLUDE NUMBER DASH NUMBER { printf("TOMOYO: file execute /bin/bash task.uid=%d-%d n"); printf("SELinux: semanage login -a -s user_B root_user n"); }
  • 15. 適用例2:httpdデーモン稼働時の複数の subprocessとシグナル送信 Process File User Process File Process Process r/w exec r/w Process signal signal DSL LALR Semantic Action Access Vector Allow_signal ディレクティブ
  • 16. 適用例2:httpdデーモン稼働時の複数の subprocessとシグナル送信 /* pattern B */ %token ALLOW %token HTTP %token SIGNAL /* pattern B: signal */ | policy ALLOW HTTP SIGNAL { printf("SELinux: allow httpd_t httpd_sys_script_t:process signull; n"); printf("TOMOYO: allow_signal 15 httpd httpd signull; n); } ;
  • 17. まとめ アクセス制御用のDSL開発 本論文では、セキュア OS である SELinux と TOMOYO Linux のセ キュリティポリシー設定を、同 一の集合定義と操作表現からの構文主 導変換を用いて自動生成を行う手法を提案した。 生成元のポリシー表現では、LALR(1)を用いたDSL実装を行い、 下記2点のフェーズでの適用例を示した。 ■ ログイン時のアクセス制御強化:共通のDSLから、SELinuxのRBAC、TOMOYOのConditional ACLを生成 ■ 複数プロセスから構成されるhttpdデーモンのシグナルのアクセス制御:共通のDSLから、 SELinuxのアクセスベクタ、TOMOYOのAllow_signalディレクティブ 今後の課題 ■ アプリケーションレイヤでのアクセス制御への適用 ■ルール規則変換器、モデル駆動ベース方式のための遷移規則集や中間表現の開発