ヤフーを支えるセキュリティ~サイバー攻撃を防ぐエンジニアの仕事とは~

ヤフーが開催した技術者向けイベント「Yahoo! JAPAN Tech Conference 2022」で、「ヤフーを支えるセキュリティ~サイバー攻撃を防ぐエンジニアの仕事とは~」をテーマにしたトークセッションが開催された。この記事では、その内容を紹介していく。セッションを担当したのは、いずれも2019年新卒ヤフー入社のBrahma Saurav氏と小林怜央氏だ。

ヤフージャパン株式会社 CISO室セキュリティ監視室 小林 怜央氏
ヤフー株式会社
CISO室セキュリティ監視室
小林 怜央氏
ヤフージャパン株式会社 CISO室セキュリティ監視室 Brahma Saurav氏
ヤフー株式会社
CISO室セキュリティ監視室
Brahma Saurav氏

Saurav氏はヤフーのセキュリティ監視室YJ-CSIRTに所属する。普段はインシデント対応や脆弱性評価と周知を担当しており、ZホールディングスにおけるCSIRT業務も兼務している。「最近はAngularやPythonを使って開発することが多い」と語る。

小林氏は、セキュリティ監視室SOCに所属しており、セキュリティアラートの対応や監視の強化を担当している。以前開発部署に在籍していた経験を生かし、効率化、監視強化に努めている。「最近は外部のクラウドサービスに関するセキュリティ監視を強化しています」と述べる。

冒頭2人はこのセッションについて「世の中にはサービスのセキュリティを脅かす犯罪者がたくさんいます。ユーザーを犯罪者から守り、サービスを安全安心に利用していただくため、高度化するサイバー攻撃に日々対応する必要があります。ヤフーにおけるセキュリティの一翼を担うCSIRTとSOCについて紹介します」と説明した。

本セッションの流れは以下の通りだ。

1.CSIRTとSOC
2.脆弱性や脅威にどう対応しているのか
a. Log4Shell b. ua-parser-js c. Phishing 3. まとめ

CSIRTとSOCとは

 ヤフーのCSIRTとSOCは、CISO室というセキュリティ担当者の多くが所属する部門に含まれている。CSIRTとSOC 以外にも、ユーザーアカウント(Yahoo! JAPAN ID)が不正利用されていないかを監視し、対策を行う部署、ISMS認証やNIST CSFなどの国際規格にヤフーを準拠させ、ヤフーのセキュリティレベルを底上げする部署、全社員にセキュリティ教育を実施する部署などが属している。

CSIRT(Computer Security Incident Response Team)

 CSIRTは、セキュリティインシデントに対処するための組織の総称だ。インシデントが発生した場合の対応支援体制の構築と実際の支援を行う。例えば、情報流出、フィッシングサイト、マルウェア感染、ウェブ改ざん、DDoS攻撃などのセキュリティインシデントに対応できるように、マニュアルを用意する。また、想定外の事態が起こった際は、意識的にコミュニケーションを増やしながら対応をしている。

 「CSIRTは消防署のような役割を提供します」とSaurav氏は語る。例えば火事が起きたら119番し、消防署が消火活動を実施する。同じように、マルウェアに感染するとCSIRTに連絡が行き、CSIRTがインシデント解決を支援する。

SOC(Security Operation Center)

 ヤフーのSOCは、24時間365日の態勢で情報システムへの攻撃を監視、分析する組織だ。監視によってサイバー攻撃の抑止、早期発見を促し、攻撃を分析して早期解決、再発をCSIRTと連携して防止する。

CSIRTとSOCの主な3つの業務

YJ-CSIRTの主な業務には、

1.ソフトウエア、パッケージなどに関する脆弱性情報や脅威情報の分析と周知
2.サイバー攻撃、メール誤送信、マルウェアの侵入、フィッシングサイトなど社内から報告されたインシデントの報告対応
3.ペネトレーションテストなどの脆弱性診断

の3つがある。YJ-CSIRTでは特に、前の2つへの対応が多い。

SOCの主な業務は、

