今までずっと温めてきたActive Directoryのセキュリティサービスをやっとリリースすることができました!

NEC Active Directory セキュリティリスク診断サービス

このサービスは、色んな方のノウハウや協力があってこそ、実現できたと思います。ご協力いただいた皆様に感謝します。

関連して、ADセキュリティに関するコラムも公開しましたので、ご興味ある方はご一読ください。

つい最近、PrintNightmare が公開されたばかりで、これからもADを狙う攻撃は継続的に出てくると思います。

本サービス含め、Active Directoryセキュリティの向上に貢献できれば嬉しいです。

今後は、Azure ADのセキュリティも勉強していきたいと思います。

PrintNightmare

gamzatti
Vote 0 Votes

最近、管理業務に忙殺され、技術に全くキャッチアップできていなかったのですが、
先日、研究仲間からヤバイの出てるよと教えてもらい、久しぶりに検証しました^^;
あまり時間がなかったので、先にexploitを成功させていた研究仲間に教えてもらった手順通りに試しましたが、
以下の前提のもとで確かにリモートコード実行できます。

・攻撃者が対象サーバとネットワーク的に疎通できる環境に侵入していること
 (攻撃パケットはSMBで対象サーバの445ポート宛に行われる)

・攻撃者がターゲットコンピュータの一般ユーザ(ADサーバの場合はドメインユーザ)のID/Passを窃取していること

ADサーバだけでなく、クライアントPCなども攻撃可能なのでご注意ください。

以下の回避策が有効であることも確認しました。

・Print Spoolerサービスの停止
・グループポリシーで「印刷スプーラーがクライアント接続を受け入れるのを許可する」を無効化(ADサーバのみ確認)

zerologonと言い、なんか最近やばいwindowsの脆弱性が多いように思います。。

Golden SAML

gamzatti
Vote 0 Votes

ずっとオンプレのAD/Windowsに関する攻撃や検知について調べてきましたが、そろそろADFSやAzureについても勉強が必要だと思い、遅ればせながらAzureについて学び始めました。
オンプレADに対しては、"Golden Ticket"でしたが、ADFSやAzureに対しては"Golden SAML"という攻撃があるそうで、ホワイトペーパーが公開されているので、読んでみました。
ADFSは、Office 365などのクラウドサービスなどに対してシングルサインオンを実現するためのADのサービスです。このシングルサインオンの際は、SAMLと呼ばれる規格が使われます。SAMLでは、ユーザが対象サービスにアクセスするとADFSにリダイレクトされ、ADFSがSAMLレスポンスと共にトークンを払い出して、以後ユーザはトークンを使って(id/passを入れることなしに)対象サービスにアクセスできるという仕組みです。

トークンは、ADFS上で生成される秘密鍵によって署名、暗号化されるのですが、この鍵を盗むことで攻撃者がSAMLレスポンスを生成し、任意のユーザ、サービスへのアクセス権を手に入れるという攻撃が"Golden SAML"です。
攻撃者が作ったSAMLレスポンスであるものの、正規の鍵で署名、暗号化されているという点では、Golden Ticketと似ていますね。。
更に、Golden Ticketと同様に、有効期限などもコントロールできるようです。
なお、秘密鍵を入手するためには、Domain Adminを取る必要はなく、ADFSのサービスアカウントまたはADFSサーバの管理者アカウントを得られれば良いそうです。ドメコンに加えて、ADFSサービスがインストールされているサーバを守るのも大切そうですね。。

上記ホワイトペーパはSolarWinds攻撃全体について書かれていて、SolarWinds攻撃では、Golden SAMLを作った後に、Azure ADにドメインを追加したり、Office 365 にアクセスするためのバックドアを作ったり、色々やっているみたいです。

やはり正規の鍵や証明書を悪用する攻撃なだけに、検知は難しいそうですが、ADFSやドメインコントローラのイベントログ、Azure ADの監査ログなどがモニタリング対象として挙げられていました。冒頭で紹介したホワイトペーパや本URLにモニタリングの詳細が書かれています。

ちなみに、Golden SAMLは、ADと他のサービスをフェデレーションさせている場合に影響を受けるので、オンプレAD単体で動かしている場合は問題なしです。

まだ、PoCなどは動かせていないのですが、読んでいるだけだと分からない点も多いので、早めに動かしてみたいところです。

