Goエージェントのリリースノート
リリース日: 2024年9月5日
現在サポートしている言語バージョン: 1.21(非推奨)、 1.22、1.23
新機能と改善点:
ビルドコマンドにパッケージではなくGoファイルのリストが含まれている場合のアプリ名のデフォルトメソッドを改善しました。(GO-1945)
リリース日: 2024年8月23日
現在サポートしている言語バージョン: 1.21(非推奨)、 1.22、1.23
新機能と改善点:
Goエージェントは、Contrastとの通信に、
CONTRAST__API__TOKEN
の使用をサポートするようになりました。CONTRAST__API__URL
、CONTRAST__API__API_KEY
、CONTRAST__API__SERVICE_KEY
、およびCONTRAST__API__USER_NAME
の代わりに使用できます。(GO-2149)注記
Contrastサーバからのダウンロード可能なエージェント設定ファイルにはトークンはまだ追加されません。
リリース日: 2024年8月22日
現在サポートしている言語バージョン: 1.20 (非推奨)、1.21、1.22、1.23
新機能と改善点:
Go 1.23のサポートを追加しました。(GO-2130)
パイプラインにおけるハッシュ/キーワード衝突の処理を改善しました。(GO-2134)
修正された不具合:
メタデータ追跡で
SetFinalizer
を呼び出す際の競合状態を修正しました。(GO-2155)
リリース日: 2024年8月8日
現在サポートしている言語バージョン: 1.20 (非推奨)、1.21、1.22
新機能と改善点:
パフォーマンスを向上させるAPIの変更を行いました。(複数のGOチケット)
エージェントは、クラウドリソースIDを報告するようになりました。(GO-1695)
Go v1.23への初期対応を追加しました。(複数のGOチケット)
Go v1.23は、まだ正式にサポートするバージョンではありません。
リリース日: 2024年6月18日
現在サポートしている言語バージョン: 1.20 (非推奨)、1.21、1.22
新機能と改善点:
tag.Tags
インターフェイスを削除し、エージェントはその基になる型を直接使用するようになりました。(GO-2075)エージェントは、新しいスタートアップエンドポイントを使用するようになりました。(GO-2069)
オンプレミス版のお客様:この機能に最低限必要なContrastサーバのバージョンは、3.11.2です。このバージョン以降のGoエージェントは、古いバージョンのContrastサーバでは起動できません。
新しいAPIを使用するようにポリシーテストのHelper関数をリファクタリングしました。(GO-2089)
ルート検出用の
framework
フィールドを追加しました。(GO-2119)ルート観測のエラーコードチェックをユーザが設定できるよう、機能フラグを追加しました。(GO-2093)
リリース日:2024年5月31日
現在サポートしている言語バージョン: 1.20 (非推奨)、1.21、1.22
新機能と改善点:
パフォーマンスを様々な箇所で最適化しました。
Contrastエージェントのルート観測エラー処理仕様に合わせて、ルート観測の動作を更新しました。
修正された不具合:
いくつかの小さな不具合を修正しました。
trackerインスタンスの問題が原因で発生していたメモリリークを修正しました。(GO-2094)
リリース日: 2024年4月29日
現在サポートしている言語バージョン: 1.20 (非推奨)、1.21、1.22
新機能と改善点:
Assessのパフォーマンスを改善しました。
contrast-go -v [...]
で、純粋なJSON形式のログを出力するようにしました。(GO-2054)
修正された不具合:
contrast-goがDynatraceで実行できるようになりました。(GO-2066)
以前は、
internal/poll.fdMutex
のサイズの変更によってDynatraceがクラッシュしていました。
リリース日:2024年3月15日
現在サポートしている言語バージョン: 1.20 (非推奨)、1.21、1.22
新機能と改善点:
ルート観測のレポート間隔を10秒から30秒に変更しました。
リリース日:2024年2月22日
現在サポートしている言語バージョン: 1.20 (非推奨)、1.21、1.22
新機能と改善点:
Go 1.22の機能を完全にサポートするようになりました。
リリース日:2024年2月15日
現在サポートしている言語バージョン: 1.20、 1.21
新機能と改善点:
Go 1.22の新機能のサポートをいくつか追加しました。
Go 1.22の機能の完全なサポートは、今後のリリースで予定されています。
修正された不具合:
特別なコンパイラディレクティブがあるファイルの出力に影響するバグを修正しました。(GO-2035)
リリース日:2024年2月7日
現在サポートしている言語バージョン: 1.20、 1.21
新機能と改善点:
このエージェントは、Go 1.22と互換性があります。アプリケーションをGo 1.22にアップデートしても、引き続きContrastで動作します。
Go 1.22で導入された新機能のサポートは、今後のリリースで予定されています。
リリース日:2024年1月22日
現在サポートしている言語バージョン: 1.20、 1.21
新機能と改善点:
エージェントのパフォーマンスを全般的に改善しました。
修正された不具合:
Protectの攻撃ベクトルのマスキングに関する問題を修正しました。(GO-1986)
リライタでビルドタグのフォーマットが壊れて、ビルドエラーになる可能性がある問題を修正しました。(GO-1981)
リリース日: 2023年12月18日
現在サポートしている言語バージョン: 1.20、 1.21
新機能と改善点:
Goエージェントが、Protect機能をサポートするようになりました。
Go 1.19はサポートされなくなりました。
Assessの処理のパフォーマンスを改善しました。
リリース日: 2023年12月12日
現在サポートしている言語バージョン: Go:1.19、1.20、1.21
新機能と改善点:
サポート対象外の古いバージョンのフレームワークとの
contrast-go
ビルドの互換性を改善しました。以前は、サポート対象バージョンより古いパッケージでcontrast-go
がビルドを中断する場合がありましたが、ビルドエラーや中断を回避し、サポートされていないバージョンが使用されていることをユーザに知らせる警告をログに書き込むようにしました。(GO-1891)有効なエージェント設定がContrastに報告されるようになりました。アプリケーションのモードがContrast Webインターフェイスに表示されるようになりました。(GO-1636)
修正された不具合:
ジェネリックなbyte配列でスライス演算子を使用する場合のビルドエラーを修正しました。(GO-1955)
リリース日: 2023年11月27日
現在サポートしている言語バージョン: Go:1.19、1.20、1.21
新機能と改善点:
Assessのパフォーマンスを改善しました。(GO-1929、GO-1923、GO-1946)
Goエージェントは、Go Fiberフレームワークのバージョン2.40以降をサポートするようになりました。
修正された不具合:
複数のメインパッケージをコンパイルするGoコマンドでビルド失敗の原因となる競合状態を修正しました。(GO-1935)
マップキーを追跡する際のデータフローの精度を向上させました。(GO-1948)
リリース日: 2023年11月2日
現在サポートしている言語バージョン: Go:1.19、1.20、1.21
修正された不具合:
contrast-go
でビルドエラーが起こる可能性のある条件をいくつか修正しました。(GO-1907)contrast-go
の型チェックが失敗し、エージェントがいくつかのパッケージの組込みをスキップする問題を修正しました。(GO-1853)アプリケーション作成時の応答において、シャットダウンを行う処理に関する問題を修正しました。(GO-1936)
リリース日: 2023年10月26日
現在サポートしている言語バージョン: Go:1.19、1.20、1.21
新機能と改善点:
net/http
からのリクエストに関する動きを改善し、エージェントが事前にリクエストボディを読み取らないようにしました。(GO-1925)unicode/utf8
パッケージから伝播する際のパフォーマンスを改善しました。 (GO-1924)
リリース日: 2023年10月20日
現在サポートしている言語バージョン: Go:1.19、1.20、1.21
修正された不具合:
特定のプロパゲータにおいて、エージェントが必要もなくスタックトレースをキャプチャしていました。これは、パフォーマンスの問題を引き起こす可能性があったため修正しました。(GO-1917)
contrast-go
で無効なコードが生成され、ビルドが失敗する不具合を修正しました。(GO-1904)
リリース日: 2023年10月12日
現在サポートしている言語バージョン: Go:1.19、1.20、1.21
新機能と改善点:
パストラバーサルのルールの精度を向上しました。(GO-1892)
修正された不具合:
JSONのマーシャル(marshal)による伝播がパフォーマンスの問題を引き起こしていた問題を修正しました。(GO-1912)
リリース日: 2023年10月4日
現在サポートしている言語バージョン: Go:1.19、1.20、1.21
新機能と改善点:
Goエージェントは、Go 1.21をサポートするようになりました。
リリース日: 2023年9月19日
現在サポートしている言語バージョン: Go:1.19、1.20
新機能と改善点:
net/http.Handler
インターフェイスで処理されるgRPCメッセージを追跡するポリシーを追加しました。(GO-1268)
リリース日: 2023年9月15日
現在サポートしている言語バージョン: Go:1.19、1.20
新機能と改善点:
github.com/gofiber/fiberのv2.48.0以降のサポートを追加しました。
github.com/valyala/fasthttpのv1.46.0以降のサポートを追加しました。
リリース日: 2023年9月5日
現在サポートしている言語バージョン: Go:1.19、1.20
新機能と改善点:
トレース表示の詳細を改善しました。
精度とパフォーマンスを向上させました。
リリース日: 2023年7月21日
現在サポートしている言語バージョン: Go:1.19、1.20
新機能と改善点:
Contrast CLIコマンド、
contrast-go help
のサポートを追加しました。gin.StingToBytes
およびgin.BytesToString
の伝播ポリシーを追加しました。
修正された不具合:
スタックに割り当てられたバイトスライスの追跡時にパニックを引き起こす可能性がある使用法を修正しました。
リリース日: 2023年6月27日
現在サポートしている言語バージョン: Go:1.19、1.20
新機能と改善点:
依存関係のバージョンを更新しました。
修正された不具合:
aarch64のビルドが失敗する問題を修正しました。
リリース日: 2023年6月20日
現在サポートしている言語バージョン: Go:1.19、1.20
新機能と改善点:
複数の依存関係のバージョンを更新しました。
診断の出力をContrastの仕様に合わせて更新しました。
SIGTERM
とSIGINT
でのエージェントのシャットダウンとフラッシュの発生方法を改善しました。
リリース日: 2023年4月25日
現在サポートしている言語バージョン: Go:1.19、1.20
新機能と改善点:
データ精度の向上とバグ修正。
Go 1.18のサポートを削除
リリース日: 2022年11月14日
現在サポートしている言語バージョン: Go: 1.18、1.19
新機能と改善点:
Chiフレームワークのサポートを追加しました。
リリース日: 2022年10月25日
現在サポートしている言語バージョン: Go: 1.18、1.19
新機能と改善点:
julienschmidt/httprouterルーティングライブラリのルート検出と観測を追加しました。
修正された不具合:
一部の条件下で意図せずにContrast Assessを無効にする設定オプションの問題を修正しました。(GO-1567)
ルートの重複を排除するアルゴリズムを更新しました。(GO-1528)
リリース日:2022年1月11日
現在サポートしている言語バージョン: Go: 1.16、1.17
新機能と改善点:
デフォルトのアプリケーション名としてメインパッケージのパスを使用するようにしました。
修正された不具合:
マイナーなバグ修正および改善を行いました。
リリース日: 2022年10月12日
現在サポートしている言語バージョン: Go: 1.18、1.19
新機能と改善点:
Goエージェント4.0は、Contrast Webインターフェイスと直接通信を行うようになりました。Contrastサービスへの依存関係は、エージェントから削除され、通信するためにContrastサービスを使用するオプションはサポートされなくなりました。
gRPCのサポートはプレビューステータスが終了し、現在は正式にサポートとなりました。
Go1.19言語機能のサポートを追加しました。
gRPCのメッセージトラッキングの精度を向上させました。
修正された不具合:
swaggerのルート探索の失敗を修正しました。
リリース日: 2022年9月8日
現在サポートしている言語バージョン: Go: 1.17、1.18
新機能と改善点:
計測のオーバーヘッドを削減し、エージェントのパフォーマンスを改善しました。
gRPCのメッセージトラッキングの精度を向上させました。
リリース日: 2022年8月26日
現在サポートしている言語バージョン: Go: 1.17、1.18
新機能と改善点:
Added X-Powered-By-Set Assess response analysis
修正された不具合:
Agent failed to start in case of config option misconfiguration (GO-1497)
Fixed a race condition in concurrent map access that might result in a crash (GO-1467)
リリース日: 2022年8月19日
現在サポートしている言語バージョン: Go: 1.17、1.18
新機能と改善点:
Log diagnostic data to JSON file at agent startup
Fixed logs inconsistency in cached build logs
Added process ID to the log entires
リリース日: 2022年8月2日
現在サポートしている言語バージョン: Go: 1.17、1.18
修正された不具合:
contrast-go
build failed in 1.18 modules whenany
is redeclared. (GO-1464)
リリース日: 2022年8月5日
現在サポートしている言語バージョン: Go: 1.17、1.18
修正された不具合:
Fixed a crash condition that occurred when all required fields were missing from the configuration (GO-1446)
Improved code instrumentation when encountering shadowed type names (GO-1472)
リリース日: 2022年7月28日
現在サポートしている言語バージョン: Go: 1.17、1.18
修正された不具合:
Agent only reported routes for one service in gRPC apps with multiple services. (GO-1465)
Agent caused a memory leak in certain scenarios where an instrumented application spawns a long-running
goroutine
. (GO-1461)
リリース日: 2022年7月7日
現在サポートしている言語バージョン: Go: 1.17、1.18
警告
The Go agent now defaults to communicating directly with Contrast, rather than indirectly through the Contrast service.
This change will break environments where an instrumented app is running in a separate network than the Contrast service and the instrumented app is not configured to communicate with Contrast.
We encourage users to update the instrumented app’s network to allow direct communication, and to remove the Contrast service.Alternately, you may choose to continue to use the Contrast service by setting
agent.service.bypass=false
in YAML configuration or settingCONTRAST_AGENT_SERVICE__BYPASS=false
as an environment variable.
The contrast-go rewriter and Go agent no longer support go1.16
Users should update to the latest version of go1.17 or go1.18, or continue to use contrast-go v2.8.0 if they choose to stay on go1.16
新機能と改善点:
The Go agent now supports log rotation.Log rotation can be configured using the following options:
agent: logger: rotate: enable: true # defaults to false max_size_mb: 10 # defaults to 1. sets the maximum size of an individual log file backup_count: 3 # defaults 10. sets the number of backup files to retain compress: false # defaults to false. enables compression of rotated files
It can also be configured through environment variables.Backups are stored in agent.logger.path with a timestamp appended to the base of the filename.
The Go agent now drops route observations reports under high load to improve application request throughput.
The Go agent short circuits more instrumentation when disabled, resulting in lower memory usage.
リリース日: 2022年6月9日
現在サポートしている言語バージョン: Go: 1.16、1.17、1.18
新機能と改善点:
Improvements to vulnerability rendering.
Log messages now use a user-friendly time format rather than Unix epochs.
修正された不具合:
Agent now correctly reports routes discovered for applications written with the go-swagger framework (GO-1377).
Agent now correctly reports library usage data for applications written with the Gin framework (GO-1292).
リリース日: 2022年4月25日
現在サポートしている言語バージョン: Go: 1.16、1.17、1.18
新機能と改善点:
Support for Go 1.18.
修正された不具合:
Various minor fixes.
リリース日: 2022年4月14日
現在サポートしている言語バージョン: Go: 1.16、1.17
新機能と改善点:
修正された不具合:
Update to include Go security fixes in Golang release 1.17.9.
リリース日: 2022年4月14日
現在サポートしている言語バージョン: Go: 1.16、1.17
新機能と改善点:
Support for
go-swagger
APIs.Route discovery and observation for gRPC APIs written with
google.golang.org/grpc
.
修正された不具合:
gRPC trace titles are now reported more uniquely for different inputs. (GO-1272)
リリース日: 2022年3月25日
現在サポートしている言語バージョン: Go: 1.16、1.17
新機能と改善点:
The agent now supports vulnerability detection for gRPC APIs written with the
google.golang.org/grpc
module.The functionality is enabled via the following configuration settings:agent: go: preview: grpc: true service: bypass: true
Alternately, the same feature can be enabled using environment variables:
CONTRAST__AGENT__GO__PREVIEW__GRPC=true CONTRAST__AGENT__SERVICE__BYPASS=true
修正された不具合:
The agent now correctly reports server tags when bypassing the service. (GO-1256)
The agent now reports unvalidated redirects under the appropriate vulnerability category. (GO-1265)
contrast-go
now correctly accepts build flags with double dashes. (GO-1258)
リリース日: 2022年3月7日
現在サポートしている言語バージョン: Go: 1.16、1.17
新機能と改善点:
Go agent users can now configure the agent to report directly to Contrast, removing the need to install contrast-service, by using the
bypass
setting in theircontrast_security.yaml
file:agent: service: bypass: true
Alternately, the same feature can be enabled using an environment variable:
CONTRAST__AGENT__SERVICE__BYPASS=true
修正された不具合:
When running the agent with
contrast-go run main.go
, the application name was reported as 'command-line-arguments'.It now reports the correct package name when possible. (GO-1188)Exercised routes erroneously appeared as new routes due to a mismatch in how trailing slashes were interpreted by discovered vs exercised routes.Exercised routes now handle trailing slashes identically to discovered routes. (GO-1210)
リリース日: 2021年12月9日
現在サポートしている言語バージョン: Go: 1.16、1.17
新機能と改善点:
Support for bufio buffered I/O.
修正された不具合:
Distributing bullseye package for Debian. (GO-1141)
Report path traversal vulnerability for os.Rename with user controlled new file name. (GO-1078)
Fix
fmt
handling of complex types. (GO-1146)Tracking no longer fails when reading directly from a request body to a []byte. (GO-1147)
Fixed a false negative caused by merging multiple vulnerabilities discovered on the same route. (GO-1149)
リリース日: 2021年10月18日
現在サポートしている言語バージョン: Go: 1.16、1.17
修正された不具合:
When calling bufio/bytes methods on interfaces instead of concrete types, the agent won't propagate. (GO-1019)
When custom types are printed to a
http.ResponseWriter
, they aren't analyzed for XSS (False Negative). (GO-1053)
警告
This release will no longer support GoLang version 1.15.
リリース日: 2021年9月28日
現在サポートしている言語バージョン: Go: 1.15、1.16、1.17
新機能と改善点:
Golang major language version 1.17 support.
修正された不具合:
When converting from strings to named byte slices or byte slices to named strings, the agent loses data flow. (GO-1005)
リリース日: 2021年9月22日
現在サポートしている言語バージョン: Go: 1.15、1.16
修正された不具合:
When an application nests http.Handlers, the agent reports route observation and responses multiple times. (GO-999)
When triggering dataflow rules, sink events do not correctly set up parent history. (GO-1027)
When reporting route observation, the request pointer changes which breaks assess sources. (GO-1028)
リリース日: 2021年9月15日
現在サポートしている言語バージョン: Go: 1.15、1.16
新機能と改善点:
Allow for custom
go
commands to be passed through ourcontrast-go
executable.
修正された不具合:
When reporting sinks with multiple sources, the agent does not correctly attribute which fields/sources triggered the corresponding finding. (Go-950)
When rewriting a slice operation on a named byte slice type with methods, the build fails. (Go-991)
When appending data, the agent incorrectly detects if the data is tracked, resulting in no finding when reporting to TeamServer. (Go-993)
When dataflow events happen concurrently, the runtime panics and crashes the application. (Go-1023)
リリース日: 2021年9月1日
現在サポートしている言語バージョン: Go: 1.15、1.16
修正された不具合:
When the application starts, the agent spawns ticker routines which continuously leak more tickers. (GO-995)
When sending enhanced class usage, the agent never releases previous reports and spends unnecessary resources on de-duping. (GO-996)
リリース日: 2021年8月23日
現在サポートしている言語バージョン: Go: 1.15、1.16
修正された不具合:
When an application calls a pointer method with a value, the rewritten code copies by value not reference, changing the runtime behavior. (GO-989)
リリース日: 2021年8月17日
現在サポートしている言語バージョン: Go: 1.15、1.16
新機能と改善点:
Improve performance of rewritten code.
修正された不具合:
When propagating through bytes
Buffer/Reader.Read
, no propagation event is shown in the finding trace. (GO-993)When rewriting go function literals with returns, the rewriter omits the returns and breaks builds. (GO-937)
When an error occurs during initialization of the logger, the agent shuts itself off. (GO-952)
When a slice of a tainted byte slice reaches a sink, the sink is not triggered (false negative). (GO-983)
リリース日: 2021年8月6日
現在サポートしている言語バージョン: Go: 1.15、1.16
新機能と改善点:
Enhanced data flow tracking, which improves agent accuracy.
修正された不具合:
When propagating through a circular buffer, the agent caused a stack overflow. (GO-982)
リリース日: 2021年7月22日
現在サポートしている言語バージョン: Go: 1.15、1.16
新機能と改善点:
When an error occurs during agent initialization, more specific/detailed error messages are logged.
リリース日: 2021年7月8日
現在サポートしている言語バージョン: Go: 1.15、1.16
修正された不具合:
When using
getTypeName
, the rewriter failed to safely handle errors and did not inject correct packages. (GO-884)When comparing types, the rewriter incorrectly compared by pointer rather than by type. (GO-885)
リリース日: 2021年6月17日
現在サポートしている言語バージョン: Go: 1.15、1.16
新機能と改善点:
Update the rewriter to only emit on exported functions, reducing the performance overhead of the rewriter itself.
修正された不具合:
When replacing expressions with
callexprs
, the agent may break addressability, resulting in a failed build. (GO-873)When creating caches for rewrite, the reported tool version is not included, resulting in caches that will not be rebuilt despite agent changes. (GO-875)
When rewriting string slices, shadowed type names do not prevent casts from being injected, resulting in code that will not build. (GO-883)
リリース日: 2021年6月15日
現在サポートしている言語バージョン: Go: 1.15、1.16
新機能と改善点:
Updated the rewriter functionality of the agent to rely on Go’s toolexec to allow for the instrumentation of a larger set of Go applications.
修正された不具合:
リリース日: 2021年6月14日
現在サポートしている言語バージョン: Go: 1.15、1.16
新機能と改善点:
Add custom SSRF sink for net/http
Client.PostForm
.
修正された不具合:
リリース日: 2021年5月28日
現在サポートしている言語バージョン: Go: 1.15、1.16
新機能と改善点:
Added the ability to rewrite Go code including compiler directive comments, such as,
//go:embed
,//go:nosplit
and//go:noescape
and others.OSS and Assess feature support for the Go standard library.
修正された不具合:
Update
agent.logger.path
andagent.logger.level
config settings to those from remote settings. (GO-844)