Security Index

セキュリティやソフトウェアについてのあれこれ

Hacker Oneの無料のペンテスト基礎講座 まとめ ペンテスト・バグバウンティについて勉強していきたい人におすすめ

HackerOneが公開しているペンテストの基礎講座の動画 PENTESTING BASICS VIDEO SERIES LAUNCHED ON HACKER101 のPart1~4を見たのでまとめました。

f:id:security_index:20200914212655p:plain

PENTESTING BASICS VIDEO SERIES LAUNCHED ON HACKER101

Part1 A Starters Guide to Pentesting with OWASP

内容としてはOWASP Top 10について各項目の簡単な説明とOWASP Web Security Testing Guideの説明がされています。Part 1に関しては特に目立った内容はなかったので簡単に紹介します。

OWASP Top 10は日本語版も提供されていますので内容はこちらで確認した方がわかりやすいです。

OWASPトップ10 2017日本語版

次にWeb Security Testing Guide (WSTG)について紹介されています。

Release Versionsのタブから最新のものが確認できます。

f:id:security_index:20200914220007p:plain

現状だとVersion 4.1が最新で、全475ページととてもボリュームがあります。

ペンテストを実施するときのチェックリストとして使いやすくExcelの形でまとめられたものもこちらにあるので利用できます。

f:id:security_index:20200915080847p:plain

チェックリストの内容の詳細を確認したい時にInformation Gatheringの「OTG-INFO-001」のようなIDを使ってPDFを検索することで見つけることができます。

OWASPではその他にもAPIセキュリティに特化したOWASP API Security Top 10やモバイルセキュリティのOWASP Mobile Top 10なども提供されています。

また、有志でOWASP Mobile Security Testing Guideを日本語化したものもありました。

GitHub - coky-t/owasp-mstg-ja: unofficial Japanese translation of OWASP Mobile Security Testing Guide.

Part2 Pentesting vs Bug Bounty: how is it different? How is it the same?

Part2ではペンテストとバグバウンティの違いについて紹介されています。

一番の違いはバグバウンティはインパクトを重要視するということ。

f:id:security_index:20200915081253p:plain

ペンテストでももちろんインパクトを気にするが、アプリケーション全体をカバーしたり、PCIなどのコンプライアンスの確認をしたりと依頼主のニーズを重要視する。

またペンテストではバグバウンティでは対象とならないような小さな影響の脆弱性でも伝える。

ここではOWASP Juice Shopを使ってユーザーの列挙やForgot Passwordの問題箇所の指摘、BurpSuiteでセキュアフラグの確認などが紹介されています。

参考:https://security-index.info/entry/2019/11/10/123726

ペンテスターは

  • 古いソフトウェア
  • セキュアではないメソッド
  • 平文通信
  • 暗号・プロトコル
  • 証明書の失効

などの部分も確認します。

f:id:security_index:20200915082310p:plain

またテスト対象のスコープ(テスト対象のIPのレンジやDoSは実施していいのか、Injectionは実施していいのか)の確認、テスト前に合意した内容を確認するなど基本的なことかもしれないがとても重要。

Part3 Pentesting Resources

Part3ではペンテスターのための認定(Certification)にどんなものがあるのか、無償/有償の学習プラットフォームとしてどんなものがあるのかの紹介になっています。

Certification

eLearnSecurity Junior Penetration Tester (eJPT)

f:id:security_index:20200915083759p:plain

eJPT Certification - eLearnSecurity

ペンテスターになるための最初のステップとしておすすめ。

あくまで基礎的な内容なので次のステップにいくためにはPenetration Testing Professional (PTP)のようなeLearningを受講することもできます。

Offensive Security Certified Professional (OSCP)

f:id:security_index:20200915085454p:plain

PWK and the OSCP Certification | Offensive Security

最も有名なペンテスターの認定と言ってもいいくらい有名な認定の一つ。

OSCP界隈でよく聞く言葉に「Try Harder」というのがありますが、これもOSCPがとても難易度が高いことを表していて、試験が24時間で用意されたマシンを実際に攻略していかなくてはならない。

f:id:security_index:20200916084037p:plain

とても難しいですが、とても良い認定です。

SANS GIAC Penetration Tester (GPEN)

f:id:security_index:20200916084248p:plain

GIAC Penetration Tester Certification | Cybersecurity Certification

SANSは業界内でとても有名ですが、この試験は上記の試験とは異なり実際にマシンを攻略するといったものではないです。

費用が高いのですが、SANSのトレーニングは業界のリーダーが常にアップデートされたものが提供されます。

Webアプリ向けのコース

