Open2

ハッキングAPI Web APIを攻撃から守るためのテスト技法 を読んで

やまやまやまやま
  • 認証と認可 p22

    • 認証...ユーザーの身元を確認するプロセス
    • 認可...ある特定の条件に基づいてリソースへのアクセス権限を与えること
  • Dos攻撃...Denial of Service Attackの略称でアクセスが集中することでサーバがパンクすることを利用し、悪意を持ってサーバに大量のデータを送りつけるサイバー攻撃。

  • 一般的なAPI脆弱性 3章

    • 情報漏洩
    • 認可不備
    • ユーザー認証不備
    • 過剰なデータ露出
    • リソース不足とレート制限
    • 機能レベルの認可不備
    • マスアサインメント
      • API利用者がアプリケーションの意図する以上のパラメータをリクエストに含め、アプリケーションがこれらのパラメータをコード変数や内部オブジェクトに追加した場合に発生する
    • セキュリティ設定ミス
    • インジェクション
      • APIを支えるインフラにリクエストが渡されたときに、APIプロバイダが不要な文字を削除する入力値フィルタリング(入力値検証や入力値の適切な処理)を実施しない場合に発生。その結果、インフラはリクエストからのデータをコードとして扱い、それを実行してしまう可能性がある。この種の脆弱性があると、SQLインジェクション、NoSQLインジェクション、システムコマンドインジェクションなど、各種のインジェクション攻撃が可能になる。
    • 不適切な資産管理
      • 既にサービス終了済み、開発中のAPIを公開する際に発生。古いバージョンのAPIはバッチやアップグレードが行われていないため、脆弱性を含んでいる可能性が高くなる。
    • ビジネスロジックの欠陥
やまやまやまやま

4/6 輪読会

3章 一般的なAPI脆弱性のビジネスロジックの欠陥について
ChatGptからの回答

ビジネスロジックの欠陥とは、API(アプリケーションプログラミングインターフェース)の設計や実装において、ロジックや処理手順に問題があることを指します。これにより、APIの脆弱性(弱点)が生じ、攻撃者による悪用のリスクが高まります。ここで、IT初心者の方にも分かりやすく解説します。

まず、ビジネスロジックとは、アプリケーションが正しく機能するために必要な手順やルールのことを指します。例えば、オンラインショッピングサイトでは、商品の検索、カートへの追加、注文処理、決済などがビジネスロジックの一部となります。

ビジネスロジックの欠陥がAPIの脆弱性に繋がる例をいくつか紹介します。

1.不正な入力値の検証不足
アプリケーションがユーザーからの入力値を十分に検証せず、そのまま処理すると、攻撃者が意図しない操作を行ったり、データを盗んだりできることがあります。

2.アクセス制御の不備
特定の機能やデータへのアクセス制御が不十分な場合、攻撃者が権限を持たない情報にアクセスしたり、他人のアカウントで操作できることがあります。

3.データ漏洩
重要なデータ(個人情報やクレジットカード情報など)が暗号化されず、平文で通信や保存されていると、攻撃者がデータを盗み取ることが容易になります。

これらのビジネスロジックの欠陥は、APIの脆弱性を引き起こす原因となります。開発者は、セキュリティのベストプラクティスに従い、適切な入力検証やアクセス制御、データ保護を実装することで、APIの脆弱性を軽減できます。また、定期的なセキュリティテストやコードレビューを行うことも重要です。
  • APIテストを行う際、セキュリティ制御の存在をテストするために、ドキュメントなどのリクエストの前提に従わず、テストをする必要がある(特定の人物・場面でしか使われないという過信)