DOBON.NET DOBON.NETプログラミング掲示板過去ログ

他アプリケーションを起動させない方法

環境/言語:[開発環境:Windows XP Professional SP2 使用言語:C#]
分類:[.NET]

開発環境>XP Professional SP2
使用言語>VS.NET 2005 C#

初めて投稿させて頂きます。
ただいま自社(サービス業)内で休み時間などでP2Pソフトを使用しているアルバイトが多くなりネットワークが遅くなっています
上から「指定したソフトを使用できないようにしろ」との指示があり
Windowsサービスにてプロセスを監視しプロセス内のアプリケーションのパスを取得し予め登録しているハッシュとの照合を行い、マッチしたアプリケーションはProcess.Kill()にて停止させるソフトを作成しました
しかし、タスクマネージャーより本ソフトを停止し利用されてしまいました。

質問としましては
1.タスクマネージャーより本ソフトを消すことは可能でしょうか?
2.そもそも他ソフトの起動阻止を行なう場合は別の方法を用いるべき?

長文になり申し訳ありませんが宜しくお願いいたします。
1、2の質問に対する回答でなくてすいません。
正直、ソフトで使用を禁止すればよい、というレベルではないと思うのですが・・・。


御社内のPCに入っているP2Pは、業務上必要なものなのでしょうか。

情報セキュリティに対する重要性が見直されている昨今では、
Winnyをはじめ、P2P等のファイル交換ソフトの使用はあまりにも危険と言わざるを得ません。
情報漏洩の内容如何では、会社の存続自体が危ぶまれるレベルです。

もし必要でないソフトならば全てのPCからアンインストールし、
無断でインストール・使用した場合は解雇や損害賠償請求をする旨の告知等の対策をすべきかと存じます。

他社のことに口を出すような発言になってしまって大変恐縮ですが、
管理権限を持つ方に相談してみてはいかがでしょうか。
返信ありがとうございます。

> 御社内のPCに入っているP2Pは、業務上必要なものなのでしょうか。

業務上、必要なものではありません。
何度かPCに不具合がおきたりしているので
現在は「Microsoft Steady State」を導入し不具合に対応しています。
ファイル等は別のPCに保持し必要な場合のみ作業PCに持ち込み
編集完了時に別PCへ書き戻すようにしています。

> 正直、ソフトで使用を禁止すればよい、というレベルではないと思うのですが・・・。

できればサーバーを導入しポリシーにて管理をおこないたいのですが
予算の問題等がありましてできていません。

> 情報セキュリティに対する重要性が見直されている昨今では、
> Winnyをはじめ、P2P等のファイル交換ソフトの使用はあまりにも危険と言わざるを得ません。
> 情報漏洩の内容如何では、会社の存続自体が危ぶまれるレベルです。

ごもっともです。
徐々に社内の整備をおこなっているのですが。。。

> もし必要でないソフトならば全てのPCからアンインストールし、
> 無断でインストール・使用した場合は解雇や損害賠償請求をする旨の告知等の対策をすべきかと存じます。

社内告知はおこなっているのですが
弊社の体質としてパソコンの知識=社員<アルバイトという状況です。
社員がいない間にやっているみたいで、あわてて現場にいっても
知らぬ存ぜぬの状態です(お恥ずかしい限りです)
ある一定のアルバイトではなく多数いるみたいで限定もできていません。

> 他社のことに口を出すような発言になってしまって大変恐縮ですが、
> 管理権限を持つ方に相談してみてはいかがでしょうか。

いえいえ、ごもっともなことです。
私が(3ヶ月前)入社するまでパソコンの活用がおこなわれていなかったので
現在は私が内部の管理をおこなっています。
なんとか内部統制をおこなっていきたいという手前段階でして。。。

その上で先の質問を受け入れて頂ければありがたいです。

takumix様、ありがとうございます。
お世話になっております。

ちょっと調べてみた所下記のような物が見つかりました。
http://ruffnex.oc.to/kenji/text/dll_inj/

これを使えば実現は出来そうですが
結局、大元のプロセスを止められたら同じことですよね。
やはりtakumix様のおっしゃる様に社則で止めるしか無いと思います。

>社員がいない間にやっているみたいで、あわてて現場にいっても
>知らぬ存ぜぬの状態です(お恥ずかしい限りです)
例えば、miaim様が作成されたP2Pキラーソフトに
起動時と正常終了時にログを吐く処理を追加して
P2Pキラーソフトを不正に停止した次の起動時に
miaim様に通知が行く様にするなどの方法で
「P2Pキラーソフトを勝手に止めた=P2Pを使用していた」
とみなす、とかはどうでしょう?

まぁ、この方法でも「PCがハングした時はどうするんだ」とか
問題点が色々ありますが……。
返信ありがとうございます。

リンク先拝見しました。
そういう方法があったのですね。

これから作成してみます。

別のプロセスまで止められた場合は。。。

takumix様が仰られているように並行して社則および監視体制の強化もやってみます。

> >社員がいない間にやっているみたいで、あわてて現場にいっても
> >知らぬ存ぜぬの状態です(お恥ずかしい限りです)
> 例えば、miaim様が作成されたP2Pキラーソフトに
> 起動時と正常終了時にログを吐く処理を追加して
> P2Pキラーソフトを不正に停止した次の起動時に
> miaim様に通知が行く様にするなどの方法で
> 「P2Pキラーソフトを勝手に止めた=P2Pを使用していた」
> とみなす、とかはどうでしょう?

しろ様の仰られている方法をみていて思ったのですが
次回起動時ではなくタスクマネージャーから終了された場合というのは
イベント取得は無理なのでしょうか?
1手早く動作できるかなと思いました。
または、タスクマネージャーから終了された場合に
Windowsを再起動してしまうという方法へも繋げることができそうな。。。

まずは、しろ様から教えて頂いたリンク先のプログラムを作成してみます。

みなさん言ってるように、
政治的・社会的手法で解決すべきであるとは思いますが、
あくまで技術でがんばるというのも、
他人事なら楽しいですね。

プロセスを二つ用意し、互いに互いを監視しあうのはどうでしょうか?
一つが死んだら、即座にそのプロセスを再起動するんです。
タスクマネージャーでは同時に2個殺せませんから。

しかし、P2Pで帯域を食いつぶされてるなら、
横領だとか背任だとかで訴訟を起こされても文句は言えないわけですが、
理解しているのだろうか。
返信ありがとうございます。

> みなさん言ってるように、
> 政治的・社会的手法で解決すべきであるとは思いますが、
> あくまで技術でがんばるというのも、
> 他人事なら楽しいですね。
確かに他人事なら。。。(-_-;)

> プロセスを二つ用意し、互いに互いを監視しあうのはどうでしょうか?
> 一つが死んだら、即座にそのプロセスを再起動するんです。
> タスクマネージャーでは同時に2個殺せませんから。
途中で同様な方法をやったのですが
なぜか消されてしまっていまして。。。
少々アングラな方に試して貰ったのですが
どうもCPUに負荷をかけた状態で
タスクマネージャーよりテキパキと停止すると
止めることが可能とのことでした。。。
作り方の問題でしょうか?

> しかし、P2Pで帯域を食いつぶされてるなら、
> 横領だとか背任だとかで訴訟を起こされても文句は言えないわけですが、
> 理解しているのだろうか。
これは知りませんでした。。。
知識不足で申し訳ありません。
社内でアルバイトに伝える場合に使えそうです。
社則に追記してみます。
ありがとうございます。

皆さんの意見を聞いているうちに
作成してはいけないものを作成しているような気がしてきました。。。
なんだかウイルスを作成しているような。。。
もう少し頑張ってみます。
■No20511に返信(miaimさんの記事)
> 返信ありがとうございます。
>
>>プロセスを二つ用意し、互いに互いを監視しあうのはどうでしょうか?
>>一つが死んだら、即座にそのプロセスを再起動するんです。
>>タスクマネージャーでは同時に2個殺せませんから。
> タスクマネージャーよりテキパキと停止すると
> 止めることが可能とのことでした。。。

むむ。
器用な人がいますね。
WaitHandleで終了待ちをすれば大抵大丈夫かと思ったんですが。

ならsvchostに実行させると少し消すのにためらってくれるかもしれません。

それでだめなら
カーネルモードドライバかな…。

でもセーフモードで起動されたら削除できちゃいますね。
お世話になっております。

>プロセスを2つ用意
以前に流行ったウィルスが同じような挙動をしてたので
対処法も研究されてるんでしょう。

>作成してはいけないものを作成しているような気がしてきました。。。
>なんだかウイルスを作成しているような。。。
確かに、コレを縁もゆかりもない他人のPCで動かせばウィルスですが
社内の管理統制に使うのであればギリギリセーフかと。

>次回起動時ではなくタスクマネージャーから終了された場合というのは
>イベント取得は無理なのでしょうか?
私が調べた範囲ではタスクマネージャーから「プロセスの終了」をされると
取れないような感じですね……


昨日、書き込んだ後に思いついたアイデアをひとつ。
P2Pキラーに一定時間毎に暗号化したログの出力なり
メール送信(……だと帯域圧迫するかな?)なりを行わせて
就業時間内にそれが途絶えた場合はP2Pを使用した。とみなすとかはどうでしょう。

結局コレも後手な上にPCハング等の対処が無いわけですが
社則との併用で何とかならないかなぁ……。
夜遅くにありがとうございました。

> ならsvchostに実行させると少し消すのにためらってくれるかもしれません。
>
> それでだめなら
> カーネルモードドライバかな…。
お恥ずかしい話ですが
最初に作成したときにアプリの名称を
svchostとしてインストールしていたのですが
ためらいもなく止めてしまわれて。。。
svchostに実行させる方法があるとは知りませんでした。
カーネルモードドライバも。。。

プログラムを作成する上で私の知識が乏しいのが一番の原因のようですね。
もっと勉強します。
> ただいま自社(サービス業)内で休み時間などでP2Pソフトを使用しているアルバイトが多くなりネットワークが遅くなっています

PCの利用状況がよくわからないのですが、
・何台くらいあるのでしょうか?
・またこれらは物理的に少ない箇所に配置されているのでしょうか?
・アルバイト1人に1台なのでしょうか?
・利用するアプリケーションがたくさんインストールされているような環境なのでしょうか?

はどんな感じでしょうか。答えられる範囲でよいのでコメントいただけると
いろんなアプローチが考えられると思います。

> 上から「指定したソフトを使用できないようにしろ」との指示があり
> Windowsサービスにてプロセスを監視しプロセス内のアプリケーションのパスを取得し予め登録しているハッシュとの照合を行い、マッチしたアプリケーションはProcess.Kill()にて停止させるソフトを作成しました

マッチしたアプリケーションは削除するというのは過激でしょうか。
#照合ミスが発生する可能性があるならまずいですが
起動中の場合はプロセスを停止してから削除で。

> 2.そもそも他ソフトの起動阻止を行なう場合は別の方法を用いるべき?

起動阻止よりインストール阻止がやはり本筋ではないかと思います。
アルバイトは一般ユーザとして、変更できるのはマイドキュメントの中だけ
とかに権限を設定しておけば、問題ないように思うのですが。

アルバイトがどういう業務をするのかにもよるでしょうけど。
お世話になります。

申し訳ありません。
先のリンクのプログラムですが
まだ作成できずにいます。
もうしばらくのお時間を下さい。

> 昨日、書き込んだ後に思いついたアイデアをひとつ。
> P2Pキラーに一定時間毎に暗号化したログの出力なり
> メール送信(……だと帯域圧迫するかな?)なりを行わせて
> 就業時間内にそれが途絶えた場合はP2Pを使用した。とみなすとかはどうでしょう。
>
> 結局コレも後手な上にPCハング等の対処が無いわけですが
> 社則との併用で何とかならないかなぁ……。
しろ様の仰るとおりログの出力は実装します。
上に見せるための履歴にはなりますし
ログが出力されていることを全員に通達するだけでも
抑制にはなるかと思っています。

これを作成した後は、皆さんが仰られているように社則の整備と同時に
個人の意識レベルをあげることが最優先事項だと痛感しました。

昨日オペレーション回避をおこなおうと思ってミーティング中に
色々と回避方法をお願いしたのですが
社員のほとんどが「私には関係ない」状態だったのには愕然としました。
アルバイトの方がスキルが高い理由が分かった気がします。

プログラムを作成しましたら報告させて頂きます。
返信ありがとうございます

> PCの利用状況がよくわからないのですが、
> ・何台くらいあるのでしょうか?
> ・またこれらは物理的に少ない箇所に配置されているのでしょうか?
> ・アルバイト1人に1台なのでしょうか?
> ・利用するアプリケーションがたくさんインストールされているような環境なのでしょうか?
>
> はどんな感じでしょうか。答えられる範囲でよいのでコメントいただけると
> いろんなアプローチが考えられると思います。
PCは各店頭にPOSとして2台ずつ+受発注用に2台+バックヤードに1台×4店舗ですので計20台になります。
インストールされているアプリケーションは業務用アプリやMSOffice、POP作成用ソフト等々、色々とインストールされています。
但しほぼ全マシンにインストールしているソフトの種類や数は同じです。
アルバイトに1台ではなく利用者は不定になります。

> マッチしたアプリケーションは削除するというのは過激でしょうか。
> #照合ミスが発生する可能性があるならまずいですが
> 起動中の場合はプロセスを停止してから削除で。
ハッシュコードが一致したもの限定で当初は削除していたのですが
自宅で作成した業務に使用するファイルをUSBメモリにいれて持ってきたアルバイトがいて
その中にどうもP2Pソフト(Winny)が入っていたみたいなのですが
それを本アプリが削除してしまいました。
動作としてはOKなのですが、
本人は自分のソフトが削除されたと大騒ぎしてしまいまして。
特にWinnyだったので以降そのアルバイトには業務で使用するファイルの持ち出しは禁止+USBメモリの持込禁止にしたのですが。。。
それ以降はその機能は削除しています。
それとアンチウイルス系との相性があるのか
弊社ではウイルス0を使用しているのですが
削除しようとした場合に先にフックされてしまう状況でした。

> 起動阻止よりインストール阻止がやはり本筋ではないかと思います。
> アルバイトは一般ユーザとして、変更できるのはマイドキュメントの中だけ
> とかに権限を設定しておけば、問題ないように思うのですが。
>
> アルバイトがどういう業務をするのかにもよるでしょうけど。
ログインの切り替えができないレベルで(特に社員が!)
全員の権限が同じで運用しています。
一度は権限設定をおこなったのですが
社員がパスワードをモニタに張っていたり
アルバイトに教えて業務を変わって貰ったりしていたので
意味をなさない状況になりまして。。。
弊社のスキル不足は重々承知しております。
どうかそこのところはお許し下さい。
なかなか困った状況ですね。
セキュリティ部門やシステム管理部門は、業務の性質上他部署から嫌われがちです。
しかし企業には今や欠かせない業務なので、めげずにがんばってください。

社員意識改革の為の教育もそうですが、
同時にクライアント監視ツールの導入も検討してみてはいかがでしょうか。
「クライアント監視」で検索してみましたが、なかなかよさそうなものが揃っています。
miaimさんの件ですと、↓あたりなどどうでしょう。
http://www.vector.co.jp/magazine/mysoft/2001/win/net/mw0088_main.html

あとは、私は使ったことが無いので詳しくはわかりませんが、
管理者権限で、ある監視ツールを入れると、
一般ユーザが何かツールを勝手に入れたりしたときに警告を発したり、
ツールを入れさせなかったりするようなものもあるようです。

また色々調べてみますね。
■No20519に返信(よねKENさんの記事)
> 起動阻止よりインストール阻止がやはり本筋ではないかと思います。
> アルバイトは一般ユーザとして、変更できるのはマイドキュメントの中だけ
> とかに権限を設定しておけば、問題ないように思うのですが。

ワークグループだときついですよね?
UsersでもGuestsでも実行できちゃいます。
ドメインにすればグループポリシーでできると思いますが。

情報流出とか一回やればみんな懲りるんでしょうが、
上の方の人の意識が改革されないと
どうにもできませんよね。
皆に嫌われる役になってしまう。

■No20521に返信(miaimさんの記事)
>全員の権限が同じで運用しています。

miaimさん以外を全員下げましょう。
インターネット契約もやめたらどうですか?
POSがあるなら無理かな?

あとはルーターかましてログ+フィルタですね。
帯域を浪費した人を捕まえて損害賠償請求しましょう。
一人血祭りにすればおとなしくなると思います。

あとは取れる手は…
会社を辞めるとか、
あきらめて放置とか。
> なかなか困った状況ですね。
> セキュリティ部門やシステム管理部門は、業務の性質上他部署から嫌われがちです。
> しかし企業には今や欠かせない業務なので、めげずにがんばってください。
ありがとうございます。

> 社員意識改革の為の教育もそうですが、
> 同時にクライアント監視ツールの導入も検討してみてはいかがでしょうか。
> 「クライアント監視」で検索してみましたが、なかなかよさそうなものが揃っています。
> miaimさんの件ですと、↓あたりなどどうでしょう。
> http://www.vector.co.jp/magazine/mysoft/2001/win/net/mw0088_main.html
これ良さそうですね!!
ちょっと使ってみます。

> あとは、私は使ったことが無いので詳しくはわかりませんが、
> 管理者権限で、ある監視ツールを入れると、
> 一般ユーザが何かツールを勝手に入れたりしたときに警告を発したり、
> ツールを入れさせなかったりするようなものもあるようです。
>
> また色々調べてみますね。
ほんとに×1E+22ありがとうございます。
みなさんに迷惑かけてしまい申し訳ありません。
頑張ってやりぬきます。
> ワークグループだときついですよね?
> UsersでもGuestsでも実行できちゃいます。
> ドメインにすればグループポリシーでできると思いますが。
弊社にはサーバーが1台もありません。。。
ファイルサーバーのみ且つ決してサーバーではなく
Windows XP Professional です。。。
この部分も改修必須です。。。

> 情報流出とか一回やればみんな懲りるんでしょうが、
> 上の方の人の意識が改革されないと
> どうにもできませんよね。
> 皆に嫌われる役になってしまう。
既にみんなの敵になりつつありますね。(-_-;)

> miaimさん以外を全員下げましょう。
> インターネット契約もやめたらどうですか?
> POSがあるなら無理かな?
そうですね
POSのマスタデータ等をPOS会社が管理しているので無理ですね。

> あとはルーターかましてログ+フィルタですね。
> 帯域を浪費した人を捕まえて損害賠償請求しましょう。
> 一人血祭りにすればおとなしくなると思います。
>
> あとは取れる手は…
> 会社を辞めるとか、
> あきらめて放置とか。
れい様の発想は大変ユニークで素敵です。
なんだか「最終はそうすればいいや」と思えて、なんとなく頑張れそうな気が。。。
とにかく頑張ってみます。。。
■No20526に返信(れいさんの記事)
> ■No20519に返信(よねKENさんの記事)
>>起動阻止よりインストール阻止がやはり本筋ではないかと思います。
>>アルバイトは一般ユーザとして、変更できるのはマイドキュメントの中だけ
>>とかに権限を設定しておけば、問題ないように思うのですが。
>
> ワークグループだときついですよね?
> UsersでもGuestsでも実行できちゃいます。
> ドメインにすればグループポリシーでできると思いますが。

>>全員の権限が同じで運用しています。
>
>miaimさん以外を全員下げましょう。

私もこのつもりで言ってました。
管理者になれるのはシステム部門の人間だけにすると。
現時点で無法地帯になっているのは4店舗とのことなので、
頑張って行脚して回る想定です。
#4店舗が物理的に離れているとかなり辛いですが・・・

とはいえ、案のレベルで言っているだけなので、
具体的にどのように設定すればいいのかまではわかりません。
#システム管理系の作業はまったくやったことがないので

とある客先では、ドメイン管理ですがシステム部だけが管理者権限を持ち、
何らかの設定変更はシステム部に申請してもらう運用になっていました。
で、システム部はpcAnywareで遠隔操作でいろいろ作業してました。
お世話になります。

> とある客先では、ドメイン管理ですがシステム部だけが管理者権限を持ち、
> 何らかの設定変更はシステム部に申請してもらう運用になっていました。
> で、システム部はpcAnywareで遠隔操作でいろいろ作業してました。
その手もありですね。
いまは4店舗共徒歩10分圏内なので気づいた時点でダッシュしています(汗。。。)
遠隔操作できれば、ほぼリアルに確認ができるのでいいですね。

皆さんに教えて頂いた方法をMIXして現時点で最良の仕組みを模索してみます。

ありがとうございます。
大変遅くなりました。
まだまだテストを重ねなければいけませんが
しろ様に教えて頂きました方法でプログラム完成しました。
開発環境では問題なさそうなので
問題の多発している2店舗に本日の夜にでも導入してみます。

ここまでくると意地以外のなにものでもないような感じですが
これで駄目なられい様の方法にて社内の環境を徹底して直していきます。

takumix様
しろ様
れい様
よねKEN様
色々と案をありがとうございました。
色々な意味で挫折しかけていたのですが、皆さんのお話を聞けて復活しました。

まだまだ問題は山積ですがこれを機に社則等を変更し社内の意識改革をおこなっていきます。

現時点では
P2Pキラーを先の方法にて改変(テスト運用中)
P2Pキラーにログ出力機能を追加(テスト運用中)
ルーターのログを各ファイルサーバーへ転送(10中旬)
クライアントモニター導入予定(10中旬)
権限の変更による運用(10下旬)
pcAnyware導入予定(11初旬)
で行なうように申請および受理されました。

本当にありがとうございました×1E+30

また色々と質問させて頂くと思いますが
宜しくお願いいたします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板