思考ノイズ

無い知恵を絞りだす。無理はしない。

CTS LabsのAMDプロセッサに対する脆弱性のPaperをまとめてみた

3月13日に公表されたAMD脆弱性について、イスラエルのセキュリティ会社、CTS Labsが出しているWhite Paperをまとめてみた。

AMDFLAWS

POC(Proof of Concept: コンセプトの 実効性検証)の開示もまだのようで具体的な手法の情報も乏しく、現時点で実現可能性に関しては疑問がのこるものになる。

いくつかのニュースサイトで記事になっているように、現時点での情報ではこの攻撃による深刻性については不明確だ。すでに強い権限を持った状態が前提の作業で、前段階のセキュリティが破られいることは条件になりそうだ。また、この手の脆弱性にはCert/CCから発行されるCVEナンバーがついて、公表されるのが定例だが、この会社はそのような公開プロセスを飛ばして公表に踏み切っているというため、お行儀がよくないと批判も受けているとのこと。 なんにせよ、最終的な結論は詳細情報のアップデートが必要そうだ。

CTSの以下の記述のとおり、現在、対応パッチや緩和策のためにAMD/Microsoftなどの関係企業でシェアしているとのこと。(3月15日現在)

Q. Doesn't this publication put users at risk?
A. No. All technical details that could be used to reproduce the vulnerabilities have been redacted from this publication. CTS has shared this information with AMD, Microsoft, and a small number of companies that could produce patches and mitigations.

以下、公式サイトおよび論文のまとめとなる。技術知識が深くない私が、Paperを読んで理解できた上っ面のまとめとなること、勘違い、知識不足をご容赦いただきたい。

脆弱性概要

CTS Labsによると今回公表されている脆弱性は大きく4つのクラス(MASTERKEY/RYZENFALL/FALLOUT/CHIMERA)に分けられ、13個の脆弱性があるという。

f:id:bython-chogo:20180314173350p:plain

公式サイトに記載されている各クラスの概況を大雑把にまとめる。

-- AMD Secure Processor firmwareに対する攻撃で、Firmware ベースのセキュリティ機能 (Secure Encrypted Virtualization, Firmware Trusted Platform Module)に対する書き換え、FirmwareベースでのRansomewareの書き込みが可能だという。

-- SMRAM(System Momory RAM), やWindowsが持っているセキュアなメモリ空間にアクセスすることが可能になるため、AMD Secure Processorをコントロールすることができる。MASTERKEY攻撃に必要な不正なBIOSコードの書き込みも行える。

-- SMRAM(System Momory RAM), やWindowsが持っているセキュアなメモリ空間にアクセスすることが可能になるため、AMD Secure Processorをコントロールすることができる。不正なBIOSコードの書き込みも行える。RYZENFALLはSecure OS機構に対する攻撃でClient/Workstation製品に対する攻撃だが、FALLOUTはBoot Loaderチップに対する攻撃で対象はEPYC Server製品となる

  • CHIMERA: Backdoors Inside Ryzen Chipset

-- Ryzenなどのプラットフォームで用いられている3rd Partyの隠れたBackdoorを突くもの。DMA(Direct Memory Access)エンジンなどに攻撃をすることで、プラットフォームのIOに対する不正攻撃が可能となる。Key Logger/Network Access/PypassMemory Protectionなどが挙げられている。

Paper まとめ

MASTERKEY: Unauthorized Code Execution and Malware Persistency on AMD Secure Processor

AMDのSecure Bootの機能にMalwareなど不正なコードをしこみ、最終的にSecure ProcessorのKernel Modeの挙動もコントロールが可能とされている。Malwareを仕込めば、Secure Bootを不正にBypassしてSecure Processorの機能を無効化もできる。 通常はSignatureでサインされているものでないとBIOSのアップデートはできないのだが、RYZENFALLもしくはFALLOUTでSystem Management Mode(SMM)という上級権限に入ることにより、それを可能としている。

