SlideShare a Scribd company logo
1 of 26
Download to read offline
Scala と JSch を使った
Man-in-the-Middle Attack の実演
    ~SSHを安全に使うために~

            ymnk



            第1回東北情報セキュリティ勉強会(2009/08/01)
自己紹介(1)
•   山中淳彦(ymnk)
•   株式会社ジェイクラフト (JCraft,Inc.)
•   Java
•   最近は、Scala
•   Scala勉強会@東北
•   Eclipse.org の Platform Project で committer
•   でも、普段は emacs でプログラムを書いてます
自己紹介(2)
• ymnkの書いたソフトがBoeing 787へ搭載
• http://www.jcraft.com/news/06.18.2009pr.html
内容
•   自己紹介
•   SSHとは
•   SSH2クライアント JSch
•   Man-in-the-Middle Attack
•   MITM Attack の実演
•   まとめ
SSH とは
SSHとは(1)
• Secure Shell(secsh)
• Wikipedia: “Secure Shell” から
  – 暗号や認証の技術を利用して、安全にリモートコン
    ピュータと通信するためのプロトコル。パスワードなど
    の認証部分を含むすべてのネットワーク上の通信が
    暗号化される。
• リモートログイン、scp、sftp、port-fowarding
• SSH1(脆弱性や制限あり)、SSH2

                       SSHは、SSH社の登録商標(米国)です
SSHとは(2)
• 1995年、 Tatu Ylönen がフリーウェアとして第
  一版をリリース(SSH1)
• 瞬く間に世界中にひろまる
• 同年12月、 Ylönen がSSH社を設立
    →ソースは非公開に
• 1996年、SSH社が SSH2を設計・実装
• 1999年、有志がフリーな頃のコードを元にfork
    →のちの OpenSSH
• 2000年、OpenSSH が SSH2に対応
                 SSHは、SSH社の登録商標(米国)です
SSHとは(3)
•   RFC4250: Assigned Numbers
•   RFC4251: Protocol Architecture
•   RFC4252: Authentication Protocol
•   RFC4253: Transport Layer Protocol
•   RFC4254: Connection Protocol
•   RFC4256: Generic Message Exchange Auth
•   RFC4344: Transport Layer Encryption Modes
•   RFC4419: DH Group Exchange for Transport Layer
•   RFC4462: GSSAPI Authentication and Key Exchange
•   RFC4335 、RFC4716、RFC4819、RFC4255
•   DRAFT: SSH File Transfer Protocol
                              SSHは、SSH社の登録商標(米国)です
SSHとは(4)
SSH Client               SSH Server
               接続要求


             バージョン番号通知


      鍵交換, 暗号化情報の交換, ホスト認証


        セッション暗号化, ユーザー認証

               データ通信
SSH2クライアント JSch
SSH2クライアント JSch (1)
• JSch(Java Secure Channel)
• JCraft,Inc. 単独で開発
• SSH2のクライアント側を実装
    – shell, exec, scp, sftp, port-forwarding
•   J2SE(1.4以降)、J2ME CDC・CLDC(MIDP2.0)
•   修正BSDライセンス
•   Eclipse(3.0以降), NetBeans(5.0以降)に同梱
•   http://www.apache.org/licenses/exports/
SSH2クライアント JSch (2)
• 開発開始: 2003年1月
• 関連する自製ソフトウェア
 –   JZlib
 –   JCTerm
 –   JCTerm Plug-in for Eclipse
 –   SFtp Plug-in for Eclipse
 –   CVS-SSH2 Plug-in for Eclipse
Man-in-the-Middle Attack
Man-in-the-Middle Attack (1)

•   中間者攻撃, bucket-bridge attack, MITM
•   暗号通信を盗聴したり介入したりする手法
•   攻撃者が犠牲者と独立した通信経路を確立
•   犠牲者間のメッセージを中継
•   犠牲者に直接対話していると思わせる
•   犠牲者の間のメッセージを横取り(盗聴)
•   別のメッセージを差し挟む (改竄)
•   HTTPS, SSH, IPSEC, PPTP
Man-in-the-Middle Attack (2)
SSH Client                               SSH Server




   Connection                           Connection


 Authentication                        Authentication


   Transport                             Transport

    TCP/IP                                TCP/IP

                  Normal SSH Session
Man-in-the-Middle Attack (3)
                                                             SSH Server
SSH Client
                            MITM




   Connection            Connection       Connection        Connection


 Authentication         Authentication   Authentication    Authentication


   Transport              Transport        Transport         Transport

    TCP/IP                 TCP/IP           TCP/IP            TCP/IP

             SSH Session with an Active Man-in-the-Middle Attack
