COBOLアプリケーション開発のセキュリティSecure Code Warrior

2020年5月21日発行
ピーテル・ダンヒョウ著
ケーススタディ

COBOLアプリケーション開発のセキュリティSecure Code Warrior

2020年5月21日発行
ピーテル・ダンヒョウ著
リソースを見る
リソースを見る

2019年になって、1959年に発明されたコンピュータ言語を使って仕事をすることを話題にするのは、ほとんど滑稽に思えます。古典的なシンガーミシンの糸通しや、シボレー・パークウッドやトライアンフ・ヘラルドのオイルパンの交換などをテーマにしたセミナーやコンベンションは、最近ではあまり多くありません。それらの老朽化した道具のほとんどは、長い間に引退し、より効率的な新しいモデルにアップグレードされています。しかし、他の業界に比べて最先端であるはずのテクノロジーの世界では、同時期にリリースされたCOBOLのような言語が今でも使われているのです。

もちろん、これには非常に大きな理由があります。COBOL(Common Business Oriented Language)は60年前の製品ですが、非常に優れた構造を持っていたため、現在でも関連性があり、広く使用されています。

COBOLは、特定の文章や構文にまとめられた平易な言語を用いて、数学的・数式的なタスクを実行するバックエンドシステムをプログラムする、比較的簡単な方法として作られました。なぜCOBOLは今も生きているのでしょうか?簡単に言えば、非常に優れているからです。ある意味では、金融業や製造業など様々な業界のメインフレームやコアシステムのコンピューティングファブリックの一部となっています。

特に2002年には、新しいアプリケーションのプログラミングをよりスムーズにするために、COBOLをオブジェクト指向言語に変更しました。しかし、ほとんどの場合、COBOLは現在も当時と同じように、縁起の悪いヒーローであり、現代の多くのメインフレームレベルのアプリケーションを支えるバックエンドで働く主力のプログラミング言語である。

COBOLの安全性は?

残念ながら、COBOLが作られた当初は、セキュリティへの配慮があまりなされていませんでした。例えば、多くのCOBOLアプリケーションはパスワードプログラムで保護されていますが、クラッキングを防ぐためのブルートフォースプロテクションなどの強化はほとんど行われていません。さらに、ネットワーク・トラフィックを監視する最新のセキュリティ・ツールの多くは、COBOLのようなビジネス言語で書かれたプログラム内で発生する機能をどのように処理し、評価すればよいのかわからないという事実もあり、問題は深刻です。古典的なコンピュータ言語で動作するシステムに対するセキュリティ監視が不十分であったために、現代の多くの不正侵入が成功しています。2015年には、Office of Personnel Management(OPM)がハッキングされ、400万人以上の米国連邦職員のデータが流出しましたが、その責任はCOBOLを使用していたことにあり、このような旧式のシステムに最新のセキュリティ対策を施すことができなかったとされています。

一昔前までは、COBOLをはじめとする当時のホットな言語に精通したプログラマー軍団がセキュリティを提供していました。1960年代には、COBOLは現在のJavaや.Netのようなもので、それを知っている人は部署のロックスターでした。2019年現在、そのような人たちは、保護していたシステムが引退していなくても、とっくに引退しているでしょう。

拡大するCOBOLのフロントラインの守備範囲

いわゆるグレイベアードと呼ばれる人たちの中には、以前働いていた時と同じメインフレームを守るために、契約社員として組織に戻ってきた人も少なくない。彼らの奇妙な服装(幅広のネクタイにスリーピースのスーツ)と妙に礼儀正しい物腰は、スキニージーンズとおかっぱ頭の現代のヒップスターたちとは全く相容れないものであった。しかし、COBOLやその他の古代言語でコードを書くプログラマーはほとんどいないので、彼らは絶対に必要な存在だった。残念なことに、この最後の魔法使いのような人たちも消えていき、最終的にはボカラトンに引っ越して、本当の意味での引退を楽しむことになる。

