Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

309 views

Published on

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

第170回マルチメディア通信と分散処理・第76回コンピュータセキュリティ合同研究発表会
2017年3月2日 10:00 - 11:00

Published in: Engineering
  • Hello! I can recommend a site that has helped me. It's called ⇒ www.HelpWriting.net ⇐ They helped me for writing my quality research paper.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

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

  1. 1. 複数のセキュアOSのセキュリティポリシー設定の 自動生成のための構文主導変換方式の提案と考察 安藤類央 国立情報学研究所 橋本正樹 情報セキュリティ大学院大学 第170回マルチメディア通信と分散処理・第76回コン ピュータセキュリティ合同研究発表会 2017年3月2日 10:00 - 11:00
  2. 2. 概要 アクセス制御用のDSL開発 本論文では、セキュア OS である SELinux と TOMOYO Linux のセ キュリティポリシー設定を、同 一の集合定義と操作表現からの構文主 導変換を用いて自動生成を行う手法を提案する。 生成元のポリシー表現では、LALR(1)を用いたDSL実装を行い、 下記2点のフェーズでの適用例を示す。 ■ ログイン時のアクセス制御強化:共通のDSLから、SELinuxのRBAC、 TOMOYOのConditional ACLを生成 ■ 複数プロセスから構成されるhttpdデーモンのシグナルのアクセス制御: 共通のDSLから、SELinuxのアクセスベクタ、TOMOYOのAllow_signalディ レクティブ
  3. 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. 4. 提案手法の概要と適用対象 RBACConditional ACL allow_signalディレクティブ signal access vector TOMOYO Linux SELinux ログイン処理時の ユーザ集合の処理 Httpd稼働時の 複数のプロセスの シグナルのブロー ドキャスト 解決策: EXCLUDE, INCLUDE ディレクティブの導入に よる認可ユーザ集合 ポリシーの自動生成 解決策: HTTPディレクティブの導入 による複数のhttpdサブ プロセス設定の一括生成 TE: Type Enforcement
  5. 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. 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. 7. 構文主導変換 入力 出力 構文解析 および出力の 書き出し 入力 出力規則処理 入力 出力構文解析 中間表現生成 意味解析 と生成 文法・ルール 構文主導変換 規則方式変換 モデル駆動変換
  8. 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. 9. LOGIN SET ID PERMIT PROCESS SIGNAL POLICY ポリシー構文木とセマンティックアクション Parser (Bison) Lexer (Flex) Start Semantic Action Policy Representation ログイン処理時の ユーザ集合の処理 Httpd稼働時の 複数のプロセスの シグナルのブロー ドキャスト SELinux と TOMOYO Linux のセキュリティポリシー設定を、同 一の集合定義 と操作表現(DSL)からの構文主導変換を用いて自動生成を行う
  10. 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. 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. 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. 13. 適用例2:ログイン後のユーザの集合操作 root taskID = 0 taskID != 0 userID = unconfined userID != unconfined Conditional ACLで集合を切り分ける User Mapping 集合を切り分ける
  14. 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. 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. 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. 17. まとめ アクセス制御用のDSL開発 本論文では、セキュア OS である SELinux と TOMOYO Linux のセ キュリティポリシー設定を、同 一の集合定義と操作表現からの構文主 導変換を用いて自動生成を行う手法を提案した。 生成元のポリシー表現では、LALR(1)を用いたDSL実装を行い、 下記2点のフェーズでの適用例を示した。 ■ ログイン時のアクセス制御強化:共通のDSLから、SELinuxのRBAC、TOMOYOのConditional ACLを生成 ■ 複数プロセスから構成されるhttpdデーモンのシグナルのアクセス制御:共通のDSLから、 SELinuxのアクセスベクタ、TOMOYOのAllow_signalディレクティブ 今後の課題 ■ アプリケーションレイヤでのアクセス制御への適用 ■ルール規則変換器、モデル駆動ベース方式のための遷移規則集や中間表現の開発

×