コードレビュー・セキュリティ
PowerBuilderのコードはOWASP Top 10が示す複数のリスク(インジェクション、暗号化の失敗、ハードコードされた認証情報、安全でない構成)にさらされています。Visual ExpertはこれらすべてをPowerScriptと組み込みSQLの中で直接検出し、OracleおよびSQL Serverのコードにも同じチェックを適用します。
以下の表は、該当するOWASP Top 10の各カテゴリと、それを検出するルールを対応付けたものです(まずPowerBuilderから)。
| Visual Expertのルール | 深刻度 |
|---|---|
| ユーザー入力はパスインジェクションやパストラバーサル攻撃を許してはならない | 重大 |
| Visual Expertのルール | 深刻度 |
|---|---|
| AES暗号化アルゴリズムは常に安全なモードで使用すること | 重大 |
| 暗号学的ハッシュ関数はSHA-1またはMessage-Digestアルゴリズムを使用してはならない | 重大 |
| DES(Data Encryption Standard)または3DESを使用してはならない | 重大 |
| 暗号化アルゴリズムは適切な安全なモードとパディング方式を使用しなければならない | 重大 |
| 暗号鍵は十分な長さを持たなければならない | 重大 |
| 暗号鍵をハードコーディングしてはならない | 重大 |
| Visual Expertのルール | 深刻度 |
|---|---|
| データベースクエリはインジェクション攻撃に対して脆弱であってはならない | 重大 |
| OSコマンドはインジェクション攻撃を許してはならない | 重大 |
| Visual Expertのルール | 深刻度 |
|---|---|
| IPアドレスをハードコーディングしてはならない | 重大 |
| CoSetProxyBlanketやCoInitializeSecurityを使用してはならない | 重大 |
| 本番環境ではコンソールログを使用してはならない | 軽微 |
| Visual Expertのルール | 深刻度 |
|---|---|
| OLE Webブラウザは使用すべきではない(もはや安全ではない) | 重大 |
| Visual Expertのルール | 深刻度 |
|---|---|
| ユーザーIDとパスワードをハードコーディングしてはならない | 重大 |
OWASPがTop 10:2021のリスト外で文書化しているサービス拒否(DoS)のパターンです。
| Visual Expertのルール | 深刻度 |
|---|---|
| 正規表現はサービス拒否攻撃(ReDoS)を許してはならない | 重大 |
Visual Expertは、問題が本番環境に到達する前に、PowerBuilder、Oracle、SQL Serverのコードを検査ルール一式と照合してチェックします。
Visual Expertを無料で試す すべての検査ルールを見るOracleをバックエンドとするPowerBuilderアプリケーションの場合、Visual ExpertはPL/SQL層を同じOWASPカテゴリで解析します。
| OWASPカテゴリ | Visual Expertのルール | 深刻度 |
|---|---|---|
| A02 暗号化の失敗 | DESまたは3DESの使用 | 重大 |
| A02 暗号化の失敗 | SHA-1およびMessage-Digestハッシュアルゴリズムはセキュアなコンテキストで使用してはならない | 重大 |
| A03 インジェクション | 動的なコード実行はセキュリティ上重要な操作である | 重大 |
| A05 セキュリティの設定ミス | SYSスキーマが所有する機密関数を使用してはならない | 重大 |
| OWASPカテゴリ | Visual Expertのルール | 深刻度 |
|---|---|---|
| A02 暗号化の失敗 | SHA-1およびMessage-Digestハッシュアルゴリズムはセキュアなコンテキストで使用してはならない | 重大 |
| A03 インジェクション | 動的なコード実行はセキュリティ上重要な操作である | 重大 |
| A05 セキュリティの設定ミス | ハードコードされたIPアドレスはセキュリティ上重要な問題である | 軽微 |
Visual Expertは、OWASP Top 10の範囲外ではあるものの、データベースコードにおけるリスクと技術的負債を軽減するルールも適用します。
| Visual Expertのルール | 深刻度 |
|---|---|
| DELETE文とUPDATE文にはWHERE句を含めなければならない | 重大 |
| NULLを返しうるサブクエリをNOT IN条件で使用してはならない | 重大 |
| 例外を無視してはならない | 重大 |
| 例外処理にはWHEN OTHERS句を使用すべきである | 重大 |
| WHEN OTHERSを唯一の例外ハンドラーにしてはならない | 重大 |
| DBMS_OBFUSCATION_TOOLKITパッケージは削除されている | 重要 |
| Visual Expertのルール | 深刻度 |
|---|---|
| DELETE文とUPDATE文にはWHERE句を含めなければならない | 重大 |
| NULLを返しうるサブクエリをNOT IN条件で使用してはならない | 重大 |
| SQL Serverのセッション構成は追跡すべきである | 重要 |
Visual Expertは、PowerBuilder、Oracle、SQL Serverのコードに該当するOWASP Top 10の脆弱性カテゴリ(インジェクション、暗号化の失敗、ハードコードされた認証情報、安全でない構成)を検出します。それぞれをコード検査ルールによって報告します。
PowerBuilderのコードについて、Visual ExpertはA01アクセス制御の不備、A02暗号化の失敗、A03インジェクション、A05セキュリティの設定ミス、A06脆弱で古くなったコンポーネント、A07識別と認証の失敗をカバーします。
PowerBuilder、Oracle、SQL Serverのコードに対してVisual Expertのコード検査を実行してください。PowerScriptと組み込みSQLをルールセットと照合し、該当するOWASP Top 10のパターンを、本番環境に到達する前に検出します。
セキュリティ監査、技術的負債のレビュー、あるいはコンプライアンス評価(NIS2、DORA、または社内のセキュリティポリシー)の準備において、この仕組みは汎用的なチェックリストを、自社のコードベースにおける具体的な検出結果に変えます。Visual ExpertはPowerBuilder、Oracle、SQL Serverの全コードに対してこれらのチェックを実行するため、問題は本番環境に到達する前に明らかになります。