そのため、古い言語を理解し、その言語が持つセキュリティ上の脆弱性を理解する人材が切実に求められています。たとえ若い人たちが古典的な言語でコードを書くことができなくても、少なくともその仕組みや潜在的な脆弱性を理解しておく必要があります。というのも、COBOLの開発は比較的安定していますが、ネットワークを狙う脅威は進化し続けているからです。前述のCOBOLパスワードアプリケーションのように、60年前にプログラムされた古代のサイバーセキュリティ技術を現代の攻撃者からメインフレームを守るために使おうとすることは、宇宙海兵隊の小隊と戦うために槍兵のファランクスを配備するようなもので、ハリウッド映画のような奇跡が起こらない限り、槍を持った男たちにとって悪い結果になるでしょう。

古くても新しくても、安全でなければなりません。

だからこそ、私たちは幅広いプログラミング言語やフレームワークをカバーする高度なトレーニングシステムが重要だと考えています。多くのセキュリティトレーニングの問題点は、情報が一般的すぎたり、最悪の場合、参加している開発者の日々の仕事には全く関係がないということです。Javaにしか適用されない脆弱性について半日かけて学んでも、COBOLの開発者がシステムを強化するのには役立ちませんし、「セキュリティ」は必須コースが終了すれば忘れ去られるような、箱庭的な演習であるという考えが蔓延しています。付け加えると、Javaのセキュリティバグに関するトレーニングは、Java Springの開発者には必ずしも適用できません。セキュアなコーディングは、フレームワークレベルであっても、すべての言語で異なるからです。

すべての開発者をセキュリティ・スーパーヒーローにするというミッションのもと、私たちは、世界で最も標的とされる重要な施設でいまだに使用されている有効なコンピュータ言語を見逃すことはありません。私たちのプラットフォームでは、COBOLに関連する最新の実践的な課題やトレーニングが、Googles Golangのような今日入手可能な最新のプログラミングツールと一緒に提供されています。このような柔軟性により、トレーニングは個人に関連したものとなり、職場環境を模した文脈の中で行われるため、最大限の関与と効果を得ることができます。結局のところ、強固なセキュリティ文化を構築することは、サイバー脅威との戦いにおいて最も重要であるため、トレーニングは実用的であるべきです(もちろん、楽しいものでなければなりません!)。

私たちは、この業界が、古くなった言語を実行しているシステムに対するセキュリティ上の脅威であろうと、最新のモバイルアプリケーションに対するセキュリティ上の脅威であろうと、問題にならない段階に到達することを望んでいます。すべての開発者が、これらの脆弱性、攻撃者がそれを悪用するために使用するツールやテクニック、そしてそれらを冷静に阻止する方法について、最高の情報を身につけてほしいのです。私たちは、サイバーセキュリティの脅威に直面しても、決して降参したり放棄したりしません。脅威や脆弱性がどれほど最新のものであろうと、どれほど昔に作られたものであろうと、いつでも Secure Code Warrior脅威や脆弱性がどのようにして作られたかにかかわらず、いつでも、どのようにしてそれらを打ち破るかを学ぶために

PS: 古代の言語はSQLインジェクションの影響を受けないと思っていませんか?考え直してください。今すぐCOBOLでSQLインジェクションを見つけて修正してみてください。

リソースを見る
リソースを見る

著者

ピーテル・ダンヒユー

Pieter Danhieuxは、セキュリティコンサルタントとして12年以上の経験を持ち、SANSの主席講師として8年間、組織、システム、個人をターゲットにしてセキュリティの弱点を評価する方法に関する攻撃的なテクニックを教えている、世界的に有名なセキュリティエキスパートです。2016年には、オーストラリアで最もクールな技術者の一人として認められ(Business Insider)、Cyber Security Professional of the Yearを受賞(AISA - Australian Information Security Association)、GSE、CISSP、GCIH、GCFA、GSEC、GPEN、GWAPT、GCIA認定を保有している。

