BigFix によるセキュリティの向上とコンプライアンスの証明

2020/8/13 - 読み終える時間: ~1 分

HCL BigFix は統合エンドポイント管理ソリューションです。完全性、即時性、自動化が強く求められるこの領域において、HCL BigFix が適切な製品であるかについてかかれた英語版ブログの記事 Improve Security and Prove Compliance with BigFix の翻訳版です。


BigFix によるセキュリティの向上とコンプライアンスの証明

2020年7月31日

著者: Cyril Englert / Solution Architect

画像の説明

サイバー犯罪者は執拗にネットワークを侵害し、データにアクセスしようとしています。さらに、企業の内部者が無意識のうちにハッカーに門戸を開いてしまい、データ・ビーチの可能性が高まります。継続的なパッチ適用とコンプライアンスの実践は、サイバー攻撃から企業を守るための効果的な方法です。BigFix Complianceは、CIOやCISOから信頼されており、OS、場所、接続に関係なく、すべてのエンドポイントを保護し、利害関係者や規制当局にコンプライアンスを証明しています。

画像の説明

BigFixプロダクトマネージャーのMichelle McGough氏は先日、セルフコンプライアンスエンドポイントでセキュリティを自動化する方法を紹介しました。以下をクリックしてビデオをご覧ください。

BigFix コンプライアンスの詳細については、ここをクリックするか、www.bigfix.com をご覧ください。


HCL Z and I Emulator: PCSAPI を使った自動化

2020/8/13 - 読み終える時間: 6 分

HCL Z and I Emulator (ZIE) は、文字通り IBM のメインフレームにアクセスするためのエミュレーターであり、高度が付加機能を備えています。そのひとつの API について書かれた英語版ブログの記事 Automation using PCSAPI の日本語版を掲載します。


PCSAPI を使った自動化

2020年8月11日

著者: Sudhir Ranjan Rout / Senior Developer, HCL

画像の説明

はじめに

ZIEWin は、IBM メインフレーム/AS400/VT セッションと通信するためのエミュレータインターフェイスを提供します。これは、ホストのデータの読み取りと更新を行い、他のアプリケーションとホストをインターフェイスするために使用されます。トランザクションのエミュレータ画面上で手動タスクを実行すると、反復的になり、長期的には以下の問題を持つことになります。

  • 非効率
  • 冗長性があり、エラーが発生しやすい
  • 時間がかかるため高価

ZIEWin は、ユーザーが一般的に実行されるタスクを自動化できるようにするために、多くのアプリケーション・プログラミング・インターフェース (API) を公開しています。異なるAPIは特定の機能のセットで提供されており、異なる目的に使用でき、ユーザーの要件に基づいて異なるプログラミングインターフェイスを提供します。異なる API は、Visual Basic for Applications(したがって、MS Officeアプリケーションをサポート)、C/C++、C#、Java、LotusScript、REXなどのプログラミング言語をサポートしています。

ZIEWin が提供する API セットとその機能のリストは以下のとおりです。

  • Windows セッション API (PCSAPI) のためのZと私のエミュレータ:ZIEWin のセッション管理
  • エミュレータ高レベル言語API(EHLLAPI)。セッションが確立されると、ワークステーション アプリケーションとホスト システム間の相互作用を管理
  • Z and I Emulator for Windows Host Access Class Library (HACL)。アプリケーションプログラマがホストアプリケーションに簡単かつ迅速にアクセスできるようにするオブジェクトのセット セッションが確立された後、アプリケーションとホストシステムを使用できます
  • SRPI リクエスタープログラムを書くためのツールを提供する拡張コネクティビティファシリティ(ECF)

今回のブログでは、PCSAPI について詳しく見ていきます。

PCS Session APIは、ZIEWin セッションの起動、セッションのオープン、セッションのクローズ、接続、切断を行えます。EHLLAPI API は IBM EHLLAPI 通信標準(TN3270 と TN5250 プロトコル)と密接に結合されているため、セッション管理 API の機能はありません。ZIEWin のセッション API はまた、プリンタ、ページ、クエリワークステーションプロファイル/セッションリスト/エミュレータのステータスを設定するための機能を提供します。これらの API は、EHLLAPI/HACL API と組み合わせて使用することで、自動化サイクルを完成させられます。

関数呼び出し規約

