SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
 

Was ist angesagt? (20)

MongoDB Oplog入門
MongoDB Oplog入門MongoDB Oplog入門
MongoDB Oplog入門
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
とある脆弱性の永い議論
とある脆弱性の永い議論とある脆弱性の永い議論
とある脆弱性の永い議論
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
 
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
 
第二回CTF勉強会資料
第二回CTF勉強会資料第二回CTF勉強会資料
第二回CTF勉強会資料
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモ
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
 
PWNの超入門 大和セキュリティ神戸 2018-03-25
PWNの超入門 大和セキュリティ神戸 2018-03-25PWNの超入門 大和セキュリティ神戸 2018-03-25
PWNの超入門 大和セキュリティ神戸 2018-03-25
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 

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

大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク
大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク
大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク
CODE BLUE
 
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
Hibino Hisashi
 

Ähnlich wie 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セキュリティ対談資料
 

Kürzlich hochgeladen

The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 

Kürzlich hochgeladen (7)

2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 

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