OWASP(Open Web Application Security Project)(読み方:オワスプ)とは、ソフトウェアやWebアプリケーションのセキュリティ分野の研究やガイドラインの作成、脆弱性診断ツールの開発、イベント開催など多岐にわたる活動をしているオープンソース・ソフトウェアコミュニティです。アメリカ合衆国メリーランド州に本部が存在しNPO(非営利)団体である、The OWASP Foundationが全世界のOWASPの活動を支えています。 世界各地に支部(チャプター)があり日本にも存在します。
「OWASP Japan」は日本の支部(チャプター)であり国内全域における、数々のプロジェクトへの参画による貢献や設立、日本語への翻訳など全国でのセキュリティ啓発活動を行なっています。OWASP Japanが主催する「OWASP Night/Day」はローカルチャプターミーティングとして2〜3ヶ月に一度開催されるイベントです。
その他に、関西地域は「OWASP Kansai」、愛媛県名古屋市では「OWASP Nagoya」、沖縄県では「OWASP Okinawa」などが存在し各地域で活動を行っております。
OWASPのプロジェクトにより2010年9月頃から開発され、
2020年6月時点のバージョンは2.9.0です。
OWASP ZAP(オワスプ・ザップ)とは、OWASPが提供しているオープンソースのWebアプリケーション脆弱性診断ツールです。無料で利用できるオープンソースソフトウェア(OSS)としてGithub(リポジトリ名:zaproxy)にソースコードが公開されています。クライアントソフトとしても提供されており以下の手順でサイトからダウンロードをしパソコンにインストールをして利用できます。
OWASP ZAPの公式サイトにアクセスをしダウンロードが出来ます。クライアントソフトは利用しているOSによってWindowsOS、MacOS、LinuxOS、などクロスプラットフォームで利用可能です。サーバの場合は仮想サーバのDockerに対応しておりCUI(コマンドプロンプト、PowerShellなどを利用しコマンド入力による操作の画面)でDocker専用のコマンドを入力しインストールをして起動し利用します。
MacOSの場合は.dmgファイルを開いてアプリケーションフォルダにインストールをし通常のアプリケーション同様に起動し利用します。インストール画面が終了したら下の図の画面を開くことが出来ます。WindowsOSでも環境は異なりますが通常のインストール方法と同じ流れで実行し同様の画面を開くことが出来ます。
上の画面はMacOSのスタート画面で各診断メニューやアラートの画面、Webサイトを登録する画面などに分けられたGUI(グラフィカルユーザインターフェース)になっています。
簡易スキャンは対象のWebサイトのURLを入力エリアに入れて「攻撃」ボタンを押すだけで脆弱性診断が始まります。対象のWebサイト/Webアプリケーションに大量のリクエスト(コンピュータ同士の通信における要求やメッセージ)を送信し結果をアラート(警告)画面で確認することが出来ます。脆弱性が見つかった場合は画面一番左下の「アラート」のフラグアイコンの数値が変わるので赤色に近い色の数値が多ければ、深刻な脆弱性が発見されたことが多く確認できます。詳細はアラート画面でリスト化されて見ることができるため見つかった脆弱性と内容を確認することが出来ます。
動的スキャンは対象のWebサイトのURLを入力エリアに入れて検証したいブラウザを選択し「Launch Browser」を押すとインストールされているブラウザが立ち上がり脆弱性診断が始まります。実際にブラウザで操作をしながら機能が動作した際の診断などが可能で動的なWebアプリケーションの脆弱性診断で利用します。
動的スキャンは簡易スキャンで検査をしたところに対して静的スキャンで大量のリクエストを送り込み攻撃をします。サイトの部分的(ページやディレクトリ単位)に過剰な負荷をかけることで静的スキャンで発見できなかった脆弱性を顕在化させるために実施します。
ここまで準備が整うと脆弱性診断を試してみたいと思うでしょう。良いサンプルサイトがあります。OWASPから提供されている意図的に脆弱性を入れている練習用のWebアプリケーションで、診断をすると脆弱性が検知されOWASP ZAPのアラートリストに結果が表示されます。以下に具体的なWebアプリケーションをご紹介します。
【参考】OWASP Juice Shop(※クリックするとサイトに移動します):擬似サイトなので買い物はできませんが、クリックの挙動やページ読み込み等よく観察すると違和感があり、時間が経過するとエラー表示のアラートが出現します。
OWASPが提供している脆弱性診断練習用サイトです。意図的に脆弱性を存在させているので、脆弱性ツール診断をすると脆弱性が発見された結果が出てきます。OWASP ZAPをインストールしこのサイトを診断することで手軽に脆弱性診断が可能です。実際の診断結果を見たことはない方は、この方法をお試しいただくと脆弱性診断のイメージが湧いてくると思います。
OWASP BWAのトップページから色々な脆弱性が意図的に存在させている練習用のWebアプリケーションに移動できます。(【参考】OWASP BWAインストールファイルのダウンロードサイト)
OWASP BWAとは仮想マシン上で動作する、意図的に脆弱性が存在するWebアプリケーションを多数稼働させるために、クライアントマシンにインストールをして環境を構築するものです。仮想マシンとはパソコン内に仮想環境(擬似的に複数のパソコンのイメージ⇒今回の場合は1つ)を作成し、その環境内でインストールをしたアプリケーションを稼働させることです。OWASP BWAはVMwareイメージで配布されているが、VirtualBoxでも使用可能です。従ってパソコン内で仮想環境構築のためにホスト型のVirtualBoxもインストールする必要があり、VirtualBoxとOWASP BWAのファイル容量も非常に大きくダウンロードに時間がかかります。また仮想環境構築からOWASP BWAインストールするまでに長い工程がありますので、脆弱性診断をする環境構築までにかなりの時間がかかります。
しかし時間をかけて行うだけのことはあり、OWASP BWAの特徴は、様々なWebアプリケーションのカテゴリに分類され、それに伴い脆弱性診断のトレーニングをより詳しく実施でき、それぞれのカテゴリに合わせたセキュリティに対して学ぶことやテストをすることが可能です。
具体的なカテゴリは以下のように分類されます。
カテゴリ | 内容 |
---|---|
トレーニング・アプリケーション | 特定の脆弱性ごとに学べるようガイダンスがある |
現実的で意図的に脆弱なアプリケーション | 危険性が無く一見、安全に見えても実は幅広く脆弱性を持っている |
実際のアプリケーションの古いバージョン | 旧バージョンのオープンソースなど、既知の脆弱性が発見される |
ツールテストのためのアプリケーション | ツール診断のテストをするためのサイト |
ページもしくは小さなアプリケーションのデモ | 特定の脆弱性をピックアップした小規模サイト |
OWASPデモ・アプリケーション | OWASPのデモサイトで脆弱性は無い |
OWASP Top10とはOWASPが定期的に発行しているセキュリティのレポートのことです。(【原本】OWASP Top Ten【日本語訳】OWASP Top 10 - 2017 最も重大なウェブアプリケーションリスクトップ10)
The OWASP Foundationにより、世界中の利用実態に基づいて悪用のしやすさ、検知のしやすさ、および影響についての共通認識の推計を組み合わせた上で、選択し、優先順位付けされたセキュリティ脅威のTop10となります。OWASP Top10の主要な目的は、開発者、デザイナー、アーキテクト、マネージャ、組織に、最も一般的かつ最も重要なWebアプリケーションセキュリティの弱点の影響について様々なガイダンスを提供することで、Webアプリケーション、モバイルアプリケーション、WebAPI、IoT向けなどのガイダンスが提供されています。その他にも非常に参考になる情報が豊富で、これから重要なテーマとなるAutomated Threat Handbookも公開されています。昨年、OWASPの成果物はGithub(The OWASP Foundation)で積極的に公開されるようになり、便利なサイトと変わっています。
Webアプリケーション向けTop10のリスク要素となります。このTop10はこれだけ守れば良いというものではなく特に注意を要するリスクとして示されています。下の表の記号は脅威の順位と追加・変更があった西暦年を意味し、項目はセキュリティ脅威の内容となります。
記号 | 項目 | 備考 |
---|---|---|
A1:2017 | インジェクション | |
A2:2017 | 認証の不備 | |
A3:2017 | 機微な情報の露出 | |
A4:2017 | XML 外部エンティティ参照 (XXE) | 新たに2017で追加された項目 |
A5:2017 | アクセス制御の不備 | |
A6:2017 | 不適切なセキュリティ設定 | |
A7:2017 | クロスサイトスクリプティング (XSS) | |
A8:2017 | 安全でないデシリアライゼーション | 新たに2017で追加された項目 |
A9:2017 | 既知の脆弱性のあるコンポーネントの使用 | |
A10:2017 | 不十分なロギングとモニタリング |
新たに2017で追加された項目 不十分なロギングとモニタリングは、 脆弱性診断では検査出来ない項目であるため 多くのシステムで実践されていないケースを良く見かけます。 |
Top 10以外に考慮すべきリスク要素は他に数多くあり、WebアプリケーションおよびAPIの脆弱性を効果的に見つける方法に関するガイダンスは、OWASP ASVS、OWASP TestingGuideに記載されています。
モバイルアプリケーション向けTop 10リスク要素となります。このTop10はこれだけ守れば良いというものではなく特に注意を要するリスクとして示されています。記号はモバイルアプリケーションのセキュリティリスクの順位を意味します。
記号 | 英語表記 | 翻訳 |
---|---|---|
M1 | Improper Platform Usage | プラットフォームの不適切な利用 |
M2 | Insecure Data Storage | 安全でないデータストレージ |
M3 | Insecure Communication | 安全でない通信 |
M4 | Insecure Authentication | 安全でない認証 |
M5 | Insufficient Cryptography | 不十分な暗号化 |
M6 | Insecure Authorization | 安全でない認可制御 |
M7 | Client Code Quality | クライアントコードの品質 |
M8 | Code Tampering | コード改ざん |
M9 | Reverse Engineering | リバースエンジニアリング |
M10 | Extraneous Functionality | 余計な機能 |
Top 10以外に考慮すべきリスク要素は他に数多くあり、モバイルアプリケーションの脆弱性を効果的に見つける方法に関するガイダンスは、OWASP Mobile ApplicationSecurity Verification Standard、OWASP Mobile Security Testing Guide (MSTG)に記載されています。
Web API向けTop 10リスク要素となります。このTop10はこれだけ守れば良いというものではなく特に注意を要するリスクとして示されています。記号はAPIセキュリティリスクの順位と策定された西暦年数の数値を意味します。
記号 | 英語表記 | 翻訳 |
---|---|---|
API1:2019 | Broken Object Level Authorization | オブジェクトレベルの認証の不備 |
API2:2019 | Broken User Authentication | ユーザ認可制御の不備 |
API3:2019 | Excessive Data Exposure | 過度なデータの露出 |
API4:2019 | Lack of Resources & Rate Limiting | リソースの不足とレート制限 |
API5:2019 | Broken Function Level Authorization | 機能レレベルの認証の不備 |
API6:2019 | Mass Assignment | 大量な割当 |
API7:2019 | Security Misconfiguration | セキュリティの設定ミス |
API8:2019 | Injection | インジェクション |
API9:2019 | Improper Assets Management | 不十分なアセットの管理 |
API10:2019 | Insufficient Logging & Monitoring | 不十分なロギングとモニタリング |
Top 10以外に考慮すべきリスク要素は他に数多くあり、WebアプリケーションおよびAPIの脆弱性を効果的に見つける方法に関するガイダンスは、OWASP ASVS、OWASP TestingGuideに記載されています。
OWASP Testing Guideは、The OWASP Testing Projectの長年の活動を通じて開発された世界的にも評価されている包括的なテスティング・フレームワークです。このガイドは、Webアプリケーションのテストにおいて"何を"、"何故"、"いつ"、"どこで"、"どうやって"を理解することを助けることを目指した内容となっています。
現代社会は、ソフトウェアが社会経済に多くの利益と影響を及ぼしています。ソフトウェアは、ただ動くソフトウェアではなく、より信頼されるソフトウェアでなければなりません。ソフトウェアのセキュリティは、その開発者に委ねられており、ソフトウェア開発ライフサイクル全体を通して、マネジメントされる必要があります。残念ながら日本語訳はまだ存在しませんが、本ガイドには、その実践的な考え方が詳しく解説してあり一読に値します。
OWASP Testing Guide v4では下記の項目のテスト手法について説明しています。
「情報収集」「コンフィグとデプロイの管理」「ID管理」「認証」「許可」「セッション管理」「入力値検証」「エラーハンドリング」「弱い暗号」「ビジネスロジック」「クライアントテスト」に大きく分類されます。
【参考】OWASP Testing Guide v4 Table of Contents
独立行政法人 情報処理推進機構(IPA)から安全なWebサイトの作り方の資料が公開されております。Webアプリケーションのセキュリティ実装、Webサイトの安全性向上のための取り組み、失敗例などについて書かれており、セキュアなWebアプリケーションを開発する際には目を通しておくべきドキュメントです。
【出典】安全なウェブサイトの作り方:独立行政法人 情報処理推進機構(IPA)セキュリティセンター
【原本】OWASP Application Security Verification Standard:OWASP ASVS Project、Application Security Verification Standard 4.0(PDF)
ASVS(Application Security Verification Standard/ASVS:アプリケーションセキュリティ検証標準)はOWASP ASVS Projectの活動を通じて開発された、最新のWebアプリケーションとWebサービスの設計、開発、テストに必要な機能的および非機能的なセキュリティコントロールの定義に焦点を当てたセキュリティ要件とコントロールのフレームワークとなります。特に、モダンなWebアプリケーション(HTML5,JavaScript,CSS,DOM,SPA,PWA)の設計、開発、テストをする方には一読の価値が御座います。最新版は、他のガイドラインやフレームワーク(CWE※1, NIST※2)との関連も示されており、より深く理解するのに大変便利な内容に構成されております。
またWebアプリケーションだけでなく、モバイル向けのセキュリティ検証標準も公開されております。(OWASP Mobile ApplicationSecurity Verification Standard)
※1:CWE(Common Weakness Enumeration)とは共通脆弱性タイプ一覧のことです。ソフトウェアにおけるセキュリティ上の弱点(脆弱性)の種類を識別するための共通の基準を目指しています。(【参考】共通脆弱性タイプ一覧CWE概説:独立行政法人 情報処理推進機構(IPA))
※2:NIST(National Institute of Standards and Technology)とは、政府や企業の経営者、セキュリティ担当者などが、自組織の情報セキュリティ対策を向上させることに役立つ資料として、世界的に評価の高い海外の情報セキュリティ関連文書等の翻訳・調査研究の成果を一般に公開していることです。(【参考】セキュリティ関連NIST文書:独立行政法人 情報処理推進機構(IPA))
ASVSには以下3つのセキュリティレベルを定義しています。国内では、医療系データの取り扱いに関する具体的なガイドラインがありませんが、欧米では人権に関わるデータが含まれることから、ASVS Level 3のセキュリティレベルが求められます。
検証レベル | 内容 | 説明 |
---|---|---|
ASVS Level 1 | 最低保障レベル | 機密データを取り扱わないようなアプリケーション |
ASVS Level 2 | 推奨保障レベル | 機密データの扱いがあり、保護が求められる、多くのアプリケーションに該当 |
ASVS Level 3 | 最高保障レベル | もっとも重要なアプリケーションで、高機密トランザクションが含まれる |
ASVSは、アーキテクチャ、設計、脅威モデリングにはじまり、全部で14の検証項目から構成されます。セキュリティの原理原則は、脅威に対しどう対抗(防御)するかであり、設計段階でどんな脅威が該当するか理解し、評価することは、その後の防御の検討に重要な指針をもたらします。
記号 | 要件(英語表記) | 翻訳 |
---|---|---|
V1 | Architecture, Design and Threat Modeling Requirements | アーキテクチャ、設計、脅威モデリングに関する要件 |
V2 | Authentication Verification Requirements | 認証に関する検証要件 |
V3 | Session Management Verification Requirements | セッション管理に関する要件 |
V4 | Access Control Verification Requirements | アクセス制御に関する要件 |
V5 | Validation, Sanitization and Encoding Verification Requirements | バリデーション、サニタイジング(エスケープ)、 エンコーディングに関する要件 |
V6 | Stored Cryptography Verification Requirements | 保存時の暗号化に関する検証要件 |
V7 | Error Handling and Logging Verification Requirements | エラー処理、ログ記録に関する要件 |
V8 | Data Protection Verification Requirements | データの保護に関する要件 |
V9 | Communications Verification Requirements | 通信(コミュニケーション)に関する要件 |
V10 | Malicious Code Verification Requirements | 悪意のあるコードに関する要件 |
V11 | Business Logic Verification Requirements | ビジネスロジックに関する要件 |
V12 | File and Resources Verification Requirements | ファイル、リソースに関する要件 |
V13 | API and Web Service Verification Requirements | API、Webサービスに関する要件 |
V14 | Configuration Verification Requirements | 構成に関する要件 |
アイティーエムの脆弱性診断サービスは、OWASP Top 10, OWASP Mobile Top 10, OWASP Testing Guideに則り自社オリジナルの診断項目を加え、これらを組み合わせた診断項目により提供しております。
特に脆弱性手動診断サービス、モバイルアプリ向け脆弱性手動診断サービスに関しては、OWASP ZAPのようなツール診断ではカバーできない箇所まで診断範囲を広げ、セキュリティエンジニアが柔軟に対応することでツールでは発見できなかった脆弱性の対策も可能です。
Webアプリケーション脆弱性診断は、自社オリジナルとOWASP Top 10, OWASP Testing Guideを採用し、モバイルアプリケーションの脆弱性診断はOWASP Mobile Top 10, OWASP Mobile Security Testing Guideを採用しております。各アプリケーションの分類に関する検証基準と診断項目は下の表をご覧下さい。
アプリケーション分類 | 検証標準 | 診断項目 |
---|---|---|
Webアプリケーション/サーバ | OWASP ASVS |
OPWAS Top 10 OWASP Testing Guide 自社オリジナル |
Webアプリケーション/クライアント | OWASP ASVS | OWASP Testing Guide |
WebAPI | OWASP ASVS |
OWASP Top 10/OWASP API Top 10 OWASP Testing Guide 自社オリジナル |
モバイルアプリケーション | OWASP MASVS |
OWASP Mobile Top 10 OWASP Mobile Security Testing Guide |
セキュリティエンジニア手動によるOWASP-Web-Testing Guide/OWASP Top 10に基づくWebアプリケーション/Web APIの脆弱性診断サービスです。自社保有の脆弱性診断方法論による実施と管理を徹底し、お客様のご要望に応じてIPA診断項目やクライアントサイド診断などにも柔軟に対応可能です。
【手動診断プラン】50,000 円(1遷移)〜
【Webアプリケーション手動診断プラン】35,000円/URL(最低単位10URL〜)
当社で提供する脆弱性診断サービスの具体例の一部で、様々なWebサイト/WebアプリケーションのタイプやWeb/APIやシステム構成に分けて考え実施します。
ツール診断によるOWASP Mobile Top10に基づくモバイルアプリ向け脆弱性診断サービスです。模擬ハッキング手法に基づく実用的な診断で、金融アプリなど多くのプロジェクトで蓄積された独自のチェックリストは14分類51項目があり綿密な診断を実施します。また、自動診断ツールを使用した静的と動的解析で、エンジニアによる診断結果の分析によるレポートは最短5営業日で作成可能です。
【ツール診断(AndroidまたはiOS)】300,000 円(1App/ID/回)
【ツール診断・追加ロール(AndroidまたはiOS)】150,000 円(1App/ID/回)
診断項目にOWASP Mobile Top10を採用したモバイルアプリ向け脆弱性手動診断サービスです。セキュリティエンジニア手動による静的と動的解析による診断で実際のハッキング手法を用いた診断で攻撃の成功の可否まで確認をします。また、わかりやすく実用性の高いレポートと、診断結果に対する対応ガイドだけではなく、指摘した脆弱性が正しく直っているかまで再度診断でフォローします。
【手動診断(AndroidまたはiOS)】1,000,000 円/式〜
【報告会 + フォローアップ】160,000 円/式
当社で提供する脆弱性診断サービスの具体例の一部で、様々なWebサイト/WebアプリケーションのタイプやWeb/APIやシステム構成に分けて考え実施します。
お客さまのネットワーク/サーバー、Webアプリケーションの脆弱性を洗い出し、攻撃者からの悪意のある攻撃や情報漏えい事故などのリスクを未然に回避するためのセキュリティ診断サービスです。他社が設計・構築したシステムでも診断可能ですので、システムの懸念点を抱えているお客さまに広くご提供可能です。お客さまが抱えている課題に合わせて、 SiteScan2.0、WebSiteScan、WebSiteScanProの3つのシリーズよりお選びいただけます。
モバイルアプリは、小売、銀行、旅行、ファストフードなど様々な業種で利用が広がっています。特に昨今はモバイル端末を使ったキャッシュレス決済が注目を集めています。モバイルデバイスの利用用途が拡大し、個人情報や現金同様の支払い機能を有することによって、サイバー犯罪の対象としてハッキングの脅威は高まり、モバイルアプリに絡んだ不正利用や不正アプリによる被害が増加し続けています。
アイティーエムは、モバイルデバイスの新たなる領域への拡大と、それに伴うモバイルアプリへの求められる強固なセキュリティ対策としてモバイルアプリ向けセキュリティサービスを提供します。
Contact
サービス、記事、サイトに関するお問い合わせはお気軽にどうぞ
メールでのご質問やお問い合わせなどを承ります。