Posted: Thu Jan 23, 2014 18:19 Post subject: BarracudaDrive source code now available for DD-WRT
We have released the BarracudaDrive source code and the code can now be downloaded from SourceForge as follows:
svn export svn://svn.code.sf.net/p/mako-server/code/ mako
We include instructions on cross compilation in the two readme files. We have also setup the build environment for our test router, which is a Buffalo WZR-HP-AG300H.
After modifying the two makefiles and fixing the path to the cross compiler, the MIPS version can be built as follows:
cd mako/
rm MakoServer/mako.zip
cd plugins/BarracudaDrive/C
make DD_WRT=true MIPS=true
cd ../lua/rtl/
zip -9 -r ../../../../MakoServer/mako.zip .
cd ../../../../MakoServer
make DD_WRT=true MIPS=true
Joined: 06 Jun 2006 Posts: 7463 Location: Dresden, Germany
Posted: Fri Mar 14, 2014 10:13 Post subject:
interesting. but the obfuscated sourcecode makes it hard to fix bugs. consider that dd-wrt is not just available for mips routers. i already have seen issues with compiling the sourcecode on 64 bit platforms _________________ "So you tried to use the computer and it started smoking? Sounds like a Mac to me.." - Louis Rossmann https://www.youtube.com/watch?v=eL_5YDRWqGE&t=60s
It is only the Barracuda Application Server (BAS) library that is obfuscated. All other components are delivered as standard source code. If you happen to find any bugs in BAS, please provide a test case, and the errors will be fixed promptly.
All code should work on 64 bit, but you must set the compile time macro BA_64BIT. You can find this macro in the makefile. Please elaborate on the exact problems you have with 64 bit.
BTW, is the 64 bit for a router? I was not aware of any routers that are powered by a 64 bit CPU. I want this router
Joined: 06 Jun 2006 Posts: 7463 Location: Dresden, Germany
Posted: Sun Mar 23, 2014 14:42 Post subject:
the following targets must validated to be working
X86 32 bit/64 bit (dd-wrt is available for x64 targets already)
ARM Litte Endian (ARMV7 for broadcom bcm4708 based routers)
ARM Big Endian (Xscale)
PowerPC Big Endian (MPC85xx)
MIPS Little Endian (older broadcom devices)
MIPS Big Endian (Atheros SOC)
toolchains which are used are mainly GCC 4.8 Linaro
especially on arm routers you are dealing not just with endian problems, but also with data structure alignment problems. this is what i found out while working with these devices.
so if data structures are not correctly defined, the size may differ on this architecture and gets incompatible _________________ "So you tried to use the computer and it started smoking? Sounds like a Mac to me.." - Louis Rossmann https://www.youtube.com/watch?v=eL_5YDRWqGE&t=60s
Joined: 06 Jun 2006 Posts: 7463 Location: Dresden, Germany
Posted: Sun Mar 23, 2014 14:50 Post subject:
and regarding to source obfuscation. this is also a security concern. nobody can audit the source for backdoors etc. _________________ "So you tried to use the computer and it started smoking? Sounds like a Mac to me.." - Louis Rossmann https://www.youtube.com/watch?v=eL_5YDRWqGE&t=60s
I also don't see any advantage in this as we already support Owncloud and Pydio in builds for targets that have enough cpu power for this. _________________ KONG PB's: http://www.desipro.de/ddwrt/
KONG Info: http://tips.desipro.de/
Although not tested using DD-WRT, the above mentioned platforms and HW are in use by many products based on BAS (Barracuda Application Server library). The obfuscated BAS lib is configured such that it should work regardless alignment/endian, however, you must use proper defines such as B_BIG_ENDIAN/B_LITTLE_ENDIAN and BA_64BIT for 64 bits CPUs. The company behind BAS is Real Time Logic and the purpose with releasing the obfuscated BAS lib is to enable communities such as DD-WRT to use a commercial product. Note: it's only BAS that has this restriction. All other components use MIT license. BAS is designed specifically for embedded use. BAS is not new and it is used by many large companies designing embedded system. In addition, BAS is also used by BarracudaDrive, which already supports many small embedded Linux systems. See the following for the list of pre-compiled targets: http://barracudadrive.com/download.lsp
Regarding your backdoor concern (and other concerns). BAS is just a library. It's an engine that will not work unless higher level code sets it up and configures it. All logic is in higher level code and this higher level code is released non obfuscated under MIT license. For example, opening the server's listening ports is done by a Lua script. You can find this code in either the Mako Server's ZIP file or in the BarracudaDrive's ZIP file. (The BarracudaDrive plugin completely replaces the logic in the original Mako Server).
Note, the complete documentation is also included at the Mako Server site. Anyone that is interrested in learning how to make web apps for Mako Server should download the "Extended Web Application Development Tutorials" available here: http://makoserver.net/documentation/manual/
Regarding Owncloud, you'll find Mako Server and BarracudaDrive to be much faster on small devices. Also, the memory consumption is much less since BAS is designed for embedded use. In addition, the integrated SSL stack SharkSSL is very fast and supports the latest ciphers such as Elliptic Curves. Both BarracudaDrive and Mako Server are development platforms specifically designed to be extended.
Regarding security and the latest vulnerability in OpenSSL. The heartbleed is a software bug in OpenSSL, but the bug is not within the TLS specification itself.
The SharkSSL client/server TLS stack is not vulnerable to the problems found in OpenSSL. SharkSSL is the SSL/TLS stack used by BarracudaDrive.