RYZENFALL: Vulnerabilities in Ryzen Secure Processor

RyzenなどClient/Workstation向けのシステムに導入されているSecure OSはfTPM (Firmware Trusted Platform Moduel)に含まれる認証情報からのスタートとなる。このSecure BootのProcessで利用されるメモリ空間は特に権限が強い Fenced DRAMというところでSecure Processorでしか利用ができない空間になる。 ここに対するRYZENFALLの攻撃はadministrator 権限が必要となり、Secure Processorへのアクセスはベンダから公式に配布されるドライバを使用する。RYZENFALLに成功するとSecure Processorでの実行が認証なしで行えるようになり、ハードウェアで保護されているMemory Regionへのアクセスを可能とする。具体的には以下の攻撃チャネルがある。

  • Windows Isolated User Mode and Isolated Kernel Mode (VTL1)
  • Secure Management RAM (SMRAM)
  • AMD Secure Processor Fenced DRAM

これらを経由することで、 以下のことが実行可能になる。 - Microsoft Virtualization-based Securityをバイパスして Networkの権限を奪うことが可能。 - SMMにMalwareをいれることができOSやHypervisorでの攻撃が可能となる - BIOSのReflashに対するプロテクションの無効化 - VTL1にMalwareを入れることが可能。OS上でのエンドポイントでのSecurity機能の無効化が可能。 - AMD Secure Processor自身にMalwareの注入が可能 - fTPMなどのSecurity機能をバイパスしてのブートアップが可能

FALLOUT: Vulnerabilities in EPYC Server Secure Processor

FALLOUTはEPYCなどのサーバを対象とした攻撃方法。EPYCのSecurity Processorで利用するBoot loaderのコンポーネント内の脆弱性をつくと、Hardware Validated BootやSecure Encrypted VirtualizationなどのSecurityに影響を与えることができる。 RYZENFALLと同じく、administrator権限での実行が必要となり、公式のドライバを使用する。これを利用してHardwareで保護されているMemory Regionへのアクセスすることができる。具体的には以下の攻撃チャネルがある。

  • Windows Isolated User Mode and Isolated Kernel Mode (VTL1)
  • Secure Management RAM (SMRAM)

これらを経由することで、 以下のことが実行可能になる。 - Microsoft Virtualization-based Securityをバイパスして Networkの権限を奪うことが可能。 - SMMにMalwareをいれることができOSやHypervisorでの攻撃が可能となる - BIOSのReflashに対するプロテクションの無効化 - VTL1にMalwareを入れることが可能。OS上でのエンドポイントでのSecurity機能の無効化が可能。

CHIMERA: Backdoors Inside Ryzen Chipset

AMDのPromontory Chipset内にある、製造工程上などで利用されたとみられる隠れたバックドアを突く方法。2つのバックドアが存在している。一つはChipsetを実行するFirmwareにあり、ASICハードウェアハードの中にある。特に後者はChipset内にあるものなので修正が難しく、ワークアラウンドかRecallしかない。 Chipset内にあるので、提供されているSecurityの機能にも影響を及ぼすことが可能になり、さらにChipsetはUSB, SATA, PCI-EといったI/O周りも制御ができるので、LAN, Wifi, Bluetoothにも影響を及ぼすことができる。彼らの研究ではDMA(Direct Memory Access)に対する攻撃で、OSに影響を与えることができたという。このことにより、以下のような追加の攻撃ができるようになると考えられている。

  • Key Logger
  • Network Access
  • Bypass Memory Protection

<はじパタ> 6.1.1 超平面の方程式

はじめてのパターン認識 6.1.1 超平面の方程式に関してのメモです。

はじめてのパターン認識

はじめてのパターン認識

ここでは超境界面の数式  f(\mathbf{x}) = \mathbf{w} \mathbf{x} + w_0 を単位法線ベクトル  n と位置ベクトル P の関係に変形して、  f(\mathbf{x}) = \mathbf{n}^T (\mathbf{x} - \mathbf{P}) としている。

