
第7回 プログラマをやって思うこと
三輪 信雄
S&Jコンサルティング株式会社
代表取締役
チーフコンサルタント
2009/6/12
これまでは“コンサルタント”としての本音を語ってきた本連載ですが、実は筆者は筋金入りの“プログラマ”。第7回はプログラマ視点でのセキュリティを語ります(編集部)
私、現役プログラマです
私は学生のころからコーディングを行っていて、アルバイトで売上管理プログラムなどを作っていました。当時は容易に入手できる開発環境などもロクになくて、選択肢はBASICか機械語くらいでした。
その後もいろいろな言語でプログラムを書いてきました。タイヤの設計に使う3次元CADのマクロ、NeXT(これ自腹でローン組んで買いました)のアプリケーション、MacintoshでのThinkCなんかも経験しつつ、Windows 3.1とUNIX間のTCP/IP通信プログラムなど、いまから思えばプログラムは趣味の1つなのかもしれません。2008年には、Second LifeのLinden Scriptで書いた動くペットなんかも作っていました。
最近、一念発起してパソコンのセキュリティ検査や監視を行うプログラムとASPサーバのプログラムを書き始めました。実際にPC AuditorというASPサービスとして販売も始めています。導入企業も増え始め、忙しくしています。
| 【関連記事】 PC1台当たり250円の情報漏えい対策、S&Jコンサルティング http://www.atmarkit.co.jp/news/200904/01/sandj.html |
もともと「社員の自宅の私物PCを検査したい」というお客様の要望から始まったのですが、企業と違って私物PCがターゲットなので、Windows 98からWindows Vistaまでカバーしなくてはいけません。
ここ最近Windowsでプログラムを書いておらず、軽い気持ちで始めたのですが、Windows 98/Meと、Windows 2000以降のいわゆる「NT系カーネル」はまったく違うものでした。私の使っている開発環境も「開発したアプリケーションはWindows 98をサポートしていません」とキッパリ書かれていますし、.NETでは.NET Frameworkのインストールが前提条件です。これではとてもじゃないですが、私物PCを「検査させていただく」条件としては適していません。
仕方なく、Windows 98のサポートのために古い開発環境を用意して、できるだけ互換性のあるAPIを使って開発をしました。しかしながら、最新のVistaまでカバーとなると、どうしても互換性の確保は難しく、多くの機能はWindows 2000以上となってしまいました。
テストはVMware上で各OSを用意して行っています。Windows 98やWindows 2000があまりに快適に動作するので、あらためて最新の重いOSってなんなんだろう、と思ってしまいます。Windows 98は動作が不安定なので、いまさら現役では使うのは根性が要りますが、Windows 2000はテストをしていても十分に安定していますし、快適そのものです。
実際、開発環境はWindows 2000上に構築しています。Windows XPもインストールして使っていますが、Windows 2000の快適さにはかないませんし、重いOSをわざわざ使う理由がありません。
開発者から見た「UAC」という壁
Windows 2000でもWindows XPでもちゃんと動作するアプリケーションを書いたところで、ハマったのがWindows Vistaです。ユーザーアカウント制御(以下、UAC)が有効になっていると、特にサービスプログラムはWindows 2000、Windows XPとは違う動きをしてしまいます。結局、Windows Vistaに対応するようにプログラムを改修しなくてはいけません。
ほかの開発会社はどうしているのか、と調べてみると、「UACを無効にして実行してください」とうたっているものが少なくありません。UACはそもそもセキュリティ強化の機能なので、これを無効にしてください、というのはあまりいい対応ではないと思います。
しかしこのUACですが、本当にセキュリティが向上しているのでしょうか。例えば、アプリケーションをダウンロードしてきて実行しようとすると、「認識できないプログラムがこのコンピュータへのアクセスを要求しています」「発行元が分かっている場合や以前使用したことのある場合を除き、このプログラムは実行しないでください。」と聞いてくるのです。ユーザーは意識的にこのプログラムを起動しているわけで、普通は「許可」することでしょう。
確かに意図せず実行されたプログラムであれば、怪しいから実行しない、ということもあると思われますが、何回もこの画面を見ているユーザーは「許可」を選択することが習慣になります。
ユーザーに確認をしつこく求めるようなUI(ユーザーインターフェイス)は、むしろセキュリティをうとましく思わせる原因にもなります。そもそもOSなんだから、自分の配下で動く怪しい動作をするプログラムくらい見分けてほしいものです。
また、ログインすると自動起動するプログラムで管理者権限の必要なアプリケーションは改修を余儀なくされています。このような仕様の変更はプログラマに負担をかけてしまいます。
私の開発しているPC Auditorでも、Vistaに対応するための修正を行いました。実行権限だけでなく、ユーザープログラムが書き込めるディレクトリやレジストリにも制限やVista独自の仕様があり、それに適合した作りにしなくてはなりません。
私の記憶が間違っていなければ、Windows NTが出たときに多くの脆弱性が発見されて、その次に出たWindows 2000では「セキュリティの問題は大きく改善された」とアナウンスされていたような気がします。さらに、Windows XPでも同じように「セキュリティの問題は大きく改善された」といわれていて、それに懲りたのか、Vistaではユーザーに「許可」をさせることで「セキュリティを向上させたことにした」のでしょう。
しかし、デフォルトで有効にされているUACをそのまま使って、パソコンにそれほど詳しくない一般ユーザーがどれだけ不安になったことでしょう。UACの確認で、急にグレーな画面に切り替わるのは、慣れていてもドキっとします。
Googleで検索すると、UACの無効化について無数のサイトが紹介しています。つまり、ユーザーに確認を求めることでセキュリティを向上させる試みは失敗に終わったと思います。これ以上しつこくなったら、本当にWindows離れが進んでしまうことでしょう。
1/3 |
| Index | |
| プログラマをやって思うこと | |
| Page1 私、現役プログラマです UACという壁 |
|
| Page2 開発環境にだってバグはある 困ったときのネット頼み――ただし、コピペは危険 |
|
| Page3 “メモリを正しく使う”という考え方が明日のセキュアを作る |
|
セキュリティ、そろそろ本音で語らないか バックナンバー
- 第1回 IT界の埋蔵金? 手付かずのセキュリティコストと戦う
- 第2回 情報セキュリティコスト削減、4つのアプローチ
- 第3回 CISO考――ところで、CISOって必要ですか?
- 第4回 “セキュアなWebアプリ”に立ちはだかる課題
- 第5回 中堅企業には中堅企業ならではのセキュリティ対策を
- 第6回 情報セキュリティは情報システムコストを削ってから?
- 第7回 プログラマをやって思うこと
- 第8回 非常時のために「さらば分厚い規定集」といおう
- 第9回 求む、新時代のセキュリティアーキテクチャ
- 第10回 誌上セミナー「拡大を続けるログ砂漠」
- 第11回 犯罪者の「否認」に対応するには
- 第12回 セキュリティシステムをマネジメントせよ
- 第13回 「脆弱性根絶なんてできっこない」と嘆く前に
- 第14回 求む、納得できる仮想プライベートサーバ
- 第15回 納得できる仮想プライベートサーバ探し、その後
- 第16回 クラウドセキュリティにコストをかける覚悟はあるか
- 第17回 転居のお知らせ、「仮想サーバへ引っ越しました」
- 第18回 機密情報の漏えいがあぶり出した転換点
- 第19回 自宅作業時のセキュリティを考える
- 第20回 PSN Hacked――問題の根はどこに?
| セキュリティ、そろそろ本音で語らないか 連載インデックス |
TechTargetジャパン
- Facebook タイムライン利用時の「鉄則」 (2012/2/9)
ユーザーインターフェイスの変更措置に伴い浮上した、Facebookの「過剰な情報提供」のリスクと対策とは - 無料サービスなら通信内容を記録してもいいの? (2012/1/13)
無料の公衆無線LANサービスが、ユーザーに無断で通信履歴を記録していたことが判明し、話題に - 攻撃はまるでレーザービーム (2011/12/26)
2011年に話題となった標的型攻撃は「人」という弱点ををねらい打ちにしました。では、人に教育さえしておけば防げるものなのでしょうか? - 見せたくないなら「持たせない」が鉄則! (2011/12/15)
逆コンパイル対策で難読化したのに、大事なデータが解析されちゃった? Androidアプリのセキュリティの道は深い
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
