2019-02-20

商品の顕在的な価値と潜在的価値

商品の価値を表すのにいつもこの図を使っている。表に見えている顕在的な価値はカタログやCMなどで強調され,商品の機能や性能としてアピールされる。

一方で潜在的な価値は水の下で見えないのだが,ここが脆弱だと風が吹いただけでひっくり返ってしまう。

第8回 組込みシステム開発技術展(ESEC) 2005年6月29日~7月1日 専門セミナー で 「高信頼性を確保するソフトウェア開発手法と実践」というテーマでプレゼンをした。もう,14年も前の話だ。でも,今一度中身を見直してみたが,そう陳腐化していないように思う。SlideShare にアップしたので興味のある方はご覧下さい。

さて,組織の中で商品の潜在的価値が重要だ!と叫ぶことはできるが,多くの組織では顕在的な価値の向上が優先される。それは何事もなければ,売り上げに直接貢献するのは顕在的な価値だからだ。

潜在的な価値は,インシデント(事件)が発生したときに「大変だ!」と気が付く。

潜在的な価値を高める技術も,歴史的に見ればインシデントが発生した後に前進している。FTAは1961年にアメリカで開発されたミニットマンミサイルの信頼性評価・安全性解析を目的として、その協力先であるベル研究所のH・A・ワトソンのグループが考案し、その後ボーイング(BOEING)社により完成された。(こちらを参照のこと

FMEAは1940年代にアメリカ陸軍が開発,採用した。STAMP/STPA を2012年に発表したマサチューセッツ工科大学(MIT) 教授のナンシー・レブソン(Nancy Leveson)が有名になったのは,放射線機器 Thearc-25 の事故と,スペースシャトル チャレンジャーの事故の調査分析の実績が認められたからだ。

残念ながら,潜在的価値を向上させる技術は,その業界でインシデントやアクシデントが発生して,ニュースとして共有されないと振り向かれない。

発生したインシデントやアクシデントの再発を防止しようという意思,モチベーションが高まり,かつ,リソース(人,物,金)が組織から投入されたときに初めて,潜在的価値を向上させる技術が発展する。

別な角度で言えば,インシデントやアクシデントが発生しないと,どんなに潜在的価値を向上させる技術を説いても響かない。

ソフトウェア品質についてもそうだが、サイバーセキュリティも、何事か事件が起きないと、組織はリソースを投入しようとはしないことが多い。

最近は,そういうもんだとあきらめている。

2018-12-27

ヘルスケアドメインの最新技術動向をゲットするセミナー開催(2019年2月20日:東京代々木にて)

JIETA ヘルスケアインダストリ部会/医療用ソフトウェア専門委員会が 2019日2月20日に東京代々木の国立オリンピック記念青少年総合センターにて,「医療機器ソフトウェアの最新技術動向セミナー」を開催します。募集定員は300名です。

ヘルスケアドメインに新規参入を検討している企業や,クリティカルソフトウェアのリスベースアプローチの実際について知りたい方に参考になると思います。医療機器業界では,現在「リスクマネジメント」「ユーザビリティ(使いやすさというよりは,有効性を高め,危険状態になりにくい機器の使い方)」「サイバーセキュリティリスクマネジメント」などについて規制要求があり,本セミナーでそれらの最新情報をゲットできるような内容となっています。

ヘルスアプリや遠隔医療,介護ロボットなど,さまざまな新サービスが世の中に出てきていますが,その延長線上には規制対象の医療機器になるかもしれないという未来があると思います。そうなる前に,現状で医療機器ソフトウェアにどんな要求が求められているのかを知っておくことは重要です。

下記,主催の JEITA ヘルスケアインダストリ部会のページより転載します。

医療機器ソフトウェアの最新技術動向セミナー(2019/2/20)


医療機器ソフトウェアの最新技術動向セミナー

〜セキュリティ・ユーザビリティ・リスクマネジメント〜


日時:2019年2月20日(水) 10:00〜16:00 (受付開始 9:30〜)
会場:国立オリンピック記念青少年総合センター カルチャー棟 小ホール
(東京都渋谷区代々木神園町3-1)


 医療機器ソフトウェアを取り巻く環境は、急速に変化しつつあります。日本においても平成26年11月に医薬品医療機器法が施行され、医療機器ソフトウェアが「プログラム」として法規制の対象になり、平成29年11月24日まで経過措置となっていた最新の技術に基づく開発ライフサイクルの適用が始まりました。
 当セミナーでは、まず医療機器ソフトウェアに関連のある規格の最新動向を解説します。これは毎回のセミナーで行っているもので、毎年の変化、動向をいち早く掴めるようにしています。IEC 62304,IEC 82304-1,ISO 14971,IEC 80001シリーズ、さらに現在策定中の規格についても説明を行います。さらに医療機器の必須となるリスクマネジメントについては、ISO 14971の理解、考え方、そして実践に向けての対応について説明を行います。
 サイバーセキュリティ関連については、2015年4月厚生労働省より「医療機器におけるサイバーセキュリティの確保について」、続いて2018年7月には、「医療機器のサイバーセキュリティの確保に関するガイダンス」は発出されました。さらに2018年10月にはFDAより「Content of Premarket Submissions for Management of Cybersecurity in Medical Devices」のドラフトガイダンスが公開されました。近年より重要度が増している内容であり、当セミナーでもより時間をあて、説明を行います。当セミナーでは、初めての内容となるユーザビリティについてIEC 62366-1の理解と考え方と題して、説明を行います。また規格・ガイダンスは毎日のように公開、発出されており、これらを網羅することもなかなかできません。今まで当セミナーで取り上げたことない初めての試みとなりますが、「規格・ガイダンスとの上手なつきあいかた」と題して、我々が意識すべきことを説明させていただきます。
 医療機器に係わる企業の経営者、設計開発、海外法規・薬事、品質保証、安全管理、標準化、規格適合試験等の業務に従事される方はもちろんのこと、医療情報ベンダー、医療機器分野に新規参入する方々にも有益なセミナーになると考えております。
 皆様のご参加をお待ちしております。



■ プログラム ■
司会・進行 医療用ソフトウェア専門委員会 委員長 松元 恒一郎(日本光電工業株式会社)
10:00-10:10開会挨拶
 医療用ソフトウェア専門委員会 幹事
  鹿妻 洋之(オムロンヘルスケア株式会社)
10:10-10:55医療機器ソフトウェアを取り巻く規制の背景と標準化の最新動向
−IEC 62304,IEC 82304-1,ISO 14971,IEC 80001シリーズ−

 医療用ソフトウェア専門委員会 幹事
  中里 俊章(キヤノンメディカルシステムズ株式会社)
10:55-11:40リスクマネジメント
−その理解と考え方,実践にむけて ISO 14971−

 医療用ソフトウェア専門委員会 委員
  飯島 直人(株式会社島津製作所)
11:40-12:40昼食
12:40-14:10医療機器に必要なサイバーセキュリティ
−国内外その考え方,動向について 厚労省ガイダンス,MDS2−
−事例をあげて−

 医療用ソフトウェア専門委員会 幹事
  高橋 英成(オリンパス株式会社)
  酒井 由夫(日本光電工業株式会社)
14:10-14:25休憩(10分)
14:25-15:10ユーザビリティ
−IEC 62366-1の理解と考え方−

 医療用ソフトウェア専門委員会 委員
  関水 英正(独立行政法人 医薬品医療機器総合機構)
15:10-15:45規格・ガイダンスとの上手なつきあいかた
 医療用ソフトウェア専門委員会 委員
  前田 宗泰(日本アイ・ビー・エム株式会社)
15:45-16:00閉会挨拶
 医療用ソフトウェア専門委員会 委員長
  松元 恒一郎(日本光電工業株式会社)
※ 都合により、プログラム・講師が変更になる場合もございます。
主催:一般社団法人 電子情報技術産業協会(JEITA)/ヘルスケアインダストリ部会
企画・運営:医療用ソフトウェア専門委員会


【 日時 】
2019年2月20日(水) 10:00〜16:00(受付開始 9:30〜)
【 場所 】
国立オリンピック記念青少年総合センター カルチャー棟 小ホール
(東京都渋谷区代々木神園町3-1)(公式WEB
  小田急電鉄小田原線「参宮橋駅」 ※徒歩約7分
  東京メトロ千代田線「代々木公園駅」 ※4番出口より徒歩約10分
【地図はこちら】
【 参加費 】
JEITA会員:7,560円/一般:10,800円 (テキスト代・消費税含む)
 → JEITA会員一覧 http://www.jeita.or.jp/cgi-bin/member/list.cgi
【 定員 】
300名 ※先着順とし定員に達し次第、締切りとさせていただきます。
【 申込締切日 】
2019年2月18日(月)■ 申込要領 ■
(1)下記の「受講申込フォーム」に必要事項をご記入の上、送信してください。
(受付システムについては(株)ビズクリエイトのサービスを使用しているため、JEITA外部のサーバに移動します。)
受講申込み ]
(2)お申込み内容の確認後、折り返し「参加申込完了メール」が送信されます。メールをプリントアウトし、セミナー当日に会場受付へご提出ください。(お持ちでない場合は、名刺を1枚頂戴いたします。)
(3)受講料の「請求書」は郵送にてお申込者様宛にお送りいたします。金額・内容をご確認の上、ご入金をお願いいたします。
☆ 受講料の振込手数料はお申込者様各位にてご負担願います。
☆ 当日、現金の取り扱いは行いませんので、ご了承下さい。
(4)ご登録後のキャンセル、参加費の払い戻しはお受けできませんので予めご了承ください。お申込者様が参加できない場合は、是非、代理の方のご参加をお願いいたします。
(5)お申込みの締め切りは2019年2月18日(水)です。

【 お問合せ先 】
一般社団法人 電子情報技術産業協会
IoT事業推進部 石川・遠藤
TEL : 03-6268-0003
〒100-0004 東京都千代田区大手町1-1-3 大手センタービル

2018-12-02

個別最適の時代は完全に終わった(ソフトウェア品質のパラダイムシフトについて考える)

サイバーセキュリティのことにクビを突っ込んでいると,ソフトウェア品質の概念が根底から変わったのではないかと感じる。

今や製品にOTSソフトウェア(Off The Shelf Software: 即利用可能な商用ソフトウェア)やオープンソースのソフトウェアを使うのは当たり前になっている。

組込みソフトウェアであっても何十万行にもなるソフトウェアにOTSを使わないケースはほとんどない。OSだってOTSだ。

そして,OTSには長い間使っているとサイバーセキュリティ上の脆弱性が見つかる。ここでよく考えた欲しいのはセキュリティの脆弱性は,ソフトウェアのバグ(欠陥)なのかという点だ。

脆弱性となった時点で修正が必要になるのだから,バグ(欠陥)と言えるかもしれないが,これまでソフトウェア品質の中で語られてきた決定論的原因故障(Systematic Failures) とは違うように思うのだ。

Systematic Failures/Faults  (決定論的原因故障/障害)
  • ハードウェアの設計に起因するもの、ソフトウェアのバグやソフトウェアに起因する問題やユーザーオペレーションが原因で発生する障害発生率の予測が難しい故障/障害
  • 出荷前の検査で発見することが難しく、出荷後に故障や障害が発生してから始めて分かることが多い。
  • 開発のプロセス(工程)、ライフサイクルの中で Systematic Failures/Faults の作り込みを防止し、検証や妥当正確認によって発見・除去する。
上記が決定論的原因故障(Systematic Failures) の定義となるが,脆弱性はソフトウェアに起因する問題ではあるがユーザーオペレーションが原因で発生するわけではない。出荷前の検査で発見することは難しく,出荷後に発生してから分かることが多いというのはそのとおりだが,検証や妥当性確認によって発見,除去できないものもある。

なぜなら,脆弱性は悪意を持ったハッカーが意図的にソフトウェアの穴を見つけて,そこを攻撃し,その悪用が成功すると,そこが脆弱性になるからだ。ようするに,仕様通りに作った設計通りのソフトウェアであっても,悪意をもったハッカーにより「正しく作ったソフトウェア」でも「脆弱性」にされてしまうことがあるということだ。

設計通りに作ったソフトウェアでも後々「脆弱性=欠陥」となってしまうのって,ソフトウェア品質を考える上でのパラダイムシフトではないかと思うのだ。どんなに頑張って信頼性を高めようとしても,ソフトウェアに穴を見つけようとするハッカーがいるかぎり「脆弱性=欠陥」は発生してしまう。これはソフトウェアに完成というゴールは存在しないということを意味する。

組込み機器がIoTの流れに乗って,ネットワークにつながるようになると,ネットワーク越しに脆弱性を攻撃される危険にさらされる。世界の中にいる一流のハッカーやあるいは,各国の軍事組織が意図的に作成したマルウェアは,コピーできたり自分自身が増殖したりできるので,IoT機器がインターネットに接続されていれば,そのソフトウェアが市場に存在し続ける限り,脆弱性=欠陥が発生するリスクがある。リスクが発生する確率は確率論で測ることはできない。ハッカーが攻撃したいと思うかどうかだ。

例えば,ハッカーがその製品の企業に気にくわない対応をされたのかもしれない。有名な企業やセキュリティがが高いとされている企業の鼻っぱしを折ってやろうという気になったのかもしれない。セキュリティインシデントを発生させて,わざと株価を低下させようと企んだのかもしれない。ようするに,悪用の可能性(Exploitability)は従来の確率(Probability)や起こりやすさ(Likelihood)の概念では測りきれないのだ。

米国FDA(食品医薬品局)は,2018年10月に医療機器の市販前のサイバーセキュリティに関するドラフトガイダンスを改訂して,医療機器に搭載されているCBOM(Cybersecurity Bills of Materials)のリストを提供することを求めている。サイバーセキュリティの脆弱性を監視する必要があるソフトウェアやハードウェアを搭載しているならば,それをリストにして提出せよと言っている。

そしてCBOMは NIST のNDB(NATIONAL VULNERABILITY DATABASE)と相互参照することを求めている。

NDBは過去の脆弱性の報告があったソフトウェアやハードウェアが全てデータベース化されている。そこに載っているハードウェアやソフトウェアを使っているならば,それをリストにして提出しなさいと言っている。

そして,市販後の新たな脆弱性が見つかったら,脆弱性を含むOTSを搭載する該当製品に対してパッチを当てるように勧告するのだろう。

ようするに,IoT機器のソフトウェアは,クリティカルなソフトウェアに限らず市販前に完成度の高いソフトウェアを作ってリリースしたら終わりにはならないのだ。これまでも,仕様変更やバグが見つかったら,ソフトウェアの改変を行っていたかもしれないが,仮に市販前に仕様通り作った完璧と思ってリリースしたソフトウェアであっても,製品が市場にある限りサイバーセキュリティの対応が終わらないということになってきた。

サイバーセキュリティは商品の価値としては潜在的な価値に分類される。潜在的な価値は,カタログスペックには出てこないが,セキュリティインシデントが発生することで,その潜在的価値がクローズアップされる。

サイバーセキュリティの堅牢性は当たり前品質であるとも言える。ユーザーにとってはできていて当たり前だが,普通に使ってるぶんにはその価値は見えてこない。セキュリティインシデントが発生したときにはじめて,その価値の重要性に気が付く。製造業者側としては,事前に仕込んでおかないといけない価値となる。

メーカーとしては,そこにコストをかけたくないところだが,セキュリティインデントが発生すると,著しく企業価値が下がり,ダメージが大きいので対処しない訳にはいかない。難しいのは,セキュリティ対策には終わりがないので,どこまでやればいいかの線引きが非常に難しいのだ。だから,市販前の考え方としては,クリティカルな製品においては,セキュリティインシデントが発生したときのユーザーのリスクが許容できるかどうかで判断し,また,過去に発生したセキュリティインシデントが再発しないような対策を積み重ねていく。そして,その対応をしたからといって,製品をリリースして終わりではないという認識を持ってセキュリティに対応する。

ユーザーにとってIoT時代はいろいろと便利なサービスが提供されるという点ではいいのだが,メーカーはその裏でサイバーセキュリティ対策をしないといけない。最終的にはそのコストはユーザーが負うことになる。ユーザーは便利の裏側でセキュリティのコストを払うことになるのだ。どこまでコストをかければいいのかはメーカーが判断しなければいけない。日々コストと戦っている製造業者には頭の痛い問題だ。しかも,ソフトウェアのバグの発見とはまた別の意味で,悪用の確率を予測しにくい「やから」が相手ときている。

さて,ソフトウェア品質の話に戻ろう。これまでソフトウェアの品質の議論は,主にリリース前までにいかにバグを潰すかという論点で進んで来たが,今後は市販後も含めたソフトウェアのライフサイクル全体を考えなければいけなくなってきた。

悪意を持ったハッカーはどんなに完成度が高いソフトウェアであっても(わざわざ,堅牢なソフトウェアの穴を見つけようとはしないだろうが)穴を見つけ出そうとする。そこには悪意があるから防ぎようがない。オープンソースのソフトウェアは便利だからみんな使っているが,脆弱性との戦いは一生終わらないと思った方がいいだろう。ソースコードをオープンにして脆弱性を見つけてくださいと言っているのと同じだからしょうがない。ハッカーがその気になるかならないかは,ハッカーの気分次第なのだ。ちなみに,悪意を持ったハッカーではない,善意のハッカーと称する者は,わざわざソフトウェアの穴となりうる脆弱性を見つけてセキュリティインシデントを発生させてみて「この商品は危ないですよ」とデモンストレーションして,多くの人の注目を浴びたいため?に脆弱性をわざわざ指摘してくれる。(脆弱性を見つけた時点で公表する前にOTSの製造業者にお知らせしてくれるが,製造業者としては脆弱性を見つけてくれない方がうれしいと思うのは自分だけだろうか?)

自動車業界はサイバーセキュリティを多層防御で乗りきろうとしているかもしれない。しかし,本当にそれで乗りきれるだろうか。車載ソフトウェアでもどこかでOTSやオーブンソースのソフトウェアは使われているだろう。ナビゲーションシステムやAIのソフトウェアだって使うかもしれない。ナビゲーションシステムは自動車の制御ソフトウェアとつながるようになるかも知れない。そして,ナビゲーションシステムのソフトウェアに脆弱性が見つかってしまったらどうするのだろうか。脆弱性があっても多層防御しているから大丈夫ですと言い切るのだろうか。

ソフトウェアの場合,弱いところがあることが分かってしまうと,どんなに発生確率が低いと説明しても「直せるのなら直せ」と言われ,直さざるを得ない宿命がある。だから,脆弱性が見つかったら,パッチを当てるしかないのだ。そのためには,ソフトウェアを安全にアップデートするしくみが必要になり,アップデートすることを前提にしてソフトウェアをリリースすることになる。

このことは,「ソフトウェア製品はリリース時に完成しない」時代になったということではないか。リリース時にバグはないかもしれないが,潜在的な脆弱性や未来に脆弱性となってしまうソフトウェアが含まれている状態で出荷せざるを得ないのだ。

このサイバーセキュリティを起因としたパラダイムシフトは,企業のソフトウェア開発の体制にも影響を与える。OTSの脆弱性を監視し,脆弱性が見つかったら対応するための組織 PCERT(Product Computer Emergency Response Team)が必要になる。

そして,ソフトウェア品質はソフトウェア部品の信頼性を高めて,それを組み上げるといったアプローチの有効性が低下し,個別最適から全体最適の時代に完全に切り替わったのだと思う。

ようするに,製品のリリース時点では,サイバーセキュリティの脆弱性は発生するという前提で市販後の対応をする必要があり,商品のリリース時には,対ユーザーリスクをなくすことはできないので,できるだけ小さくすることを考えることが必要になったのである。

これはソフトウェアのテストについても同じことが言える。仕様通りに作っても脆弱性となってしまうケースがある以上,テストがソフトウェアの完成度を確認する手段なら,製品リリース時に完全なテストは実施できないことになる。ソフトウェアは一生完成しないという前提に立てば,完全なテストも存在しないと言えないか。完全なテストを行うことを目指すのではなく,ユーザーリスクが最小になるようなテスト,検証,バリデーションを設計しないといけない。

ソフトウェア開発のおいて,また,ソフトウェア品質向上施策において,ソフトウェア部品の信頼性やセキュリティを個別に高めて結合すれば,システムも安全で,高品質でセキュアであるという時代ではなくなった。

ユーザーに対して商品に責任を持つ組織が,全体最適として商品の安全性や信頼性やセキュリティのリスクを最小限にする方策を考え実施し,そして商品が市場にある限り,ライフサイクル全体でOTSの脆弱性対応を含めたサービスを提供することが必要になってきた。

工場で製品作って出荷することが製造業者のゴールではなくなったということだ。そして,そのサービスのコストが最終的には便利と引き換えにエンドユーザーが負うことになる。