境界面へのベクトル P とそこからのびる、単位法線ベクトル  n を分離することにより、 n (x-P)内積の計算結果の正負を考えると、境界面のどちら側にいるかの識別が可能となる。 例題6.1の計算で  n = (\frac{2}{\sqrt{5}}, -\frac{1}{\sqrt{5}}), P = ( 1, 0) という値が計算された。

ここで、以下の3つの点について考えてみた。


a = (0, 3),
b = (2, 2),
c = (2, -1)

この三点と、ベクトル  n, P をプロットしてみる。

plt.axes().set_aspect('equal', 'datalim')

x = np.linspace(-1, 3)
y = 2*x - 2
plt.plot(x, y, "r-")

plt.plot(0, 3, "bo")
plt.text(0.2, 3, "a")

plt.plot(2, 2, "bo")
plt.text(2.2,2, "b")

plt.plot(2, -1, "bo")
plt.text(2.2,-1, "c")

plt.text(1.2,0, "P")
plt.text(2,-0.5, "n")

plt.quiver(0, 0, 1, 0, angles='xy',scale_units='xy',scale=1)
plt.quiver(1, 0, 2.0/np.sqrt(5), -1.0/np.sqrt(5), angles='xy',scale_units='xy',scale=1)

plt.grid()
plt.xlim(-2, 3)
plt.ylim(-2, 4)
plt.show()

f:id:bython-chogo:20180127235115p:plain

 \mathbf{n} (x - P)  x  a, b, c をそれぞれ代入すると以下のようになる。

 f(a) = \frac{2}{\sqrt{5}}  f(b) = 0  f(c) = \frac{-1}{\sqrt{5}}

この正負の結果は  (\mathbf{x}-\mathbf{P}) \mathbf{n} のつくる角度がそれぞれ、鋭角、直角、鈍角であるので、それぞれの結果は正、ゼロ、負となるわけである。

わかりやすくするために、 nベクトルを平行移動させて、図で表すと以下のようになる。

plt.axes().set_aspect('equal', 'datalim')

x = np.linspace(-1, 3)
y = 2*x - 2

plt.plot(0, 3, "bo")
plt.text(0.2, 3, "a")
plt.quiver(0, 3, 1, -3, angles='xy',scale_units='xy',scale=1)
plt.quiver(0, 3, 2.0/np.sqrt(5), -1.0/np.sqrt(5), angles='xy',scale_units='xy',scale=1)

plt.plot(2, 2, "bo")
plt.text(2.2,2, "b")
plt.quiver(2, 2, -1, -2, angles='xy',scale_units='xy',scale=1)
plt.quiver(2, 2, 2.0/np.sqrt(5), -1.0/np.sqrt(5), angles='xy',scale_units='xy',scale=1)

plt.plot(2, -1, "bo")
plt.text(2.2,-1, "c")
plt.quiver(2, -1, -1, 1, angles='xy',scale_units='xy',scale=1)
plt.quiver(2, -1, 2.0/np.sqrt(5), -1.0/np.sqrt(5), angles='xy',scale_units='xy',scale=1)

plt.text(1.2,0, "P")

plt.grid()
plt.xlim(-2, 3)
plt.ylim(-2, 4)
plt.show()

f:id:bython-chogo:20180127235323p:plain

お気づきかとは思いますが、正負が逆になってしまう。2クラスの識別なら正負が反転していても問題がないんだけど、気持ちが悪い。 本文の例題にもこっそり引き算を逆にして正負を反転させているような記述がみえるのだが、ごまかしているのか、私のベクトル計算の考え方がちがうのか判断がつかない。

機械学習のお勉強

久しぶりのエントリー。ドラフト版を書いては消去するのを繰り返しているうちに遠ざかってしまいました。