Webアプリ向けのコースも3つほど紹介されています。

eLearnSecurity Web Application Penetration Testing (WAPT)

https://www.elearnsecurity.com/course/web_application_penetration_testing/

SANS SEC542: Web App Penetration Testing and Ethical Hacking

Web Application Penetration Testing Training | SANS SEC542

SEC542は日本でもトレーニングを開催しているようです。

(SANSのトレーニングは全てのコースが日本で開催されているわけではないです)

SANS年間スケジュール

Offensive Security Advanced Web Attacks and Exploitation (AWAE)

AWAE and the OSWE Certification | Offensive Security

OSCP同様にとても難しいコース。

OSCPは24時間の試験でしたが、こちらは48時間の試験になっています。

こちらもとても有名で業界内で認知されています。

無料の学習リソース

上記のものは有料のものでしたが、無料で学習できるものもあります。

Hacker101

f:id:security_index:20200916090257p:plain

Home | Hacker101

HackerOneが提供している無料の学習リソース。

ResourcesにFAQが用意されており、もし0からハッカー(ペンテスター)を目指すにはどうしたらいいのかなどについても書かれています。

Hacker101ではVideo LessonsとCapture the Flagが用意されています。

Video Lessonsでは、SQLインジェクション、XSS、XEEなどのWebアプリペンテストのための動画が多数用意されています。

PortSwigger Web Security Academy

f:id:security_index:20200916091140p:plain

Web Security Academy: Free Online Training from PortSwigger

こちらもSQLインジェクション、XSS、CSRF、XEEなど幅広い情報があります。

また、コースにLabが用意され、インタラクティブに学ぶことができます。

無料 + 少額の課金の学習リソース

一部の機能を無料で使えて、課金することでフルアクセスできるタイプのものを紹介します。

PentesterLab

f:id:security_index:20200916092902p:plain

PentesterLab: Learn Web Penetration Testing: The Right Way

EXERCISEのCategory:Freeを選択することで無料のコースを選択できます。

現在、無料のコースが24つありますが、Freeの場合は動画でのレクチャーなどは受けられず、テキスト形式の説明とエクササイズ用のISOファイルがダウンロードできるようです。

Apache Struts S2-052 (CVE-2017-9805)やShellshock (CVE-2014-6271)などのコースも提供されています。

f:id:security_index:20200917085830p:plain

Pro版は月額$19.99で利用できます。

TryHackMe

f:id:security_index:20200917091339p:plain

TryHackMe | Learn Cybersecurity

Linuxコマンドから丁寧にレクチャーがあるビギナーコースから、OSCPのためのコース、Webアプリのセキュリティのためのコースなど幅広くあります。

TryHackMeではステップバイステップで課題を解いていき、最後にフラグを獲得するという形で進んでいくようです。

この後紹介するCyberSecLabsやHackTheBoxと同様にOpenVPNでマシンに接続して、nmapやMetasploitを実際に利用して課題を解いていくため、実践的な技術が身に付くと思います。

f:id:security_index:20200917210434p:plain

Subscribeは月額$10で利用できます。

CyberSecLabs

f:id:security_index:20200917211034p:plain

CyberSecLabs | Home

HackerOneの動画では無料のコースはないがペンテストビギナーには良いサポートシステムがあると言っていたような気がしますが、無料のコースもありました。

Beginner Labの2つ、Challenge Labの2つ、CTF (Crypto,OSINT)が無料で利用することができます。

f:id:security_index:20200918205746p:plain

LabのWalkthroughがOffice Video WalkthroughとしてYouTubeで公開されています。

CyberSecLabs - Office - Linux [Walkthrough]

毎週木曜日に新しいLabが1つリリースされるようです。

Subscribeは月額£10.00で利用できます。

HackTheBox

f:id:security_index:20200918210553p:plain

Hack The Box :: Penetration Testing Labs

動画の中でも最も有名なものだと言われているHackTheBox。

HackTheBoxに関しては以下の記事で詳しく書いているので簡単に紹介します。

Hack The Boxを始めて1つrootを取るまでのメモ - Security Index

Hack The Boxって何?と思ったら読むブログ - Security Index

まず登録して学習を始める前にInvite Codeを見つけ出すというちょっとした課題をクリアしないといけません。

登録できれば無料でもActive Machinesと呼ばれる新しいマシン20台(うち5台が難易度がEasy)を使って学習することができます。

過去に公開されたRetired Machinesなどを利用するためにはVIP会員(月額£10.00)になる必要があります。

Retired Machinesに関してはVIP会員であれば公式のWalkthroughが提供されますし、攻略した人たちによるWalkthroughも公開されています。