ZIEWin セッション API は、プログラミングを簡単にするために、すべての関数のシンプルなプロトタイプに従っています。上述したように、これらの API は複数のプログラミング言語(VBA、C/C++、C#など)を使用してアクセスしてプログラムできます。

関数タイプ: API の戻り値の型 関数名: 呼び出される関数 引数: 関数に渡される入力引数で、1 から 3 までの値があります。

以下に、最も一般的に使用されるPCS APIとそのプロトタイプを示します。

1. PCConnectSession BOOL WINAPI PCConnectSession(char cShortSessionID)

2. PCDisconnectSession BOOL WINAPI PCDisconnectSession(char cShortSessionID)

3. pcsQueryConnectionInfo BOOL WINAPI pcsQueryConnectionInfo(char cShortSessionID, CONNECTIONINFO *ConnectionInfo)

4. PCStartSession ULONG WINAPI PCStartSession(PSZ lpProfile, char cShortSessionID, USHORT fuCmdShow)

5. pcsStopSession BOOL WINAPI PCStopSession(char cShortSessionID, USHORT fuSaveProfile)

6. pcsQuerySessionList ULONG WINAPI pcsQuerySessionList(ULONG Count, SESSINFO *SessionList)

これらのAPIの詳細については、こちらをご覧ください。

MacroExecutionBlockDiagram:

次の図は、ZIEWin の API - マクロエンジン - IBM ホストのフローのハイレベルビューを示しています。

画像の説明

コード スニップされたVBAコード (Excel 用)

A. Declarations

'Declaration for PCSAPI functions and defining their prototype to VBA engine
Declare PtrSafe Function pcsStartSession Lib "PCSAPI32.DLL" (ByVal buffer As String, ByVal SessionID As Integer, ByVal CmdShow As Integer) As Integer
Declare PtrSafe Function pcsStopSession Lib "PCSAPI32.DLL" (ByVal SessionID As Integer, ByVal SaveProfile As Integer) As Integer
'Declaration for EHLLAPI functions and defining their prototype to VBA engine
Declare PtrSafe Function ZIEWin_SendKey& Lib "PCSHLL32.DLL" Alias "hllapi" (HllFunctionNo&, ByVal HllData$, HllLength&, HllReturnCode&)
Declare PtrSafe Function ZIEWin_SetCursor& Lib "PCSHLL32.DLL" Alias "hllapi" (HllFunctionNo&, ByVal HllData$, HllLength&, HllReturnCode&)
Declare PtrSafe Function ZIEWin_ConnectPS & Lib "PCSHLL32.DLL" Alias "hllapi" (HllFunctionNo&, ByVal HllData$, HllLength&, HllReturnCode&)
'Defining Global Variable
Dim SessionID As Integer
Dim ProfileName As String

B. Entry Function

'Function entry point which drives the automation
Sub PCSAPISample()
SessionID = 65 'Session A
ProfileName = "Iseriesdemos.WS" 'change it session name of your preference
'call the LaunchZIEWinSession Sub
LaunchZIEWinSession ProfileName, SessionID
'Create a EHLLAPI connection with ZIEWin
ConnectZIEWinSession
'Move the cursor to desired location on the ZIEWin Screen
moveCursor 8, 53, 10
'Send a string to ZIEWin Screen
sendString "HelloWorld"
'Disconnect and close the ZIEWin Session
StopZIEWinSession SessionID
End Sub

C. ConnectZIEWinSession

'Function to establish connection to a ZIEWin session
Public Function ConnectZIEWinSession()
    HllFunctionNo = 1
    HllData = "A"
    HllLength = 4
    HllReturnCode = 0
    RC = ZIEWin_ConnectPS(HllFunctionNo, HllData, HllLength, HllReturnCode)
    If RC = 0 Then
        MsgBox "Connection Established"
    Else
        MsgBox "Connection Failed"
    End If

End Function

D. LaunchZIEWin Function

'Function to launch the ZIEWin session
Public Function LaunchZIEWinSession(ProfileName As String, SessionID As Integer)

    On Error Resume Next
    Dim RC As Integer

    'PCSStartsession take 'session profile file' and the session ID (65->ASCII->'A')
    RC = pcsStartSession(ProfileName, SessionID, 2)

    If RC = 0 Then
        MsgBox "ZIEWin Launched Successfully"
    Else
        MsgBox "ZIEWin Launched failed"
    End If
End Function

E. Stop ZIEWin Session

'Function to disconnect and stop the ZIEWin session
Public Function StopZIEWinSession()

    On Error Resume Next
    Dim ziewinStop As Boolean

    'PCSStopSession takes Session ID and save mode as input
    ziewinStop = pcsStopSession(SessionID, 2)
    If (ziewinStop = True) Then
        MsgBox "ZIEWin Closed Successfully"
    End If
End Function

サンプルコードをダウンロードしてみてください。

PCSAPIの呼び出しをテストするために使用できるエクセルのサンプルを添付します。

PCSAPI_ZIEWin _Sample

お問い合わせ

HCL ZIEでのWebアプリケーションの整理、自動化機能、ラボサービスの提供に関する詳細については、以下までお問い合わせください。

ZIO@hcl.com

Sudhir Ranjan Rout

Developer, Lab Services


SonarQube と HCL Accelerate の接続方法

2020/8/13 - 読み終える時間: 7 分

https://blog.hcltechsw.com/accelerate/how-to-connect-sonarqube-to-hcl-accelerate/

How to Connect SonarQube to HCL Accelerate

SonarQube と HCL Accelerate の接続方法

2020年8月12日

著者: Daniel Trowbridge / Technical Lead, HCL

画像の説明

このチュートリアルでは、HCL Accelerate と SonarQube の統合を設定する方法を説明します。SonarQube は、コード品質の測定と追跡、および静的コード分析のために、バリューストリームと一緒に使用することができます。SonarQube 統合は、後述する webhook パターンに依存するという点で、他の統合とは少し異なります。このパターンは効率的ですが、SonarQube インスタンスの追加設定が必要で、このチュートリアルで説明する証明書の問題が一般的です。

画像の説明

あなたに必要なもの

HCL Accelerate での管理職権限

  • ユーザーアクセスキーの作成
  • 統合の作成

SonarQube の管理者権限

  • SonarQube auth トークンの作成
  • プロジェクトまたはグローバルレベルのウェブフックの作成
  • HCL Accelerate 証明書のトラブルシューティングと問題解決

1. Webhook パターン

HCL Accelerate は、SonarQube と統合するために webhook パターンを使用します。webhookは、プロジェクトの分析が終了するたびにHCL Accelerateに通知するために使用され、HCL Accelerate はその後、分析に関する追加情報を SonarQube から取得します。各統合は、SonarQubeがwebhook URLとして使用する独自の HCL Accelerate エンドポイントを作成します。この方法で複数の SonarQube 統合を設定したり、1 つの統合をウェブフックするように複数の SonarQube インスタンスを設定したりすることができます。ニーズによって異なります。

**2. 統合の作成***

HCL Accelerate で SonarQube 統合を作成します。Settings」>「Integrations」と進み、「Plugins」タブの下にあるSonarQubeプラグインの「Add Integration」をクリックします。必要なフィールドをすべて入力します。

注:イテレーションを作成した後、アップデートが利用可能かどうかを確認してください。統合を最新バージョンにアップデートすることをお勧めします。

  • インテグレーション名
  • SonarQube URL
  • SonarQube 認証トークン: SonarQube の認証トークンは、SonarQube の「ユーザー」>「マイアカウント」>「セキュリティ」(SonarQube のドキュメント)から作成することができます。
  • HCL Accelerate User Access Key: アクセストークンを作成するには、「設定」→「マイプロファイル」で「作成」をクリックします。アクセスキーは、使用するインテグレーションに合わせて名前を付けておくと良いでしょう。後でキーをコピーできなくなるので、この時点で必ずコピーしておきます。

画像の説明

3. Webhookの設定

HCL Accelerate の「統合」タブに移動して、統合が作成されたことを確認します。統合の詳細を展開して、そのエンドポイント URL を確認します。このエンドポイント URL を指すように SonarQube のウェブフックを設定します。SonarQube のウェブフックは、プロジェクトレベルまたはグローバルレベルで設定できます。詳細については、SonarQube のドキュメントを参照してください(https://docs.sonarqube.org/latest/project-administration/webhooks/)。

  • HCL Accelerate からの統合コールバック URL のコピー
  • 統合コールバックURLでSonarQube Webhookを設定

4. Webhooks のトラブルシューティング

4.1 webhook エラーの原因の特定

SonarQube の現在のバージョンでは、Webhook の失敗エラーは簡単には表示されません。webhook エラーをトラブルシューティングするには、まず SonarQube コンピュートエンジンのログレベルを DEBUG に変更してから、プロジェクト解析を実行して webhook を起動し、UI からログをダウンロードして(またはサーバー上のログを検査して)、webhook エラーを報告している行を探してください。詳細は SonarQube のドキュメントを参照してください。

4.2 一般的な証明書エラー

webhook は https であるため、SonarQube は証明書要件を強制するため、通信に失敗する可能性があります。証明書は通常、以下のような理由で失敗します。

  • トラストストアの要件。詳細は下記の自己署名証明書エラーの解決を参照してください。
  • ホスト名の一致: 証明書で指定されたホスト名は、webhook URL で使用されるホスト名と一致している必要があります。

5. 自己署名証明書エラーの解決

HCL Accelerate の本番インスタンスでは、認証局(CA)が発行した証明書を使用する必要がありますが、特にテストや実験システムでは、本格的な証明書が必ずしも利用できるとは限りません。そのような場合は、HCL Accelerate に同梱されている自己署名証明書を代わりに使用することができます。ただし、自己署名された証明書であるため、SonarQube のようなサードパーティ製アプリケーションを信頼するように設定する必要があります。さらに、証明書のホスト名は、webhook ホスト名と同じである必要があります。

5.1 有効な証明書ホスト名の確認

まず、ホスト名が正しく設定されていることを確認します。証明書のホスト名が実際のホスト名と一致しない場合は、実際のホスト名を変更するか、正しいホスト名で新しい証明書を作成してください。例えば、以下のように OpenSSL を使用します。

openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem

新しい証明書が作成された場合、HCL Accelerateはその証明書を使用して設定する必要があります。docker-compose インストールの場合、証明書は /2.0.4/conf/ssl の下に配置する必要があります。

5.2 証明書を SonarQube サーバーにコピーする

証明書は、HCL Accelerate サーバーから直接コピーすることができます。Docker-Compose インストールの場合、証明書は/conf/sslの下にあります。また、ブラウザーから直接証明書をダウンロードすることもできます。Firefoxでは、証明書を表示してダウンロードできるようにすることで、これを簡単に行うことができます。証明書を入手したら、SonarQubeサーバーに転送します。例えば、SCP を使用したり、他の任意の方法で転送することができます。

FireFox で証明書をコピーするには? URL 証明書のドロップダウンから「More Information」をクリックし、「View Certificate」をクリックして、PEM ファイルをダウンロードします(Mac 版 FireFox は以下の図とは異なる UI を持っています)。

5.3 SonarQube サーバーの Trust Store に証明書を追加する

オプション A - デフォルトのトラストストア "cacerts"

デフォルトの Java トラストストアは「cacerts」です。これが SonarQube が使用しているトラストストアであれば、自己署名証明書を "cacerts" に追加し、SonarQube を再起動して作業を進めることができます。

  • を証明書の記述的なエイリアスに置き換えます。
  • を実際の証明書パスに置き換えてください。
  • 実際のパスワードを使用します。そうでない場合は、changeit とします。以下のコマンドを使用して、cacertsのトラストストアに証明書を追加します。

$JAVA_HOME/bin/keytool -import -trustcacerts -keystore -cacerts -storepass changeit -noprompt -alias <cert_alias> -file <cert_path.pem>

  • 証明書がcacertsに追加されたことを確認します(オプション)。

$JAVA_HOME/bin/keytool -list -v -cacerts -storepass changeit | grep <cert_alias>

オプション B - 新しいトラストストア

場合によっては、単に証明書をデフォルトのトラストストアとして cacerts に追加するのではなく、新しいトラストストアを設定する必要があるかもしれません。

  1. トラストストアとして使用する新しいキーストアを作成します。

必要に応じて、以下のコマンドを実行して値を置換してください。

  • を証明書の記述的なエイリアスに置き換える。
  • を実際の証明書パスに置き換える。
  • を実際の名前に置き換える。
  • パスワードは changeit 以外のパスワードを作成することを検討してください。

$JAVA_HOME/bin/keytool -import -trustcacerts -alias <cert_alias> -file <cert_path.pem> -keystore JAVA_HOME/lib/security/<new_trust_store.jks> -storepass changeit -v

  1. 先ほど作成した .jks ファイルをトラストストアとして使用するように SonarQube を設定します。

<SonarQube インストールパス>/conf/sonar.properties を以下のように編集します。

  • <新規作成された .jks ファイルへのパス>を実際のパスに置き換えます。
  • changeit "ではない場合は実際のパスワードを使用してください。
#--------------------------------------------------------------------------------------------------
# TRUST STORE
# Overrides default trust store for certificates (Default is $JAVA_HOME\lib\security\cacerts)
sonar.ce.javaAdditionalOpts=-Djavax.net.ssl.trustStore=<path to newly created .jks file> -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.trustStoreType=jks

6. 証明書エラーの代替回避策: http ルート の使用

デフォルトの webhook ルートは https です。これは確かにセキュリティ上の理由から推奨されています。webhook の http ルートを公開することで証明書の要求を回避することは可能ですが、可能であればこれは避けるべきです。自己署名証明書とは異なり、http ルートは証明書の認証の利点を取り除くだけでなく、 トランスポート層の暗号化も取り除きます。http ルートを使う場合は、このトレードオフを意識することが重要です。

6.1 http ポートを公開する

docker-composeインストールでは、以下に示すように、ポート6004を開くために docker-compose.override.yml 構成ファイルを使用します。このファイルは、HCL Accelerateのインストールディレクトリーに、Accelerateのdocker-compose.yml ファイルと一緒に作成します。オーバーライドファイルがすでに存在する場合は、必要に応じて、services、reporting-consumer、および ports の下に適切な構成を追加します。

version: '2.1'
services:
  reporting-consumer:
    ports:
      - "6004:6004"

6.2 webhook の変更

SonarQube の webhook URL を、https レポート作成用の消費者ルートから http ポート 6004 ルートに変更します。

デフォルトの https 形式

https://<accelerate-hostname>/reporting-consumer/pluginEndpoint/<integration id>/sonarqube/callback

http 形式を変更します。

http://<accelerate-hostname>:6004/pluginEndpoint/<integration id>/sonarqube/callback


HCL AppScan - 継続的なセキュリティの構築

2020/8/13 - 読み終える時間: 3 分

AppScan を道具として継続的に使いこなす方法について書かれた英語版ブログの記事 HCL AppScan - Constructing Continuous Security の翻訳版です。


HCL AppScan - 継続的なセキュリティの構築

2020年8月12日

著者: Rob Cuddy / HCL

画像の説明

継続的セキュリティに関する最初のブログでは、2 つの主要な能力を含む 3 つのテーマ領域の概要を説明しました。 今回のブログでは、Construct のテーマと Design and Automate の機能に焦点を当ててみたいと思います。

Construct は、既存のソフトウェア開発プロセスにセキュリティを追加しようとする場合、ほとんどの組織が最初に着手する場所です。チームは API を使用したり、CLI を活用したりして、コードのコミットやビルド時に行われるスキャン機能を提供します。そして、それらのスキャンの結果とフィードバックを実行可能なものにする方法を探します。

これは素晴らしいスタートです。

しかし、本当にうまく構築したいのであれば、考慮すべきことはもっとある。例えば、山の中に旅行に行き、夢のキャビンを建てるのに最適な土地を見つけたとします。あなただけの木を切り倒して建物を建てることから始めますか。もちろんそうではありません。あなたは計画を立てることから始めます。そこには、許可を得るために、発生する必要があり、最初に構築され、設定する必要がある基礎を地面に水平にする必要があります。 その小屋を成功させるためには、方法と順序があります。

ソフトウェアにも同じことが言えます。

多くの組織は、何年もかけて技術的な負債を回収してきましたが、今ではその負債を返済するか、新しい機能を作るかの日々の戦いになっています。多くの場合、技術的な負債を処理しなければならない時は、そうせざるを得ない時であるように思われます。技術的な負債を処理しないことの痛みや壊れ方があまりにも大きくなり、物事を変えなければならなくなる。対照的に、成功しているビジネスは、これらの考え方の間で適切なバランスをとることができるものです。。何が彼らにこれを可能にするのでしょうか。それは、デザインに注意を払うことです。


デザイン

建築の世界 では「形は機能に従う」とよく言われます。つまり、建物や構造物をどのように作るかは、それが何に使われるかによって大きく決まるということです。意図によって発明が決まるのです。

ソフトウェアでは、私たちは直感的に同じものが欲しいと分かっていても、狭く限られた範囲で運用することが多い。新しい機能や能力を構築し、それを使って何を達成したいかは分かっていますが、それがシステムの他の部分とどのように相互作用するかを実際に確認する手段や可視性が不足していることがよくあります。そして、セキュリティにとっては、これが大きな問題となります。

そのため、継続的なセキュリティに関しては、プロジェクトの開始時から、SDLC のすべての段階で継続的なセキュリティを導入する必要があります。これは、ユースケース、ヒルステートメント、ユーザーストーリー、カンバンボードなどのすべてに、セキュリティの特定の側面が含まれていることを意味します。与えられた機能がどのように動作するかの概要を示す何十ものステップを含む叙事詩を作成し、最後に「そしてそれは安全でなければならない」というステップを追加するような時代は終わりました。

優れたデザインをすることはチームスポーツであり、複数のプレイヤーが必要です。あなたが開発者であれば、最後に脅威のモデリング演習に参加したのはいつですか。自分のコードが危険にさらされる可能性のあるさまざまな方法を考えたことがありますか。あなたがセキュリティの専門家であれば、開発チームを評価に参加させたのはいつですか。ビジネスへの影響に関連して、脅威とリスクを検討していますか。

ここでは、設計に関するいくつかの "Robservations" を紹介します。


  • 脅威のモデリングにゲーミフィケーションを使用する。 脅威のモデリングにゲーミフィケーションを使用することで、コミュニケーションを容易にし、非難ゲームを避けることができます。 使うことができる素晴らしいゲームがあります。 特権の昇格 (Elevation of Privilege) (githubでも利用可能)


  • 制約として機能するセキュリティ要求事項がある。 セキュリティ要件を満たさないソフトウェアのデプロイは、それらが解決されるまでプロセスを停止させるべきです。
    • これはまた、セキュリティ上の欠陥を発見した人が誰 (Anyone) でも、配送や出荷を停止することを許可すべきであることを意味しています。これは、問題が修正されるまで自動車作業員が生産を一時停止することを許可する、有名なトヨタの工場のアンドンの仕組み (Andon cords) と同じ考えです。
    • セキュリティ上の欠陥を修正するためにリリースを遅らせた方が、後になってデータ漏洩によってその代償を支払うよりもずっと良いことです。


  • プロジェクトに敵対的ユースケースを追加して、失敗しないようにする。 例えば、侵害につながる可能性のある様々なステップやイベントを検討し、それらを1つ以上のユースケースで定義する。
    • 例として。例えば、あるユースケースでは、次のような簡単なステップがあるかもしれません。 "リモートハッカーとして、不正なURLを挿入し、それによってこのウェブサイトへの不正アクセスを得ることができます。
    • このようにすることで、チームは「ハッカーのように考える」ようになり、より強固なセキュリティを日常的に構築することができるようになります。


設計段階でプロジェクトのセキュリティ面について考える時間を増やすことで、後になってから脆弱性の発見、優先順位付け、修正に費やす時間が減り、全体的なサイクルタイムがほぼ確実に短縮されます。


自動化

DevOpsとDevSecOpsに関して言えば、多くの場合、多くの場合、Automate機能はほとんどの場合、そこから始めることになります。それは理にかなっています。DevOpsとDevSecOpsは、最終的には、信頼性と信頼性の高い機能をより早く提供することで、価値をより早く実現することを目的としています。しかし、自動化はスピードだけではありません。

その核心は、「なぜ自動化するのか」が「何を自動化するのか」と同じくらい重要です。おそらく、それ以上に重要です。

例えば、品質保証(QA)テスト環境に展開する前に、統合ビルドの初期検証の一部としてセキュリティテストを行いたいとします。そのためには、統合ビルドを進める前にコードストリームの静的解析テストを自動化することにします。

ビルド前に静的解析を実行することは素晴らしいことですが、重要な問題は、いつ、どこで実行するのかということです。ビルドを開始する前にビルド環境で実行しますか。もしそうだとしたら、それはビルド時間にどのような影響を与えますか。ビルドに通常30分かかる場合、その時点でスタティックスキャンを実行すると、認識されているビルド時間が2倍になる可能性があります。重要な脆弱性が見つかった場合はどうしますか。ビルドを実行しないようにしますか、それとも深刻な問題があることを十分に理解した上で、ビルドを続行させますか。それとも、個々の開発者に、コミットする前にスキャンを実行して重要な問題を解決することを義務付けるのでしょうか。その場合、開発者が問題を解決する方法を知らない場合、どのようにして解決できるようにするのでしょうか。開発者をセキュリティチームとペアにしていますか。

すべての有効な質問は、実装の前に考えなければなりません。

自動化のポイントは、単に決められた方法でテストを実行して結果を報告するだけのものではないということです。 もちろん、テストは実行されるべきであり、結果は報告されるべきである。 しかし、間違った方法で自動化を追加することは、助けるよりも傷つけることになる。 それは、情報過多やアラート疲労を引き起こす可能性があります。 優れた自動化は、行動と決定を見て、プロセスの摩擦と無駄を排除しようとする。

ここでは、助けるべきである設計上のいくつかの "Robservations" は、次のとおりです。


  • 最初にボトルネックを特定する。 Eliyahu M. GoldrattのThe Theory of Constraints (または Phoenix Project を読んだことがある人)に精通している人は、ボトルネック以外のどこかのプロセスに行われた改善は幻想であることを知っているでしょう。
    • ボトルネックの後の改善は、待っているだけなので、役に立たない。
    • ボトルネックになる前の改善は、ボトルネックでさらに山積みになる。


  • 小さなことから始めよう。一度にすべてを自動化しようとしないこと。 そうすることで、プロセスの一箇所での自動化の影響を測定することがはるかに困難になる。これは、後の最適化の評価をより困難にする。
    • 平凡な手動プロセスが発生している場所や、ステージ間のハンドオフがある場所を特定し、そこに自動化を追加する。
    • 自動化がその時点で追加する利益を定量化する。


  • 二度測定して、一度追加すること。 熟練した大工や芸術家のように、我々が正しいことをしていることを確認するために測定値を検証することが重要である。
    • プロセスの別のポイントに自動化を追加する前に、現在のプロセスのスループットと決定要因が何であるかを自信を持って知ることができる。これにより、システムを十分に理解することができます。


詳細

今回のブログでは、Construct テーマと Design と Automate の機能に焦点を当てました。 第3部では、「強化」テーマと「教育と統治」の機能を見ていきます。このトピックについてさらに詳しく知りたい方は、"Go Beyond Application Testing to Continuous Security" と題した先日のウェビナーのリプレイをご覧ください。


HCL Accelerate と Jenkins との統合構成

2020/8/13 - 読み終える時間: 5 分

Jenkins と HCL Accelerate を組み合わせて運用する手順を記した英語版ブログの記事 Creating a Jenkins Integration with HCL Accelerate の日本語版です。


HCL Accelerate と Jenkins との統合構成

2020年8月11日

著者: Daniel Trowbridge / Technical Lead

画像の説明

HCL Accelerate のバリューストリームには、Jenkins からのビルドデータとデプロイデータを含めることができます。これ以外にも、Jenkins の統合を HCL Accelerate パイプラインと組み合わせて使用することで、ビルドとデプロイメントを HCL Accelerate から直接実行し、さらにデプロイメントプランとリリースとして整理できます。ここでは、新しい Jenkins 統合を作成する方法について簡単なチュートリアルを紹介します。

Jenkins プラグイン

HCL Accelerate - Jenkins の統合は、他のほとんどのプラグインとは異なり、2つの部分からのセットアップを必要とします。最初に HCL Accelerate で統合を作成し、次に Jenkins サーバーにプラグインをインストールして設定します。また、他のほとんどのプラグインで行われているようにvsm.jsonファイルを介してバリューストリームに追加されるのではなく、Jenkins の統合はバリューストリームのパイプラインを介してバリューストリームに追加されます。

  • HCL Accelerate 統合を作成
  • Jenkins にプラグインをインストールして設定
  • バリューストリームパイプラインでの統合を使用

要件

  • Jenkins サーバが利用できない場合は、ローカルインスタンスを実行するための Jenkins のドキュメントを参照してください。https:// Jenkins .io/doc/book/installing/

  • この例では、Jenkins 用のパイプラインプラグインを使用しています。このプラグインは、新しいバージョンの Jenkins ではデフォルトでインストールされています。このプラグインが Jenkins にインストールされているかどうかは、"Plugin Manager"の"Installed"タブ(< Jenkins URL>/pluginManager/installed) から確認できます。もしインストールされていない場合は、今すぐ追加するのが良いでしょう: https://plugins. Jenkins .io/workflow-aggregator

1. HCL Accelerate Integration を作成します。

1.1 HCL Accelerate の設定ページに移動し、左のナビゲーションで「統合」セクションを選択し、「プラグイン」をクリックします。統合の追加」をクリックして、新しい Jenkins の統合を作成します。

画像の説明

1.2 Jenkins の統合に名前を付けてください ( Jenkins のインスタンスを記述してください)。この統合には好きな名前を付けられます。「Create」をクリックします。これにより、Integration IDIntegration Token が生成されます。これらの値は、Jenkins にインストールされている「HCL Accelerate」プラグインを設定するために必要になります。

画像の説明

2. Jenkins にプラグインをインストールして設定する

2.1 HCL Accelerate User Access Key の作成

HCL Accelerate からユーザーアクセスキーが必要になるので、今から作成します。 HCL Accelerate のユーザー・アクセス・キーを作成するには、「設定」>「マイ・プロファイル」に移動し、「作成」をクリックします。キーには、それを使用する統合に応じて名前を付けると良いでしょう。

Jenkins と HCL Accelerate を接続する

2.2 Jenkins サーバにプラグインのインストール

HCL Accelerate プラグインを Jenkins インスタンスにインストールします。Manage Jenkins > Manage Plugins > Available (タブ)をクリックして、Jenkins インスタンスのプラグインページに移動し、"HCL Accelerate" を検索します。プラグインが見つかったら、プラグインをインストールし、可能な場合はインスタンスを再起動します。

2.3 Jenkins からプラグインを構成する

Jenkins の設定ページManage Jenkins > Configure System > HCL Accelerate (section)に移動します。 HCL Accelerate (セクション)」の下にある必要なフィールドを入力します...

  • HCL Accelerate で作成した統合によって生成された Integration IDIntegration Token 値。
  • Accelerate Base URL を提供します。コンテナから Jenkins を実行している場合、localhost は host.docker.internal としてアクセスできることに注意してください。
  • また、このプラグインが Jenkins にアクセスできる Jenkins ユーザーの資格情報も提供してください。
  • バージョンによっては、HCL Accelerate ユーザーのアクセストークンを提供する必要があるかもしれません。先に作成したアクセストークンを使用してください。
  • HCL Accelerate への接続を確認するために、[接続のテスト]ボタンをクリックする前に、[適用]をクリックして保存します。接続が成功すると、お客様のデータが HCL Accelerate に投稿されます。

画像の説明

3. バリューストリームに Jenkins インテグレーションを追加する方法

Jenkins の統合は、他の統合とは異なる方法でバリューストリームに追加される。vsm.json ファイルを編集する必要はありません。代わりに、ビルドとデプロイのデータのターゲットを持つために、バリューストリームのパイプライン上に「アプリ」を作成する必要があります。

  • 「パイプライン」に移動し、「アプリの追加」をクリックします。
  • ドロップダウンから "Jenkins" を選択します。

画像の説明

  • アプリケーション名を入力します。ワークブックでは "JKE App1" という名前を使用します。

画像の説明

  • 新しいアプリケーションはパイプライン内の行として表示されます。この Jenkins の統合は、当社のバリューストリームで利用できるようになりました。

画像の説明

  • 新しいアプリケーションはパイプライン内の行として表示されます。この Jenkins の統合は、バリューストリームで利用できるようになりました。

画像の説明


HCL Software DevOps Workshop - あなたにとっての意味

2020/8/13 - 読み終える時間: ~1 分

HCL Software では、お客様の DevOps 環境促進のために HCL Software DevOps Workshop (英語) を実施しています。その解説記事 The HCL Software DevOps Workshop - what's in it for you? の翻訳版です。


HCL Software DevOps Workshop - あなたにとっての意味

2020年8月11日

著者: Allan Wagner / HCL Software Transformation Architect, HCL

画像の説明

ここ数年、DevOps の採用率は確実に上昇していますが、DevOps Institute Upskilling report for 2020 によると、今年の調査に回答した1260人のうち、50%以上の人が DevOps のトランスフォーメーションの旅はまだ難しいと感じていることが示されています。そして、このレポートを読んだ人の中には、データの妥当性に疑問を感じている個人も多いのではないでしょうか。

しかし、これには正直驚いていません。IBM、そして現在の HCL での私の役割として世界中を飛び回り、DevOps の開始や能力の向上について複数の組織と話をする機会に恵まれてきました。最初の頃、私はいつも「何から始めればいいのか」と聞かれました。そして、その質問の頻度は減ったものの、「どこから始めればいいですか」、「どのくらいうまくいっていますか」、「進歩しているかどうかどうかをどうやって知ることができますか」と多くの幹部から、いまなおよく聞かれています。

現実には、自分が持っている意見は、しばしば彼らの実行と懸念の領域に影響されているということです。多くの、非常に多くの個人的な要因が、これらの感情や反応を植え付ける可能性があります。DevOps Instituteによると、DevOps Transformation とは「ITの伝統的な構造の根本的な変化」を意味します。それは新しい技術の採用を意味するだけでなく、より重要なことは、既存の責任のサイロの「伝道」という点で、組織の変革の挑戦を意味します。既存の伝統的な組織モデルに安住しているいくつかの組織にとっては、脅威として認識されるかもしれません。

画像の説明

DevOps の実践者は、「なんだ、そんなに難しくないんだ。チームはパイプラインを自動化してより速くデプロイしたかったんだ」と思っているかもしれません。私たちは、既存の継続的インテグレーションソリューションと統合し、いくつかのテストを自動化する継続的デプロイメントソリューションを実装しました。今では、開発者がコードを書き、コミットすることでビルドが開始され、デプロイされ、コードがチェックされます。 私たちは DevOps をやっているのだ!」と。しかし、それほど速いわけではないかもしれません。

エグゼクティブは、組織の変化、新技術、ビジネスや市場の要求、顧客からのフィードバック、競争などにまたがる、非常に異なるレンズや複数のレンズを使って、DevOps の変革を検討しています。実務者が特定の技術的な問題を解決するためにテクノロジーを使用することに焦点を当てているのに対し、経営幹部はビジネス目標を達成するための手段として DevOps に注目していますが、その一方で、自分たちの担当者に自分たちのやり方、考え方、運営方法を変えるように求めています。企業全体のIT戦略を変えるのに比べれば、1つの小さなチームに変化を導入することは簡単です。

しかし、助けがあります。HCL Software DevOps Workshop は、組織の DevOps 戦略を理解し、一般的には異質なグループ(サイロ)にまたがって議論を促進し、エンドツーエンドのプロセスを理解してマッピングし、ビジネスの結果を出す方法について明確なビジョンを持って前進するためのコースをプロットするディスカッションが含まれています。

DevOps の変革は大規模なものであり、一度にすべてを行うことはできません。しかし、可能性についての明確なビジョン、従うべきロードマップ、完了すべきタスクの理解があれば、企業は遠くを目指し、すばらしい栄光を得ることができるでしょう。

DevOps ワークショップのお申し込みはクリックするだけです。


HCL Software DevOps の特長

2020/8/12 - 読み終える時間: 3 分

DevOps 製品は多数あれど、HCL 製品の強みとは何か。その特長について解説した英語版ブログの記事 Here's what makes HCL Software DevOps different の翻訳版です。


HCL Software DevOps の特長

2020年8月11日

著者: Steve Boone / HCL Software DevOps Head of Product Management

画像の説明

現在、市場には数多くの DevOps 製品が出回っていますが、HCL Software の DevOps ポートフォリオは何が違うのでしょうか?

バリュー・ストリーム管理

バリュー・ストリーム・マネジメント (VSM) は、お客様がソフトウェア配信の効率を向上させ、リスクを低減し、品質を確保し、ソフトウェア配信を加速させることを支援します。これは、バリュー・ストリーム管理によって可能になった、組織の人材、プロセス、ツールに対するこれまでにない可視性を提供することによって実現されます。

組織全体のデータを集約することで、アイデアから成果物に至るまで、ビジネス価値が組織内をどのように流れているかを見ることができます。

バリュー・ストリーム・マネジメントによって最終的に仕事を可視化することで、チームのコミュニケーション、コラボレーションの向上、共感と革新の文化の促進を支援し、開発イニシアチブがビジネス目標に沿ったものであることを確認することができます。

セキュリティの重視

セキュリティは、HCL Software の DevOps ポートフォリオの中核をなしています。HCL AppScan ブランドの HCL Software DevOps は、Web、モバイル、オープンソースソフトウェアの静的、動的、インタラクティブなテストを含む一連のセキュリティー・テスト・ツールを提供しています。広範囲に及ぶセキュリティーの脆弱性を検出し、修復を促進します。

HCL Software DevOps は、ソフトウェアがデプロイされる前の開発中に脆弱性を排除することで、シフトレフトセキュリティーを実装しています。包括的な管理機能により、セキュリティー専門家、開発者、DevOps、コンプライアンス担当者は、アプリケーションのセキュリティー態勢を継続的に監視し、規制要件へのコンプライアンスを維持することができます。

包括的で変革的

HCL Software のセキュア DevOps ポートフォリオは、以下のような幅広い機能をカバーしています。

  • 変更および構成管理
  • 継続的な配信
  • リリースオーケストレーション
  • アプリケーションセキュリティー
  • バリューストリームマネジメント
  • 組み込み型DevOps
  • UI、API、仮想化、組み込み、テストデータ管理を含む完全なテスト自動化

HCL Software DevOps のポートフォリオは、「リッピング&リプレイス」ではないように設計されています。実際、私たちはお客様の既存のツールやプロセスのエコシステムの中で作業することに誇りを持っています。

企業の複雑性

最も困難で複雑な DevOps の問題をお聞かせください。

HCL Software DevOps には、Fortune 500 にランクインしている大手企業のデジタル変革を支援してきた業界のエキスパートが揃っています。

デジタル変革は一朝一夕に起こるものではありません。私たちのチームは、お客様の組織が継続的な改善に向けて適切なステップを踏むことを支援することに長けています。 何十年にもわたるテクノロジーを駆使し、既存の投資を最大限に活用することに苦労されていることを私たちは理解しています。

基本的な自動化からメインフレーム、マイクロサービスまで、そしてその間のすべてを網羅する当社のポートフォリオには、お客様の現在の業務を改善し、セキュリティーと品質への取り組みを強化するために必要なものが揃っています。

開発とサポートへのコミットメント

HCL Software DevOps の製品開発、テクニカル・サポート、フィールド・エンジニアリング・スタッフは、すべて HCL の傘下にあります。HCL は、これらの製品にコードを提供している開発者全員を雇用していますので、製品を手に入れるだけでなく、知識の専門家を手に入れることができます。

価格モデルは簡素化され、DevOps Power Pack のような新しい製品が導入され、より柔軟な購入オプションが可能になりました。HCL Software は、独自のセールスフォースとビジネスパートナープログラムを持っており、直接の関係を可能にしています。

HCL Software は、販売を開始した時点で作業が完了するのではなく、作業が開始されたばかりであることを保証するために尽力しています。業界の専門家で構成される当社のアドバイザリーおよび採用チームは、関係の早い段階でソリューションがビジネス目標を達成できるように関与しています。

HCL Software のカスタマー・アドボケイト・プログラムは、ラボの中小企業とお客様との直接の交流を可能にし、採用を成功させることを可能にします。HCL Software では、既存のツールから HCL への移行が簡単に行えます。

業界の専門家チームが DevOps の「次の何か」への道を切り開く

統一されたチームとして、HCL のテクニカル・ライター、エンジニア、プロダクト・マネージャーの全員が、製品ドキュメント、ブログ、ビデオ、カスタム・ハウツー・ドキュメントなどのコンテンツ資産の大規模なライブラリを作成するために貢献しています。

HCL Softwareの専門家は、私たち自身のコンテンツ以外にも、「DevOps の次は何か」についての業界に焦点を当てたディスカッションにもしばしば参加しています。DevOps from the Human Perspective: A Panel Discussion や、最近では SD Times が開催した Virtual VSM DevCon のような「DevOps の次は何か」についてのディスカッションが行われています。

今すぐ無料で VSM を始めよう

HCL Software DevOps のポートフォリオは、ビジネスの最大の資産である「人」を支援するために設計されています。

HCL Software DevOps のポートフォリオと業界エキスパートのチームは、個人のコントリビューターからトップレベルのエグゼクティブまで、ユーザーにビジネスプロセスとソフトウェアツールの間の意味のある関係を可視化することで、インテリジェントなデータを提供しています。

デジタルトランスフォーメーションは一朝一夕に起こるものではありませんが、継続的な改善は日々起こる可能性があります。

HCL Software DevOps のポートフォリオは、リスク、収益、ガバナンスに基づいた、これまでにない実用的なインサイトを提供することで、顧客のビジネス変革を可能にし、同時に市場投入までのスピードを加速させる最先端の製品を提供します。

最後に、HCL Software DevOps が大きく異なる点をご紹介します。 DevOps への投資からさらに多くの成果を得たいと考えている組織のために、完全無料の個人向けワークショップを提供しています。

当社の DevOps エキスパートによる無料のバリュー・ストリーム管理ワークショップに申し込むか、DIY の方は、今すぐ HCL Accelerate をダウンロードして始めてください:ソフトウェアをより速く、より責任を持って提供するための新しい方法を見つける時が来ました。


継続的なデリバリーにセキュリティーを追加する

2020/8/12 - 読み終える時間: 3 分

HCL AppScan on Cloud と HCL Launch を組み合わせることで、安全ビルドの管理・デプロイを制御しながら運用することについて、英語版ブログの記事 Adding Security to Continuous Delivery を掲載します。


継続的なデリバリーにセキュリティーを追加する

2020年8月7日

著者: Brian Stump / Product Specialist, HCL

画像の説明

物事がうまくいっているときは素晴らしいことだと思いませんか?これは、当社の継続的なデリバリとソフトウェア・セキュリティー・ツールを使用して得られる感覚です。HCL Launch は、AppScan on Cloud (ASoC) と一緒に、自動化、レポート作成、リリース管理を含む DevOps ライフサイクル全体の中で、アプリケーションのセキュリティを自動制御する機能を提供してくれます。

HCL Launch は、ASoC プラグインの出力を処理し、それに応じてビルドを処理できます。ビルドが低レベルの環境に正常にデプロイされたが、深刻度の高い問題で Dynamic ASoC スキャンに失敗した場合、HCL Launch は自動的に最後にデプロイされたバージョンにロールバックし、問題があることを示すステータスでビルドをマークします。ASoC があなたのビルドの中でそれほど深刻ではない問題を識別した場合、HCL Launch は「デプロイメント警告」を表示しますが、ターゲットマシンにインストールされたままにしておきます。そして、もし ASoC が重大な問題を発見しなかった場合、HCL Launch はそのバージョンに AppScan のすべてのスキャンに合格したことを示すアプリのステータスを与えます。言い換えれば、HCL Launch は、AppScan の承認に合格しない場合、Prod やその他の高レベルの環境へのデプロイを防げる環境ゲートを作成します。

ソフトウェアのデプロイメントにおけるセキュリティを簡単にする準備はできていますか?HCL Launch を使用してデプロイメントを実行し、ASoC セキュリティースキャンを開始するパイプラインをセットアップする方法について説明します。

HCL Launch の構成

HCL Launch には、AppScan on Cloud 用の無料でインストール可能なプラグインがあります。このプラグインには、AppScan サーバー上で以下の各作業を行うための手順が含まれています。

  • ASoC プレゼンスの作成
  • ASoC プレゼンスの削除
  • ASoC のプレゼンスを開始
  • Start Android Mobile Analyzer ASoC Scan
  • Dynamic Analyzer ASoC Scan の起動
  • Static Analyzer ASoC Scan の開始
  • iOS Analyzer ASoC Scan の起動
  • ASoC の存在の停止

このシナリオでは、ASoC で静的スキャンと動的スキャンを同時にキックオフするワークフローを設定します。以下の手順とスクリーンショットでは、HCL Launch プロセスを構成する方法を説明します。

各HCL Launch プラグインのステップは、ASoC アプリケーションID、キーID、およびキーシークレットを設定する必要があります。

スタティック アナライザー ステップでは、スキャンのためにアップロードされる IRX ファイル、またはスキャンするファイルやその他の場所を含むディレクトリーのいずれかを指す IRX ファイルも必要です。このフィールドには、スキャン設定ファイル、eclipseワークスペース、.jar、.war、および.earファイルタイプを指定できます。アプリケーションID、キーID、およびキーシークレットに加えて、ダイナミックアナライザーのステップでは、スキャンする場所のURLが必要になります。ページにログインが必要な場合は、アプリケーションのログイン認証情報も提供する必要があります。

画像の説明

各ステップには、「失敗条件のしきい値」のフィールドがあり、H、M、L、I の文字が含まれていることに注意してください。これらは、そのステップが失敗する前に、そのステップが何個の高、中、低、および情報レベルのセキュリティ脅威を受け入れるかを示しています。たとえば、次の例では、スキャンの結果、5 つ以上の中程度の警告が発生した場合、ステップは失敗します。

画像の説明

また、各 ASoC ステップの後の HCL 起動プロセスエディタ内のグレーの円にも注意してください。これは、ステップが失敗しても、失敗した場合を処理するために、プロセスが先に進めるようにするために重要です。必要に応じて、条件付きロジックを追加して、HCL Launch プロセス・エディタを使用してプロセス全体を失敗させることもできます。

ステップが設定されたら、アプリケーションの展開とセキュリティ・スキャンを実行する時間です。これを実行するための HCL Launch アプリケーションのプロセスは、以下のようになります。

画像の説明

同時に実行されている2つのスキャンを示すステップを丸で囲んでみました。 ASoC サーバーにジャンプすると、これらのスキャンがそこでも実行されていることがわかります。

画像の説明

ここでは、AppScan on Cloud を HCL Software のバリュー・ストリーム管理プラットフォームである HCL Accelerate と統合する方法をご紹介しました。


About

HCL Japan の Software 部門の複数担当者で HCL Software 全般について記しています。