そもそも機械学習やプログラミングの勉強メモとして再開していたこのブログ、お休みの間も機械学習の勉強を続けていました。ただやっていくうちにどんどんとベーシックなほうへ向かっていき、最終的に機械学習(と統計)のための数学の本を買いだす始末。

ただこの本がとてもよかったです。統計、機械学習でつかう数学式のみを中1レベルから丁寧に教えて書いてくれていて、いかに自分が数学から離れて忘却されてしまっていたか、さらに機械学習本でわかったつもりになっていたかがよくわかりました。 またこれ以上Low Layerに向かうことはないだろう、ここからがスタートだと思うことができました。その後、一回、計算式の変換で挫折をした「はじパタ」を読み直しています。

はじめてのパターン認識

はじめてのパターン認識

Markdownで書いたメモもたまってきたので、ブログに放出をしていきたいと思います。

このほかの本も読んでいるのですが、それはまた機会があれば。

芸人のラジオ考察

またしても他人の褌で相撲を取るようなエントリーなのですが、思っちゃたんだからしょうがない。

hiko1985.hatenablog.com

芸人ラジオ大好きで主にニッポン放送TBSラジオの深夜枠はラジコを駆使しながら拾えるだけ拾うようにしていたのですが、ハライチのターンは存在を知りながらカバーしてませんでした。いわゆる食わず嫌いってやつです。しかしこの動画はそんな斜に構えた私の心を打ち砕くのに十二分なインパクトがありました。

脳内世界観強めの話芸

あぁ、ハライチのラジオは岩井さんのほうなんだなと。もちろん、澤部さんも面白いのですが、パンチがツボにクリーンヒットさせるのは岩井さんなんだと。岩井さんは独自の世界を脳内に構築するタイプの方で、それを現実世界に面白く脚色しながらアウトプットできる能力の持ち主なんでしょう。これは別名、心の闇ということもできますが。 たぶん、この手の脳内の世界っていうのは多かれ少なかれ誰しももっているもので、芸術関係の人はこの世界を音楽だったり絵画だったりに出力をするのですが、岩井さんは芸人としての話芸で話すタイプなんだと確信しました。類型でアルコアンドピースの平子さんもこうした世界観づくりは得意ですが、平子さんの場合はもっとファンタジーだったり中二病感の濃度が濃くなります。

芸人ラジオ勝手に世代分け

だんだんと自分の観測範囲内の自己研究が強めです。当然異論は認めます。

いまのTBS・ニッポン放送の芸人ラジオは世代で以下の3つに分けると考えやすいのかなと思っています。さらに代表的なラジオ番組も入れてみました。

20年戦士

10年戦士

5年戦士以内(前身番組なども含め)

新世代のラジオ芸人考察

ラジオは人気が大きくなると長寿になりやすく、安定したしゃべり手が長く番組を持つ傾向にあると思います。その中でしっかり新しい風を吹き込んでいって、それらがちょっと安定するかしないかのところが新鮮で面白い、そんな聴き時なところが5年戦士に入る番組なのかなと、思っていたりします。この人たちは同世代でもあるののでよくわかるのですが、アニメとか映画の表現が色濃くなった90年代に子供時代をすごし、かつ「大人になってもアニメを見てもいい」という新常識が生まれた境目にいた世代だとおものうので、最初に言ったような「脳内の世界観」の蓄積が充実してきている人が多いのかなと。 その脳内の世界観をデータベースとして、芸人としてのトーク力のスキルでうまく処理し、さらにラジオという特殊な場所という好条件が重なった結果、今回の岩井さんのような新しいラジオスターが生まれたのではと考えます。

今後も芸人ラジオから耳が離せませんです。

f:id:bython-chogo:20171104175934p:plain

90年代でとまった知識でホームページを作成してみた