Man-in-the-Middle Attack (4)
中間者になる為の手法
LOCAL AREA NETWORK:
   – ARP poisoning, DNS spoofing
   – STP mangling, Port stealing
FROM LOCAL TO REMOTE (through a gateway)
   – ARP poisoning, DNS spoofing, DHCP spoofing
   – ICMP redirection, IRDP spoofing, route mangling
REMOTE:
   – DNS poisoning, traffic tunneling, route mangling
WIRERESS:
   – Access Point Reassociation
Man-in-the-Middle Attack (5)
中間者になった後の攻撃手法
• Injection
• Key Manipulation
• Downgrade attack
MITM Attack の実演
MITM Attack の実演(1)
• JSchをSSHサーバーとして振舞えるように改造
• プログラムは Scala で記述
• http://github.com/ymnk/man-in-the-middle-attack/tree/
• 攻撃者は中間者の位置にいることを仮定
• ホスト認証をないがしろにすると通信の盗聴、改
  竄が成功すること等を確認
MITM Attack の実演(2)
Client               MITM                Server
           接続要求                接続要求



         バージョン番号通知           バージョン番号通知

     鍵交換, 暗号化情報の交換          鍵交換, 暗号化情報の交換
     ホスト認証                  ホスト認証


         セッション暗号化,            セッション暗号化,
         ユーザー認証      平文       ユーザー認証

         データ通信                データ通信
実演
まとめ
まとめ
•   ホスト鍵を受け入れるときは慎重に
•   パスワード認証はさける
•   公開鍵認証を使う
•   SSH1プロトコルは設定で使えないようにする
ありがとうございました
Q&A

More Related Content

What's hot

あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 
InfluxDB IOx Tech Talks: Replication, Durability and Subscriptions in InfluxD...
InfluxDB IOx Tech Talks: Replication, Durability and Subscriptions in InfluxD...InfluxDB IOx Tech Talks: Replication, Durability and Subscriptions in InfluxD...
InfluxDB IOx Tech Talks: Replication, Durability and Subscriptions in InfluxD...InfluxData
 
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
「Oracle Database + Java + Linux」環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1「Oracle Database + Java + Linux」環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1Shogo Wakayama
 
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウYoichi Kawasaki
 
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016Nagato Kasaki
 
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライドElasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド崇介 藤井
 
Understanding oracle rac internals part 1 - slides
Understanding oracle rac internals   part 1 - slidesUnderstanding oracle rac internals   part 1 - slides
Understanding oracle rac internals part 1 - slidesMohamed Farouk
 
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)J-Stream Inc.
 
DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所hdais
 
Oracle RAC - New Generation
Oracle RAC - New GenerationOracle RAC - New Generation
Oracle RAC - New GenerationAnil Nair
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本Takahiro YAMADA
 
Troubleshooting Tips and Tricks for Database 19c - Sangam 2019
Troubleshooting Tips and Tricks for Database 19c - Sangam 2019Troubleshooting Tips and Tricks for Database 19c - Sangam 2019
Troubleshooting Tips and Tricks for Database 19c - Sangam 2019Sandesh Rao
 
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~Ryota Watabe
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Yoshinori Matsunobu
 
Tanel Poder - Performance stories from Exadata Migrations
Tanel Poder - Performance stories from Exadata MigrationsTanel Poder - Performance stories from Exadata Migrations
Tanel Poder - Performance stories from Exadata MigrationsTanel Poder
 
Oracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsOracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsAnil Nair
 

What's hot (20)

あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
InfluxDB IOx Tech Talks: Replication, Durability and Subscriptions in InfluxD...
InfluxDB IOx Tech Talks: Replication, Durability and Subscriptions in InfluxD...InfluxDB IOx Tech Talks: Replication, Durability and Subscriptions in InfluxD...
InfluxDB IOx Tech Talks: Replication, Durability and Subscriptions in InfluxD...
 
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
「Oracle Database + Java + Linux」環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1「Oracle Database + Java + Linux」環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
 
PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習
 
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
 
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
 
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライドElasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド
 
Understanding oracle rac internals part 1 - slides
Understanding oracle rac internals   part 1 - slidesUnderstanding oracle rac internals   part 1 - slides
Understanding oracle rac internals part 1 - slides
 
Neutron qos overview
Neutron qos overviewNeutron qos overview
Neutron qos overview
 
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)
 
DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所
 
Oracle RAC - New Generation
Oracle RAC - New GenerationOracle RAC - New Generation
Oracle RAC - New Generation
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
 
