In this paper we present a novel approach for synthesizing and optimizing both positions and forces in force closure grasps. This problem is a non-convex optimization problem in general since it involves constraints that are bilinear; in particular, computing wrenches involves a bilinear product between grasp contact points and contact forces. Thus, conventional approaches to this problem typically employ general purpose gradient-based nonlinear optimization. The key observation of this paper is that the force closure grasp synthesis problem can be posed as a Bilinear Matrix Inequality (BMI), for which there exist efficient solution techniques based on semidefinite programming. We show that we can synthesize force closure grasps on different geometric objects, and by maximizing a lower bound of a grasp metric, we can improve the quality of the grasp. While this approach is not guaranteed to find a solution, it has a few distinct advantages. First, we can handle non-smooth but convex positive semidefinite constraints, which can often be important. Second, in contrast to gradient-based approaches we can prove infeasibility of problems. We demonstrate our method on a 15 joint robot model grasping objects with various geometries. The code is included in https://github.com/RobotLocomotion/drake.