1.オフィスネットワークやヤフーサービスのアラート項目の作成
2.アラートが上がった際に、サーバーログやネットワークキャプチャなどから攻撃を分析
3.監視対象や脅威情報の対応による監視強化

の3つがある。

ヤフーはどうやって脆弱性に対応しているのか?

 脆弱性や脅威情報を発見した場合は、下図のような流れで対応する。左にあるさまざまな情報源、JPCERT/CC、Japan Cybercrime Control Center(JC3)、各種メディア、SNS、ダークウェブなどから取得した情報が、YJ-CSIRTに送られる。そこで、次の4つの手順に従って対応を行う。

 「ディスカバリー」で影響範囲や詳細確認を実施し、「トリアージ」で脆弱性のレベルをCVSS(Common Vulnerability Scoring System)などのツールで算出し、「エスカレーション」では規模に応じて関係各所に共有し、「コーディネーション」では社内外と連携する。

 CSIRTはこのような手順で対応するが、その際にSOCとも緊密に連携を行っている。SOCは普段は監視、検知、調査の3軸を主としているが、インシデントがあった場合はCSIRTと一緒に動く。

 さらに、右上に表示しているように、ヤフーやZホールディングスで、セキュリティインシデントであると認められると、社内のサービスチームやグループ各社にセキュリティインシデントとして対応してもらう。YJ-CSIRTからは、脆弱性情報や脅威情報は社内周知を行う。また、フィッシング対策協議会やIPAなどの社外の機関に報告することもある。

実施に行った対応事例を紹介

 続いて二人は、脆弱性が発見された際に、ヤフーが実際に行った対応について事例を3つ挙げて紹介した。

Log4Shell

 2021年12月の年末から2022年の年明けの現在も非常に大きな話題となっている。Javaベースのロギングライブラリで発見されたもので、攻撃が容易かつ影響範囲が広いのが特徴だ。CVSS(共通脆弱性評価システム)のスコアは過去最高の10と評価された。2014年に話題となったOpenSSLに存在する脆弱性のHeartbleedや、Bashの脆弱性である「ShellShock」と同レベルとも言われている。

 上図の右側が、YJ-CSIRTが実施した施策だ。ディスカバリフェーズで、Apache Log4j 2のRCE脆弱性、(遠隔から送り込まれた任意のプログラムコードを実行できてしまう脆弱性)に関する情報を入手した。この時点ではCVE(共通脆弱性識別子)は未採番である。そこで、開発者コミュニティの情報などから調査を開始した。

 次のトリアージフェーズでCSIRTが独自に脆弱性を評価したところ、非常に脅威が大きいため、緊急対応が必要と判断。その後、エスカレーションフェーズで、社内各部門に影響を調査し、修正対応を依頼した。同時に、Zホールディングスグループ各社に情報を展開した。また、SOCへ社外より得たIoC情報(サイバー攻撃の痕跡を表す情報)の共有をし、同時に対応を行った。コーディネーションフェーズで社内各部門の対応状況を逐次確認し、社外製品などの利用によるリスクの確認も実施した。

(CSIRTによるLog4Shell対応)
(CSIRTによるLog4Shell対応)

 次に、SOCにおけるLog4Shell対応を小林氏が紹介した。

 Log4Shellの攻撃は、まず、社外からLog4Shellを利用しているサービスに対して、攻撃コードを含んだリクエストが送られてくる。この攻撃が成功すると、内部のサービスから意図しない社外宛ての通信が発生。それをC2サーバー(指令サーバー)が受け取り、内部の攻撃が成功したサーバーなどと、攻撃情報や悪性のクラス情報などを含んだリクエストがやりとりされる。このようにして、Log4Shellの攻撃は実行される。

 SOCはこの攻撃に対して各フェーズで対応している。

 外部から攻撃コードを含んだリクエストを受けたことへの初期対応として、今回の攻撃の特徴的なワードを各種ファイアウォールのログより調査した。その情報を元に、攻撃元を洗い出し、着弾数や影響度を調べた。その後継続的な対応として、攻撃になり得るリクエストは現在も監視している。また、実際に攻撃を成功させてしまうアプリケーションを見つけるため、EDRなどで調査を行っている。

 意図しない外部通信への初期対応は、LDAP(ディレクトリーデータベースへアクセスするためのプロトコル)などを使用した特徴的な通信が、外部へ流出していないか調査を行った。また、攻撃元へ外部通信が出ていないか、プロキシサーバーを挟まず、直接外部と通信可能な環境がどのくらいあるのかなどを調査した。その後の対応としては、CSIRTと連携してIoC情報を元に、SIEMのアラートを設定し継続的に監視を行っている。

 攻撃コードが送り込まれていないかの調査への初期対応としては、EDRや次世代ファイアウォール(NGFW)など振る舞い検知のアラートを確認している。その他、随時CSIRTと連携して作業を実施している。

