こんにちは。本日は数か月前にJVNに掲載された「FlashAirにおけるアクセス制限不備の脆弱性」と、その対策方法の一つのBasic認証設定について話していきたいと思います。
最初に脆弱性について、実際にJVNに掲載されたページ から引用して説明します。
詳細情報
株式会社東芝が提供する FlashAir は、無線 LAN 接続機能を搭載した SDHC メモリカードです。FlashAir の初期設定では、インターネット同時接続機能を有効にした場合、STA 側 LAN (FlashAir が他のアクセスポイントに接続する側) から認証なしで接続可能な脆弱性が存在します。
想定される影響
当該製品が接続する STA 側 LAN にアクセス可能な第三者によって、当該製品に記録されているファイルやデータを取得される可能性があります。また、FlashAir Class 10 SD-WE シリーズ W-03 で認証に関する設定を追加せずに WebDAV によるアクセスとファイルアップロードを許可するよう設定している場合、当該製品に記録されているファイルやデータを改ざんされたり、任意の Lua スクリプトを実行されたりする可能性があります。
上記について物凄く掻い摘んで説明しますと、インターネット同時接続モードを有効にした場合、FlashAirが無線LAN親機となるAP側LANとFlashAirが無線LAN子機となるSTA側LANが共存するようになるのですが、FlashAir設定ツールやFlashAirアプリで通常設定するパスワードはAP側LANのパスワードなので、STA側LANでFlashAirにアクセスする場合はフリー状態ですよということになります。
こちらについては確かにその通りなのですが、STA側LANにアクセスできることが前提となっており、そちらにアクセスするには当然その無線LAN親機(アクセスポイント)のパスワードが必要なので、まずそこで不正を行いそうな第三者にはそのアクセスポイントのパスワードを教えないことでブロックするのが普通だと思います(FlashAirを公共のアクセスポイントに接続して使用することは考えにくいのでその可能性は省いています)。
また、この脆弱性についてはステーションモード(STA側LANのみ有効となるモード)も該当すると思うのですが、何故かそちらについては触れられていません。恐らくFlashAir設定ツールやFlashAirアプリではステーションモードに設定できないからだと思いますが…。
と、まあ長々と脆弱性について話してきましたが、対策はどうすれば良いのかというと、まず一番有効なのはインターネット同時接続モードをONにしないことです。そもそもFlashAirは初期設定でインターネット同時接続モードはOFFとなっているので、ONにしない限り脆弱性はありません。
ただそうすると今回の話が終わってしまいますので、今度はインターネット同時接続モードをONにした場合の脆弱性対策について説明していきます。まずはJVN掲載ページの対策方法から以下引用。
対策方法
認証設定を追加する
インターネット同時接続機能を有効にする前に、FlashAir のウェブサーバへの接続時に認証を要求するよう設定してください。FlashAir の API には、次の項目が用意されています。詳しくは、開発者が提供する情報をご確認ください。
上記について簡単に説明しますと、HTTPDMODEはFlashAirのHTTPサーバの認証方法を指定するパラメータで、”1″を指定するとBasic認証、”2″を指定するとDigest認証が使用できるようになります(ちなみにデフォルトは”0″で認証なしの状態)。また、HTTPDPASSはそれぞれの認証方法を使用する場合のパスワードまたはハッシュ値を指定するパラメータです。
今回はBasic認証を使用するので、”HTTPDMODE=1″となることを確認して、設定方法の説明に移ります。また、Basic認証を使用する場合はユーザー名(HTTPDUSER)も指定できるのでそちらも設定前に確認してください。
設定方法はFlashAirの中にあるSD_WLANフォルダのCONFIGファイルに上記のパラメータを追記する形になります。ただし、SD_WLANフォルダは隠しフォルダとなっていますので、PC等で隠しフォルダを表示できる設定にしてテキストエディタ等で編集を行ってください。また、編集前にはCONFIGファイルを必ずバックアップするようにしてください。
CONFIGファイルの中身は、初期設定でインターネット接続モードをONにした状態の場合、下記のようになっているかと思います。
[Vendor]
CIPATH=/DCIM/100__TSB/FA000001.JPG
APPMODE=6
APPNETWORKKEY=********
VERSION=FA9CAW3AW3.00.01
CID=[FlashAirカードの固有IDの値が入っています]
PRODUCT=FlashAir
VENDOR=TOSHIBA
APPSSID=flashair
LOCK=1
DNSMODE=1
BRGSSID=station ※STA側LANのSSID
BRGNETWORKKEY=******** ※STA側LANのパスワード
APPAUTOTIME=300000
設定はこちらにHTTPDMODE、HTTPDPASS、HTTPDUSERを下記の様に追記するだけです。
HTTPDMODE=1
HTTPDPASS=basicpass ※Basic認証のパスワード(任意に設定)
HTTPDUSER=basicuser ※Basic認証のユーザー名(任意に設定)
上記を追記しましたら、保存して一度FlashAirを抜いて再挿入してください。その後、ブラウザでFlashAirへアクセスを行うと新たに認証ダイアログが表示されるようになります。ここで上記で設定したBasic認証のユーザー名とパスワードを入れると、FlashAirの画面が表示されるようになります。
Basic認証の設定の話は以上となりますが、いかがでしたでしょうか?また機会があれば、Digest認証についても話していきたいと思います。それでは。
[…] こんにちは。前回FlashAirの脆弱性対策としてBasic認証の設定方法について試してみましたが、今回はDigest認証の設定方法について試していきたいと思います。 […]