APIとは何か(3)
~APIセキュリティのベストプラクティス~

Share

APIセキュリティは、適切な認証と認可が鍵です。本記事では、APIのセキュリティを強化するための基本的な対策からベストプラクティスまで解説します。脅威に対抗するための対策案を紹介し、セキュアなAPI運用のポイントを提供します。

前回記事はこちら。
シリーズ第1回目「APIとは何か(1)~基本概念とセキュリティの重要性~
シリーズ第2回目「APIとは何か(2)~APIの脅威とリスク~

認証と認可の重要性

ソフトウェアセキュリティにおける問題の多くは、信頼境界をまたぐデータ(プログラム内の入出力)やモノ(フレームワーク)に起因しています。様々な場所から様々なデバイスによりアクセスされる昨今の環境下では、既存の認証を信用せず、あらゆるアクセスを信用しないという前提に立った上で動的なアクセスコントロールによって認可する「ゼロトラスト」の考え方が必要です。ポイントは、「認証」と「認可」の違いを的確に理解することです。「認証」と「認可」が適切に区別されていないシステムの場合、本人確認を行うユーザ認証さえ突破してしまえば、システムのどこにでも自由にアクセス可能となってしまい、非常に危険です。

「認証」と「認可」を明確に区別して信頼境界の安全を保つことが重要であり、その実現にあたっては、厳格なセッション管理が鍵となります。代表例として、ソフトウェアにおけるアクセス認可において、アクセストークンによる堅牢な制御の上で、信頼境界ごとのリソースに認可プロセスを設定するといった方法が挙げられます。

基本的なセキュリティ対策

セキュリティ対策の取り組みには、基本的なセキュリティ対策こそが効果的であるという前提に立って、今一度自組織のセキュリティを見直すことが重要です。

セキュリティ基本10項目

標的型攻撃メール訓練の実施

標的型攻撃メール訓練は、従業員のセキュリティ意識向上と実践的なスキル習得に効果的です。訓練では、攻撃メールを模倣したシナリオを用いて、従業員が疑わしいメールを識別し、適切に対応するスキルを養います。定期的な訓練実施により、従業員のセキュリティ意識が継続的に高まり、実際の攻撃に対する組織の耐性が強化されます。また、訓練後のフィードバックやセキュリティ教育との組み合わせにより、より効果的な対策が可能になります。

定期的なバックアップの実施と安全な保管(別場所での保管推奨)

ランサムウェアによる被害からデータを保護するために、サーバに対してオフラインバックアップ(データだけを独立して磁気テープ・ストレートなどで物理的に隔離しておくこと)を行うことがおすすめです。バックアップの頻度や保管場所を見直し、最新の情報が常に保存されるようにすることが重要です。

バックアップ等から復旧可能であることの定期的な確認

バックアップが確実に復旧可能であることを確認するため、定期的にリカバリーテストを実施します。これにより、実際の復旧作業時に問題が発生しないことを保証し、緊急時に迅速かつ確実なデータ復旧が可能となります。また、テスト結果を文書化し、必要に応じて復旧手順の改善を図ります。このような確認作業を怠ると、いざという時にデータ復旧が困難になるリスクが高まります。

OS、各種コンポーネントのバージョン管理、パッチ適用

システムの脆弱性を悪用する攻撃を防ぐためには、OSやソフトウェアコンポーネントの最新バージョンへの更新・パッチ適用の実施をすることが必要不可欠です。定期的なパッチ適用とバージョン管理により、サイバー攻撃のリスクを大幅に軽減できます。特にゼロデイ攻撃のリスクを軽減するためには、普段から脆弱性関連の情報収集やバージョン更新が求められます。

認証機構の強化(14文字以上といった長いパスフレーズの強制や、適切な多要素認証の導入など)

認証の強化は、サイバー攻撃から組織を守るための基本的な対策です。単純なパスワードではなく、長く複雑なパスワードにし、さらに多要素認証(MFA)を導入することを推奨します。多要素認証はパスワードに加え、物理トークンや生体認証などの認証要素を用いることで、不正アクセスされるリスクを低減します。これにより、アカウントのセキュリティが飛躍的に向上します。

