PowerShellやマルウェアとの戦いの他の機能を無効にします。 パートI

それほど昔ではないようで、2015年頃で、攻撃対象の境界内でマルウェアを使用しなかったハッカーの話を聞き始めました。 そして、彼らは手元にあるものを使用しました-これらはターゲットサイトにあるさまざまなツールでした。 それは、「ノイズ」をあまりせずに「汚いビジネス」を行う理想的な方法であることが判明しました。



このアプローチは私たちの時代に勢いを増し、主流になりました。これは主に、PowerShell Empireなどの既製のハッカーツールが豊富にあるためです。



PowerShellがPowerViewによって補完されると、ハッカー向けの情報の強力なプロバイダーになる方法については既に説明しました(この知恵はすべてコレクションに収集されています。できるだけ早くお読みください)。



もちろん、どんなツールでも良い面と悪い面の両方に使用できるので、PowerShellがハッカーの生活を楽にするために作成されたことをここでほのめかさないと思います。

しかし、パドロックの横に頑丈なボルトカッターを置いていないのと同じように、おそらくそれを許可したくないか、少なくともハッカーがPowerShellを手に入れるのを可能な限り困難にしたいでしょう。



これにより、サイバーセキュリティの世界で大きなトピックが浮上します。アクセスのホワイトリストおよびブラックリストとしても知られるアプリケーションへのアクセスの制限です。 一般的な考え方は、オペレーティングシステムがユーザーが起動できるアプリケーションと起動できないアプリケーションを認識し、厳密に制御することです。



たとえば、ホモブログであるため、通常、いくつかの基本的なツールとアプリケーション(そして夜寝ることができる暖かい場所)が必要です。以前の投稿で語った。 企業のほとんどの従業員にも同じことが当てはまるため、資格のあるITプロフェッショナルは、安全に使用できるアプリケーションのリストを作成できるはずです。



Windowsの世界では、プログラム、さらに最近ではAppLockerを使用するための特別な制限ポリシーを使用して、アプリケーションを実行するためのルールを使用することができます。



ただし、これらの革新的なアイデアに取りかかる前に、2つの非常に簡単な解決策を試してから、それらの問題点を確認しましょう。



ACLおよびその他の簡略化



Windows ACLは、読み取り可能なコンテンツへのアクセスを制御するために使用されるため、よく考えられます。 ただし、実行可能ファイル(.exe、.vbs、.ps1など)にも適用できます。



神話的かつかつて伝説的な会社AcmeのWindowsドメインがあるAmazon Web Servicesクラウドに戻り、そこでACLを使用してアクセス制限を実証しました。



画像



PowerShell .exeは、システム管理者であれば誰でも簡単に確認できるもので、C:\ Windows \ System32 \ WindowsPowerShell \ v1.0にあります。 プロパティと呼ばれるこのフォルダーに移動し、PowerShellの実行権限を、Acmeの経験豊富なユーザーグループである「Domain Admins」と「Acme-SnowFlakes」の2つのメイングループに即座に制限しました。



Acmeでの私の役割であるBobのようなサーバーに切り替えて、PowerShellを呼び出そうとしました。 結果は以下のとおりです。



画像



実際には、おそらくスクリプトを思い付くことができます。PowerShellを使用して、中小企業のすべてのラップトップとサーバーのこのACL構成プロセスを自動化してみませんか。



これは悪い決定ではありません。



実行可能ファイルのACLを変更するというアイデアが気に入らない場合は、PowerShellが独自の制限手段を提供します。 管理者権限を持つユーザーは、好きなものを使用できますが、最も簡単なのは組み込みのSet-ExecutionPolicyコマンドレットです。



これは、ACLをインストールするような「扱いにくい」ソリューションではありません。 たとえば、Restrictedパラメーターを使用して、インタラクティブモードでのみ動作するようにPowerShellを制限し、ハッカーマルウェアを含む可能性のあるPSスクリプトを実行しないようにすることができます。



ただし、これにより、ITスタッフが実行するPowerShellスクリプトもブロックされます。 承認済みのスクリプトを許可し、悪意のあるハッカースクリプトを無効にするには、RemoteSignedパラメーターを使用します。 PowerShellは、署名されたスクリプトのみを実行します。 もちろん、管理者は独自のスクリプトを作成し、検証済みの資格情報を使用して署名する必要があります。



これを行う方法については詳しく説明しませんが、これは主に移動が非常に簡単だからです。 このブログの誰かが、PowerShellのセキュリティ制限を回避する15の方法を説明しています。



最も簡単なのは、PowerShell自体でBypassパラメーターを使用することです。 はい! (以下を参照)。



画像



セキュリティホールのようですね。



そのため、PowerShellにはいくつかの主要な脆弱性があります。 ちなみに、これは結局のところ、単なるソフトウェアシェルであるためです。



ただし、ACLレベルの制約アプローチにも基本的な問題があります。

ハッカーが哲学を弱めた場合、たとえば、PowerShell.exeの独自コピーであるリモートアクセストロイの木馬(RAT)を使用して簡単にダウンロードできます。 そして、それを直接実行し、ローカルのPowerShellでアクセス許可の制限を簡単に回避します。



ソフトウェア制限ポリシー



これらの主要なセキュリティホール(他の多くのセキュリティホールと同様)は、常にコンシューマグレードのオペレーティングシステムに付随しています。 これにより、OSの研究者は、起動できるものを制御するパワーを持つ安全なオペレーティングシステムを考案することになりました。



Windowsの世界では、これらの力はアプリケーション制限ポリシー(SRP)として知られています-一見、これを見てください-それらはグループポリシーエディターで構成されます。

彼らの助けを借りて、ファイル拡張子、パス名、およびアプリケーションがデジタル署名されているかどうかに基づいて、起動できるアプリケーションを制御できます。



最も効果的ですが、最も苦痛を伴うアプローチは、すべてを禁止してから、本当に必要なアプリケーションを追加することです。 これはホワイトリスト登録と呼ばれます。



これについては、次のパートで詳しく説明します。



いずれの場合でも、ポリシーエディターgpEditを起動し、[ローカルコンピューターポリシー]> [Windowsの設定]> [セキュリティの設定]> [ソフトウェアの制限のポリシー]> [セキュリティレベル]に移動する必要があります。 「許可しない」をクリックすると、これをデフォルトのセキュリティポリシーにできます。実行可能ファイルは実行しないでください。



画像



ホワイトリスト:デフォルトで無効にしてから、許可されたアプリケーションを「追加ルール(追加ルール)」に追加します。



これは、焦土作戦に似ています。 実際には、許可されたアプリケーション(名前とパスを示す)を元に戻すために、「追加の規則」を導入する必要があります。 PowerShellを終了すると、実際にこのツールを無効にします。



残念ながら、個々のグループまたはユーザーに基づいてプログラムの使用を制限するポリシーのルールを調整することはできません。 くそー!



そして今、これは論理的に、AppLockerとして知られる最新のMicrosoftセキュリティの成果につながります。AppLockerには、アプリケーションを開くことができる独自の機能があります。 次回はこのことについて話しましょう。



All Articles