Redis at LINE
Redis at LINERedis at LINE
Redis at LINE
 
Troubleshooting Tips and Tricks for Database 19c - Sangam 2019
Troubleshooting Tips and Tricks for Database 19c - Sangam 2019Troubleshooting Tips and Tricks for Database 19c - Sangam 2019
Troubleshooting Tips and Tricks for Database 19c - Sangam 2019
 
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
 
Tanel Poder - Performance stories from Exadata Migrations
Tanel Poder - Performance stories from Exadata MigrationsTanel Poder - Performance stories from Exadata Migrations
Tanel Poder - Performance stories from Exadata Migrations
 
Oracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsOracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret Internals
 
Hadoop入門
Hadoop入門Hadoop入門
Hadoop入門
 

Similar to Man-in-the-Middle Attack for SSH with Scala and JSch

OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門土岐 孝平
 
大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク
大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク
大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンクCODE BLUE
 
アクセス・ログ取得システム導入の考察(完全版)
アクセス・ログ取得システム導入の考察(完全版)アクセス・ログ取得システム導入の考察(完全版)
アクセス・ログ取得システム導入の考察(完全版)Fusion Reactor LLC
 
Sensibleを試してみた@FxOSコードリーディングミートアップ#16
Sensibleを試してみた@FxOSコードリーディングミートアップ#16Sensibleを試してみた@FxOSコードリーディングミートアップ#16
Sensibleを試してみた@FxOSコードリーディングミートアップ#16Hayato Hiratori
 
#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -Takashi Takizawa
 
MBSD_Cybersecurity_Challenges_2017_最終審査会_発表スライド
MBSD_Cybersecurity_Challenges_2017_最終審査会_発表スライドMBSD_Cybersecurity_Challenges_2017_最終審査会_発表スライド
MBSD_Cybersecurity_Challenges_2017_最終審査会_発表スライドYoshinori Hayashi
 
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話Hibino Hisashi
 
OSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツールOSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツールIsao Takaesu
 
ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」AdvancedTechNight
 
ブロケード FC ファブリックスイッチ オペレーション講座(後編)
ブロケード FC  ファブリックスイッチ オペレーション講座(後編)ブロケード FC  ファブリックスイッチ オペレーション講座(後編)
ブロケード FC ファブリックスイッチ オペレーション講座(後編)Brocade
 
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点Kuniyasu Suzaki
 
Azureの上におとりを置いて、世界中から攻撃される様子を観察した話
Azureの上におとりを置いて、世界中から攻撃される様子を観察した話Azureの上におとりを置いて、世界中から攻撃される様子を観察した話
Azureの上におとりを置いて、世界中から攻撃される様子を観察した話Ryuki Yoshimatsu
 
シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議Shinra_Technologies
 
ただしくHTTPSを設定しよう!
ただしくHTTPSを設定しよう!ただしくHTTPSを設定しよう!
ただしくHTTPSを設定しよう!IIJ
 
図解で理解するvetKD
図解で理解するvetKD図解で理解するvetKD
図解で理解するvetKDryoo toku
 
PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料Yasuo Ohgaki
 

Similar to Man-in-the-Middle Attack for SSH with Scala and JSch (20)

OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門
 
大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク
大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク
大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク
 
アクセス・ログ取得システム導入の考察(完全版)
アクセス・ログ取得システム導入の考察(完全版)アクセス・ログ取得システム導入の考察(完全版)
アクセス・ログ取得システム導入の考察(完全版)
 
Sensibleを試してみた@FxOSコードリーディングミートアップ#16
Sensibleを試してみた@FxOSコードリーディングミートアップ#16Sensibleを試してみた@FxOSコードリーディングミートアップ#16
Sensibleを試してみた@FxOSコードリーディングミートアップ#16
 
#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -
 
SPDYの話
SPDYの話SPDYの話
SPDYの話
 
MBSD_Cybersecurity_Challenges_2017_最終審査会_発表スライド
MBSD_Cybersecurity_Challenges_2017_最終審査会_発表スライドMBSD_Cybersecurity_Challenges_2017_最終審査会_発表スライド
MBSD_Cybersecurity_Challenges_2017_最終審査会_発表スライド
 
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
 
OSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツールOSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツール
 
ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」
 
ブロケード FC ファブリックスイッチ オペレーション講座(後編)
ブロケード FC  ファブリックスイッチ オペレーション講座(後編)ブロケード FC  ファブリックスイッチ オペレーション講座(後編)
ブロケード FC ファブリックスイッチ オペレーション講座(後編)
 
