A gateway device connected to a bus (200a, 200b) used in communication by a plurality of electronic control units provided on-board a vehicle, the gateway device comprising: an acquiring unit that is operable to acquire, from the plurality of electronic control units (100a - 100c), system configuration information indicating a type of each of the plurality of electronic control units (100a - 100c) connected to the bus (200a, 200b), wherein the type of each of the plurality of electronic control units (100a-100c) defines a firmware version and a function of each of the plurality of electronic control units (100a - 100c) related to the operation of exchanging data via the bus (200a, 200b); a communication unit that is operable to transmit the acquired system configuration information to an external device external to the vehicle as a firmware update request, and to receive, from the external device, in response to the firmware update request, firmware update information that includes updated firmware for at least one electronic control unit from among the plurality of electronic control units (100a - 100c); and an update processing unit that is operable to conduct a control to perform an update of firmware of the at least one electronic control unit, for which updated firmware is received by the communication unit, based on the updated firmware, after an operation verification of the updated firmware is performed successfully, which verifies that the updated firmware and firmware of each of the plurality of electronic control units (100a - 100c) operate correctly in an operating environment, the operating environment being configured with electronic control units of the same type as each of the electronic control units indicated by the acquired system configuration information. an acquiring unit that is operable to acquire, from the plurality of electronic control units (100a - 100c), system configuration information indicating a type of each of the plurality of electronic control units (100a - 100c) connected to the bus (200a, 200b), wherein the type of each of the plurality of electronic control units (100a-100c) defines a firmware version and a function of each of the plurality of electronic control units (100a - 100c) related to the operation of exchanging data via the bus (200a, 200b); a communication unit that is operable to transmit the acquired system configuration information to an external device external to the vehicle as a firmware update request, and to receive, from the external device, in response to the firmware update request, firmware update information that includes updated firmware for at least one electronic control unit from among the plurality of electronic control units (100a - 100c); and an update processing unit that is operable to conduct a control to perform an update of firmware of the at least one electronic control unit, for which updated firmware is received by the communication unit, based on the updated firmware, after an operation verification of the updated firmware is performed successfully, which verifies that the updated firmware and firmware of each of the plurality of electronic control units (100a - 100c) operate correctly in an operating environment, the operating environment being configured with electronic control units of the same type as each of the electronic control units indicated by the acquired system configuration information.