<dd id="sga4y"><optgroup id="sga4y"></optgroup></dd>
<nav id="sga4y"><code id="sga4y"></code></nav>
  • <optgroup id="sga4y"></optgroup>

    Hadoop Job Manipulation

    ABSTRACT

    向 Hadoop 群集中提交的 Job 在有害環境中可能被篡改。

    EXPLANATION

    Hadoop job manipulation 錯誤在以下情況中出現:

    - 數據從一個不可信賴的數據源進入程序。

    - 數據用來指定控制客戶端作業的 JobConf 值。

    Hadoop 群集是一種有害環境。當用來防止對群集設備中 HDFS 未經授權訪問的安全配置設置不當時,攻擊可能會乘機進行控制。從而造成 Hadoop 群集提供的任何數據被篡改的可能性。

    例 1:下列代碼是典型客戶端應用程序中提交的 Job,其輸入來自 Hadoop 群集中主計算機的命令行:


    public void run(String args[]) throws IOException {

    String inputDir = args[0];
    String outputDir = args[1];

    // Untrusted command line argument
    int numOfReducers = Integer.parseInt(args[3]);
    Class mapper = getClassByName(args[4]);
    Class reducer = getClassByName(args[5]);

    Configuration defaults = new Configuration();
    JobConf job = new JobConf(defaults, OptimizedDataJoinJob.class);
    job.setNumMapTasks(1);
    // An attacker may set random values that exceed the range of acceptable number of reducers
    job.setNumReduceTasks(numOfReducers);

    return job;
    }


    例 2:下列代碼表示攻擊者控制的運行 job 通過命令行參數中止的情形:


    public static void main(String[] args) throws Exception {

    JobID id = JobID.forName(args[0]);
    JobConf conf = new JobConf(WordCount.class);
    // configure this JobConf instance
    ...
    JobClient.runJob(conf);
    RunningJob job = JobClient.getJob(id);
    job.killJob();

    }


    Copyright 2013 Fortify Software - All rights reserved.
    (Generated from version 2013.1.1.0008 of the Fortify Secure Coding Rulepacks)
    desc.dataflow.java.hadoop_job_manipulation

    97av