アプリケーションサーバー1Cとその周辺の穴を塞ぐ







今日の記事では、企業ネットワーク内の1Cサーバーの脆弱性について説明します。







実践が示しているように、1Cを使用したインストールでは、全員がさまざまな重大度の同じ間違いを犯します。 更新プログラムのインストールなどの明白なことには触れませんが、Windowsで実行されているアプリケーションサーバーの詳細については説明します。 たとえば、可能であれば、1Cツールを使用してMicrosoft SQLデータベースを制御不能に操作します。







歴史的に、システム管理者と1Cプログラマーが1つのチームとして働くことはまれです。 ほとんどの場合、1Cの専門家はシステム管理の複雑さを掘り下げておらず、システム管理者は1Cのニュアンスを理解しようとはしていません。

そして、情報セキュリティの専門家にとって明らかな「子供の痛み」を伴うインフラストラクチャが判明しました-以下に、このような問題の個人的なトップを紹介します。







サーバーを正しく起動します



デフォルトでは、インストール中の1Cプラットフォームは、サーバーサービス-USR1CV8が機能する限定された権限を持つ特別なアカウントを作成します。 ネットワークリソースが必要になるまで、すべてが順調に進んでいます。たとえば、自動アップロードやダウンロードなどです。 デフォルトアカウントはローカルであるため、ドメインのネットワークフォルダーにアクセスできません。







私の実践では、この問題を解決するための多くの方法に出会いました。Everyoneグループの書き込みアクセス権を持つフォルダー、ドメイン管理者権限を持つアカウントの1Cサーバー、ネットワークリソースを接続するコードで明示的に記述された資格情報。 通常のアプリケーションとしてユーザーセッションで1Cサーバーを起動することもできます。









RDPを介してサーバーにアクセスすると、そのようなウィンドウが表示され、神経質になります。







もちろん、ハードコードされたパスワードと匿名の書き込みアクセスを持つネットワークリソースはまれです。 通常のドメインアカウントでの1Cサーバーの操作とは対照的。 もちろん、「サーバー上」で任意のコードを実行する機能があります。







1Cニックネームは知っているが、システム管理者は知らないように、1Cプロセスには、サーバーとクライアントの2つのプロシージャ実行モードがあります。 「サーバー」モードで起動すると、手順はアプリケーションサーバーのサービスアカウントで実行されます。 彼女のすべての権利。







1Cサーバーがドメイン管理者の権限で動作する場合、潜在的な害虫はドメインで何でもできるようになります。 合理的な方法は、 USR1CV8に基づいて特別なアカウントを作成することです。これは既にドメインにのみ存在します。 特に、Active Directoryユーザーとコンピュータースナップインで特定のサーバーへのアクセスのみを許可する必要があります。









許可されたサーバーにのみログインを構成します。







サーバーへのアクセスをサービスとしてのみ許可し、システムへのローカル(インタラクティブ)ログインの可能性を無効にする必要はありません。 これは、サーバー上で直接ローカルセキュリティポリシーを介して、またはドメイングループポリシーを使用して実行できます。









ローカルセキュリティポリシーでユーザー権利を割り当てます。







Microsoft SQL Serverアカウントについても同じことが言えます。 悪い習慣から白髪を追加できます。









SQLに接続する



通常、実際には、ユーザー "SA"(SQLのスーパーユーザー)の下で1Cサーバーにデータベースが接続されています。 一般に、SAからのパスワードはアプリケーションサーバー上の1CV8Reg.lstファイルでハッシュされるため、これは思ったほど怖くありません。 攻撃者は仮想的にハッシュを取得できます-サーバーアカウントの権限を忘れません-しかし、ブルートフォースを使用する場合は特に復号化に時間がかかります。







しかし、それでも、責任者に通知してこのファイルへのアクセスの監査を設定することは不要ではありません。







もう1つのことは、1CプログラマーがDBAの責任を「委任された」場合です。 繰り返しますが、個人的な経験から:SQLサーバーはプログラマーの責任であり、外部サイトと1Cデータベースの統合も同様でした。 その結果、サイトスクリプトのSAパスワードが作成されました。

快適にするために、SAに複雑なパスワードを設定するか、このアカウントを完全に無効にすることをお勧めします。 SQLでは、管理用のドメイン認証を有効にし、必要なデータベースへの権限を持つ1Cの個別のログインを作成する必要があります。