2015-ShowNetステージ-BGPFlowspec
2015-ShowNetステージ-BGPFlowspec2015-ShowNetステージ-BGPFlowspec
2015-ShowNetステージ-BGPFlowspec
 
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点
 
SSH力をつけよう
SSH力をつけようSSH力をつけよう
SSH力をつけよう
 
Azureの上におとりを置いて、世界中から攻撃される様子を観察した話
Azureの上におとりを置いて、世界中から攻撃される様子を観察した話Azureの上におとりを置いて、世界中から攻撃される様子を観察した話
Azureの上におとりを置いて、世界中から攻撃される様子を観察した話
 
Hyperledger Fabric 1.0 概要
Hyperledger Fabric 1.0 概要Hyperledger Fabric 1.0 概要
Hyperledger Fabric 1.0 概要
 
シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議
 
ただしくHTTPSを設定しよう!
ただしくHTTPSを設定しよう!ただしくHTTPSを設定しよう!
ただしくHTTPSを設定しよう!
 
図解で理解するvetKD
図解で理解するvetKD図解で理解するvetKD
図解で理解するvetKD
 
PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料
 

Recently uploaded

Specified skilled worker of Engineer Specialist in Humanities International S...
Specified skilled worker of Engineer Specialist in Humanities International S...Specified skilled worker of Engineer Specialist in Humanities International S...
Specified skilled worker of Engineer Specialist in Humanities International S...oganekyokoi
 
Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...oganekyokoi
 
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)NoriakiAndo
 
TEAMIN Education Service Overview_20240407
TEAMIN Education Service Overview_20240407TEAMIN Education Service Overview_20240407
TEAMIN Education Service Overview_20240407yukisuga3
 
東京工業大学 環境・社会理工学院 高校生・受験生向け 説明資料 2024年4月分
東京工業大学 環境・社会理工学院 高校生・受験生向け 説明資料 2024年4月分東京工業大学 環境・社会理工学院 高校生・受験生向け 説明資料 2024年4月分
東京工業大学 環境・社会理工学院 高校生・受験生向け 説明資料 2024年4月分Tokyo Institute of Technology
 
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...yutakashikano1984
 
The first time I used CANVA to create a slide document.
The first time I used CANVA to create a slide document.The first time I used CANVA to create a slide document.
The first time I used CANVA to create a slide document.oganekyokoi
 

Recently uploaded (7)

Specified skilled worker of Engineer Specialist in Humanities International S...
Specified skilled worker of Engineer Specialist in Humanities International S...Specified skilled worker of Engineer Specialist in Humanities International S...
Specified skilled worker of Engineer Specialist in Humanities International S...
 
Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...
 
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
 
TEAMIN Education Service Overview_20240407
TEAMIN Education Service Overview_20240407TEAMIN Education Service Overview_20240407
TEAMIN Education Service Overview_20240407
 
東京工業大学 環境・社会理工学院 高校生・受験生向け 説明資料 2024年4月分
東京工業大学 環境・社会理工学院 高校生・受験生向け 説明資料 2024年4月分東京工業大学 環境・社会理工学院 高校生・受験生向け 説明資料 2024年4月分
東京工業大学 環境・社会理工学院 高校生・受験生向け 説明資料 2024年4月分
 
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
 
The first time I used CANVA to create a slide document.
The first time I used CANVA to create a slide document.The first time I used CANVA to create a slide document.
The first time I used CANVA to create a slide document.
 

