(旧アウトソーシングテクノロジー)
本サイトは、株式会社BREXA Technology(旧アウトソーシングテクノロジー)をスポンサーとして、Zenken株式会社が運営しています。
情報セキュリティポリシーの策定やネットワークセキュリティ、脆弱性診断、認証システムなど、業務範囲が幅広いセキュリティエンジニア。
基礎は網羅しつつ得意な領域を持ってキャリアアップできる職業なので、このページではセキュリティエンジニアになるために必要な知識・スキルの一つ「セキュリティに関わるプログラミング」の基礎について、どんな知識が必要なのかを紹介します。
セキュリティエンジニアに興味をもった方、そして今後どこを得意領域にしていこうかなとお考えのエンジニアの方必見です!
セキュアプログラミングとは、システムやアプリケーションに生じる脆弱性の原因を事前に取り除き、情報漏洩や乗っ取り、予期しないシステムダウンなどを防ぐプログラミングのことです。
想定しうるサイバー攻撃に対して、あらかじめ対策を講じることで、被害を最小限に食い止めることが可能です。ただし、どんな実装・設計が有効かはケースバイケースのため、設計・実装に対する基礎知識や個別のテクニックを学んでおくことが大切です。
セキュアプログラミングは、セキュリティ対策の実装、ソースコードチェック、再現テストを行う際に使われます。
「セキュリティ対策」と言うと、ファイアウォールなどの入口対策や、多重認証などの出口対策、リテラシー教育によるモラルの向上などを思い浮かべる人が多いかもしれませんが、そもそもOSやアプリの脆弱性をなくすことになり、開発段階から脆弱性を作り込まないために必要なのが、セキュアプログラミングです。
セキュアプログラミングの対象となる「脆弱性」とは、例えばOSコマンドを不正に埋め込まれたインジェクション等が上げられます。ソフトウェアを操作する際にこうしたインジェクションを受け取った場合、攻撃者によってOSを不正操作されてしまう可能性があります。また攻撃者がSQL文に不正な入力をした場合、利用者の予期しない結果を引き起こすかもしれません(SQLインジェクション)。
口コミサイトなど、ユーザーがWebアプリケーションに直接入力をするサイトなどでは、悪意のある第三者が脆弱性につけこみ、サイト利用者の個人情報を盗みとることができるケースもあります(クロスサイトスクリプティング)。
セキュリティ開発は、6つの段階に分けることができます。
脆弱性を回避するためには、プログラミングだけでは不十分です。要件フェーズや設計フェーズ、実装フェーズなど、開発プロセス全体で「脆弱性リスクをどこで・どのように軽減するか」を考えなくてはなりません。特にシステム開発の初期段階では、セキュリティ研究者や実務担当者がハッキングや未知の脆弱性を想定して議論を重ねることが大切です。
脆弱性回避のため、セキュリティホールを解消するテスト手法には、「ホワイトボックステスト」「ブラックボックステスト」「ファジングテスト」などがあります。
「ホワイトボックステスト」とは、作成されたプログラムの構造をチェックして、正常にフロー処理が行われているかを確認するテストのこと。「ブラックボックステスト」は、内部構造や動作をチェックするのではなく、仕様書をもとにテストすべき項目を決め、先行してセキュリティホールを見つける手法です。「ファジングテスト」では、システムに自動検査ツールを挿入し、脆弱性を見つけます。
企業のDX化とサイバー攻撃の巧妙化・複雑化、そしてセキュリティ人材の不足により、セキュリティ担当者への負担が増加しています。その中で需要が高まっているのが「セキュリティ対策の自動化」です。
反復的なセキュリティタスク、オブジェクトやポリシールールの更新、インシデントの検出と対応などを自動化することで、セキュリティ担当者の作業負担軽減や、インシデントへの迅速な対応などを実現することが可能です。
自動化の提案や自動化ツールの構築、他ツールとの連携にも、プログラミングスキルを持ったセキュリティエンジニアの活躍が期待されています。
株式会社BREXA Technologyは、エンジニアの技術派遣と請負開発の両面から技術力を提供している企業です。セキュリティエンジニアをはじめ、システムエンジニアやプログラマ、保守運用エンジニア、データベースエンジニアなど、高い技術力を持つさまざまなITエンジニアを擁し、日本有数の大手上場メーカーを中心に技術支援を行っています。
人材の育成にも力を入れており、特にセキュリティエンジニアは、セキュリティメーカーやベンダーと共同でセキュリティ人材育成プロジェクトを推進。2025年には約280名のセキュリティ人材輩出を計画(※2024年2月19日時点、公式HPより)しています。
カジュアル面談も積極的に行っているそうなので、キャリアを検討する一選択肢として活用してみてはいかがでしょうか。
セキュリティエンジニアとして活躍するためには、セキュアプログラミングに対する理解と、プログラミングスキルが必要です。特に近年は、セキュリティ対策の自動化需要が高まっており、自動化の提案や自動化ツールの構築などに、プログラミングスキルを持ったセキュリティエンジニアの活躍が期待されています。
次にご紹介しているページでは、プログラミングスキルを持ったセキュリティエンジニアになる近道をご紹介しています。セキュリティエンジニアに興味をお持ちの方は、ぜひチェックしてみてください。
新たな職業の選択肢を!をコンセプトに、様々な職業の魅力を伝えるWebメディアを展開するZenken株式会社。 このページは「セキュリティエンジニア」という職業にフィーチャーするWebメディア「ガドマガ」編集チームが調査しまとめています。