If you would've spoken out, then you agree with the principle but don't agree that ICE is "bad enough" to warrant this treatment. If you wouldn't have spoken out but wouldn't have worked for them, then you agree that working on these systems is clearly unethical (and thus IBM was acting unethically) but feel that ethics are less important than not disrupting the freedom of a company to sell their services to whoever they like. If you would've worked for them and wouldn't have spoken out, then we have very different views on ethics and I'm not sure we're going to agree on anything.
Yes, laws should be changed but businesses should be held accountable for who they do business with. You'd better believe that the US government wouldn't have the same rosy outlook you do if they discovered that GitHub was selling software to known terrorist groups.