適切なアクセス制御および監視、ログの取得・分析

システム内の情報やリソースへのアクセスを厳格に管理し、適切なアクセス制御を行うことは、内部からの不正行為を防ぐために重要です。また、システムの稼働状況やアクセスログを定期的に取得し分析することで、異常な挙動を早期に検知できます。

シャドーIT(管理者が許可しない端末やソフトウェア)の有無の確認

シャドーITは、組織のセキュリティポリシーに反する可能性があり、脆弱性やデータ漏洩の原因となることがあります。定期的な監査や従業員への教育を通じて、シャドーITの存在を確認し、適切な対策を講じることが重要です。

攻撃を受けた場合に想定される影響範囲の把握

サイバー攻撃を受けた際に、どのような影響が組織に及ぶかを事前に把握しておくことは重要です。影響範囲を明確にすることで、インシデント発生時の対応計画を具体化し、迅速な対策を講じることが可能になります。システム全体の依存関係や業務の優先度を考慮し、被害を最小限に抑えましょう。

システムのセキュリティ状態、および実装済みセキュリティ対策の有効性の確認

定期的にシステムのセキュリティ状態を確認し、現在のセキュリティ対策が有効に機能しているかを確認することが効果的です。脆弱性診断やペネトレーションテストを実施することで、システムの弱点を特定し、自組織の状況に適した対応の実施が可能になります。

CSIRTの整備(全社的なインシデントレスポンス体制の構築と維持)

CSIRT(Computer Security Incident Response Team)は、サイバー攻撃やインシデント発生時に迅速かつ適切な対応を行うための専門チームです。CSIRTの整備は、全社的なセキュリティ体制を強化し、インシデント発生時の被害を最小限に抑えるために不可欠です。定期的な訓練とシミュレーションを通じて、CSIRTの対応力を維持し、常に最新の脅威に対応できる体制を整えます。

APIセキュリティのベストプラクティス

OAuthトークン

OAuthトークンは、APIへのアクセスを安全に制御するための認可手段です。ユーザのパスワードを直接共有せず、一時的なトークンでアクセスを許可する仕組みにより、不正アクセスのリスクを軽減します。

暗号化と署名

API通信では、暗号化が重要です。また、署名による送信者の認証をすることも重要です。SSL/TLS(TLS 1.3推奨)での暗号化により、データが送受信される途中で盗聴されないようにします。署名には一般的にRSA暗号やECDSAなどのアルゴリズムが使用され、SHA-256などのハッシュ関数と組み合わせてデータの完全性を保証します。デジタル証明書を使用することで、通信相手の身元確認も可能になり、より強固なセキュリティを実現できます。

レート制限とスロットリング

レート制限とスロットリングは、APIへのリクエスト数を一定範囲に抑え、サーバへの負荷を管理するための手法です。過剰なリクエストをブロックし、DDoS攻撃などのリスクを軽減します。また、正規ユーザの快適な利用を維持し、サービスの安定稼働を支えます。

APIゲートウェイの使用

APIゲートウェイは、API管理を一元化するためのツールです。認証、認可、レート制限、監視など、APIに関連するセキュリティ機能を提供します。これにより、システム全体のAPI運用を最適化します。APIの脆弱性を効果的に軽減することができます。また、監視とログ収集を行うことで、問題発生時の迅速な対応が可能になります。

APIのセキュリティ対策

ここまで見てきたAPIセキュリティ脅威を踏まえると、以下のようなポイントにおいて脆弱でないことが重要と考えられます。

APIのセキュリティ対策のポイント図

開発中、リリース後、更新時といった、いかなる状況においても、適切な脆弱性管理・対応ができているかどうかが、鍵となります。

APIのセキュリティ対策の概要図

APIの開発にあたっては、DevSecOpsを適用して脆弱性を作り込まないようにすること、APIリリース後も、新たな脆弱性が生まれていないか、APIセキュリティ診断などを通じて確認を継続することが重要です。

