title_parttitle_parttitle_part
静岡県浜松市であれこれソフトを開発している A.K.I Software のブログです。日々の開発日記やサーバー・セキュリティ関連の話題なども掲載。
<< 2024/05 >>12345678910111213141516171819202122232425262728293031
《《《 ネットワーク機器の購入は Amazon で! 》》》
Powered by BLOM PMailServer2 Version 2.37a Memo
小さくも大きくも閉じたりもしません
18/06/26 01:19 / PMailServer2

実装に時間はかかりましたが、マルチプロセス機能についても特に不具合の報告が無く、順調に動いているようです。

当サーバーも 2.37 リリース前から試験的にマルチプロセスモードで動かしていますが、大変安定して動作しています。

さて、2.37a ですが、Webmail にちょっとした機能を追加する予定です。

サーバー管理者の方は、少し前から大量に送信されている、請求書マルウェアの対策をどうしようかと考えられていると思います。

うちや、うちが管理しているサーバーにも大量に着弾しているのですが、本文も定番文章で本文でのフィルタリングも難しいです。
昔のこういう spam は日本語が変だったり、日本語に見えて中文だったりしたのですが、spam も進化しており、一見すると騙されてもおかしくないレベルです。

フィルターのバイナリフィルタでブロックも可能ですが、少しでも変更された亜種になると単純なパターン比較では対応が難しいです。

しかも、送られてくるのが xls なので、添付ファイルに Excel があったらフィルタもできません。

さて、どうしようかと思っていたのですが、Outlook 系なんかはでは、この添付ファイル危ないよみたいな警告を出しているんですよね。

Outlook で出来るなら、不可能では無いなということで調べて見た所、Microsoft社自身から、バイナリ形式の xls の仕様書が発行されているのを発見。

これを使えばいけるんじゃないか?と資料を見ながら、10日程四苦八苦していたのですが、ようやく構造を理解することができました。

photo


上のは古い形式の Excel や Word のファイル構造を解析して内容を確認するツールです。
(このツール自体は自分の解析用の為ですので、リリースする予定はありません。)

上はマルウェア入り Excel を開いている所です。

この解析用のパーサーを Webmail に組み込んで拡張子が 旧Excel(xls) や 旧Word(doc) の場合は、中身を確認して VBA が入っているようであれば、警告を出すようにしようと考えています。


***以下は xls や doc のバイナリ形式の話ですので、よほど奇特な方で無い限り役に立たない話の気がします。***

まず、旧Excel や旧Word のファイルは Windows Compund Binary Format (CBF形式)と言います。

Excelのデータは、この CBF形式の中に BIFF8 という形式で格納されています。
また VBA などは別の形式で格納されています。

つまり、まず CBF形式を解析出来ないとどうにもならないので、これを解析します。

まぁ解析と言っても、MSが出している資料と OffVis (Officeビジュアライザー)と言うツールを使えばそんなに難しくは無いだろうと始めたのですが・・・

なんか、すごく面倒です・・・(苦笑)

CBF は大きく分けて

1)Header
2)DiFAT
3)Sector(FAT)
4)Sector(MiniFAT)
5)Directory
6)Data

の6つに分かれています。

FAT とか Sector とか Directory とあるように、これ、HDD 等の FAT 構造に近い構造なんですね。

多分、FDD時代などでの高速化の為(一部のデータを書き換えた場合、それを最初から出力していたら遅くなるのですが、この方式だと変更した箇所だけを変更したりできます。うーん説明が難しい。プログラマな人であれば理解しやすいと思います)などがあったんだと思うのですが、なんしょめんどい。

おまけに資料自体も詳しく書かれている訳では無く(英文なので私に読解力が無いだけという話もありますが)「ここに開始セクタがありますよ」と書いてあるんですが、前提として「FAT だからこうしてから処理をしてね」の補足説明が足りないんですな。

理解した後に読み直すと「あぁ、なるほど。そういう意味で書いているのね」と理解できるのですが、0からだと「なんでそうなるんやねん!」となる訳です。

更に、前述の Officeビジュアライズツールなんですが、MS謹製なのに、古いせいか間違った解析をします(苦笑)

資料を読む>こう言うデータなのか>OffVis で確認する>書いてあることと結果が違う>なんで?>私の読解力が足りないのだな>最初に戻る

これのせいで余計に時間がかかってしまったという・・・

だって、CBFの資料と一緒に、このツールを使うといいですよと MS のサイトにかかれていますから信用しますよ、そりゃ(笑)

自作ツールから出力するダンプを眺めていて「ん〜、どのファイルを読んでも特定のサイズの切れ目でデータがおかしくなってるぽいなぁ・・・」と気がつくまで OffVis が間違っているなんて思わないって。

とりあえず CBF形式のパーサーは出来上がったので、今度は VBA や BIFF8 のパーサーもやりたいと考えています。

特に VBA のマクロを抽出できれば(そういうツールはあります。)安全にフィルターも作れそうですし。

[更新日付:2018/06/26 01:19:30]
トラックバックを見る(0)
Log Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+405f2eb5690079dd939ca3feae48eed7152e1222]
TB Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+405f2eb5690079dd939ca3feae48eed7152e1222]

記事へのコメント

コメントはありません

名前
コメントキー
 
コメントする時はキーを正確に入力して下さい
コメント
アドレスを含んだコメントはできません
© 2008-10 A.K.I Software all rights reserved.