Golden SAML以外にも、このホワイトペーパはADFSやフェデレーションの仕組みを知るためにとても勉強になりました。もしお時間があれば、ぜひ読んでみてください。

***** update2*****

1点訂正があります。
以前CVE-2021-24085も組み合わせて使われると書いていたのですが、
CVE-2021-24085のパッチを適用後もCVE-2021-27065によるバックドア設置が可能であることを確認したため、
msExchEcpCanaryはCVE-2021-26855(SSRFの脆弱性)によって取得していると思われます。
PoCコードからも、そのように読み取れますね。
失礼しました。。

***** update*****

Exchange Serverのsystem権限を取れるRCEの攻撃コードが見つかったようです。

(各Exchangeで使われている)有効なメールアドレスの情報が1つあれば、exploit可能なようです。

Metasploitにモジュールが組み込まれたとの情報もあるため、特にインターネットからExchangeのHTTPSサーバがアクセス可能な場合は、注意が必要な状況かと思います。

また追加情報があれば、アップデートします

********************

具体的には、以下の脆弱性を組み合わせて悪用することで、Exchange Serverにバックドアを置いてリモート制御することが可能になるとのこと。

CVE-2021-26855(SSRFの脆弱性),

CVE-2021-27065(任意のファイル書き込みの脆弱性)

これらの攻撃は全て、Webメールなどを提供しているexchange server443ポート宛に行われます。

CVE-2021-26855は、それらの脆弱性単体で何かサーバに影響を与えるというよりは、CVE-2021-26855のファイル書き込みに必要なトークンやcookieなどを入手するために使われるものと思われます。

攻撃手法についてこちらの記事が詳しいので、興味がある方は読んでみるといいと思います。

検知の観点では、これらに記載の通り、攻撃を受けると特徴的なパスやクエリを使ったリクエストが送られ、公開ディレクトリにwebshellが置かれます。

また、VirtualDirectoryの設定(InternalUrl ExternalUrl )不正に書き換えられるため、設定が正しいかを確認することが手掛かりとなりそうです。

まずは、自組織のExchange Serverの443ポートがインターネットからアクセス可能な状態になっていないか確認するのが良さそうです。

外に開いていなくとも、組織内での侵害(横展開)に悪用される可能性はあると思います。

ちなみに、SSRFって少し分かりづらいと思うのですが、超概要についてはこちらを読んでみてください。

CVE-2021-26855のSSRFは、exchangeHTTPサーバがKerberosを介してIISなどのバックエンドサーバーに対して認証を行う処理を悪用して、攻撃者がexchangeサーバになりすますことができるという内容だそうです。

自粛で動きづらいこともあり、今週末はお家にこもってカタカタしてました。

普段、休みの日に作業する時はダラダラしてしまうのですが、珍しく集中しましたね(笑)

そんな中、分かったことの備忘録諸々。全然違う話題が集まっていますが、気にしないでくださいw

・CVE-2020-25684(DNSpooq)

DnsmasqというDNSソフトウエアの脆弱性のホワイトペーパーが出ていることを同僚から教えてもらいました。

ちなみに、Dnsmasqってそんなに使われていないと思いますし、脅威度の高いものではないと思うのですが、内容が興味深かったので書いているだけです。

理論的には(RFCに基づいた実装をしている場合)、攻撃者がキャッシュポイズニングをするためには、TXID(クエリ紐づくユニークなID)とソースポートのランダム化の組み合わせを推測する必要がある。

しかし、Dnsmasqは、上位DNSサーバからの応答を受け入れる際にTXIDとソースポートの組み合わせを検証しないので、攻撃者はキャッシュポイズニングをするための試行回数が減ってハードルが下がってしまうという内容です。これはDnsmasqが転送に使用されるソケットは64個に制限し、1つのポート上で複数のTXIDを多重処理していることが原因だそう。

逆にいうと、ポートに関しては、(64/全ポート数)の確率で当たってしまうということですね。

上記ホワイトペーパーにランダムさのエントロピーの式が書いてあって、私は最初なぜそんな式になるのかが全然理解できず、数学に強い同僚に、エントロピーは確率の逆数になるからだと説明してもらい、やっと腑に落ちました。

○十年振りに、順列と組み合わせとかを真面目に考えました(結果的にはそんな複雑なこと考えなくても良かったんですけどねw)

・Splunkのフィールドエイリアス