APIはスマホアプリでも多く活用されています。誰もがスマートフォンを利用している今、攻撃の被害が多くの人々に影響を及ぼす可能性があるからこそ、スマホアプリにおいて次の攻撃につながる情報が漏洩したり、スマホアプリの改竄が行われたりする可能性を摘んでおくことが、スマホアプリを提供するうえで重要となります。スマホアプリのセキュリティ対策の一つとしては、信頼できる第三者機関による脆弱性診断の実施があげられます。第三者の専門家からの診断を受けることで、網羅的な確認ができるため、早急に効率よく対策を実施するのに役立つでしょう。

関連記事:

  • 攻撃者が狙う重要情報の宝庫!―スマホアプリのセキュリティ―
  • まとめ

    APIのセキュリティについて、認証と認可は基本となる重要な要素です。現代では従来の境界型セキュリティでは不十分となり、あらゆるアクセスを疑う「ゼロトラスト」モデルが求められています。認証は「誰か」を確認するプロセス、認可は「何を許可するか」を決める仕組みであり、両者の違いを明確に理解しておくことが重要です。

    組織の安全を守るには、基本的なセキュリティ対策の実施が不可欠です。具体的には、攻撃メール訓練の実施、バックアップ管理、システムの更新、強固な認証の導入、アクセス制御とログ分析などが推奨されます。また、インシデント対応チーム(CSIRT)の整備により、問題発生時の迅速な対応が可能となります。

    APIセキュリティの観点からは、OAuthトークンの導入、通信の暗号化と署名、レート制限やスロットリングでの制限、APIゲートウェイが推奨されます。開発段階からリリース・運用後まで脆弱性管理を徹底し、特にユーザへの影響が大きいと考えられるサービスでは第三者機関によるセキュリティ診断も活用することをおすすめします。

    Security Report TOPに戻る
    TOP-更新情報に戻る


    資料ダウンロードボタン
    年二回発行されるセキュリティトレンドの詳細レポート。BBSecで行われた診断の統計データも掲載。
    お問い合わせボタン
    サービスに関する疑問や質問はこちらからお気軽にお問合せください。

    Security Serviceへのリンクバナー画像
    BBsecコーポレートサイトへのリンクバナー画像
    セキュリティ緊急対応のバナー画像

ソーシャルエンジニアリングとは?その手法と対策

Share

今回は、サイバー攻撃の変わり種、システムではなく人間の弱点に付け入る攻撃、ソーシャルエンジニアリングを紹介します。

まずソーシャルエンジニアリングの具体的な手法を挙げ、どのように人間の弱点が利用されるのかを説明し、日本で起こったソーシャルエンジニアリングによる被害実例を紹介します。

途中ちょっと寄り道をして、オレオレ詐欺はソーシャルエンジニアリングなのかどうかについて考えつつ、最後に具体的かつ実践的な対策方法と、逆効果となる、とある対策・管理方針について言及します。

ソーシャルエンジニアリングとは

ソーシャルエンジニアリングは、人の心理を巧みに操り、重要な情報を引き出す手法です。この手法を使った攻撃がソーシャルエンジニアリング攻撃で、攻撃者は情報収集やシステムへの不正アクセスなどを目的に、人を心理的に操作して、攻撃者にとって都合のいい行動を起こさせます。

認知能力、心理など「人間の脆弱性」を攻撃するソーシャルエンジニアリング

アメリカの非営利のセキュリティ研究団体MITRE社の説明によると、ソーシャルエンジニアリングとは、人心を巧みに操り、その弱みにつけこんで、悪意ある相手に利するような行動や情報を引き出すというものです。具体的な例を挙げると、技術的な手段によらずに、口頭による会話といった「社会的(ソーシャル)」な手段で、ID・パスワードなどの重要情報を、巧みなやり方で関係者から直接聞き出す行為などがソーシャルエンジニアリングです。大きくは、人間の認知能力のさまざまな弱点やスキにつけ込む手法全般のことだといえるでしょう。

