ハッキング学習~概論編~
Web系のエンジニアとして仕事し始めて早3年。
大抵のものは作れるようになりましたが、セキュリティ周りの知識がまだまだ足りてないなぁと感じる最近です。
そこでUdmeyにある人気講座である阿部ひろき先生のホワイトハッカー入門を受講し、学習したことざっくりまとめました。
様々な攻撃方法や対策手法を学んだことで、セキュアなアプリケーションの設計やコーディングができるエンジニアに一歩近づけたような気がします。
ホワイトハッカーとは
攻撃者としてのハッカーと同等のスキルを持ち、それを防御に使うハッカーのことです。
持っているスキルは攻撃者が使うものと同じなので、クライアントの同意と強い倫理観が必要となります。
情報セキュリティ基礎
そもそも「情報セキュリティ」って何だろう
情報及びインフラ環境が健全で、情報やサービスといった情報資産が盗難・改ざん・破壊といった事象の可能性が低いもしくは許容範囲内である状況のことです。
許容範囲はセキュリティーポリシーで決めます。
セキュリティの3大要件
認証や暗号化などの全てのセキュリティ技術は以下の3つの要素を守るために存在します。
Confidentiality: 機密性 その情報が第三者からみられない
Integrity: 完全性 その情報が作成されてからユーザーにわたるまでに改ざんされない
Availability: 可用性 正当なユーザーがその情報を使おうと思ったときに使える
情報セキュリティの防御概論
情報セキュリティの防御には以下の3つのフェーズが存在します。
予防フェーズ
運用フェーズ
対処フェーズ
それぞれ見ていきます。
予防フェーズ
守るべき情報資産の選定やラベリング、リスク評価、防御方法の検討を行います。
また、機器が必要なら導入します。
防御方法の検討の中で重要なのが、多層防御となっているかどうかです。
多層防御とは、セキュリティの構成要素である6層をフルに使って防御を行うという考え方です。
情報資産を一番奥の階層に置いた場合、そこまで攻撃を通すには人〜アプリケーションの5層を貫く必要があります。1層1層それぞれで防御を行うことにより、奥までたどり着く確率を下げることができるのです。
※セキュリティの構成要素
- 人:セキュリティポリシー、手順など
- 物理:物理ロック、監視カメラなど
- ネットワーク:ルータ、ファイアウォール、NIDSなど
- ホスト:OSの設定、パッチ、HIDSなど
- アプリケーション:セキュアプログラムなど
- 情報資産:暗号化、データ損失防止など
運用フェーズ
通常運用時におけるセキュリティレベルの維持が目的です。具体的には監視と分析を行い、レポーティングし、それを元に評価、検証を行います。誤検知や過剰検知、見落としに気をつけましょう。
対処フェーズ
迅速かつ効率的にセキュリティインシデントを特定し、阻止し、回復することが目的です。
そのためには、対応手順や対応するための組織は予め定められていなければなりません。
セキュリティ攻撃(ハッキング)概論
ハッキングの手順
ハッキングの手順は以下の5つのフェーズに分けることができます。
1.偵察(Reconnaissance)
公開されている情報を中心に収集する。
2.スキャニング(Scanning)
偵察フェーズで得られた情報を元に、ネットワークやサーバーに直接アクセスして情報を収集する。
3.アクセス権の取得(Gaining Access)
ターゲットのサーバーにアクセスする。脆弱性を攻撃したり、外部への認証機能を利用する。権限昇格もこのフェーズに含まれる。
4.アクセスの維持(Maintaining Access)
サーバーに自由にアクセスできるようにする。
5.痕跡の消去(Clearing Tracks)
侵入した痕跡を消去し、後からの追跡を困難にする。
ターゲット別主な攻撃方法
攻撃方法はターゲットにより異なります。主なターゲットと攻撃手法は以下の通りです。
対ホスト[1]
サーバーへの攻撃
後処理
マルウェア
対ネットワーク
DoS攻撃
ネットワーク盗聴
対アプリケーション
Webアプリケーション攻撃
その他
各種偽装
ソーシャルエンジニアリング
次からより具体的なハッキング手法について触れていきます。
-
サービスする役割のコンピュータのこと。サーバーのことだと思っておけばいい。Webサーバーの名前をホスト名と呼んだりするので割と曖昧なものである。 ↩︎
Discussion