最近、仕事の関連で今更ながらSplunkを勉強し始めました。

Splunkにはログ項目から抽出したフィールドに別名(エイリアス)を付ける機能があります。

エイリアスを使うと、異なる機器から収集したログがバラバラのフィールド名でも、統一したエイリアスをつけてあげることで、

フィールド名の違いを意識せずに統一的に検索できるようになります。

エイリアスの設定は、何故かSplunk画面からの設定ではうまくいかず、prop.confという設定ファイルを編集する方法ならうまくいきました。

ちょっとハマったので、ご参考になれば幸いです。

・pythonのrequestsモジュールで複雑なjsonデータをPOSTしたい時

シンプルなjsonデータなら、変数にjsonデータを文字列として入れて、requests.post()のdataパラメータとして渡すだけで十分なのですが、

入れ子になったような複雑なjsonデータを送りたい時は、プログラムに直接記載する方法ではうまくいかないことがあります

(特殊文字のエスケープやエンコードをちゃんとやればいけるのかもしれないですが。。)

そんな時は、jsonデータを別ファイルとして保存して、json.load()で保存したjsonをロード後、エンコードするとうまくいくかもしれません(以下のような感じ)。

json_open = open('message.json', 'r')
data = json.load(json_open)
param=json.dumps(data).encode("utf-8")


今週は残タスクがたくさんあって、今日は土曜日ですが数時間働きました。

PCを触らない休日はあまりないのですが(笑)、会社に申請を出して正式に休日に働いたのは久しぶりですね。

とはいえ、今日は短時間で集中できてとても良い日でした。

出航復帰し、最近は実ログを眺めることが増えたのですが、今日はプロキシサーバ製品であるiFilterを触っていました。

プロキシサーバのアクセスログに通信元端末のIPアドレスが記録されることは言うまでもないと思いますが、iFilterでは通信元端末のホスト名も残すことができるんですね。

デフォルトでは記録されなくて、以下の設定が必要でした。

・iFilterの"DNS逆引き"機能をONにすること

・iFilterがインストールされているサーバからクライアント端末のホスト名を逆引きできること

 (私の検証環境では、iFilterがインストールされているサーバのDNSリゾルバの設定に端末の名前解決ができるDNSサーバを追加)

小さなことの様ですが、DHCPでIPが頻繁に変わってしまうような環境でもプロキシのログだけで通信元端末を特定できるので、実は便利だなぁと思います。

Stay homeな休日

gamzatti
Vote 0 Votes

再び自粛モードになりましたが、皆さんはどんなふうに休日を過ごされているのでしょうか。
ご家庭を持っている方は家族サービスに忙しいかもしれませんね。
私は子供がいないので、比較的自由で時間もあります。
基本、出て行くのが好きで、コロナになる前はほとんど家にいませんでした。
一人で目的なく、ふらりと出かけることも多かったですね。
最近は、目的のない外出はしなくなり、家にいることが増えました。

私のstay homeな休日はざっくりこんな感じです。
朝型なので、7時頃起床
朝ヨガに行く
帰宅後、残っている研究や仕事を片付ける
遅めのお昼を食べて、お昼寝笑(朝ヨガの疲れと満腹感で必ず眠くなります。。。)
超早で家事や掃除を片付ける(家事は苦手なので1分でも早く片付けたい)
散歩&買い物
最近買ったリングフィットアドベンチャーをやる(結構いい運動になります)
残っている研究や仕事を片付ける
夜ご飯
お風呂に入って、ストレッチ
映画鑑賞や読書しながら、夜のおやつタイム
23時台に就寝

私は空腹時が一番集中できるので、基本食事前の1時間くらいでタスク系を片付けるようにしてます。
後、あまり無駄な時間を過ごさないようには気をつけていますね。
時々、疲れていたり、気分的な問題で無気力な時もあるのですが、そんな時は早朝から無理矢理にでもヨガに行くことで、スイッチを入れるようにしてます。

ちなみに無駄って、何を無駄と思うかは人それぞれなので、"無駄なことして。。"などと他人から言われても全く気にしなくてもいいと思います。

振り返って、自分自身が無駄な時間を過ごしてしまったなぁ。。と後悔さえしなければ、どんな時間の使い方をしても良いと思うんですよね。

例えば1日ゲームしてても、自身がリフレッシュできたなら、それは決して無駄ではないと思うので。