1Cインターフェースを介してSQLデータベースを作成する機会を残したくない場合、新しいユーザーは、1Cデータベースで直接publicdb_ownerの共通の役割を持ちます。







これは、Management Studioまたは単純なT-SQLスクリプトを使用して実行できます。







USE <databasename> CREATE LOGIN 1c_user WITH PASSWORD = 'VeryStrongPassword' CREATE USER 1c_user FOR LOGIN 1c_user ALTER ROLE db_owner ADD MEMBER 1c_user GO
      
      





1Cユーザー



何らかの理由で、ユーザーの権利に注意を払う人はほとんどいません。 ただし、「管理機能」または「管理」権限を持つユーザーは、コンフィギュレーターを介してデータベースを.DTに簡単にアップロードし、持ち帰ることができます。これにより、リーダーシップに複数の刺激的な幸福がもたらされます。 そのため、お茶1C-nickを1杯取って、ベースの上に一緒に座って、どのユーザーが同様の権利を持っているかを調べる価値があります。 そして同時に-彼らの権限を低下させると脅かすもの。









標準1CのFull Rights役割のベースをアンロードする権利:アカウンティング2.0。







次に重要な点は、外部処理の開始です。 覚えているように、1Cではサーバーアカウントの権限でコードを実行できます。 まあ、システムに対する管理者権限を持っていない場合でも、ユーザーのためにそのような処理を開始する可能性を除外することは価値があります。 また、追加のレポートと処理をデータベースに「埋め込む」ように1Cスペシャリストに依頼することを忘れないでください。 すべての処理が埋め込みをサポートしているわけではありませんが、この機能はバージョン1Cに依存しています。









コンフィギュレーターで外部プロセスを開く権限を持たない典型的なロールを確認できます。







これらのすべてのアクションは、潜在的な「内部の害虫」から保護するのに役立つだけでなく、1C処理を装った暗号化ウイルスに対する追加の障害にもなります。

それでも外部処理を開始する必要がある場合は、制御と保険の適切なオプションは、それらの起動の監査です。 1Cにはまだフルタイムの監査メカニズムがありませんが、 いくつかの回避策がコミュニティで既に考案されています。 これらのメカニズムの実装は、データベースログにイベント通知を設定するのと同様に、1Cスペシャリストとペアになっています。







別に、1C認証の代わりにドメインユーザー認証を構成する機能に注意してください。 また、ユーザーにとっても便利です。メモリ内のパスワードが少ないほど、モニターにステッカーが貼られるリスクが減ります。







クラスター管理者



そのため、ユーザーは処理を開始できなくなり、サーバーアカウントは可能な限り制限されます。 ただし、もう1つあります。1Cクラスター管理者アカウント。デフォルトでは作成されません。







存在しないことは危険です。サーバーのネットワークポート(デフォルトではTCP:1540)にオープンアクセスできるラップトップを持っている人は誰でもそこに自分のベースを作成でき、処理の開始に制限はありません。 また、悪役は、データベース、作業中のユーザーに関する情報を取得し、クラスターパラメーターを変更し、特定のユーザーの完了を強制することもできます。







すべてのサーバーデータベースからすべてのユーザーを追放するPowerShellスクリプトの例:







 $COMConnector = New-Object -ComObject V83.COMConnector $agent = $COMConnector.ConnectAgent("servername") $cluster = $agent.GetClusters()[0] $agent.Authenticate($cluster,"", "") $sessions = $agent.GetSessions($cluster) Foreach ($session in $sessions) { $agent.TerminateSession($cluster, $session) }
      
      





良い目的のために1Cサーバーで働く同様の方法の使用は以前の記事の1つですでに言及されました







クラスター管理者の作成は簡単ではありませんが、非常に簡単です。1Cクラスター管理の「管理者」項目を右クリックし、ユーザー名とパスワードを入力して新しい管理者を作成します。









クラスター管理者の作成1C。







1C:Enterpriseをセットアップするときに、欠陥の一部のみに触れました。 自習のために、これまでに関連性を失っていない資料を読むことをお勧めします。









1C:Enterpriseを使用する場合、コメントで非標準のソリューションと好奇心を共有してください。








All Articles