-
Webのセキュリティを攻撃者視点で楽しく学ぶ話
- 2024年10月4日
- セキュリティ
1. なぜWebセキュリティを学ぶのか
みなさん認識されているかと思いますが、改めてWebセキュリティを学ぶ必要性について確認していきたいと思います。
セキュリティ脅威は増加の一途をたどる
セキュリティ脅威は年々増加しています。2023年には、個人情報漏洩や紛失事故の件数が過去最多を記録し、その数は175件、流出・紛失した個人情報は4,090万人分に上りました。
2023年の「個人情報漏えい・紛失事故」が年間最多 件数175件、流出・紛失情報も最多の4,090万人分
Webアプリケーションにおけるセキュリティ対策が不十分だと、データ漏洩やサイバー攻撃のリスクが大幅に高まります。Webエンジニアは、アプリケーションの設計、実装、運用のすべての段階でセキュリティを考慮する責任があります。
こうした脅威は、実際のサービスにも影響を及ぼしています。例えば、最近では人気サービス「ニコニコ動画」が大規模な障害を経験し、復旧に1ヶ月以上かかる可能性が報じられています。
ニコ動・障害、復旧まで1カ月かかる可能性も…再構築に「デスマーチ」心配の声
セキュリティ対策の甘さが招くこと
セキュリティ対策が適切でないと
などを引き起こす可能性があります。
そして、それらのインシデントは、
などといった、広範な影響を及ぼすことに繋がりかねません 😱
💡 The adage is true that the security systems have to win every time, the attacker only has to win once. (セキュリティ・システムは常勝を義務づけられ、攻撃者は一度勝つだけで良いという格言は的を射てる) by ケビン・ミトニック
一度の事故によって大きな損害を生むことがあるため、セキュリティ対策の継続的学習は大切です。
このようなリスクを踏まえると、セキュリティ対策の重要性が一層明確になります。
しかし、効果的な防御策を講じるためには、まず攻撃者がどのような手法でシステムを狙ってくるのかを理解することが不可欠です。
攻撃の仕組みを知ることで、より堅牢なセキュリティ対策を構築する土台を築くことができます。
2. 学習ツール紹介
攻撃を実際にしてみた経験はありますか?
どう攻撃が通るのか、実際にやってみたいと思いませんか?
それならやってみればいいじゃない、ということで PortSwigger の Web Security Academy を使ってみました。
Web Security Academyとは?
PortSwigger社によって提供されている無料のオンライン学習プラットフォームのこと。
Webセキュリティに関して、包括的なトレーニングと教育リソースが提供されています。
Web Security Academy Free, online web security training from the creators of Burp Suite
コンテンツ構成
- コンテンツ
脆弱性の種類ごとに、トレーニングコンテンツが提供されます。
各コンテンツは、
- 説明
- 脆弱性の説明と、その脆弱性を利用した攻撃について知る
- ラボを解く
- 脆弱性の仕込まれたサイトに対し、その脆弱性を利用して攻撃をする
- フラグの取得、もしくは攻撃が通れば成功となる
といった構成。
知識として得てから、実践してみることで理解をより深めることができます。
- 説明
- 難易度
- APPRENTICE(見習い)
- PRACTITIONER (中級者向け)
- EXPERT (上級者向け)
3. いざ、受講!
受講時の注意点
- 普段使いしているブラウザとは別のブラウザを使う
- 通信のログを確認したりするので、通信の履歴が混在すると見にくい e.g.) firefoxかchromeなど
- Burp Suiteの無料版で解けない問題がある
- ほかのツールを使う or 有料版を買う
手始めに、概念的にも理解しやすいパストラバーサルから開始してみました。
(今回は脆弱性そのものの概念等は省くので、おさらいしたい方はリンクから確認してください)
トレーニング開始!
まずはどのような脆弱性なのか?について説明があります。
すべて英語なので、「deepl拡張機能などを駆使して翻訳」 or 「自力でがんばる」 で対応します。
説明を読み終えたら、ラボで実践!
商品画像表示について脆弱性があるとのことなので、
その脆弱性を利用した攻撃を行い /etc/passwd
のファイルを取得することが今回の課題です。
ファイルが取得できたら、ラボクリアとなります。
さっそくラボを見てみましょう!
ECサイトが用意されています。(ちょっと変な商品が売っていますね…😦)
実践にあたって、PortSwigger社提供の Burp Suite というWebのテストツールを使います
(PortSwigger製なのでコンテンツガイドでもBurpを勧めてきますが、ほかの方法でも勿論OK)
Burp suiteで商品画像取得時の通信を確認し、
リクエストを編集したり再送信することのできる Repeater
という機能に送ります。
GETリクエストを下図のように編集して、送信すると
/etc/passwd
ファイルの一部が取得できました。
取得できたと同時に、ラボ側では解決の文字が表示されます🎉
概念は理解したものの、実際に攻撃って言われてもそもそも何から始めたらいいかわからない…
そんなときは、動画で方法を学べます(手順通りやってもうまくいかないときがあるため注意)
ラボを解くときのおすすめのやり方
- まずは試す、考えて試してみる、思いつきでどんどん試す
- 思いつかなければ、コンテンツ内のガイドラインからヒントを得る
- それでも無理なら、コンテンツ内の参考動画を見る
- どうしてもクリアできなければ調べる
- ガイドライン通り実施してもうまくいかないときがあるため
write-up <サービス名>
で調べると、過去に問題を解いた人の答えが見つかるかも
ほかのコンテンツ紹介
まだまだコンテンツはたくさんあります。
2020年11月9日現在では、20のトピックと191のラボが提供されています。
PortSwigger Web Security Academy: Business Logic Lab – Write-up
とのこと。
最近のトピックとしては下図のように追加されています。
ラーニングパスは用意されていますが、順序の指定はないため、気になるトピックだけ実施することも可能です。
ちなみにGraphQLはこんな感じで、結構盛りだくさんでした。
参考:GraphQL
4. まとめ
実際に攻撃を試してしまうと、
- 法的処罰を受ける可能性がある(スクリプトキディはダメ、絶対)
- システムの運営元に大きな損害を生んでしまう恐れがある
といったリスクがありますが、
Web Security Academyを使うことで、気軽にゲーム感覚でWebセキュリティを学習できました。
攻撃者の視点や手法がわかると、セキュアなコーディングや設定を行うときに役立つと思いますので、ご興味があればぜひお試しください!
5.さいごに
ソリューションウェアでは、さまざまな分野の案件を幅広く持ち合わせておりスキルアップには最適の環境です。
自身のスキル向上に悩んでいる方、エンジニアとしてもう一皮むけたいと考えている方、私たちと一緒に働きませんか?
「まずはカジュアルにお話だけ」、というのも可能ですので気になる方は応募フォームよりお申込みください。
この記事を書いた人 : ブログチーム
AWS bluebird css CSV docker docker compose electron ES6 es2015 Git Heroku ITコンサルティング JavaScript justinmind less mongoDB Node.js php PostgreSQL Private Space Promise React react-router reactjs Salesforce scss Selenium Builder selenium IDE Selenium WebDriver stylus TypeScript VirtualBox VisualStudioCode vue vuejs webpack システム開発プロジェクト セキュリティ ワイヤーフレーム 上流工程 卒FIT 帳票 要件定義 設計 電力小売業界