自粛で外出の機会や人との関わり合いが減っても、刺激がある生活を送って、いつまでも若々しくいたいものです。

少し前に公開された情報なのですが、最近調査する機会がありましたのでまとめておきます。
顧客管理システムのクラウドサービスSalesforceの設定が適切に行われていない場合、
インターネットから認証されていない第三者がサービス内部で使っているデータを取得できるという内容です。
攻撃手法などは本記事に詳細に書かれています。
検証してみたい方は、この記事のステップ通りにやれば、サインアップすれば無料版のSalesforceで検証できます。

詳細は上記記事を見ていただければと思いますが、問題を再現させるためには以下が必要です。

・サイトを作成すること(最初の状態では作成されていない)
 なお、サイトには、Force.comサイトと呼ばれるものと、コミュニティサイトと呼ばれるものがあるみたいです。
 記事の通りにやると、コミュニティサイトができます。

・カスタムオブジェクトを作成し、サイトのゲストユーザーのプロファイル設定で、オブジェクトに対する参照権限を与えること
 オブジェクトは、データを入れる箱のようなもので、最初からある標準オブジェクトとユーザが作成するカスタムオブジェクトと
 呼ばれるものがあります。少なくとも私が使用した際は(最近)、標準オブジェクトには参照権限が無かったので、カスタムオブジェクトを作成しました。

・Force.comサイトの場合、ゲストユーザのLightning という設定項目がオンになっていること。
 この機能をオンにすると、画面からはアクセスできない本来非公開のWeb APIでアクセスできるようになります。
 コミュニティサイトでは、この機能を切り替える設定項目が見当たりませんでしたが、APIにアクセスすることは可能なので、
 おそらくonになっているのでしょう。

最近、脆弱性の検証といえば、Windows系しかやっていなかったので、久しぶりにBurpを触りました^^;

後、本題からはだいぶ逸れますが、Active Directoryって、ユーザ名の全角と半角が区別されないのですね。。。最近知りました。
全角のユーザが作れること自体が衝撃的でしたが、更に区別もされない(半角でも認証が通る)とは。。

逆も然りです。半角でユーザを作ったとしても、クライアント側で全角でユーザ名を入力すると普通に通りました。。
何年ITやっていても、身近で知らないことって色々あるのだなぁと。

Yoga -advanced pose-

gamzatti
Vote 0 Votes

明けましておめでとうございます。

ステイホームお正月で暇なので、新年早々、ヨガをやってみました。

ヨガも実に様々なポーズ(アーサナ)があるのですが、私が個人的に好きな(美しいと思う)アーサナを幾つか紹介したいと思います。

どこのヨガ教室に行っても習うようなベーシックなアーサナもあれば、それらを少し発展(アレンジ)したようなアーサナも実はたくさんあります。

慣れてきたら、自分がやりやすい、気持ちいい、見た目が綺麗などと思うように、少しアーサナをアレンジしてみても楽しいと思います。

(時々先生によっては型破りなポーズをすると、注意されることもありますが笑)

左:三角のポーズ(トリコナアーサナ)の変形版です。通常の三角のポーズでは、前足の方に倒れますが、こちらのアーサナでは後方に反ります。内臓が活性化しますよ。

中:いわゆる前後開脚と呼ばれるポーズで、ヨガでは"ハヌマーン"と呼ばれます。柔軟性さえあればできるので、実はあまり難しくないですし、筋肉も使わないです。

下:半月のポーズ(アルダチャンドラアサナ)と呼ばれ、通常は後ろの脚は90度くらいまでしか上げないですが、私はこのように高く上げた方が綺麗だなと個人的に思います。やってみるとわかりますが、上よりも下の足の裏側に効きます。

reverse.JPGzengo.jpghangetu.jpg

左・中:片足を上げたサイドプランクのポーズ(エーカパーダヴァシシュターサナ)と呼ばれて、横向きのプランクから片足をアップします。足を持つのが難しければ、少し上げるだけでも効果があります。

下:スタンディングスプリット(ウルドヴァプラサリータエーカパーダーサナ)と呼ばれ、立った状態の前後開脚です。(私もまだ綺麗に180度になってないので、今後の目標ですw)

side1.jpgside2.jpgstand.jpg

上:弓のポーズ(ダヌーラーサナ)と呼ばれ、背筋強化&腰痛防止に効きます。