脆弱性診断サービスを提供するBBSecとして「脆弱性」という観点で申し上げるなら、ソーシャルエンジニアリング攻撃は「システムやソフトウェアではなく人間の脆弱性を突く攻撃」と言うことができます。

ソーシャルエンジニアリングの手法

以下に典型的なソーシャルエンジニアリングの手法を挙げます。

・ショルダーハッキング
  例)パスワード等をユーザの肩越しに覗き見る
・トラッシング(スカベンジング)
  例)清掃員などに変装して標的組織に侵入し、書類やHDDなどのゴミや廃棄物をあさる
・なりすまし電話
 例)システム担当者などになりすましてパスワードなどを聞き出す
・ベイティング
 例)マルウェアを仕込んだUSBメモリを廊下に落とす
・フィッシング(ヴィッシング、スミッシング等 含む)
  例)信頼できる存在になりすまし、ID・パスワード、クレジットカードなどの情報を入手する
・ビジネスメール詐欺
 例)取引先などになりすまし、犯人の口座へ振込を行わせる
・標的型攻撃メール
 例)ターゲットに対する入念な調査に基づいて作成した、完成度の高いなりすましメールを送る

たとえば「なりすまし電話」ですが、上記に挙げた例とは逆に、入社したばかりの何も知らない社員を装ってシステム担当者に架電し、やり方がわからないふりをするなどして徹底的にイライラさせて、思わずパスワードを口に出させるなどの方法も存在します。人間の認知能力のスキをつくソーシャルエンジニアリングには、実にさまざまな方法があるのです。

ソーシャルエンジニアリングの最大の特徴とは

人の脆弱性を突くソーシャルエンジニアリングの最大の特徴は、ターゲットを信頼させ、攻撃者に有益な情報の提供などを自発的に行わせてしまう点にあります。MITRE社の説明に「人を操る」とあった通り、権力や暴力を振りかざして重要情報を聞き出した場合、それは単なる脅迫であってソーシャルエンジニアリングではありません。

ターゲットの心を意のままに操作して、自発的に、ときに笑顔で協力させてしまう点にこそ、ソーシャルエンジニアリングを行う犯罪者の真骨頂があります。

ソーシャルエンジニアリングはどのように人間の弱点につけ込むのか

ソーシャルエンジニアリングは攻撃対象が信頼してしまう存在などになりすましてターゲットを信頼させ、心を開かせたり油断させることで行われます。

そのために攻撃者がしばしば目を付けるのが、「権威」に対する人間の弱さです。会社の取締役を装って電話をかける、得意客になりすましたビジネスメールを送る、大手金融機関や有名ブランドをかたったフィッシングメールを送る、などの手口に騙されるのが典型的なケースです。

なお、メールアカウントを乗っ取って旧知の取引先などになりすましたメールを送信することで拡散を図るEmotetは、フィッシングを行うマルウェアであり、ソーシャルエンジニアリングの一類型と言うことができます。

オレオレ詐欺はソーシャルエンジニアリングか

権威以外にも「義務感」「正義感」あるいは「好意」につけ込む方法もよく用いられます。多くの人は、困っている人に出会ったら「助けなければ」と感じます。助ける相手が親しい人物や好感を持てる人物であればなおさらです。

そこで思い浮かぶのがオレオレ詐欺ですが、ちなみに、この手の犯罪は、「ソーシャルエンジニアリング」なのでしょうか?

答えはNoです。ソーシャルエンジニアリングは、コンピュータセキュリティの文脈で使われる言葉であり、コンピュータやシステムへの不正アクセスを行うことを目的のひとつに含むという前提があります。そのため、オレオレ詐欺がソーシャルエンジニアリングと呼ばれることは一般にはほとんどありません。

ニューノーマル、テレワーク時代に気をつけたいソーシャルエンジニアリング

大きな環境変化の最中や直後などは、ソーシャルエンジニアリングの絶好の機会です。平時にはない緊張を強いられることで人々の不安やストレスが増し、感情的に動揺しやすくなるためといわれています。2020年、新型コロナウイルスの感染が一気に拡大した当初も、品薄状態だったマスクの配布をうたうメールやWebサイト、保健所からの連絡を装った攻撃などが複数確認されました。ニューノーマル時代、こうした攻撃に引き続き警戒が必要であることはいうまでもありません。

