The Ethical Analysis of Software Liabilities