日記帳だ! with Tux on Libserver

二度目の大改造!! 日記帳…か?を継承し、より柔軟でパワフルなBlogに変身しました。

RSSに対応しています。リンク・コメント・トラックバックは自由にしていただいてほぼ問題ありません。
RSS購読方法、僕のリンク・コメント・トラックバックについての考えを読むことをおすすめします。

<< 過去

未来 >>

隠し機能のおかげで

今作っている製品にメモリ上に不正なデータが書き込まれていたら異常と判定してエラーを出す機能がある。

この部分は外部から命令を出して書き換えることができるのだが、そもそも通常の方法で不正なデータは書き込むことはできない。

なのでこの機能が働くのは基本的に初回書き込み以前だけということになる。

初回書き込みは工場で行うので、出荷された製品で働くことはないはずだ。


とはいえ、機能として存在していることは事実で、この機能が働くことを確認する必要があった。

しかし、試作品とはいえ、すでに工場でデータが書き込まれているので、まともにやっては確認することができない。

なのでとりあえず後回しにしていたのだが、詳しい人に相談すると「デバッグ用の機能でメモリ上のデータを任意に書き換えられたはず」と返ってきた。

そのヒントを元に試してみると、確かにメモリ上のデータを任意に書き換えることができた。

こうして、メモリ上のデータの特定部分を書き換えて不正なデータを作り、異常判定が正しく働くことを確認することができた。


メモリを任意に書き換える機能について、設計書には「デバッグおよびメンテナンス用の機能で、通常は使わない」というような記述があった。

確かに普通にやっていてこの機能を使うことはない。だからこれは完全に無駄な機能だ。

ただ、デバッグでは役に立っているし、将来的にメンテナンスで使うこともあるのかもしれない。

メモリを任意に書き換えできればとりあえず汎用性はあるという考えは当たっているだろう。


ただ、注意しなければならないのが、こうやって設けた隠し機能が悪用されないかということである。

もちろん非公開の機能ではあるのだが、実際に出荷される製品でもしかるべき手順を踏めばこの機能が使えてしまうということである。

まさにゲーム機のクラックというのはそういう話である。

ユーザーが触れることのできない機能を何らかの方法で叩くことで、本来動いてはならないプログラムを動かすことができるわけだ。

もっと怖いのはこういう隠し機能を使って、ユーザーが意図せずシステムが不正な動作をする場合で、

特にネットワークに接続されたシステムでは大きな問題となる。


というわけで、隠し機能を作るにしても、作る場所とか与える機能というのをよく考えないといけない。

隠し機能にアクセスするには回路に手を加える必要があるとか、特殊なハードウェアが必要とかいうことになれば、意図しないアクセスは防げそう。

隠し機能があっても、それでシステムを壊したり、クリティカルなデータにアクセスできないのならば、許容できるかもしれない。

スタンドアローンのシステムだとかで、ネットワーク越しに攻撃される心配がないとなれば許容範囲は広がるかもしれない。

いろいろ考えた上で隠し機能として設けてよいと判断しているのだとは思うけどね。


隠し機能が製品の将来を広げることもあれば、狭めることもある。

とりあえず今日はデバッグの可能性を広げてくれた隠し機能に感謝しておこう。


Author : Hidemaro
Date : 2016/03/24(Thu) 22:21
電気・数学・物理 | Comment | trackback (0)
blog comments powered by Disqus

トラックバック

トラックバックURL取得

Tools