Speee DEVELOPER BLOG

Speee開発陣による技術情報発信ブログです。 メディア開発・運用、スマートフォンアプリ開発、Webマーケティング、アドテクなどで培った技術ノウハウを発信していきます!

Blackhat USA 2019/ DEF CON 27

参加レポート(概要編)

セキュリティ担当の後藤です。

はじめに

米国ラスベガスで情報セキュリティカンファレンス、Blackhat USA(8/3~8/8)とDEF CON 27(8/9~8/11)が開催された。

筆者は最新の情報セキュリティの動向をとらえ、当社のセキュリティ施策に反映することを目的として、全日程のうち、Blackhatは8/7,8のBriefings(いわゆるプレゼン)と、DEF CONは全3日間に参加した。 大まかにいえば、Blackhatはいわゆるカンファレンスで、セキュリティに関する広範囲な最新の動向や技術を紹介するもの。DEF CONは世界各地から集まったハッカーチームによる大会とハッキング体験などを主とした、いわば、ハッキングイベント(お祭り)である。 本書では、前者のBlackhatの内容のフィードバックを中心に紹介する。

Blackhat

f:id:hgo2:20190910111739j:plain @MANDALAY BAY / LAS VEGAS

Black Hatは、今年で22回を数える世界最大級の情報セキュリティイベントである。”Black Hat USA”と謳っているように、今回は米国ラスベガスであるが、ヨーロッパやアジアなど各地で開催され、同イベントでは最新の研究や開発のトレンドなどの情報を発信している。

イベントは大きく、実際にハッキングなどを実践する「トレーニング(Trainings)」と、主にプレゼン形式(トークセッションのもある)で技術動向などを紹介する「ブリーフィング(Briefings)」がある。

f:id:hgo2:20190910111804p:plain https://www.blackhat.com/us-19/schedule.html

欲をいえばトレーニングに参加したかったが、予算の関係で(トレーニングはめっちゃ高い!)筆者はブリーフィングのみに参加した。

※なお、セキュリティベンダーが製品を展示する「Business Hall」はシャンパン配ってたのでそれだけ参加。

ブリーフィングは、

  • Android, iOS and Mobile Hacking
  • Arsenal Lab
  • Code Assessment
  • Data Forensics/Incident Response
  • Exploitation and Ethical Hacking
  • Hardware/Embedded
  • Human Factors
  • Internet of Things
  • Malware Defense
  • Malware Offense
  • Network Attacks
  • Network Defense
  • OSINT - Open Source Intelligence
  • Reverse Engineering
  • Vulnerability Assessment
  • Web AppSec

ソフトウェアのレイヤから、IoTに代表されるHW/FWまで多岐にわたるカテゴリで構成される。ブリーフィングは10セッション程度が同時に開催されているため、筆者は以下の大別でカテゴライズし、会社にフィードバックできそうなもの、あとは単純に好奇心という至極アバウトな基準でWEBサイトの情報を頼りに都度選択した。

  • (HW/FWレイヤを除く)セキュリティ技術
  • 人的セキュリティと開発プロセス
  • 他社のセキュリティの取組み

※なお、「開発プロセスは技術系だろう」という意見もあるだろうが、筆者の中ではマネージメントという理解。

筆者はBlackhatははじめてであるため、過去との比較はできないが、やはり全般にAI,IoTといった昨今のIT系全般の傾向とキーワードが目立つ。

ここでは概要編として、いくつかのセッションをざっとかいつまんでみたい。詳細については後日テーマを絞って深堀りしようと思う。

まず、Netflixの構成管理が非常に印象深かった。Netflixでも当然ながらOSSを活用している。OSSは世界中のコントリビュータによって開発されているが、便利な反面、セキュリティリスクを抱え込みやすい側面がある。

たとえば、ある開発者のGitHubアカウントの管理の不備を悪用してなりすまし、悪意あるコードを埋め込んでプルリク。リクエスト元は正規の人なので脆弱性を含んだコードが公開されてしまう。それをだれかが組み込んでディプロイされ、さらにAMIとなって拡散する。