ここ最近WPA2の脆弱性でちょっと忙しくなってしまい、やっとこさ落ち着いて、さらに久しぶりに何も予定がない週末を迎えました。そこでなにを思いついたかホームページを作ってみようと思いったってしまいました。人間、暇な時間を与えてしまっていけないという一つの証拠となります。作るのは、きれいにスタイルを整えたかっちょいいWebページとかブログとかではなく、90年代の「ホームページ」だ。このホームページも誤用がそのまま定着してしまったものなのですが、90年代のインターネットを表す言葉としてとても有用になってしまったと思います。

ŽvlƒmƒCƒY H.P.

f:id:bython-chogo:20171029005427p:plain

タイトル文字化けてらぁ。 意外とタグを覚えているなぁと思いました。ほとんどHTMLタグを確認をしなくてもできました。体が覚えている。というか結局ここまでのレベルまでで、ここから先のかっちょいい、スタイルシートやらJavaScriptやらCGIには行けずに飽きてしまいました。つまみ食いしてはほかに行くスピリッツはこの時代から変わってないです。

90年代にGeoCitiesのWebサーバサービスを使ってこんな感じのホムペを作成して、見知らぬ人とちょっとした交流をしていました。Yahooに買われたとはいえ、いまだにGeoCitiesでできるのは感慨深いです。90年代掲示板といえばBBSだろとおもって検索したら teacup の掲示板を発見!当時も使ってたよ。これもGMOが運営しているようです。カウンタは当時はGeoCitiesで提供していたと思うのですが、今はやっていないようです。そこで、こちらも老舗のNinjaツールでカウンタを作成しました。

いままで書いたPythonスクリプトをまとめてみようかな、とも思うのですが、まあGitHubの使い方覚えてそこに入れろよ、と私の中のLittleホンダがささやいていて、どうしたもんかなと思ってます。たぶん、更新をしていくこともないと思いますが(ぉい)、もう少しパワーアップをしてみようかとも思ってます。久しぶりにフレームを使いたい気もします。

Chainerをつかった助詞の学習システムを作る (2)

続き

bython-chogo.hatenablog.com

前回は助詞を学習して、正しい助詞をSuggestするシステムを作りました。ただ、テストをしてみたところ正答率が50%超とちょっと微妙な正解率。はじめてにしてはよかったと思うけど、でも実用的には使えないです。目標としては90%越え、できれば95%といったところでしょうか。

とりあえずいろいろ試してみる

せっかくなので以下のように学習方法を変えてみて検証結果に変化が出るか確認をしてみることにしました。

  • 学習する記事の量を増やす (Double)
    前回は1日分の記事でしたが、とりあえず2日分入れてみるとどうなるでしょうか
  • 学習する前後の単語を増やす (15Words)
    前回は前後の10ワードずつ入れていましたが、15ワードに増やしてみるとどうなるでしょうか
  • 学習するモデルを変える (GRU)
    前回は本に書いてあるがまま、LSTMで試してみましたが、さらに本に書いてあるままにGRUモデルで変化がでるのかを試してみます。

基準として前回の学習内容を (Single) というラベルを張っています。

結果をどん

f:id:bython-chogo:20171011183315p:plain

  • Double: 最高で70%程度の正解率、やはり上がってますね
  • 15Words: こちらも同じく70%程度に上がっていて、効果がみられます
  • GRU: 正解率は Single と同程度ですが、学習を繰り返すとしり上がりによくなっている?
  • 全体を通して、学習は10~15 epoch内で終わってしまっていて、50までは不必要そうだが、微妙な変動で正解率に差がでている?

次は欲張って、全部組み合わせて正解率がどれくらい上がるのかみてみます。 学習する記事は4日分、前後15wordで、なんとなくGRUモデルで学習した検証結果が次のようになりました。

f:id:bython-chogo:20171011183323p:plain

比較はGRUの1日分の記事、10Wordです。最初の方の学習はすごくよく、80%弱ぐらいの正解率までいきます。が、繰り返すをするたびに、だんだんと正解率は低下、ついには GRU にも負けてしまうようになります。学習に1日半ついやしたのに。こりつが過学習というやつなのでしょうか。