中:片足のブリッジなのですが、アーサナとしての名前がわかりませんでした。ブリッジもいきなりやると腰を痛めてしまうことがあるので、先ずはハーフブリッジなどからやるのがおすすめです。

下:鳩の王様のポーズ(エーカ・パーダ・ラジャ・カポタ・アーサナ)と呼ばれるポーズで、背中、腰の柔軟性と、肩周りの柔軟性が必要です。鳩のポーズにもベーシックなものから色んなバリエーションがあり、その一番発展系とされているのがこのポーズです。これが出来るようになるまでは、それなりに時間がかかりました。

yurikago.JPGbridge.jpghato.jpg

年齢に負けずに、いつまでもしなやかな身体をキープしたいものです^^

2020年ももう終わりということで、今年習得したアームバランスのバリエーションを紹介します。

普通のヨガじゃ物足りないという方や、筋トレはあまり好きじゃないという方にもお勧めです。

アームバランスは腕の力がないと難しいイメージがありますが、実は腕の力はそんなに使わなくとも、体重移動を色々してみて、バランスが取れるところをうまく探せればできます。

むしろ、コアを鍛えたい場合は、腕の力は使わない方が良いくらいです。

一言でアームバランスと言っても、実は結構いろんなバリエーションがあります。

難易度は個人差はあると思いますが、私が習得に時間がかかったものから、左上から右下に並べてみました。

やり方の詳細はこちらのサイトによくまとまっています。

初級編:

左:一番ベーシックなアームバランスで、天秤のポーズ(トーラーサナ)と呼ばれるもの。蓮華座が組んで、脚を引き上げれば比較的簡単に浮きます

中:サイドクロウと呼ばれるポーズで、私は右の鶴のポーズよりこちらの方がやり易かったです。太ももを思い切り両肘に乗せるのがポイント。初めは膝は曲がっていてもOK

下:こちらも有名なアームバランスで、鶴のポーズ(バカーサナ)と呼ばれます。怖がらずに思い切り体重を前に載せて、脚の付け根を引き込むと自然に脚が上がります

1tenbin.jpg2side.jpg3turu.jpg

中級編:

左:ベビーバカーサナと呼ばれる、肘をついた鶴のポーズなのですが、これが意外とキツイ。普通の鶴のポーズよりやりづらい人も多いみたいです。

中:ホタルのポーズ(ティッティバーサナ)と呼ばれるものです。子供がよくやっていますね。両肩にしっかりもも裏を乗せて床をプッシュ。

下:サイドクロウからこめかみを床に降ろし、上の脚を高く上げていきます。江頭がよく取ってるポーズって実はこれ?(笑)

4baby.jpg5hotaru.jpg6side-henkei.jpg

上級編:ここからのポーズは体が柔らかくないと痛めてしまう可能性もあるので、先ずはストレッチから。

左:パドママユラーサナ(蓮華座を組んだ孔雀のポーズ)と呼ばれるポーズ。蓮華座を組んで逆手にし、肘の内側にみぞおちを差し込んでアップ。内臓の活性化におすすめ。

中:名前が分からないのですが鶴のポーズの変形版で、立ち木のポーズから両手を床について行う鶴のポーズです。股関節の柔軟性がないと難しいかもしれません。

下:賢人カウンディニャに捧げるポーズ (エーカパーダカウンディニャーサナ)と呼ばれすポーズで、曲げた片足とみぞおちを二の腕に乗せてバランスを取ります。意外なことに、上の脚は高い方が楽なので、鍛えたい場合は、上の脚はなるべく低くキープ。

7kujyaku.jpg9turu-henkei.jpg10kenja.jpg

左:横向きの鶴のポーズ(パールシュヴァバカーサナ)と呼ばれ、その名の通り、前ではなく、横向きに体重をかけて鶴のポーズを行います。腕をしっかり曲げて、身体を低くするとやりやすいです。

右:八曲がりのポーズ(アシュタヴァクラーサナ)。上の脚を肩に担いだ状態からスタートします。こちらも腕をしっかり曲げて、身体を低くするのがポイント。

8yoko.jpg11_8.jpg

どのポーズでも、ポイントは同じかもしれません。

・無理に手で浮こうとせずに、体重移動で自然に浮くまで待つ

・腕全体で床をしっかり押す

・脚の付け根を引き込む

・顔は下げずにしっかり前方を見る