Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ここだけはおさえておきたいセキュリティテスト基本の基

Jumpei Ito
September 30, 2022

 ここだけはおさえておきたいセキュリティテスト基本の基

NINNO Tech Fest #8
新潟のエンジニアよ。NINNOに集まれ。今回のテーマは「ぜったいテストに出る!セキュリティ秋期講習」

https://ninno-tech-fest.connpass.com/event/255947/

Jumpei Ito

September 30, 2022
Tweet

More Decks by Jumpei Ito

Other Decks in Technology

Transcript

  1. 自己紹介 2 • 伊藤 潤平(@jp_110) • ウイングアーク1st株式会社 • ソフトウェアプロセス&品質改善部 マネージャー

    • 社外活動 • Scrum Fest Niigata 実行委員会 代表 • JaSST Niigata 実行委員 • SigSQAメンバー • YouTube翻訳活動 • ブログ • https://medium.com/@sadonosake • 趣味 • 日本酒(新潟限定) • 筋トレ(健康志向) AgileTD Zone Keynotes in Japanese
  2. page No. 3 Copyright © 2022 WingArc1st Inc. All Rights

    Reserved. テスト設計ってどんなイメージ? 実装 受け入れテスト 要求定義 要件定義 システムテスト 単体テスト 統合テスト みんな大好きV字モデル 基本設計 詳細設計
  3. page No. 4 Copyright © 2022 WingArc1st Inc. All Rights

    Reserved. 俺流 –テストレベルとテストタイプへのマッピング– 受け入れテスト ユースケーステスト 脆弱性診断 システムテスト ◦◦機能テスト 信頼性テスト 統合テスト APIテスト セキュリティテスト 単体テスト ユニットテスト 静的解析 テ ス ト レ ベ ル テストタイプ 要件 機能 非機能 品質特性
  4. page No. 5 Copyright © 2022 WingArc1st Inc. All Rights

    Reserved. Cross Site Scripting(クロスサイトスクリプティング) 悪意を持ったユーザがフォームなどを通してJavaScriptなどのスクリプ トコードを入力し、そのスクリプト内容がそのままHTMLに埋め込まれ、 ページを閲覧したコンピュータでスクリプトが実行され、Cookieの盗聴 や改ざんなどが行われる攻撃。 SQL Injection(SQLインジェクション) SQLデータベースを利用しているWebシステムで、テキストボックスや パラメータにSQL文を挿入し、Webアプリケーションへ不正アクセスす る攻撃。入力値やパラメータの処理の脆弱性をついた攻撃。 OS Command Injection(OSコマンドの挿入) WebアプリケーションのパラメータにOSコマンドを挿入し、Webサー バーの脆弱性をついて、Webシステムの不正アクセス、情報の取得、 Webシステムのダウンなどを行う攻撃。 脆弱性攻撃の例
  5. page No. 6 Copyright © 2022 WingArc1st Inc. All Rights

    Reserved. Forceful Browsing(強制ブラウジング) Webサーバーなどの設定の不備などをついて、正当な認証プロセスを通 らずに、Webシステムの特定のページにアクセスする攻撃。Cookieの改 竄などと組み合わせることで、サーバーの内部情報の取得などが行われ ることが多い。 Session Hijacking(セッション・ハイジャック) 他のユーザーのSession IDやSession Cookieを盗んで、悪意のあるユー ザーがそのユーザーであるかのようになりすまし、Webシステムへアク セスする攻撃。 脆弱性攻撃の例
  6. page No. 7 Copyright © 2022 WingArc1st Inc. All Rights

    Reserved. Buffer Overflow(バッファオーバーフロー) 確保したメモリ領域を超えてデータが入力された場合に、データがあふ れてプログラムが暴走してしまうこと。バッファオーバーランとも呼ば れる。バッファオーバーフロー攻撃とは、バッファに対して許容量を超 えるデータを送り付けてシステムを機能停止にしたり、意図的にバッ ファをオーバーフローさせ、あふれ出たデータを実行させてしまう攻撃。 OSでよく見つかるセキュリティ・ホール。 Path Traversal(パスの乗り越え) アプリケーションに渡されるパラメータを基にファイルの読み込みを 行っているシステムなどで、渡されるパラメータを改竄することで、シ ステム内のパスワードファイルや設定ファイルなどにアクセスする攻撃。 脆弱性攻撃の例
  7. page No. 8 Copyright © 2022 WingArc1st Inc. All Rights

    Reserved. パラメータ改ざん 悪意のあるユーザーが、WebアプリケーションのURLパラメータや hidden、Cookieなどを入れた値を書き換えてサーバに送り返す攻撃。こ れにより価格などの改ざんや他人へのなりすまし攻撃を受ける可能性が ある。 Backdoor & Debug Options(バックドア・デバッグオプション) デバッグ用に用意された開発者が正当な手続きなしでシステムにアクセ スするための手段で、この裏口からのアクセス方法を利用して悪意のあ るユーザーがWebアプリケーションに不正アクセスする攻撃。 Client Side Comment(クライアント側コメント) クライアント側に配信されたWebコンテンツ内のコメント欄に書かれた システム情報を改竄し、Webアプリケーションへの不正アクセスや情報 の改竄を行う攻撃。 脆弱性攻撃の例
  8. page No. 9 Copyright © 2022 WingArc1st Inc. All Rights

    Reserved. いつテストするか? 受け入れテスト ユースケーステスト 脆弱性診断 システムテスト ◦◦機能テスト 信頼性テスト 統合テスト APIテスト セキュリティテスト 単体テスト ユニットテスト 静的解析 テ ス ト レ ベ ル テストタイプ 要件 機能 非機能 品質特性
  9. page No. 10 Copyright © 2022 WingArc1st Inc. All Rights

    Reserved. 単体テスト(設計レビュー)時 • Cookie、セッションIDの有効範囲の確認 • セッション・ハイジャックの脆弱性がないか • パラメータの取得方法および利用方法の確認 • パラメータ改竄の脆弱性がないか • テキストボックスおよびパラメータをそのままSQL文に挿入していないか • SQLインジェクションの脆弱性がないか • フォームで送信された値をそのまま変数に代入していないか • クロスサイトスクリプティングの脆弱性がないか • デバッグ用のアカウントが設定されていないか • バックドアの脆弱性がないか • クライアントのコメントにシステム情報が書かれていないか • クライアントコメントの脆弱性がないか
  10. page No. 11 Copyright © 2022 WingArc1st Inc. All Rights

    Reserved. 統合テスト時 • Cookieに書かれている情報の確認 • 情報を確認し、変更してのアクセスの実施 • パラメータの改竄の実施 • パラメータを変更することで、情報が書き変わったりしないか • SQLインジェクションの実施 • テキストボックスやパラメータ部分にSQL文を挿入して不正アクセス やDBの改竄が起きないかどうか • クロスサイトスクリプティングの実施 • フォーム内にJavaScriptsやActiveScriptsを埋め込んで情報を取得する ことができるか
  11. page No. 12 Copyright © 2022 WingArc1st Inc. All Rights

    Reserved. システムテスト時 • サーバー設定などについても検証範囲 • 確認しないと、強制ブラウジングやOSコマンドインジェクションなど の脆弱性が発見される可能性がある • OS、ミドルウェアのバージョンの確認 • セキュリティホールのあるバージョンを利用していないか • httpd.confなどの設定の確認 • ディレクトリインデックスなどが表示されることはないか。 • アクセス権が正しく設定されているか • OSのトラスティの確認 • 不必要なトラスティが設定されていないか
  12. page No. 13 Copyright © 2022 WingArc1st Inc. All Rights

    Reserved. ツール 無料ツール ・OWASP ZAP 有償サービス ・脆弱性診断サービス