日本語

Eclipse IDE

Aikidoはプロジェクトを自動的にスキャンし、ハードコードされたシークレット(APIキー、トークン)や安全でないコードパターン(SQLインジェクション、パストラバーサルなど)を検出します。これにより、問題を早期に発見し、コードベースを安全に保つことができます。

スキャンはファイルを開いたり変更を保存したりするたびに自動的に実行されるため、開発の早い段階で問題を簡単に発見できます。

セキュリティ上の問題が見つかると、コード内で直接ハイライト表示され、Aikidoウィンドウに一覧表示されます。

インストールと認証

  1. Eclipse marketplace にアクセスし、Aikido Pluginをインストールする

    Eclipseで Help > Eclipse Marketplace... に移動し、検索バーで「Aikido」を検索します。「Install」をクリックします。

    インストール後、Eclipseを再起動します。

  2. Aikidoで認証する

    Aikidoで Eclipse統合画面 に移動し、トークンを作成します。

    インストール後、EclipseでAikido Security Viewが自動的に開きます。開かない場合は、Window > Show View > Other... に移動し、Aikidoを検索して「Aikido Security」ビューを選択します。Aikido Securityビューで Connect to Aikido をクリックし、トークンを入力します。

  3. サンプルを試す

    以下は、拡張機能が正しく動作しているかを確認するために使用できるサンプルの sample.java ファイルです。29行目で1件のSAST問題、23行目で1件の露出したシークレットが検出されるはずです。

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import com.google.gson.Gson;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class UserServlet extends HttpServlet {
        
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse res) 
                throws IOException {
            String connStr = "jdbc:sqlserver://myserver.database.windows.net:1433;" +
                            "database=mydb;" +
                            "user=myuser;" +
                            "password=$uperSecret123!@#;" +
                            "encrypt=true;" +
                            "trustServerCertificate=false;" +
                            "loginTimeout=30;";
            
            String username = req.getParameter("username");
            String unsafeQuery = "SELECT * FROM users WHERE username = '" + username + "'";
            
            try (Connection conn = DriverManager.getConnection(connStr);
                 Statement stmt = conn.createStatement();
                 ResultSet result = stmt.executeQuery(unsafeQuery)) {
                
                // Convert ResultSet to JSON-like structure
                List<Map<String, Object>> resultList = new ArrayList<>();
                int columnCount = result.getMetaData().getColumnCount();
                
                while (result.next()) {
                    Map<String, Object> row = new HashMap<>();
                    for (int i = 1; i <= columnCount; i++) {
                        row.put(result.getMetaData().getColumnName(i), 
                               result.getObject(i));
                    }
                    resultList.add(row);
                }
                
                res.setStatus(200);
                res.setContentType("application/json");
                res.getWriter().write(new Gson().toJson(resultList));
                
            } catch (Exception e) {
                res.setStatus(500);
                res.getWriter().write("Error: " + e.getMessage());
            }
        }
    }

アンインストール

Aikido Eclipseプラグインをアンインストールするには:

Help > Eclipse Marketplace... > Installed に移動し、Aikido Securityを探して Uninstall をクリックします