以下がまとめたテーブルです。時間とかの数値は裏でいろいろ動かしていたので正確ではないのですが、ご参考までに。また、今回は Chainerに付属するCudaの計算機能を使ってみたのですが、比較として、CPU Onlyの時間も最後に入れています。条件は Single 相当です。

f:id:bython-chogo:20171011184756p:plain

まとめ

学習するサンプルを増やすことは成果はあるようですが、モデルとか回数とかのバランスが難しそうです。この学習に関していえば、正解か不正解かがすぐわかるので、ループさせれば半永久的に学習の追加ができます。 なので現在は新着の記事を読みに行って、間違ったサンプルのセットを自動的に再学習させる、ということを試みています。またまとまったらここに追記したいと思います。 なお、ソースコードの公開もしたいのですが、いかんせんぐちゃぐちゃになってしまっているので、まとめてからだしたいと思います。

f:id:bython-chogo:20171011185613p:plain:w300 かわいいフリー素材集 いらすとや

<ネタバレ有り> スイス・アーミー・マン

この映画を最初に知ったのは芸人「アルコ・アンド・ピース」のラジオで取り上げられていたことです。

f:id:bython-chogo:20171009175031j:plain

ある島で遭難した主人公がその島で遭遇した死体。その死体はサバイバルに必要な「死体のおならでジェットスキーのように海を渡る」などの便利な機能をもっていた。この時点ですでにぶっとんだ設定ですが、ダメ押しとして、その死体を演じるのがあのハリーポッターダニエル・ラドクリフということです。これはあれだ、「打ち上げ花火ー」に続く、俺がみなくてはならない案件だ。流行りでいうならばにゃんこスターの「おいらが見なけりゃ、だれがみるってんだい」案件です。

祝日の昼間の映画館で人入りはまあまあ。カップル、女子通し、一人もの、の割合は 3:3:4 といったところでしょうか。 設定がぶっとんでいて、下品なネタも多いので、低俗な笑いで受けを狙う映画、として捉われてしまいそうですが、個人的にはいろいろ思うところがある映画でしたので、すべてを書かせてもらおうと思っています。そのため、ネタバレも含まれます。これから見に行く予定の方はご注意のほどをお願いいたします。

なお、映画を見てすぐに書いてますが、記憶があいまいなところが多く、会話の詳細が間違っている可能性が大きいですが、ニュアンスでとらえていただければと思います。

感想 - ネタバレ有

遭難した主人公はさえない人生をおくっていたさえない若者で、偶然バスで出会った女性に声をかけられずにスマホのカメラで隠し撮りをおこなって待ち受けにするという小心者。家庭環境もあまり恵まれてなく、偏屈な父親と、若くして亡くなった母親へのコンプレックスというのも背景としてかかれています。 遭難したときに偶然遭遇した「死体」の便利な機能に気づき、その機能を使いながら困難を乗り越えていきます。また一方でその死体はしゃべることもでき、ただ生前の記憶はない状態のようで、主人公は死体に言葉、感情、一般的な常識的行動などを教えながらコミュニケーションをとっていきます。

先ほどいったように、「死体のおならでジェットスキーのように海を渡る」「死体の口から飲み水がでてくる」「死体の勃起したイチモツがコンパスのように方向を示す」といった一見すると下品なネタで笑いを取っているだけにもみえてしまいます。実際、映画終わりでそのような感想を言っている声もきいたのですが、私としては下ネタだけで興味を持続させている映画ではないと思っています。