ua-parser-js

 2021年10月ごろに発生したNPMライブラリのハイジャック事件。開発者のアカウントが乗っ取られたもので、下図のように開発者本人が、仮想通貨マイニングスクリプトや情報詐取系のマルウェアが混入してしまったことを公表した。

 CSIRTではこの情報を取得次第、SOCに情報提供し、影響確認を実施。Log4Shellと同様の手順で全社的な利用状況の確認と修正をした。また同時に、IoC情報から攻撃の概要の調査を実施した。

 この攻撃に対するSOC側の対応では、最初に影響範囲の分析を実施。CSIRTから提供されたIoC情報と開発環境およびサーバー環境の両方のログを突合した。今回の攻撃は実際に開発する際のパッケージとプロダクションとして動作する時のパッケージのどちらでも実行される。そのため、エンジニアが開発する環境にあるEDRや外部に出るNGFW、L7プロキシ、ドメイン情報などに関するDNSの情報をIoC情報と突合して、影響範囲を分析した。

 また、これらで検索した同様のものをSIEMの検知リストに追加。これにより、今後同じようなパッケージを利用して攻撃が成功しかけた際に、すぐに気づいて対応できるようになる。

フィッシング

 最後に、フィッシングについて紹介する。フィッシングサイトに誘導されるメールのリンクをクリックすると、上記の画像のようなフィッシングサイトに飛ばされる。この画像は実際にあった、ヤフーを模したフィッシングサイトだ。

 CSIRTではこのようなサイトを発見次第、取り下げる手続き(テイクダウン)を行う。テイクダウンまでの流れは、上図右側の通り。例えば、JPCERT/CCからの情報、SNS、ニュースなどの監視でフィッシングサイトに気づく。フィッシングサイトが立てられた恐れがあると判断した場合、それが本当にフィッシングサイトであるかをWhois情報、urlscan.ioや、VirusTotalなどのツールを使って調査する。結果本物のフィッシングサイトであることがわかると、次にGoogle Safe Browsing、Microsoft Security Intelligence、Phishtankなどに悪性登録と呼ぶ手順を実施する。こうすることで、ユーザーがブラウザ経由でフィッシングサイトに飛んでしまっても、ブラウザが警告を発してくれるようになる。

 ただし、悪性登録をしても、フィッシングサイト自体は生きているので、次に各種報告をしてテイクダウンを実施する。報告先はフィッシング対策協議会やホスティングサービス運営者などだ。ここまでの手順で、テイクダウンが完了できれば、関係者に連絡してテイクダウンは終了となる。

 このほかに、フィッシングサイトを調査するためにCSIRTでは「Phishing Checker」というツールを開発している。各種の脅威情報をAPIから取得して、初動調査を実施するものだ。

犯罪者からユーザーを守るために

 ここまで見てきたように、攻撃側である犯罪者は防御側の常に一歩先を歩いており、サイバー攻撃を防ぐためには、犯罪者と同等以上の知識が必要である。

 最後にSaurav氏が講演全体を次のようにまとめた。

 「CSIRT/SOCでは、安定したサービスをユーザーに届けるために、より高度な分析手法を日々研鑽しています。これからもわれわれはみなさまにヤフーのサービスを安心して提供できるように努力します」

提供:ヤフー株式会社
[PR]企画・制作 朝日インタラクティブ株式会社 営業部  掲載内容有効期限:2022年4月30日
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]