この回では、WebアプリやネットワークをねらうSQLインジェクション・XSS・DoS/DDoS・パスワード攻撃の仕組みと対策を学ぶよ。
Webサイトが攻撃されるって、具体的にどうやるの?
代表的なのがSQLインジェクションね。
入力欄に不正なSQL文の断片を紛れ込ませて、データベースを不正に操作したり情報を盗み出したりする攻撃よ。
対策は、入力値をそのままSQLに埋め込まず、プレースホルダを使うプリペアドステートメントが有効ですね。
そう。
入力値のチェック(サニタイジング)と合わせて、想定外の文字を無害化するのが基本よ。
XSSってのも聞いたことある!
クロスサイトスクリプティング、略してXSSね。
掲示板などの入力を悪用し、悪意あるスクリプトを他の利用者のブラウザで実行させて、Cookieやセッション情報を盗む攻撃よ。
対策は、入力された文字列をそのまま表示せず、特殊文字を無害な表記に変換するエスケープ処理が重要です。
似た名前でCSRFっていうのもありましたよねぇ?
CSRF(クロスサイトリクエストフォージェリ)ね。
ログイン中の利用者に、本人の意図しないリクエストを勝手に送らせる攻撃。
トークンを使った照合で防ぐのよ。
サイトを重くして落とす攻撃もあるよね?
DoS攻撃ね。
大量のアクセスや処理を送りつけてサーバをパンクさせ、サービスを停止させるの。
多数の乗っ取った端末から一斉に攻撃する分散型がDDoS攻撃です。
発信元が多くて防ぎにくいのが特徴ですね。
最後にパスワードを狙う攻撃。
総当たりで試すブルートフォース攻撃、よく使われる語を辞書のように試す辞書攻撃、他所で漏れたIDとパスワードの組を使い回すパスワードリスト攻撃があるわ。
使い回しは危ないってよく言われますねぇ。
その通り。
パスワードは長く複雑にして使い回さない、そして多要素認証を併用する。
一定回数間違えたらロックする仕組みも有効よ。
確認クイズ
Webアプリケーションの入力欄に不正なSQL文の断片を送り込み、データベースを不正に操作したり情報を盗み出したりする攻撃はどれか。
- クロスサイトスクリプティング
- SQLインジェクション
- DDoS攻撃
- パスワードリスト攻撃
こたえを見る
正解: 2. SQLインジェクション
SQLインジェクションは入力値に不正なSQL文を紛れ込ませてデータベースを不正操作する攻撃で、プリペアドステートメントの利用が有効な対策。クロスサイトスクリプティングは悪意あるスクリプトを他人のブラウザで実行させる攻撃、DDoS攻撃は多数の端末から大量アクセスを送りサービスを停止させる攻撃、パスワードリスト攻撃は他所で漏れたIDとパスワードの組を使い回してログインを試みる攻撃であり、いずれもデータベースにSQL文を注入する手口とは異なる。