SCAN DISPATCH は、アメリカのセキュリティ業界及ハッカーコミュニティから届いたニュースを、狭く絞り込み、深く掘り下げて掲載します。── SecureNetwork社(米国ジョージア州アトランタ市)のマルウェア研究者のジョー・スチュアート氏が、Googleへの攻撃に使用されたマルウェアが中国製であることを示す強力な証拠を発表した。また同時に、この「Operation Aurora」の開始が2006年であったことを示すタイムスタンプが見つかったことも発表している。 まずそのタイムスタンプだが、「Operation Aurora」に使用されたバックドア、「Hydraq」のコードは2009年に作成されたというのが一般の見解。が、Auroraのコードベースのカスタム・モジュールの中には、そのコンパイラーのタイムスタンプが2006年の5月になっているものが見つかった。 これをうけてスチュアート氏は、「「Operation Aurora」が3年以上も検知を免れた理由は、アンチウイルス企業に良く知られているポピュラーなトロイの木馬を使用した「Titan Rain」攻撃(2005年)と違い、オリジナルなコードを使用し、攻撃対象を限定したのが理由だろう」と推測している。 一方、攻撃の対象となったのが中国の人権活動家であること、マルウェアのコマンド&コントロール・サーバのIPアドレスが中国のものであることなどから、「Operation Aurora」は中国発であると推測されてきた。では、コンパイラのバイナリの言語コードはどうだろうか。スチュアート氏は、「「Hydraq」のバイナリのPEリソースの言語コードは英語」と言っているが、「わざと英語のシステムでコンパイルをしたか、後から言語コードを変更したのだろう」と付け加えている。 それでは、スチュアート氏が「Hydraq」が中国製だと確証する理由はどこにあるのだろうか。それは、CRCアルゴリズムだ。「「Hydraq」のCRC(cyclic redundancy check)アルゴリズムは、今まで目にしたことがない型はずれなものなのだ。以下に「Hydraq」のCRCアルゴリズムのコードをそのまま記す;10004840 SUB ESP,4010004843 PUSH ESI10004844 MOV ESI,DWORD PTR SS:[ESP+4C]10004848 XOR EAX,EAX1000484A TEST ESI,ESI1000484C MOV DWORD PTR SS:[ESP+4],010004854 MOV DWORD PTR SS:[ESP+8],10211000485C MOV DWORD PTR SS:[ESP+C],204210004864 MOV DWORD PTR SS:[ESP+10],30631000486C MOV DWORD PTR SS:[ESP+14],408410004874 MOV DWORD PTR SS:[ESP+18],50A51000487C MOV DWORD PTR SS:[ESP+1C],60C610004884 MOV DWORD PTR SS:[ESP+20],70E71000488C MOV DWORD PTR SS:[ESP+24],810810004894 MOV DWORD PTR SS:[ESP+28],91291000489C MOV DWORD PTR SS:[ESP+2C],0A14A100048A4 MOV DWORD PTR SS:[ESP+30],0B16B100048AC MOV DWORD PTR SS:[ESP+34],0C18C100048B4 MOV DWORD PTR SS:[ESP+38],0D1AD100048BC MOV DWORD PTR SS:[ESP+3C],0E1CE100048C4 MOV DWORD PTR SS:[ESP+40],0F1EF100048CC JE SHORT hydraq-a.10004913100048CE PUSH EBX100048CF PUSH EDI100048D0 MOV EDI,DWORD PTR SS:[ESP+50]100048D4 MOVZX ECX,BYTE PTR DS:[EDI]100048D7 MOV EDX,EAX100048D9 SHR EDX,8100048DC MOVZX EDX,DL100048DF SHR EDX,4100048E2 MOV EBX,ECX100048E4 SHR EBX,4100048E7 XOR EDX,EBX100048E9 SHL EAX,4100048EC XOR EAX,DWORD PTR SS:[ESP+EDX*4+C]100048F0 AND ECX,0F100048F3 MOV EDX,EAX100048F5 SHR EDX,8100048F8 MOVZX EDX,DL100048FB SHR EDX,4100048FE XOR EDX,ECX10004900 SHL EAX,410004903 XOR EAX,DWORD PTR SS:[ESP+EDX*4+C]10004907 SUB ESI,11000490A ADD EDI,11000490D TEST ESI,ESI1000490F JNZ SHORT hydraq-a.100048D410004911 POP EDI10004912 POP EBX10004913 POP ESI10004914 ADD ESP,4010004917 RETN 最初に目に付くのが、コンスタンツ・テーブルのサイズ。通常16および32ビットのCRCアルゴリズムは、256のハードコードされたテーブルを使用するものだ。が、「Hydraq」に使用されているCRCアルゴルリズムのテーブルはたったの16、つまり、通常の256のテーブルを縮小したもの。そのため、「アルゴリズムをデコンパイルして「Hydraq」と同じ特徴を持つソースコードをインターネットで検索してところ、サンプルが一つだけ見つかった」と氏はそのブログで語っている。 スチュアート氏はまた、そのサンプルに同じインプットをして「Hydraq」と同じアウトプットが出力されること確認し、このCRCアルゴリズムが「Hydraq」に使用されたものだと考えている。 さて、このたった一件だけ見つかったソースコードが中国製だというのだ。 それは、「このアルゴリズムは、簡体字の中国語の論文で出版されているだけでなく、このソースコードに関する情報は中国語のWebサイトだけに見つかっている」からだ。 「ソースコードは一言語に限られたものでないが、プログラマはバグやソースコードの使用方法を誤解することを避けるために、自国語のものを使うのが普通だ。そのため、「Aurora」のコードベースは簡体字中国語が自国語の、中国本土の人が作ったと考えるのが論理的だ」と同氏は結論づけている。 ちなみに「Operation Aurora」は、ソースコードのデバッグシンボルファイルのパスに、”f:Aurora_SrcAuroraVNCAvcReleaseAVC.pdb"というストリングが見つかったことからそう命名されている。【執筆:米国 笠原利香】【関連リンク】SecureWorksブログ http://www.secureworks.com/research/blog/