https://tech.techtouch.jp/entry/gosecurecoding-jajp
こんにちは。SRE の izzii です。
テックタッチのエンジニア規模もそれなりに拡大し、若手の採用も進んできたため、セキュアコーディングを徹底していきたいという思いがあり、まずは意識改革ということで勉強会を実施しました。セキュアコーディングを目的とした場合には教育だけでなく Static application security testing (SAST) の導入といった方法もあるのですが、まずは自分を含めた開発メンバーにノウハウをインストールすることにしました。セキュアコーディングへの意識が高まれば、いづれ SAST の導入の際に抵抗感も少ないだろうと考えています。いきなり SAST を導入しても、誤検知が煩くて浸透しないリスクもありうると考えています。
そこで上記の勉強会で利用するために、Go Secure Coding Practice を日本語翻訳しました。 翻訳した pdf は次のリポジトリの dist
フォルダで公開しています。https://github.com/techtouch-inc/Go-SCP-jaJP
日本語翻訳したコンテンツは原書に則り CC BY-SA 4.0 ライセンス の元、以下のリポジトリで公開いたします。
ライセンスの範囲内でご利用ください。
https://creativecommons.jp/licenses/
Checkmarx Security Research Team と OWAP の共著によって作成された、Go 言語のウェブ開発における、セキュリティプラクティスのドキュメントになります。OWASP Secure Coding Practices - Quick Reference Guide v2 (stable) に準拠しています。
本資料を勉強会のメインコンテンツとして採用した理由は以下です。
入力値のバリデーション
バリデーション
サニタイズ
出力のエンコーディング
| XSS クロスサイトスクリプティング
| SQL インジェクション
認証とパスワードの保存
| 認証情報の伝達
| バリデーションと保存
| パスワードポリシー
| その他のガイドライン
セッション管理
アクセスコントロール
暗号に関するプラクティス
| 擬似乱数の生成
エラー処理とロギング
| エラー処理
| ロギング
データの保護
通信のセキュリティ
| HTTP/TLS
| ウェブソケット
システム構成
データベースのセキュリティ
| 接続
| 認証
| パラメータクエリ
| ストアドプロシージャ
ファイル管理
メモリ管理
一般的なコーディングプラクティス
| クロスサイトリクエストフォージェリ
| 正規表現