英語のWalkthroughがとても多いですが、日本語のものも結構あります。

Hack The Box 日本語 Walkthrough/Writeup まとめ - Security Index

その他

OWASP Vulnerable Web Applications Directory

OWASP Vulnerable Web Applications Directory

脆弱なWebアプリケーションがまとめられています。

具体的にはOWASP Juice ShopのようなOWASP Top 10の脆弱性を含むようなセキュリティの学習用のWebアプリケーションがまとめられています。

Offline / Online / VM-ISOと分類されてまとめられており、Offlineのものであれば手元で環境構築してセキュリティのテスト/学習ができます。

またOWASP Juice ShopであればHerokuを使って簡単にセットアップできますし、公式のチュートリアルがあるので初心者でもチャレンジしやすいようになっています。

Part4 Pentest Report Writing and Best Practices

Part4では実際のペンテストレポートをもとにペンテストレポートの書き方について紹介されています。

企業で脆弱性診断を依頼したことがある人は似たようなものを見たことがあるかもですが、そうでない人はレポートがどんなものか知らない人も多いと思うので気になる部分だと思います。

ペンテストレポート

概要

NIST SP 800–115というセキュリティテストのガイドをもとにPlanning, Discovery, Attack, Reportingというステップで行い、今回行った外部ペンテスト、内部ペンテスト、Webアプリペンテストの範囲やゴールについて記述されます。

その他にも、見つけた脆弱性に関してはCVSSに基づいてスコア付けすることなど。 バグバウンティでは実際に影響が出るものがフォーカスされますが、ペンテストではインパクトの低いものでも報告されます。

f:id:security_index:20201122163647p:plain

エグゼクティブサマリ

ここではいつ、どんなテストをして、どんな結果になったのかが簡潔に書かれています。

セキュリティの長所/短所

ペンテストで見つかった長所・短所についてもレポートに含まれています。

例えば、長所であれば2要素認証が有効化されている、強いパスワードポリシーが設定されているなど。 短所はセッション固定攻撃が起こりうる、DoSを引き起こす可能性があるなど。

脆弱性サマリー

見つかった脆弱性の深刻度と数、どんな脆弱性でどう対処すれば良いのか、最終的な評価がまとめられてページもあります。

f:id:security_index:20201122163732p:plain

テクニカルファインディング

見つかった問題のより詳細な記述になります。 見つかった問題の詳細とリスク、どうやって見つけたのか、エビデンス、対処方法が項目として含まれています。

f:id:security_index:20201122164310p:plain

弱い暗号スイートが使われている、動作しているサーバー情報(IISなど)がヘッダーに含まれている、などはバグバウンティでは対象とはならないのですが、ペンテストでは深刻度は低いが指摘事項として含めます。

バグバウンティレポート

ペンテストのレポートと比較してみるためにバグバウンティのレポートも確認します。

スターバックスのXSSの脆弱性のレポートを例に見てみます。

f:id:security_index:20201122165506p:plain

書かれている内容としてはXSSがあること、どのURLが影響を受けるのか、再現方法、エビデンスのスクリーンショット、修正方法とインパクトがそれぞれ1行で記述されています。

ペンテストレポートとの大きな違いは、バグバウンティは発見者が何をやったのかのテクニカルレポートのみになっている点です。 ペンテストレポートでは、小さいな問題も含めて、マネージャに説明する必要があるのでそのための資料となっています。

ペンテストのベストプラクティス

  • 顧客にステータスのアップデートを知らせる
  • 何か問題を見つけたらすぐに顧客に知らせる
  • 顧客にテストに使っているIPアドレスを知らせる
  • プロフェッショナルとして仕事をする
  • テストの制限範囲の確認と都度確認する

顧客の環境にテストを行うので、テストの開始・終了の連絡、IPアドレスも知らせてもし何か影響があった場合にわかるようにする、テスト範囲外へテストをしてしまって顧客の環境に影響を出さないようにするなど、顧客とのコミュニケーションを適切に行ってペンテストを行うことが重要です。

最後に

Part3に書いたように多くの無料/少額で利用できる学習リソースがあるので活用していきたいですね!

こういった海外のサービスがほとんどですが、最近ではFlatt SecurityがFlatt Security Learning Platformというクラウド型学習プラットフォームを提供開始したようです。

f:id:security_index:20201122175437p:plain

現在は、個人向けではなく企業向けのようですが国産のセキュリティ学習サービスが利用できるようになると学習しやすくて良さそうです!


ホワイトハッカー入門

Twitter (@security_index)