脆弱性の見つけ方 - 攻撃者の思考で捉える “ペネトレーションテスト”と“内製ASM” -に参加してきた
https://findy.connpass.com/event/341969/
こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。
会の概要
以下、イベントページから引用です。
近年のサイバー攻撃の事例も相まって、セキュリティや脆弱性に関して重要性を理解し、学び実践していきたいという方は多いのではないでしょうか。
しかし、実際には具体的にどのような点を意識し、どのように実践すれば効果的なのか、明確な方法に悩むこともあるかと思います。
今回は、システムやネットワークに対して実際に疑似攻撃を行い、脆弱性を発見して対策を検証するペネトレーションテストについて『ポートスキャナ 自作ではじめるペネトレーションテスト』の著者である小竹さんと、組織の攻撃対象領域を可視化・管理し、潜在的なセキュリティリスクを特定し削減するASM(Attack Surface Management)を内製しているフリー社をお呼びしました。
攻撃者がどのように脆弱性を見つけていくのか、これに対してどういった対策が可能なのか、を実践的な事例を踏まえてお話しいただきます。
会の様子
ベールに包まれたペネステレーションテストの正体とは?〜EDRの回避方法を添えて〜
脆弱性診断とペネステレーションテストは違いが曖昧になりやすいし万人に受け入れられる解説は難しいものの、万遍なく対象の脆弱性を洗い出すのが脆弱性診断であり、ペネステレーションテストは攻撃者がどのような行動をしてくるのかを想定したシナリオに基づいて特定の目的を持って検査するものだという話がまずありました。
次に、攻撃者がEDRをどのように攻略するのか?という話がありました。EDRは大体の大企業でインストールされているため、攻撃対象となりやすいということです。
EDRを攻撃するための手段としては、フィッシングメールをマルウェアと同時に送信し、その後にコーディング課題だと思い込んだ従業員がマルウェアを実行してしまうといった実例があるそうで、EDRバイパスのカテゴリとしてはEDRを避けたりEDRを改ざんすることが多いということです。
事例としては、サポートが不十分な言語を使用したり脆弱性があるカーネルドライバを悪用したりしていたそうで、Dockerコンテナを悪用したりといったものが挙げられるということでした。
攻撃者の視点で社内リソースはどう見えるのかをASMで実現する
freee社では外部ベンダによるRed Team演習を実施していたそうで、それを継続的に行えるようにしようと考えて構築した仕組みがASMであるということでした。
ASMの構築にあたっては、まずsubfinderとNMAPを用いた簡単なASMを作成するところからスタートしたそうですが、これは検出漏れが多くsubdomainがどこで管理しているのかを調べるのが難しい点が気になったそうで、サブドメイン列挙アプローチを採用したそうです。
脆弱性が検知された後のフローとしては、アラートが埋もれないように検出結果に差分が出たときにアラートするという仕組みを構築したそうですが、今はLLMでスキャンと差分情報をコンテキストにトリアージさせる方法を考えたということでした。
また、アーキテクチャとしてはCTEMフレームワークに落とし込むと発見と優先順位設定は自動化しているといえるそうで、CSPMにはfASMのDiscovery機能を活用したり、イベント駆動で幅広いシステムを使って利用できる仕組みにしたりしているそうです。
会全体を通した感想
ある程度一般的に話されているようなペネステレーションテストや脆弱性診断の説明があった後、事例をかなり高い解像度で紹介されるという構成が非常によかったです。
特に事例紹介の部分は、技術的な詳細にも深く突っ込みつつも、なぜそのような技術選定をしたのか?というのが過程とともに説明されているのがとてもよく、セキュリティに限らずここ最近見てきた事例紹介の発表の中ではトップクラスに納得感がありつつ学びも多い事例発表でした。