連日投稿もだいぶ軌道に乗ってきたので、今週から1週間の学習ロードマップを先に提示する事とする。
今週のロードマップ
これまでの学習を振り返ってみて、
- SQLインジェクション、XSS、CSRFと、個別の脆弱性については少しずつ理解が深まってきた。
- ただ、1つの脆弱性足がかかりに、もっと別の脆弱性に付け込んでくる!みたいな地続きのアプローチって考えた事ないな~
と、思ったので調べてみたところ、こういう一連の流れを、「侵入のキルチェーン(Kill Chain)」 とか 「サイバーキルチェーン」 っていうらしい。
今週はこれをテーマに、攻撃者がどのように標的を陥れるのか、その一連のシナリオを自分の手で再現してみることにした。単発の脆弱性学習から、シナリオベースにアップデートしてみる。
この連日投稿チャレンジについて
目的: セキュリティエンジニアとしての技術力向上
手段: シェルスクリプト作成を通じて学習
実施する事: 自動化,監視,ツール開発基礎学習など
目次
今週の学習計画:侵入シナリオ
今週は、以下の流れで攻撃者の行動をトレースし見ようと思います。
-
金曜日 (Day 28): 足がかりをみつける(コマンドインジェクション)
- まずはウェブサイトの機能に紛れ込んだ脆弱性を見つけ出し、サーバー上で任意のOSコマンドを実行できることを確認する。ここを起点にする。
-
土曜日 (Day 29): サーバーの乗っ取り(リバースシェル)
- コマンドが実行できるだけでは不便。昨日見つけた穴を利用して、攻撃対象のサーバーから自分のPCに対して接続させ、対話的なシェル(操作画面)を確立する。これでサーバーを自由に操作できる状態を目指す。
-
日曜日 (Day 30): 内部偵察(機密情報の窃取)
- サーバー内部に侵入できたら、次はウェブサーバーの設定ファイルを探し出して、中に書かれているデータベースのパスワードを盗み見る。
-
月曜日 (Day 31): 水平展開(データベースへの侵入)
- 昨日盗んだパスワードを使い、ウェブサーバーからさらに内部のデータベースサーバーへ接続。個人情報など抜き出せるか確認する。
-
火曜日 (Day 32): 再侵入の準備(バックドアの設置)
- いつまでも同じ穴から侵入できるとは限らないので、ウェブサイトに裏口を設置し、いつでも簡単に入れるようにしておく。
-
水曜日 (Day 33): 攻撃の検知(防御者への転身)
- 最終日は防御者の視点に立つ。昨日自分が設置したバックドアを、ファイル監視の仕組み(自作スクリプト)で検知できるか試す。攻撃と防御、両方の視点を持つのが狙い。
-
木曜日 (Day 34): 報告書の作成
- 今週も脆弱性診断レポートにまとめる。
まとめ
いままでの、個別の脆弱性を点で学ぶ思考から、地続きの線にしていく思考に変えてみようと思います。正直この考えが適切なのかは知らんけど。
とりあえずやってみて、セキュリティ対策における新しい視点とか、思考のプロセスが発見できたらいいな~と思ってます。