ネットワークセキュリティの基礎~攻撃パターンとその対策~ 研修コースに参加してみた
以前にもレポートした 仮想環境で学ぶセキュリティ実践 というコース同様に、今回はネットワーク、オンラインを経由した攻撃にどんなものがあるのか、攻撃パターンを知るだけでなく、体験ができました。
うーむ、いちいち恐るべき攻撃であり、セキュリティは他人事ではない感が強く感じられる内容でした。。
ネットワークエンジニアだけでなく、開発・運用問わず、システムに携わっているITエンジニアは体験したほうがよい怖さに思います。
(ホラー映画を見るより、コワい?)
では、どんな内容だったのか、レポートします!!
もくじ
コース情報
想定している受講者 | PCおよびサーバー、ネットワークに関する基礎知識があること |
受講目標 | 基本的な攻撃手法と安全性を確保するための手法について理解する |
講師紹介
インフラと言えば、 新谷 泰英 さん です。
このレポートでは 15回目 のご登場となり、最多となりました! 本当にありがとうございます!!
どうすれば技術を身につけられるか、理解できるか、研究しつづけるインフラ系の人気トレーナー
ということで、いつものように「新谷と申します」という簡単な自己紹介で、コーススタートです。
ネットワークセキュリティの重要性
言わずもがなですが、セキュリティは鎖のようなもので、ネットワークだけ強化しても、他が弱ければ、意味がありません。
漏洩したパスワード
先程のスライドにあったパスワード流出について、少しだけ掘り下げます。
- これはB2Cのパスワード
- 人間の自然な振る舞いだと、こうなってしまう
- 定期更新は必要だが、定期更新させると、結局、こうなってしまう
- ちなみに `qwerty` はキーボード配列の左から右
- “パスワードランキング 20**” のように検索すると同じように出てくる
- “Password Dictionary” はセキュリティ担保する側の辞書
最近の事例
- 米ヤフーで全30億以上のアカウントが流出
- Mirai というbotを使った DDoS攻撃
- 大量のデータを送りつけて回線を埋めてしまう
- ソースコードも公開されています
- https://github.com/jgamblin/Mirai-Source-Code
最近のパスワード流出の桁数が全く違ってしまったように感じるのは私だけでしょうか。
ちなみに、個人情報流出などのインシデント一覧があったはずと思って、ググるとありました。
内容を見ると、2週間に一度ぐらいの頻度で報告されています。。SIer が名指しになっているケースもあり、他人事ではありません。。。
この中にもありますが、日本では宅ふぁいる便のパスワード流出、欧米ではFacebook/Instagram でパスワードを平文で保存していたと、ニュースになっていましたね。
ネットワークセキュリティの基本要素
- 弱いところをつくのがハッカー
- 弱いところを作らないようにするのがディフェンス
- ちなみに可用性は稼働時間で見られます
このあたりは先日の “仮想環境で学ぶセキュリティ実践” でも触れられていましたね。
研修コースに参加してみた
脅威とその対策
ここで、セキュリティを脅かす脅威を分類して、それに対する対策をまとめて頂きました。
なお、こういったことが起こっても復旧できるようにするのがディザスタリカバリです。
ネットワークを経由した主な攻撃パターン
全体の話から、ここからはインターネット上のシステムに対する攻撃にフォーカスします。
その攻撃の手順をまず解説いただきました。
- 攻撃対象をみつける
- ポートスキャン: IPアドレス
- 見つけたら予備調査
- ポートスキャン: ポート番号
- 脆弱性の調査
- 弱いところ / 侵入しやすそうなところを探す
- 侵入
- 管理権限の奪取
- バッファオーバーフロー
- バックドアの設置
では、実際に手順をなぞり、ポートスキャン、脆弱性の調査をどのように行っているのか、確かめてみます。
ポートスキャン
7 | Application | |
6 | ||
5 | ||
4 | TCP | UDP | ポート番号 (約65,000) |
3 | IP | IPアドレス (約37億) |
2 | LAN/WAN | MAC Address | |
1 |
- ポートすべてを調査するのは、人間がやるには途方も無いけど、いまの 2.5GHz のスペックからすると、そんな大変なことではない
- なので、ポートスキャンはよく行われる
- つまり、ポートスキャンが増えたなら、攻撃の予兆とも言える
対策
- 対策としては 2 つ
- ファイアウォールを使ってポートスキャンそのものをさせない -> 普通の通信も遮断してしまうのでNG
- IPS / IDS を使いましょう
- IDS (Intrusion Detection System 侵入検知システム) で攻撃の予兆を発見
- 事前にSSLアクセラレータなどでファイアウォール通過後に暗号通信 https を解除
- パケットの中をスキャンして、ウィルスのパターンを検知
- 検知パターンの更新が必要
- 例えば、数字のみ (IPアドレス) でのアクセスならはじく
- IPS (Intrusion Prevention System 侵入防止システム) で対策・防御
- IDS (Intrusion Detection System 侵入検知システム) で攻撃の予兆を発見
本来なら IDS だけで予兆を発見して防げば良いのですが、複雑になってしまうそうです。
そこで、発見だけにフォーカスをあてると出来るとのことでした。
実際やってみましょう
- nmap の使い方
$ ip a
$ nmap -sn [IPアドレス]
# 繋がっている端末がでてくる
# prefix 値に注意 /24
$ nmap -A [IPアドレス]
# 特定の端末に対してスキャンする
- 結果
$ nmap -A 192.168.17.70
Starting Nmap 5.51 ( http://nmap.org ) at 2019-02-04 16:15 JST
Nmap scan report for 192.168.17.70
Host is up (0.025s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.3 (protocol 2.0)
| ssh-hostkey: 1024 e2:57:6d:27:65:f2:21:6e:2c:a6:d8:a0:73:8e:36:90 (DSA)
|_2048 a7:b7:d6:a3:39:2e:65:9e:15:9b:3f:c1:81:a7:fa:92 (RSA)
80/tcp open http Apache httpd 2.2.15 ((CentOS))
| http-methods: Potentially risky methods: TRACE
|_See http://nmap.org/nsedoc/scripts/http-methods.html
|_http-title: lab-server
443/tcp closed https
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 18.99 seconds
この情報だけでも色々とアタックできそうな箇所、OpenSSH 5.3, Apache httpd 2.2.15 などがわかります。
ポートスキャンで攻撃対象が見つかれば、それに応じて、パスワードクラックやバッファオーバーフロー、DoS 攻撃などが行われます。
パスワードクラック
よく行われる攻撃、パスワードクラックのやり方と、どんな攻撃なのか、やってみます。
- パスワード
- 基本的にはパスワードは暗号化されてDBにストアされている
- 不可逆なので復号はムリという前提
- パスワードクラックのやり方
- ソーシャルエンジニアリング
- ダメ元で推測や勘などでやる
- 辞書攻撃
- パスワードディクショナリ
- 数十万のパスワードリストを使う
- ブルートフォース攻撃
- 総当たりですべての文字の組み合わせを試す
- ただ総当たりだと時間が掛かりすぎるので、短縮化できるレインボーテーブルなどを使う
- Windows XPなど古いシステムは2~3分で破れる
- 認証回避
- IDとパスワードを入力せずに、認証そのものをパスする
- SQLインジェクション、盗聴など
- パスワードをいかに強化しても、それをかいくぐればいいという考え方
- ソーシャルエンジニアリング
最後の認証回避で出てきた 盗聴 とは、ログイン情報が送信されたときの通信を盗む、もしくはログイン後に発行されるセッションIDを盗む、どちらかで行うものです。
なので、盗聴されても中がわからないように、暗号化通信 (SSL/TLS [詳しくは後ほど] ) を推奨しましょう。
SQLインジェクション
認証回避の典型例である、SQL インジェクションを実際にやってみます。
以前にも、データベースのコマンドで実行していたコースがありましたが、今回は実際にWebページのログインフォームからやってみます。
- ユーザ名:
OR 'a'='a
- パスワード: なんでもOK
なにこれ、コワい。。。 単純な攻撃なのでコストもそれほど掛かりませんね。。
詳細は他のコースでも解説していますので、ぜひ、そちらをご覧ください!
研修コースに参加してみた
対策
では、なぜ、ファイアウォールではこのSQLインジェクション対策ができないのでしょうか。
- ファイアウォールはIPアドレスとポート、手紙でいうと宛名しか見ていない
- 中身 (パケット) を見ていない
- そもそもパケット分割しているので、集約しているとパンクする
- いまや https 通信でパケットは暗号化されている
- Web通信に限った Web Apprication Framework (WAF) ならできる
結論、アプリケーション側で対策し、WAF (後述) を入れるという対策が有効です。
バッファオーバーフロー
SQLインジェクションにつづき、認証回避のメジャーなやり方、バッファオーバーフローについて、どのような攻撃なのか、解説いただきました。
- ある文字数に制限のある名前のフォームがあったとする
- 制限値を超えて入力
- 超えた値は、想定していないメモリ (スタック) に保存される
- これを利用するのがバッファオーバーフロー
防御する仕組み
今回挙がったような攻撃に対して、どのようにディフェンスする仕組みを構築するのか、アインウィルスやセキュリティ教育など、様々に紹介いただきました。
ここでは、その中からいくつか絞って紹介します。
- SSL/TLS
- いわゆる https 通信 (通信の暗号化)
- NetScape社が開発
- SSL 3 まで開発したところで、インターネットでの標準に移行
- TLS (Transport Layer Security) となった
- いまは TLS 1.2 が多い (1.3 がRFCに)
- WAF (Web application Firewall)
- Web Server を保護するもの
- ファイアウォールと併用
- ブラウザからみてファイアウォールの後ろに置かれる
- Webサーバにきたパケットを連結させて検査する
- 検査してOKならWebサーバにパケットを渡す
- パターン検知しているので、更新が必要
- CDNを使ったディフェンス
- 構成
- [インターネット] <-> [CDN (世界各地にある)] <-> [Webサーバ]
- akamai, fastly, AWS Cloud Front など
- キャッシュとしての機能だけでなく、最近はセキュリティ対策としても有効
- DDoS対策
- 攻撃を分散できる
- その他、https 通信、サーバ証明書管理、WAFもやってくれる
- 構成
CDNでは最近 fastly さんの事例が増えてますね。
dev.to は、感動ものの速さでしたよね。。。カックイイなぁ。
この CDN を解説いただいたところで、このコースは修了しました。
まとめ
以前にもレポートした 仮想環境で学ぶセキュリティ実践 というコース同様に、今回はネットワーク、オンラインを経由した攻撃にどんなものがあるのか、パターンとあわせて体験ができました。
コース中では、これ以外にも攻撃手法を試していて、講師用PCを対象として medusa を使ったブルートフォースや、バッファオーバーフロー、DoS攻撃などもデモしていただきました。
うーむ、いちいち恐るべき攻撃であり、セキュリティは他人事ではない感が強く感じられる内容でした。。
ネットワークエンジニアだけでなく、開発・運用問わず、システムに携わっているITエンジニアは体験したほうがよい怖さに思います。
label SE カレッジの無料見学、資料請求などお問い合わせはこちらから!!
label SEカレッジを詳しく知りたいという方はこちらから !!
IT専門の定額制研修 月額28,000円 ~/ 1社 で IT研修 制度を導入できます。
年間 670 講座をほぼ毎日開催中!!
SEプラスにしかないコンテンツや、研修サービスの運営情報を発信しています。