あなたがプログラマーであれば、趣味でコーディングするかプロとしてコーディングするかに関係なく、プロジェクトの新しいバージョンを作成することを知っているでしょう。これは、あなた自身、友人、または顧客が実際にインストールする公式の「リリース」バージョンです。と使用 – は、常にホワイトナックルライドのようなものです。
結局のところ、リリース バージョンはすべてのコードに依存し、すべての既定の設定に依存し、公開されたドキュメント (ただし、内部関係者の知識はありません) のみを使用し、これまでに見たことのないコンピューターでも動作する必要があります。互換性をテストしたことのない他のソフトウェアと並んで、想像もしなかった構成。
簡単に言えば、プロジェクトが複雑になればなるほど、それに取り組む開発者が増え、他のすべてのコンポーネントとスムーズに連携しなければならない個別のコンポーネントが増えていきます…
…全体が部分の合計よりもはるかに印象的ではない可能性が高くなります.
大雑把な例えとして、個人の 100m 短距離走で最速の陸上チームが 4x100m リレーで常に勝つとは限らないことを考えてみてください。
CI による救助
この種の「しかし、私のコンピューターでは正常に機能した」という危機を回避する試みの XNUMX つは、専門用語で次のように知られている手法です。 継続的インテグレーションまたは CI 略して。
アイデアは単純です。誰かがプロジェクトの自分の部分に変更を加えるたびに、その人の新しいコードを取得し、最終リリースを作成する前と同じように、完全なビルドとテストのサイクルを実行して新しいコードを作成します。バージョン。
早期に構築し、頻繁に構築し、すべてを構築し、常に構築してください!
明らかに、これは物理的な世界でのプロジェクトでは実現できない贅沢です。たとえば、シドニー ハーバー ブリッジを建設している場合、テスト スパン全体をまったく新しい原材料で毎回再構築することはできません。リベットプロセスを微調整するか、頂上に大きな旗竿を取り付けることができるかどうかを確認してください.
コンピューター ソフトウェア プロジェクトを XNUMX 束のソース ファイルから一連の出力ファイルに "構築" する場合でも、電力などの貴重なリソースを消費し、開発者が使用するすべてのコンピューターと並行して実行するには、計算能力の急増が必要になります。自身が使用しています。
結局のところ、CI を使用するソフトウェア エンジニアリング プロセスでは、全員の準備が整うまで待つのではなく、全員がプログラミングから離れて、最終的なビルドが完了するのを待つという考え方です。
ビルドは一日中、毎日行われるため、コーダーは、他のすべての人に悪影響を与えるような「改善」をうっかり行ってしまった場合に、かなり前から知ることができます。 ビルドを壊す、専門用語が言うかもしれないように。
アイデアは、早期に失敗し、迅速に修正し、品質を高め、予測可能な進歩を遂げ、予定どおりに出荷することです。
確かに、テスト ビルドが成功した後でも、新しいコードにはまだバグが含まれている可能性がありますが、少なくとも開発サイクルの最後に到達してから、誰もが設計図に戻る必要があることに気付くことはありません。さまざまなコンポーネントがずれているため、ソフトウェアを構築してまったく機能させることができません。
初期のソフトウェア開発方法は、次のように呼ばれることがよくありました。 滝モデル、プロジェクトがバージョンの締め切り間で緩やかに下流に漂う中、誰もが調和して、しかし独立して作業し、サイクルの終わりにすべてがまとまって新しいリリースを作成し、バージョン アップグレードの激動の滝を飛び越える準備が整いました。さらなる設計と開発のために、下流の澄んだ水の穏やかな期間。 しかし、これらの「滝」の問題の XNUMX つは、重力にもかかわらず、滝のまさに端にある明らかに無限の円形の渦に閉じ込められることが多く、長時間のハッキングと変更 (および付随するオーバーラン) により、次の旅が可能になりました。
まさにクラウドのための仕事
ご想像のとおり、CI を採用するということは、開発者がビルドとテストの手順を開始するたびに、すぐに使用できる強力なサーバーを自由に使用できるようにすることを意味します。非常に滝の唇」の状況。
それはクラウドの仕事のようですね!
実際、多くのいわゆる CI/CD クラウド サービス (この CD 再生可能な音楽ディスクではありませんが、 連続配送) さまざまな製品のさまざまなブランチの数が常に変化する柔軟性を提供し、さまざまな構成のビルドを、おそらく異なるハードウェア上で同時に実行することもできます。
サークルCI はそのようなクラウドベースのサービスの XNUMX つです…
…しかし、彼らの顧客にとって残念なことに、彼らはただ 違反に見舞われた.
技術的には、最近一般的になっているように、同社は公式通知のどこにも「侵害」、「侵入」、または「攻撃」という言葉を実際に使用していません。 セキュリティインシデント.
オリジナル 通知 [2023-01-04] は簡単に次のように述べています。
現在、セキュリティ インシデントを調査中であり、調査が進行中であることをお知らせしたいと思います。 このインシデントに関する最新情報と当社の対応については、入手可能になり次第お知らせします。 この時点で、私たちのシステムで活動している無許可のアクターはいないと確信しています。 ただし、細心の注意を払って、すべてのお客様がデータを保護するための特定の予防措置を確実に講じるようにしたいと考えています。
何をするか?
それ以来、CircleCI は定期的なアップデートとさらなるアドバイスを提供してきました。CircleCI に保存されているすべてのシークレットをローテーションしてください。」
専門用語は以前説明した通り、 回転させる なぜなら、当時は新しいものを追跡するのが難しかっただけでなく、サイバーセキュリティが今日と同じくらい重要です。
CircleCI が意味することは、パスワード、シークレット、アクセス トークン、環境変数、公開鍵と秘密鍵のペアなどをすべて変更する必要があるということです。これはおそらく、ネットワークを侵害した攻撃者が盗んだか、そうでないと証明できないためです。それらを盗んだこと。
会社には リストを提供しました 侵害の影響を受けたさまざまな種類のプライベート セキュリティ データを分析し、便利なスクリプトを作成しました。 CircleCI-Env-Inspector 環境で変更する必要があるすべての CI シークレットの JSON 形式のリストをエクスポートするために使用できます。
さらに、サイバー犯罪者はアクセス トークンと暗号化キーを持っている可能性があります。これにより、自分のネットワークに戻ることができます。特に、CI ビルド プロセスでは、要求できないコードやデータを要求するために「コール ホーム」が必要になる場合があるためです。クラウドにアップロードする (これを行うスクリプトは、専門用語で ランナー).
そのため、CircleCI は次のようにアドバイスしています。
また、2022 年 12 月 21 日から [2023 年 01 月 04 日まで]、または [シークレットの変更] の完了時に、不正アクセスがないかシステムの内部ログを確認することをお勧めします。
興味深いことに、当然のことながら、一部のお客様は、この違反が始まった CircleCI が暗示する日付 [2022 年 12 月 21 日] が、たまたまブログ投稿と一致していることに気付いています。 会社が発行した 最近の信頼性の更新について。
顧客は、「違反は今回の更新で導入されたバグに関連していたのか?」と知りたがっていました。
同社の信頼性アップデートの記事は、特定の日付に行われた個々の変更の発表ではなく、ローリングニュースの要約のように見えることを考えると、明白な答えは「いいえ」です...
…そして CircleCI は、信頼性に関するブログ投稿の 2022 年 12 月 21 日の偶然の日付は、単なる偶然であると述べています。
ハッピーキーリジェネ!
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- Platoblockchain。 Web3メタバースインテリジェンス。 知識の増幅。 こちらからアクセスしてください。
- 情報源: https://nakedsecurity.sophos.com/2023/01/09/circleci-code-building-service-suffers-total-credential-compromise/
- 1
- 100M
- a
- 私たちについて
- 絶対の
- 豊富
- アクセス
- アクティブ
- 実際に
- 採用
- 進める
- アドバイス
- 影響を及ぼす
- 後
- すべて
- 並んで
- 常に
- および
- お知らせ
- 別の
- 回答
- 誰も
- どこにでも
- 物品
- 著者
- オート
- 利用できます
- バック
- 背景画像
- ひどく
- なぜなら
- になる
- になる
- 始まった
- の間に
- より大きい
- ビット
- ブログ
- ボード
- 国境
- ボトム
- 支店
- 違反
- BRIDGE
- バグ
- ビルド
- 構築します
- 束
- 呼ばれます
- センター
- 一定
- 変化する
- 変更
- 変化
- 選択肢
- 選ばれた
- クリア
- クラウド
- クラウドサービス
- コード
- 一致
- コレクション
- カラー
- コマンドと
- 会社
- 会社の
- 互換性
- 記入済みの
- 完成
- 複雑な
- コンポーネント
- 妥協
- コンピュータ
- コンピューター
- コンピューティング
- コンピューティングパワー
- 確信して
- 検討
- 構築
- 消費する
- 可能性
- カバー
- 作ります
- 作成した
- 作成
- クレデンシャル
- 危機
- 原油
- 暗号
- 現在
- Customers
- サイバー犯罪者
- サイバーセキュリティ
- 危険な
- データ
- 日付
- 試合日
- 中
- 日
- デフォルト
- 依存
- 設計
- 開発者
- 開発
- DID
- 異なります
- ディスプレイ
- ドキュメント
- そうではありません
- ドント
- ダウン
- 描画
- 早い
- エッジ(Edge)
- どちら
- 電気
- エンドレス
- エンジニアリング
- 確保
- 全体
- 環境
- 特に
- さらに
- 毎日
- 誰も
- すべてのもの
- 説明
- export
- フェイル
- 最速
- ファイナル
- もう完成させ、ワークスペースに掲示しましたか?
- 終わり
- フィット
- 修正する
- 柔軟性
- フォロー中
- 友達
- から
- フル
- さらに
- もっと穏やかに
- 取得する
- 与える
- Go
- ゴエス
- 行く
- グラブ
- 重力
- ハック
- ハンディ
- 起こる
- 起こります
- Hardware
- 持って
- 高さ
- こちら
- ホバー
- しかしながら
- HTTPS
- アイデア
- 暗黙の
- 重要
- 印象的
- in
- 事件
- 含めて
- 増える
- 単独で
- 個人
- インサイダー
- install
- 内部
- 導入
- 調査
- IT
- 専門用語
- ジョブ
- 旅
- 保管
- キー
- 知っている
- 知識
- 既知の
- Legacy
- 可能性が高い
- リスト
- 長い
- 贅沢
- 製
- make
- 作る
- マージン
- 材料
- 最大幅
- 手段
- 措置
- メソッド
- かもしれない
- 修正
- 他には?
- 音楽を聴く際のスピーカーとして
- 必要
- ニーズ
- マイナスに
- ネットワーク
- 新作
- ニュース
- 通常の
- 注意
- 通知
- 数
- 多数の
- 明白
- 提供すること
- 公式
- ONE
- 継続
- 注文
- オリジナル
- その他
- 自分の
- 部
- 部品
- パスワード
- 過去
- Paul Cairns
- のワークプ
- おそらく
- 期間
- 物理的な
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- 急落
- ポイント
- 位置
- 可能
- ポスト
- 投稿
- 電力
- 強力な
- 貴重な
- 予測可能な
- プライベート
- 問題
- プロセス
- ラボレーション
- 製品
- 専門的に
- プログラマー
- プログラミング
- 進捗
- プロジェクト
- プロジェクト(実績作品)
- 守る
- 証明
- 提供します
- 提供
- 公表
- 置きます
- 品質
- すぐに
- Raw
- 準備
- 最近
- 推奨する
- 言及
- レギュラー
- 関連する
- リリース
- 信頼性
- 要求
- リソース
- 応答
- レビュー
- Ride
- 圧延
- ラン
- 同じ
- スクリプト
- セキュリティ
- と思われる
- サーバー
- サービス
- サービス
- セッションに
- 設定
- 船
- ショート
- 速記
- 簡単な拡張で
- 単に
- 状況
- 小さい
- スムーズに
- So
- これまでのところ
- ソフトウェア
- ソフトウェア開発
- ソフトウェア工学
- 固体
- 一部
- ソース
- 特定の
- 起動
- 明記
- 手順
- まだ
- 盗まれました
- 保存され
- 成功した
- そのような
- 突然の
- 苦しみ
- サミット
- 発生します
- SVG
- シドニー
- システム
- 取る
- チーム
- test
- アプリ環境に合わせて
- 自分自身
- もの
- 介して
- 時間
- 〜へ
- 今日
- 一緒に
- トークン
- top
- トータル
- 追跡する
- 遷移
- トランスペアレント
- 理解しやすい
- アップデイト
- 更新版
- アップグレード
- URL
- つかいます
- さまざまな
- バージョン
- wait
- wanted
- 水
- かどうか
- which
- 誰
- 意志
- win
- Word
- 言葉
- 仕事
- 働いていました
- うまくいきました
- ワーキング
- 世界
- でしょう
- You
- あなたの
- あなた自身
- ゼファーネット