Upgrade to Pro — share decks privately, control downloads, hide ads and more …

システム開発とセキュリティのお話

 システム開発とセキュリティのお話

2022/11/26 山形県内ITコミュニティ共催! LT大会

イマドキなアプリケーション開発では、OSSやコンテナイメージなどの「アリモノ」の活用がよく行われますが、その「アリモノ」の安全性は大丈夫でしょうか?
ソフトウェアサプライチェーン攻撃のお話とセキュリティとうまく付き合う大切さについて述べました。

Yoshihisa Sato

November 26, 2022
Tweet

More Decks by Yoshihisa Sato

Other Decks in Technology

Transcript

  1. システム開発とセキュリティのお話
    山形県内ITコミュニティ共催! LT大会
    Nov. 26, 2022
    佐藤 由久(よしQ)

    View full-size slide

  2. 自己紹介
    ・JFrog(DevOpsツールベンダー)のデベロッパー・アドボケイト
    ・鶴岡市在住のリモートワーカー (2017年11月から)
    ・1984年生まれ、妻+息子+娘+娘+父+祖母
    ・酒田も山形も時間みながらコミュニティ参加させていただいてます
    ・「よしQ」で覚えてください。
    ※今日の発表は個人のもので、会社には関係ありません
    佐藤 由久 SATO Yoshihisa
    @umekichi1984
    https://www.facebook.com/yoshiq

    View full-size slide

  3. インフラの準備って
    大変だよね
    ?

    View full-size slide

  4. Wordpressのインフラを用意する
    ✅ Wordpressとは?
    ➢ PHPベースのOSSなCMS(Content Management System、コンテンツ管理)
    ➢ 全世界のCMSの市場シェア: 63.5%(2020年8月現在 *1)
    ➢ 日本国内のシェア: 83.1%がWordPress(2020年8月現在 *1)
    ➢ インフラ構築を必要としないホスティングサービス多数。
    ✅ ホスティングを使用せず、Wordpressの実行環境を自前で用意するとしたら?
    ➢ DBサーバを用意 (MySQL、MariaDB…)
    ➢ DBの設定 (DBユーザ作成、データベースの作成、テーブル作成...)
    ➢ Webサーバを用意 (Apache、nginx…)
    ➢ Webサーバの設定 (PHPの実行、WPへのパス指定、DB接続設定...)
    *1: https://openstandia.jp/oss_info/wordpress/

    View full-size slide

  5. Dockerを使って用意すると?
    ?

    View full-size slide

  6. Dockerを使って用意すると?
    ✅ Dockerとは?
    ➢ コンテナ型アプリケーション実行環境
    ➢ Docker Hubなどで公開されている「コンテナイメージ」を使うこ
    とで、アプリケーション環境を容易に作成可能
    ✅ Dockerを使ってWordpressの実行環境を自前で用意する
    ➢ Docker環境の用意
    ➢ Docker Composeのため、YAMLファイルに
    アプリケーションのサービスを設定
    ➢ コマンド、ポン
    version: '3.8'
    services:
    db:
    image:mysql:5.7
    platform: linux/x86_64
    volumes:
    - db_data:/var/lib/mysql
    restart: always
    environment:
    MYSQL_ROOT_PASSWORD: somewordpress
    MYSQL_DATABASE: wordpress
    MYSQL_USER: wordpress
    MYSQL_PASSWORD: wordpress
    wordpress:
    depends_on:
    - db
    image:wordpress:latest
    ports:
    - "8000:80"
    restart: always
    environment:
    WORDPRESS_DB_HOST: db:3306
    WORDPRESS_DB_USER: wordpress
    WORDPRESS_DB_PASSWORD: wordpress
    volumes:
    db_data:

    View full-size slide

  7. イマドキなアプリケーション開発
    ✅ OSSやコンテナイメージなど、一般に公開されている技術を積極的な活用
    ➢ アプリもインフラも、すべてをゼロから作らず、アリモノは活用して効率化
    ➢ アリモノでは実現できない、アプリケーションの根幹の開発に注力する
    ✅ 自動化可能な部分は自動化して、迅速にアプリを公開していく
    ➢ 毎回実施することは自動化して効率化 (CIツールでビルド、自動テスト...)
    ➢ アプリケーション公開作業の自動化 (CDツールで実行形式配布、コンテナデプロイ...)

    View full-size slide

  8. アリモノ活用は安全ですか?
    ?

    View full-size slide

  9. Dockerコンテナに含まれる脆弱性
    ✅ Docker Hubにある400万近いイメージを分析した結果*2
    ➢ 68パーセントのイメージに何らかの脆弱性が見つかった
    ■ 全体の51パーセント以上のイメージに悪用可能な脆弱性のあるもの
    ➢ 6,432のイメージにはマルウェアが発見された
    ※JFrog Artifactory + JFrog Xrayを使ったチェック結果
    *2: https://www.infoq.com/jp/news/2021/03/dockerhub-image-vulnerabilities/

    View full-size slide

  10. Dockerに限った話ではない
    ✅ OSSに含まれる脆弱性
    ➢ 活発に活動しているところが作ったものはすぐに修正される可能性が高い
    ➢ あまり活動されていないところは・・・
    ✅ OSSもDockerイメージのように、内部で使われている場合もある
    ➢ OSSの開発も効率化のために、別のOSSを使っている可能性がある
    ✅ アリモノの脆弱性は、ある日突然判明する
    ➢ すでに動いているアプリ上で使っているものに脆弱性が判明したとき、
    すぐに対応できるでしょうか?
    ➢ 自分が使っているアリモノの中身を正しく把握していますか?

    View full-size slide

  11. ソフトウェアのサプライチェーン攻撃
    原料
    部材
    購入
    出荷
    製造
    メーカー (サプライヤー) 消費者
    (在庫/流通/販売)
    (供給・調達)
    ソース
    コード
    アリモノ
    サービス
    メーカー (サプライヤー) 消費者
    リリース
    ビルド
    製造業の
    サプライチェーン
    ソフトウェア開発の
    サプライチェーン

    View full-size slide

  12. SLSA: Supply-chain Levels for Software Artifacts
    ソフトウェアサプライチェーンのそこ、大丈夫?チェックポイント
    ソース
    コード
    OSS
    ビルド リリース
    H
    F
    G
    D
    A
    B
    C
    E
    SOURCE THREATS
    DEPENDENCY THREATS
    BUILD THREATS
    脅威
    A 不正な変更の送信
    B リポジトリの侵害
    C 正しいソースからのビルド
    D 不正なビルドプロセス
    E 侵害されたOSSの使用
    F CI/CDで作られていない
    アーティファクトの登録
    G パッケージリポジトリ
    H 侵害されたパッケージ利用
    どこでも入りうる!!

    View full-size slide

  13. セキュリティ大事なのはわかるけど…
    ?

    View full-size slide

  14. 「セキュリティ」とうまく付き合う
    ✅ どんなセキュリティを狙った攻撃があるかを知る
    ➢ どんなものを狙った攻撃があるか、概要でいいから知る。
    ➢ 攻撃したいと思う人は手を変え品を変え狙ってくるので、日々攻撃の仕方も変わる
    ✅ ツールを活用して、自動的に問題がある箇所がわかるようにする
    ➢ 全部を人がカバーするのは難しい。任せられる部分は機械にお願いする。
    ➢ 既知のものは、できる限り早い段階で検知できるように組み込む。
    ➢ 既知でないものもある日突然やってくる。サービス開始後もチェックできる仕組みを持つ

    View full-size slide