Dos攻撃や SQLインジェクションなどは名前ぐらいはご存じの方も多いだろう。
しかし、ポイゾニングというのは聞いたことがない、という方も多いのではないだろうか?

ポイゾニングは poisoning で「中毒」の意味である。中毒という攻撃とはどういうものなのか?

例えば、ネットワークに繋がっているパソコンにはIPアドレスが割り当てられている。
過去には1台づつIPを設定していたこともあるが、最近はDHCP機能を利用しIPアドレスを自動的に割り当てる事が多い。どのパソコンにどのIPアドレスを割り当てたか、という情報が必要だが、そのためにはパソコンが個体として認識される必要がある。その際に使われるのがネットワークカードにあるMACアドレスである。
Windowsパソコンであれば、コマンドプロンプトで arp -a と打ち込んでEnterを押してみるとよい。そのパソコンのIPアドレスとMACアドレスを結びつけているテーブルが表示される。これをARPテーブルという。
このテーブル、内容を書き換えて接続先を変えてしまうことも、技術的に可能なのである。いわば道路標識を書き換えたような状態で、「本来の相手とは違う相手に情報が渡ってしまう」危険性がある。
このような標識の書き換えのようなものを、ポイゾニングという。

トラックバック元の記事にあるDNSキャッシュポイズニングなどは、フィッシングなどにも使われる危険性がある。

こういう攻撃が増えている、ということも認識が必要で、対策も考えておく必要があるだろう。
テーブルの定義書なんかのドキュメント類をExcelで作成しているケースを見かけるが、セルのサイズを正方形に近い小さいマス、そう、方眼紙のようにして、必要な項目をセル結合をしているケースが多い。
レイアウトをしやすいというメリットはあるが、

・行の調整をしようと行番号のダブルクリックしても、思惑通りに調整されない。(セル内の折り返しを使っている場合のみか?)
 →印刷形式にしたときに欠けるのはよろしくありません。
・データを貼り付けるときに「範囲が・・」などどメッセージが出てはれない場合がある。(VBAで埋め込む分にはOKである)
 →テーブルの定義から貼り付けるのが結構面倒です。

というようなデメリットがあるので、1セルに1項目となるようにした方が使い勝手がよいように思う。ただ、バージョンによって改善されているかもしれないことは未確認である。

こういうドキュメントにテーブル定義から貼る際は、いったんセル結合を解除し、貼り付けた上で、VBAで結合し直すようにするといいだろう。というか、やむなくそうしたことがある。

先日、依頼を受けてある関数群を作って納品した。以前作成したものに拡張したので、クラスモジュールがいくつか増えた。コードはVisual Basic 2005 である。
しかし、「ビルドができない」という連絡があった。初回はデータベース項目を連絡なしに変更していたからだが、それを解消した後もNGらしい。
現地へ行って調べると「プロジェクトにモジュールを追加していない」というミスである。初回、部品を納入時に追加方法は教えておいたので、まさかそういうレベルの単純ミスはなかろう、と思っていたのだが・・。
結局そのことにより納品日がずれこみ、検証期間が翌月に繰り越されてしまった。ビルドエラーを解消するまでは当方の責任になっていたのだからたまったものではない。

今のVisual Studio はいろいろと複雑なので、使う道具なら使い方はそこそこ知っておけ、とまでは言わない。しかしエラーコードや以前の経験から類推はできるだろう。

近頃、目の前の事象を見て、捉えた表面的な情報だけで反応する人が増えてきた感がある。SEという職業はしっかり考えて構築していくのが仕事だったはずなのだが、バッチ系よりオンライン系、汎用機系よりオープン系、制御系より業務系、クライアントサーバー系よりWeb系のエンジニアにその傾向があるように感じている。

これからもこういうエンジニアが増えるようなら、日本はアジア諸国に淘汰される日も近いのではないかと危機感を募らせている。