Man-in-the-Middle Attack for SSH with Scala and JSch

  • 1. Scala と JSch を使った Man-in-the-Middle Attack の実演 ~SSHを安全に使うために~ ymnk 第1回東北情報セキュリティ勉強会(2009/08/01)
  • 2. 自己紹介(1) • 山中淳彦(ymnk) • 株式会社ジェイクラフト (JCraft,Inc.) • Java • 最近は、Scala • Scala勉強会@東北 • Eclipse.org の Platform Project で committer • でも、普段は emacs でプログラムを書いてます
  • 3. 自己紹介(2) • ymnkの書いたソフトがBoeing 787へ搭載 • http://www.jcraft.com/news/06.18.2009pr.html
  • 4. 内容 • 自己紹介 • SSHとは • SSH2クライアント JSch • Man-in-the-Middle Attack • MITM Attack の実演 • まとめ
  • 6. SSHとは(1) • Secure Shell(secsh) • Wikipedia: “Secure Shell” から – 暗号や認証の技術を利用して、安全にリモートコン ピュータと通信するためのプロトコル。パスワードなど の認証部分を含むすべてのネットワーク上の通信が 暗号化される。 • リモートログイン、scp、sftp、port-fowarding • SSH1(脆弱性や制限あり)、SSH2 SSHは、SSH社の登録商標(米国)です
  • 7. SSHとは(2) • 1995年、 Tatu Ylönen がフリーウェアとして第 一版をリリース(SSH1) • 瞬く間に世界中にひろまる • 同年12月、 Ylönen がSSH社を設立 →ソースは非公開に • 1996年、SSH社が SSH2を設計・実装 • 1999年、有志がフリーな頃のコードを元にfork →のちの OpenSSH • 2000年、OpenSSH が SSH2に対応 SSHは、SSH社の登録商標(米国)です
  • 8. SSHとは(3) • RFC4250: Assigned Numbers • RFC4251: Protocol Architecture • RFC4252: Authentication Protocol • RFC4253: Transport Layer Protocol • RFC4254: Connection Protocol • RFC4256: Generic Message Exchange Auth • RFC4344: Transport Layer Encryption Modes • RFC4419: DH Group Exchange for Transport Layer • RFC4462: GSSAPI Authentication and Key Exchange • RFC4335 、RFC4716、RFC4819、RFC4255 • DRAFT: SSH File Transfer Protocol SSHは、SSH社の登録商標(米国)です
  • 9. SSHとは(4) SSH Client SSH Server 接続要求 バージョン番号通知 鍵交換, 暗号化情報の交換, ホスト認証 セッション暗号化, ユーザー認証 データ通信
  • 11. SSH2クライアント JSch (1) • JSch(Java Secure Channel) • JCraft,Inc. 単独で開発 • SSH2のクライアント側を実装 – shell, exec, scp, sftp, port-forwarding • J2SE(1.4以降)、J2ME CDC・CLDC(MIDP2.0) • 修正BSDライセンス • Eclipse(3.0以降), NetBeans(5.0以降)に同梱 • http://www.apache.org/licenses/exports/
  • 12. SSH2クライアント JSch (2) • 開発開始: 2003年1月 • 関連する自製ソフトウェア – JZlib – JCTerm – JCTerm Plug-in for Eclipse – SFtp Plug-in for Eclipse – CVS-SSH2 Plug-in for Eclipse
  • 14. Man-in-the-Middle Attack (1) • 中間者攻撃, bucket-bridge attack, MITM • 暗号通信を盗聴したり介入したりする手法 • 攻撃者が犠牲者と独立した通信経路を確立 • 犠牲者間のメッセージを中継 • 犠牲者に直接対話していると思わせる • 犠牲者の間のメッセージを横取り(盗聴) • 別のメッセージを差し挟む (改竄) • HTTPS, SSH, IPSEC, PPTP
  • 15. Man-in-the-Middle Attack (2) SSH Client SSH Server Connection Connection Authentication Authentication Transport Transport TCP/IP TCP/IP Normal SSH Session
  • 16. Man-in-the-Middle Attack (3) SSH Server SSH Client MITM Connection Connection Connection Connection Authentication Authentication Authentication Authentication Transport Transport Transport Transport TCP/IP TCP/IP TCP/IP TCP/IP SSH Session with an Active Man-in-the-Middle Attack
  • 17. Man-in-the-Middle Attack (4) 中間者になる為の手法 LOCAL AREA NETWORK: – ARP poisoning, DNS spoofing – STP mangling, Port stealing FROM LOCAL TO REMOTE (through a gateway) – ARP poisoning, DNS spoofing, DHCP spoofing – ICMP redirection, IRDP spoofing, route mangling REMOTE: – DNS poisoning, traffic tunneling, route mangling WIRERESS: – Access Point Reassociation
  • 18. Man-in-the-Middle Attack (5) 中間者になった後の攻撃手法 • Injection • Key Manipulation • Downgrade attack
  • 20. MITM Attack の実演(1) • JSchをSSHサーバーとして振舞えるように改造 • プログラムは Scala で記述 • http://github.com/ymnk/man-in-the-middle-attack/tree/ • 攻撃者は中間者の位置にいることを仮定 • ホスト認証をないがしろにすると通信の盗聴、改 竄が成功すること等を確認
  • 21. MITM Attack の実演(2) Client MITM Server 接続要求 接続要求 バージョン番号通知 バージョン番号通知 鍵交換, 暗号化情報の交換 鍵交換, 暗号化情報の交換 ホスト認証 ホスト認証 セッション暗号化, セッション暗号化, ユーザー認証 平文 ユーザー認証 データ通信 データ通信
  • 24. まとめ • ホスト鍵を受け入れるときは慎重に • パスワード認証はさける • 公開鍵認証を使う • SSH1プロトコルは設定で使えないようにする
  • 26. Q&A