また、テレワークによって従業員どうしが切り離された就業環境においては、フィッシングメール標的型攻撃メールの感染確率が上がると言われています。これは、オフィスにいたなら同僚や情報システム部門に「変なメールが届いた」と気軽に相談できていたことが、テレワークによって難しくなるからです。

日本で起こったソーシャルエンジニアリングの実例

2015年に発生した日本年金機構の情報漏えい事件は、「【医療費通知】」という件名の標的型攻撃メールが公開メールアドレスに届き、その添付ファイルを開いたことが発端であったとされています。

また、2017年に大手航空会社がビジネスメール詐欺で数億円をだましとられた事件も、2018年に仮想通貨取引所から暗号資産が流出した事件も、いずれもソーシャルエンジニアリングが攻撃のステップのひとつとして用いられています。

ソーシャルエンジニアリング対策・防止策

では、こうしたソーシャルエンジニアリングを防止する対策方法には、どのようなものがあるのでしょうか。

ソーシャルエンジニアリングの手法」で挙げた攻撃に対しては、たとえばショルダーハッキングならプライバシーフィルターを利用する、ビジネスメール詐欺ならメールの指示をうのみにせず本人に電話をして確認するなど、さまざまな対策方法が存在します。また、近年攻撃者はSNSを活用してターゲットに関する情報を集めることが知られていますので、SNSの利用に組織としてルールを設けるなどの方法も有効です。研修や教育なども効果があります。

しかしその一方で、人間の脆弱性を突く攻撃を完全に防ぐことはできない、という観点に基づいた対策も、併せて必要になります。攻撃を防ぐ対策と同時に、攻撃が防げなかった場合(成功してしまった後)の対策も考える必要があるのです。BBSecはこの考えのもと、標的型攻撃リスク診断やペネトレーションテストなどのサービスを提供し、攻撃を受けることを前提としたセキュリティ対策に取り組む企業・組織の皆様をご支援しています。

企業が絶対にやってはいけないソーシャルエンジニアリング対策

ソーシャルエンジニアリングは人間の脆弱性を突く攻撃です。だからこそ、対策として絶対にやってはいけないことがあります。それは、騙された人を叱責する、何らかのペナルティを与える等の懲罰主義の管理です。

罰を受けるのを恐れることによって、事故が発生しても報告がなされず、それが、インシデントの発見の遅れを招き、組織にとっての致命傷を生むことがあります。あなたも私も、人間は皆、あやまちを犯す生き物なのです。あやまちを犯すことが覆い隠されてしまうような管理は、何の成果も上げられないでしょう。

まとめ

  • ソーシャルエンジニアリングとは、人の心を操って重要情報等を聞き出したりすることです。
  • ショルダーハッキング、フィッシング、ビジネスメール詐欺、標的型攻撃メールなど、さまざまな手法があります。
  • ソーシャルエンジニアリングは、「権威」「義務」「好感」などに惑わされる人間の弱さをあらゆる手口で突いてきます。
  • 環境が急激に変化する時は、ソーシャルエンジニアリングの付け入るスキが生まれます。ニューノーマルや急速なテレワーク化への対応を迫られる現在も、その例外ではありません。
  • 懲罰主義による管理は、ソーシャルエンジニアリング対策として何の効果もなく、インシデント発生の対応が遅れる要因になります。

Security Report TOPに戻る
TOP-更新情報に戻る


資料ダウンロードボタン
年二回発行されるセキュリティトレンドの詳細レポート。BBSecで行われた診断の統計データも掲載。
お問い合わせボタン
サービスに関する疑問や質問はこちらからお気軽にお問合せください。

Security Serviceへのリンクバナー画像
BBsecコーポレートサイトへのリンクバナー画像
セキュリティ緊急対応のバナー画像
セキュリティトピックス動画申し込みページリンクへのバナー画像