もう1つ、インストール時のTypoを悪用した、”Typo Squatting”という手口。たとえばつぎのような場合に、Typoを予想して、悪意あるパッケージを用意しておく。

$ npm install express

$ npm install epxress

ほかにも、さまざまなアプローチがあるが、OSSの怖いのは”依存関係”である。入り込んだら取り除くのが大変ということだ。

次のグラフはセッションで紹介されていたPyPiの依存関係をプロットしたもの。 f:id:hgo2:20190910111820p:plain https://ogirardot.wordpress.com/2013/01/05/state-of-the-pythonpypi-dependency-graph/

カオスである。

OSSのソースはそれ単品で存在するのではなく、たいてい別のライブラリとの依存があり、そのライブラリは別のライブラリと依存があり・・・で、その結果がこうなる。 あるライブラリに脆弱性があったとしても、そのバージョンを的確に排除するのは困難ということだ。

Netflixのアプローチ(ちゃんと理解するにはさらに研究が必要ではあるが、)は大きく、3つのプロセスで成り立つ。

  • Discovery(脆弱性情報をひたすら集める)
  • Triage(リスク評価)
  • Remediation(脆弱性を取り除く)

特筆すべきはAstrid(Artifactory-sourced dependency insight at Netflix)というパッケージと依存関係をメタデータ化し、ビルドとディプロイにそれを自動で反映させる仕組み。安全な依存関係以外はブロックする。 驚くのは、対象が最小のマイナーバージョン(e.g. 2.4.x)であることだ。

Netflixの構成管理はさらに理解を深め、施策として落とし込めないかと思っている。

ところで別のセッションは、AI、ディープラーニングの分野でいえば、たとえば、Googleの暗号化されたパスワードの解読のアプローチ。 暗号化された文字列が処理されるときのCPUの信号をオシロスコープで読み取り、(おそらくフーリエ変換などを経たのち)、ニューラルネットワークで学習するというもの。いわゆるサイドチャネルアタックであるが、膨大なデータを処理に対するアプローチとして昨今の流れを感じる。(高度のサンプリングレートによるものと思われるが、すごい計算量が必要らしい。。)

ついでに暗号の解読ということでいえば、暗号化したデータベースにおいて、クエリの結果(Selectでマッチしたレコード数)やログから解読を試みるRange queryというアプローチ。これはフォレンジックにも通じる。

マルウェアの分野では、スクレイピングやYARAといったツールを活用して、世界中からファイル取ってきてパターンを分析し、”ゼロデイ”を発見するソリューションなど。アプローチが今っぽい。

IoTの分野では目新しさというのは感じ取れなかったが、問題意識は結局”認証”なんだろう、と思う。たとえば同じ種類の2台の自動車が自動運転しているとき、自動車Aと、自動車Bは当然識別する必要がある(でないと不正に操作できちゃうから)。自動運転であってもIDとパスワード(鍵)であり、それが取られれば不正に操作される。自動運転は人命に直結するからさらに被害は甚大である。

さまざまな手法や対策があるが、全般に”ファームウェアのデフォルトパスワードを使いまわしている”といった初歩的な脆弱性が前提となっているように思う。たいていファームウェアを入手し、リバースエンジニアリングによってパスワードと脆弱性を特定して本物にぶつける手法だからである。これはWifiのハッキングもしかりである。今後5G時代を本格的に迎え、IoTも広がってくる中で、”対策はパスワードを変えよう”的なレガシーなことも提案してて逆に興味深かった。

ほかにもマネージメント系でいえば、DevOpsにセキュリティをアドオンしたDevSecOpsをもっと浸透させようという動きがみられたり、フィッシング詐欺を脳科学で分析するセッションなど、技術的な分野から人的なセキュリティ、政府機関との連携といった政治的な話まで幅広くとても勉強になった。

ここまで、ざっといくつかのセッションをかいつまんで概要編を書いたが、後日テーマを絞って深堀りしようと思う。

以上