ITmedia NEWS > セキュリティ >
セキュリティ・ホットトピックス

“そうはならんやろコード”はなぜ生まれるのか セキュリティ専門家・徳丸氏に聞く「脆弱性だらけのWebアプリ」の背景

» 2023年05月08日 11時47分 公開
[谷井将人ITmedia]

 ITmedia NEWSでセキュリティインシデントを日々伝えていると、記事に対して「そんなずさんな情報管理があり得るのか!」という驚きの声が寄せられることがある。

photo EGセキュアソリューションズ取締役CTOの徳丸浩さん

 例えば、法令を順守していれば被害を防げたかもしれない場合や、明らかな手抜きがあった場合には「そうはならないだろう」「それはダメだろう」というツッコミもよく入る。ITmedia NEWSの読者が高いITリテラシーを持っていることの現れともいえるかもしれない。

 しかし、もう少し踏み込んでみることをすすめるのが、情報セキュリティの専門家・徳丸浩さんだ。

 「みなさん『それはダメだよ』と思うことはありますよね。でも『これが現実なんですよ』ということが大事だと思うんですよね。例えば、自分が作れば大丈夫という場合でも、ソフトウェアを発注して完成品を受け取ってみたら問題があったなんてことは十分あることです」

“そうはならんやろコード”はどうやって生まれるのか

 サイバー攻撃に関する最新情報は、専門の調査機関などから日々発表されている他、カンファレンスの場などでも動向の情報を取得できる。徳丸さんはそれらに加えて質問サイトやQiitaをよく見るという。

 日本の質問サイトとしてはレバテックの「Teratail」が有名だ。“プログラマー向けYahoo!知恵袋”のようにイメージするのが分かりやすい。

photo 「Teratail」

 「『質問する人はこういう間違い方をするのか』と観察しています。Qiitaは本当に玉石混交で、『これはすごいな』ってものもあれば、『これはさすがにダメだろう』みたいなものも多くて……。いきなりTwitterでさらし上げるのはかわいそうなので、ご本人にコメントとかでお伝えしてます」(徳丸さん)

 「たまに、『こんなソースコードどうやって思い付いたんだ』って思ってコードの出典を聞いてみると、プログラミングスクールのメンター(先輩指導員)が示したコードだって言うんです。普通にマニュアル通りに作れば脆弱性なんか入らないはずなのに、どこで習ったか知らないけどそんな書き方を教えちゃってるんですね」(徳丸さん)

 質問サイトを観察することで脆弱性が生まれる考え方やプロセスを学ぶ。そうして生まれたのが、できる限りの脆弱性を詰め込んだサンプルアプリケーション「BadTodo」だ。

生々しい「脆弱性あるある」で現実を見よう

 BadTodoは脆弱性診断実習用のアプリ。Webブラウザ上で動くToDoリストアプリとして動作するが、情報処理推進機構(IPA)の「安全なウェブサイトの作り方」や国際Webセキュリティ標準機構の「OWASP Top 10」で紹介されている脆弱性を網羅的に含む、脆弱性だらけのアプリになっている。

photo BadTodoに含まれる脆弱性

 徳丸さんは「『割と現実にあるよね』というパターンを詰め込むことにこだわりました」と語る。

 情報系の大学生の中にはプログラミングの速さや技術力を見る競技プログラミングというイベントがある。情報セキュリティの分野でも技術を競うコンテストはある。徳丸さんによると、コンテストで出題されるコードは作問のために意図して作ったもののことも多く、リアリティーがあるとは限らないという。

 「ベストプラクティスという言葉がありますけど、BadTodoはワーストプラクティス集みたいな感じにしています。作り物ではあるんですけど、現実的な“あるある”なんですね」(徳丸さん)

 サイバー攻撃被害のニュースやインシデント報告を見て、「それはおかしいだろう」とツッコミを入れるのもいいが、そのエッセンスは自分の職場にも転がっているかもしれない。そう考えることで自社セキュリティの改善につなげることが重要だ。

Copyright © ITmedia, Inc. All Rights Reserved.