LoginSignup
16
22

More than 5 years have passed since last update.

有名なセキュリティ攻撃名おさらい

Posted at

セキュリティ研修を受けたのでメモ。

内容としては超有名な攻撃とその対策なんだけど、
これを自分の口で説明しようとすると途端に難しい。

SQLインジェクション

多分もっとも有名なやつ。SQL知っていれば説明不要なんだけど、
SQL知らない人に説明するのがちょっと難しい。

簡単に言うと、DBを操作するSQLって命令をいじる攻撃。
たとえばDBの個人情報盗んだり、データを壊したりできる。
攻撃者にとって自由にDB書けるのと同じ。

SQL
SELECT ID FROM USER
WHERE NAME = 'ここにフォーム入力値が入る'

とかだったら

SQL
SELECT ID FROM USER
WHERE NAME = '' OR 1=1 --'

とかやって全件出力させるとかできる。
UNIONとかで別テーブルの中身もごそっと見れるかもしれない。

'とか()とか--とかをエスケープしていないのが原因。

手動でエスケープする必要はなく
ParameterizedQueryとかで回避するのが一般的。
(いい感じにエスケープしてくれる)

うちのJDBCだとLIKEを使いたい時はちょっとめんどくさい。

クロスサイトスクリプティング(XSS)

クソリプではない。

たとえば記事のコメント欄など、ユーザーが投稿できる部分に
たとえばJavascriptを仕込んだりする攻撃。
cookieを盗めたりできる。
攻撃者にとっては画面を実装できるのと同じ。

対策は、特殊文字をサニタイジング(無害化)すること。
入力するときHTMLの特殊文字<>とかをバリデーションし、
出力するときエスケープする。

クロスサイトリクエストフォージェリ(CSRF)

早口言葉ではない。

攻撃者が作った別のサイトのリンクを踏ませ、
Web決済をさせたり、退会させたり。

攻撃者にとっては第三者をある程度好きに動かせるのと同じ。

第三者が絡むのがこの攻撃のめんどくさいところ。

対策
・ページトークンを発行・確認する
(最近はWebフレームワークがやってくれる)


多分この3つがWEBエンジニアが気を付けないといけない攻撃。
対策とセットで頭にいれておこう。

あとは今日はやらなかったけど、以下有名な攻撃名。

ディレクトリトラバーサル

サーバルちゃんではない。

相対パス指定../とかで、見てほしくない、
権限のない親ディレクトリとかみれちゃう。

DDos攻撃

田代砲やF5アタックの強化版・全方位版みたいな攻撃。
本質的な対策が難しい攻撃。

IoT経由のDDosが最近人気。一番有名なのがMiraiってマルウェア。
IoT持ち主はパスワードとかを工場出荷設定のままにしないのが大事。

ゼロデイ攻撃

公式が「脆弱性発見したんでアプデよろ!」って告知だしてから
会社が本当にアプデするまでのタイムラグに攻撃する手法。

ブルートフォースアタック(総当たり攻撃)

パスワードを本当にしらみつぶしで試行する。
4桁の暗証番号が0000~9999までなら、その1万回試そうという話。
コンピューターならわりと現実的な時間で終わってしまう。

パスワードリスト攻撃

Twitterのレイバン乗っ取りはこの攻撃らしい。
他で盗んだパスワードを別のサービスでも同じパスワードを使ってるか
サービス横断的に試す攻撃。

辞書攻撃

世の中で一番使われているパスワードは
123456とかpasswordとかqwertyとかそういうのらしい。
よく使われるパスワードや英単語をベースに
パスワードを手当たり次第試行する攻撃。

ランサムウェア

ランサム(Ransom)は身代金という意味。
システムを暗号化したりロックしたりして
「このPCを使いたかったらビットコイン送ってね」
などという、実利的(?)なマルウェア。

16
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
22