もっと知りたい?

セキュアコーディングに関する最新の知見をブログでご紹介しています。

当社の豊富なリソースライブラリは、安全なコーディングアップスキルに対する人間的なアプローチを強化することを目的としています。

ブログを見る
もっと知りたい?

開発者主導のセキュリティに関する最新の研究成果を入手する

ホワイトペーパーからウェビナーまで、開発者主導のセキュアコーディングを始めるために役立つリソースが満載のリソースライブラリです。今すぐご覧ください。

リソース・ハブ

COBOLアプリケーション開発のセキュリティSecure Code Warrior

2024年1月22日発行
Pieter Danhieux著

2019年になって、1959年に発明されたコンピュータ言語を使って仕事をすることを話題にするのは、ほとんど滑稽に思えます。古典的なシンガーミシンの糸通しや、シボレー・パークウッドやトライアンフ・ヘラルドのオイルパンの交換などをテーマにしたセミナーやコンベンションは、最近ではあまり多くありません。それらの老朽化した道具のほとんどは、長い間に引退し、より効率的な新しいモデルにアップグレードされています。しかし、他の業界に比べて最先端であるはずのテクノロジーの世界では、同時期にリリースされたCOBOLのような言語が今でも使われているのです。

もちろん、これには非常に大きな理由があります。COBOL(Common Business Oriented Language)は60年前の製品ですが、非常に優れた構造を持っていたため、現在でも関連性があり、広く使用されています。

COBOLは、特定の文章や構文にまとめられた平易な言語を用いて、数学的・数式的なタスクを実行するバックエンドシステムをプログラムする、比較的簡単な方法として作られました。なぜCOBOLは今も生きているのでしょうか?簡単に言えば、非常に優れているからです。ある意味では、金融業や製造業など様々な業界のメインフレームやコアシステムのコンピューティングファブリックの一部となっています。

特に2002年には、新しいアプリケーションのプログラミングをよりスムーズにするために、COBOLをオブジェクト指向言語に変更しました。しかし、ほとんどの場合、COBOLは現在も当時と同じように、縁起の悪いヒーローであり、現代の多くのメインフレームレベルのアプリケーションを支えるバックエンドで働く主力のプログラミング言語である。

COBOLの安全性は?

残念ながら、COBOLが作られた当初は、セキュリティへの配慮があまりなされていませんでした。例えば、多くのCOBOLアプリケーションはパスワードプログラムで保護されていますが、クラッキングを防ぐためのブルートフォースプロテクションなどの強化はほとんど行われていません。さらに、ネットワーク・トラフィックを監視する最新のセキュリティ・ツールの多くは、COBOLのようなビジネス言語で書かれたプログラム内で発生する機能をどのように処理し、評価すればよいのかわからないという事実もあり、問題は深刻です。古典的なコンピュータ言語で動作するシステムに対するセキュリティ監視が不十分であったために、現代の多くの不正侵入が成功しています。2015年には、Office of Personnel Management(OPM)がハッキングされ、400万人以上の米国連邦職員のデータが流出しましたが、その責任はCOBOLを使用していたことにあり、このような旧式のシステムに最新のセキュリティ対策を施すことができなかったとされています。

一昔前までは、COBOLをはじめとする当時のホットな言語に精通したプログラマー軍団がセキュリティを提供していました。1960年代には、COBOLは現在のJavaや.Netのようなもので、それを知っている人は部署のロックスターでした。2019年現在、そのような人たちは、保護していたシステムが引退していなくても、とっくに引退しているでしょう。

拡大するCOBOLのフロントラインの守備範囲

いわゆるグレイベアードと呼ばれる人たちの中には、以前働いていた時と同じメインフレームを守るために、契約社員として組織に戻ってきた人も少なくない。彼らの奇妙な服装(幅広のネクタイにスリーピースのスーツ)と妙に礼儀正しい物腰は、スキニージーンズとおかっぱ頭の現代のヒップスターたちとは全く相容れないものであった。しかし、COBOLやその他の古代言語でコードを書くプログラマーはほとんどいないので、彼らは絶対に必要な存在だった。残念なことに、この最後の魔法使いのような人たちも消えていき、最終的にはボカラトンに引っ越して、本当の意味での引退を楽しむことになる。

