Происходил из дворянского рода Псковской губернии Костровых, учился во 2-й московской гимназии (вып. 1853) и на физико-математическом факультете Московского университета, который окончил кандидатом в 1857 году. В 1858 году поступил вольноопределяющимся во 2-й гренадерский Ростовский полк, и через год был произведён в поручики. В 1861 году принимал участие в действиях против польских мятежников, затем поступил в Николаевскую академию генерального штаба; по окончании её в 1868 году, лучшим выпускником курса, был назначен на службу в генеральный штаб. Принимал деятельное участие в работах по составлявшемуся тогда новому плану мобилизации русской армии сообразно с новым законом о воинской повинности. В чине полковника и в должности начальника отделения главного штаба много поработал по мобилизации в течение последней восточной войны. В то же время Костров читал лекции по военной администрации в Николаевской академии и в нескольких военных училищах. В феврале 1879 года был произведён был в генерал-майоры и назначен с 12 августа на должность директора Константиновского межевого института, в которой пребывал до своей смерти.