はじめに
セキュリティの勉強として、
脆弱なサーバーを立てて攻撃を試してみたいと思い、
最初は「ラズベリーパイでサーバーを立てるのが王道なのかな?」というところから調べ始めました。
ラズベリーパイなら
- 常時起動できる
- 物理サーバーっぽい
- セキュリティ学習に向いていそう
そんなイメージがあったからです。
ラズベリーパイじゃないとダメ?と気づいた話
調べていくうちに分かったのは、
- Raspberry Pi Pico はサーバー用途には向かない
- ちゃんとやるなら Raspberry Pi 4/5 クラスが必要
- 周辺機器やSDカードも含めると意外とコストがかかる
という現実でした。
「いつかは物理サーバーも触ってみたいけど、
今はなるべく節約しつつ学びたい」
そう考えて、
まずは仮想環境でやってみようと方針転換しました。
仮想マシンでDVWAに挑戦 → でも不安定
次に選んだのは、
- UTM
- Ubuntu
- Kali Linux
- DVWA(Damn Vulnerable Web Application)
という、いかにも「セキュリティ学習らしい構成」。
ただ、Apple Silicon + 仮想マシン2台同時起動は
正直かなり不安定で、VMが何度も落ちました。
「勉強したいのに、環境トラブルで消耗する…」
そんな状態になってしまいました。
Dockerに切り替えて一気に安定した
そこで最終的に選んだのが Docker です。
Docker Desktopはすでに入っていたので、
docker run -d -p 8080:80 vulnerables/web-dvwaこれだけで、
DVWAがブラウザから起動しました。
http://localhost:8080UTMもUbuntuも不要。
一気に安定して、学習に集中できる環境になりました。
実際にできたこと(DVWA)
Docker版DVWAで、以下を実際に試しました。
- SQL Injection
- Command Injection
たとえば Command Injection では、
127.0.0.1; whoamiを入力すると、
www-dataと返ってきました。
これは
Webアプリ経由で、サーバー上のOSコマンドがwww-data ユーザー権限で実行されている
という状態です。
「危ないってこういうことか…」と、
頭だけでなく体感として理解できました。
今日の学び
今日一番大きかった学びは、
- DVWAは「やられサーバー」ではなく
脆弱なWebアプリが載った実験台だということ - 攻撃とは、HTTPリクエストの中身を細工すること
- Kaliを使うかどうかより
どこからアクセスしているか(立ち位置)が大事だということ
でした。
おわりに
ラズベリーパイから調べ始めて、
仮想マシンで悩んで、
最終的にDockerに落ち着きました。
遠回りしたようで、
自分の今のレベルと環境に合った選択ができた
良い一日だったと思います。
次は、DVWAのSecurity Levelを
Medium / High に上げて、
「どう防がれているか」を見ていく予定です。

コメント