遭難しているという主人公の過酷な環境は言わば、「非常識・非現実」な世界に置かれています。それに加えて、道具として使え、しゃべる死体がいるという状況が非常識に拍車をかけており、その死体とのコミュニケーションのなかで、いままでの自分の生き方、常識と非常識、理想と現実、について自然と問いかけるようになっていきます。そもそもこの非常識な死体には、常識は通用しません。「人前でおならをしないのが常識なんだ」と教わると「わあ、なんて最悪な世界なんだ」(おならを道具として海を渡ったのに、という背景がある。)、などの純粋な感想を投げかけます。さらに終盤でも「そんなに常識にしばられているのに故郷に帰る必要があるのかい?」と主人公に問いかけをします。 また、ほかのポイントとして、主人公はその死体にうそをつくというシーケンスがあります。主人公がバスで隠し撮りした女性の写真に一目ぼれしてした死体は、その女性に会うことをモチベーションとして主人公を手伝うようになります。遭難中の森の中、バスを模した即席のセットを作成し、さらに主人公を女装させ、女性とバスで出会い、声をかけるシチュエーションを演出をしながら2人は絆を深めていくようになります。しかし、バスで出会った女性はすでに結婚していて子供もいるので、なんにせよかなわない恋となります。主人公はそのことを隠しながら死体を盛り上げる趣向を繰り返します。これは遭難、しゃべる死体、という非現実的な状況下でこそ積み上げられる、「現実ではない世界」の中に「理想の世界」を2人で作り上げていることにほかなりません。いわばこの妄想的な世界感においては、こんな非現実な世界でもとがめる人は出てきません。そこはだれも見ていない、自由な空間だからです。これは映画を見ている我々観客もその妄想の世界を一緒に楽しんでいくようになります。

その楽しい非現実世界にも終わりが来ます。現実世界にもどってしまうと妄想を繰り広げる自由はありません。やっと人里におりてきた2人を待ち受けるのは現実世界の人の目です。ボロボロの服をきた主人公、その携帯のカメラにはバスで隠し撮りした女性の画像、森の中には手作りされたバスのセットという妄想の亡骸、そしてしゃべっていた死体は、一般的な常識通りにしゃべらなくなってしまいます。一緒に非現実世界を楽しんでいた観客も、我に返りざるを得ません。私たちが楽しんでいたこの妄想の世界は、一般社会的には超異常な変態的な世界なのだと気づかされるからです。 この現実に戻る直前、死体がしゃべらなくなく前に死体は主人公にこういうのです。「人前で大きな声で歌をうたうことも、おならをすることも、誰かが少しづつ認めてくれれば、変わっていくんじゃないか」。 そして常識の目をもった人たちのまえで、狂人としてとらわれている主人公、そんな主人公はある「一般社会的に非常識的な行動」をします。この行動は常識をうちやぶる奇跡をおこすこととなります。

常識に「自由な発想」をつぶさせない

常識というのは社会生活では必要な規範となる一方、自由な発想を妨げる制約になります。せめて人目が届かないところでは、常識に問われることなく、自由な発想で、自分のやりたいことを突き通してもいいのではという提案にも感じ取れました。もしその発想に共感する人が一人あらわれ、さらに理解者の輪が広がっていけば、いつか常識を覆す新しいパラダイムシフトが生み出される、そんな励ましを勝手ながら感じ取ってしまいました。

そしてラドクリフがすごい!

この映画の見どころはやっぱり死体役のラドクリフとなってきます。便利な道具をおこなう死体、というなんのこっちゃわからない役を怪演しきっていたと思います。ほんと見事な死体っぷりでした。子役時代、ハリーポッターで華々しくデビューした彼ですが、実はこうした怪役のほうが性に合っているのではないかと思いました。日本のドラマでいう高嶋政伸のように、非常識的なキャラクターがぴったりくる印象をもってしまいました。願わくば、この路線を突き進んでほしいものです。

まとめ

このようにぶっとんだ設定や下ネタで笑いを起こして楽しいのですが、実はその裏には社会生活の常識と、それに自然と縛られている私たちの発想、というテーマを垣間見ることができました。入口はただただぶっとんだ映画ですが、持って帰るものも多かった一作、怪作となったのは間違いないと思います。