Skip to main content

Posts

Password reset feature in single user, isolated environment applications

I came across one application while doing security assessment and found that they were using default admin account.And that too the admin account was having credentials as admin:admin. Catastrophic, isn't it? I raised this issue before completing the assessment with the developers. They had their usual excuse- this was introduced to help user reset their passwords through the web application and since the web application was supposed to be used by singles user. It was essentially a single user environment. The web application was running locally on their individual laptops and the laptop was being plugged on the LAN just for few moments to reset some device readings. Now the risk was: Even a momentarily the laptop was connected to local network, the default admin account's presence was known to every other user. If they change the password using the default account then? Though this was single user environment and only very few users were supposed to use the application o...

Testing strategy for Controllers

Controllers are an essential part of ICS (Industrial Control Systems) network. Generally they are interface to many field devices such as sensors and placed within closed network. Exposing them outside world may be disastrous and they can be configured/ mis- configured to carry put attacks which can have dangerous impact on human being's life and safety. So, it's necessary to do a security assessment of ICS networks to uncover potential vulnerabilties. In brief, to test a controller we need to: Understand the entire architecture- the platform, technologies, protocol it understands. Do a quick threat modeling here. Review Network architecture, see how the controller is placed, ideally it should not be reachable from internet. Firmware testing: Most of the controllers have embedded systems on them. Do a firmware testing here- De compiling, modifying, patching, looking for hard coded sensitive credentials. How the firmware is uploaded/ downloaded- how secure is the mechan...

Some general guidelines for a secure firmware

Encryption: It prevents reverse engineering of the firmware. The firmware might be stored in encrypted form and only decrypted when it is to be executed, or it might be decrypted during the firmware update process. • Signing: is concerned with ensuring that a message has not been corrupted or modified while in transit. This is important since a malicious user cannot be allowed to alter the firmware originally delivered by the firmware producer. • No hardcoded credentials: The presence of hard-coded accounts that can serve as backdoors to devices. • Code obfuscation: it makes runtime analysis difficult. • Authentication: Make it difficult for unauthorized users to obtain the firmware updates. Make it restrictive, less exposed. • If the device is capable of being networked, no unnecessary services are running and ensure that it can also alert and log when firmware has been updated.

Reversing Firmware

The article will explore various strategies for reversing firmware, with some examples. Finally, some best practices are mentioned. LINK here: http://resources.infosecinstitute.com/reversing-firmware-part-1/ 

Salted hash implementation in Login, in nutshell

The best approach would be hashing the passwords, instead of encrypting them as key management becomes an issue. Benefits of passwords in form of salted hash: ·          Real passwords are never stored/ displayed/ logged in the system ·          Salts makes dictionary attack very impractical as it’s very difficult to generate    re-computed hash table as salts are random ·          It’s easier to implement as no need of key management A general approach would be like this (when storing): ·          Generate a long random salt using cryptographically strong functions such as SecureRandom in Java, when user is first time registering himself ·          Use the above salt and hash it with the user’s chosen password using standard and ...