そのため、古い言語を理解し、その言語が持つセキュリティ上の脆弱性を理解する人材が切実に求められています。たとえ若い人たちが古典的な言語でコードを書くことができなくても、少なくともその仕組みや潜在的な脆弱性を理解しておく必要があります。というのも、COBOLの開発は比較的安定していますが、ネットワークを狙う脅威は進化し続けているからです。前述のCOBOLパスワードアプリケーションのように、60年前にプログラムされた古代のサイバーセキュリティ技術を現代の攻撃者からメインフレームを守るために使おうとすることは、宇宙海兵隊の小隊と戦うために槍兵のファランクスを配備するようなもので、ハリウッド映画のような奇跡が起こらない限り、槍を持った男たちにとって悪い結果になるでしょう。

古くても新しくても、安全でなければなりません。

だからこそ、私たちは幅広いプログラミング言語やフレームワークをカバーする高度なトレーニングシステムが重要だと考えています。多くのセキュリティトレーニングの問題点は、情報が一般的すぎたり、最悪の場合、参加している開発者の日々の仕事には全く関係がないということです。Javaにしか適用されない脆弱性について半日かけて学んでも、COBOLの開発者がシステムを強化するのには役立ちませんし、「セキュリティ」は必須コースが終了すれば忘れ去られるような、箱庭的な演習であるという考えが蔓延しています。付け加えると、Javaのセキュリティバグに関するトレーニングは、Java Springの開発者には必ずしも適用できません。セキュアなコーディングは、フレームワークレベルであっても、すべての言語で異なるからです。

すべての開発者をセキュリティ・スーパーヒーローにするというミッションのもと、私たちは、世界で最も標的とされる重要な施設でいまだに使用されている有効なコンピュータ言語を見逃すことはありません。私たちのプラットフォームでは、COBOLに関連する最新の実践的な課題やトレーニングが、Googles Golangのような今日入手可能な最新のプログラミングツールと一緒に提供されています。このような柔軟性により、トレーニングは個人に関連したものとなり、職場環境を模した文脈の中で行われるため、最大限の関与と効果を得ることができます。結局のところ、強固なセキュリティ文化を構築することは、サイバー脅威との戦いにおいて最も重要であるため、トレーニングは実用的であるべきです(もちろん、楽しいものでなければなりません!)。

私たちは、この業界が、古くなった言語を実行しているシステムに対するセキュリティ上の脅威であろうと、最新のモバイルアプリケーションに対するセキュリティ上の脅威であろうと、問題にならない段階に到達することを望んでいます。すべての開発者が、これらの脆弱性、攻撃者がそれを悪用するために使用するツールやテクニック、そしてそれらを冷静に阻止する方法について、最高の情報を身につけてほしいのです。私たちは、サイバーセキュリティの脅威に直面しても、決して降参したり放棄したりしません。脅威や脆弱性がどれほど最新のものであろうと、どれほど昔に作られたものであろうと、いつでも Secure Code Warrior脅威や脆弱性がどのようにして作られたかにかかわらず、いつでも、どのようにしてそれらを打ち破るかを学ぶために

PS: 古代の言語はSQLインジェクションの影響を受けないと思っていませんか?考え直してください。今すぐCOBOLでSQLインジェクションを見つけて修正してみてください。

弊社製品や関連するセキュアコーディングのトピックに関する情報をお送りする許可をお願いします。当社は、お客様の個人情報を細心の注意を払って取り扱い、マーケティング目的で他社に販売することは決してありません。

フォームを送信するには、「Analytics」のCookieを有効にしてください。完了したら、再度無効にしてください。