Over Atos Origin
Contact
Diensten
Nieuws
Home
Feedback  |  Atos Origin.com  |  Syndicatie
Syndicatie
 
Links
Archief
Meer over de bloggers
Onderwerpen
Alle onderwerpen
Agile
Algemeen
Architectuur
Besturingssystemen
Bpm
Business intelligence
Business proces design
Cloud computing
Eai
Governance
Ibm
Integratie
It consultancy
Java
Microsoft
Nljug
Open source
Oracle
Process standaarden
Project management
Requirements engineering
Rich internet applications
Saas
Security
Sharepoint
Soa
Testing
Virtualisatie
Xml

Java code checken op security issues
Geplaatst op 2 September 2009, 20:53 door Mylène Reiners in java, open source, security

Iedereen heeft graag dat de code die hij gebruikt, veilig is. Degenen voor wie we software schrijven, willen hun gebruikers ook graag veilige software aanbieden.
  
Hiervoor dient het hele ontwikkelproces, vanaf architectuur tot maintenance aangepast te worden. Voor ontwikkelaars gaat het dan al snel om secure of defensive programming. 
Vervolgens moet bewezen worden dat je je doel bereikt hebt, dat is dan logischerwijs het testen van je code op security issues. 
Soms is het zelfs zo, dat dit de enige security testen zijn die uitgevoerd mogen worden. Idealiter zou je nog penetratie testen (pentests) willen uitvoeren, maar krijg je daar geen toestemming voor.

Wat dan overblijft, is het controleren van je code op security issues. Er zijn een paar goede (actuele) Java open source tools die je erbij kunnen helpen, maar eigenlijk maar verschrikkelijk weinig, als je bedenkt dat dit toch echt belangrijk is. 
De tools die je kunt gebruiken, zijn eigenlijk alleen PMD en FindBugs, misschien uit te breiden met ESC/Java2, al werkt dat op een heel andere manier.
Findbugs logo
In de literatuur kom je ook nog JLint en LAPSE tegen, en in een iets ander kader PQL en Bandera, maar deze zijn allemaal allang niet meer geüpdate, en, mijns inziens, daardoor niet echt relevant meer...

FindBugs controleert je code op een aantal zaken die tot problemen zouden kunnen leiden (overzicht). Tekenend voor het feit dat niet alles met "gewone" tools te vinden is, is bijvoorbeeld de volgende opmerking: "FindBugs looks only for the most blatant, obvious cases of cross site scripting. If FindBugs found any, you almost certainly have more cross site scripting vulnerabilities that FindBugs doesn't report. If you are concerned about cross site scripting, you should seriously consider using a commercial static analysis or pen-testing tool.".
FindBugs is onder meer beschikbaar als Eclipse plug-in, maar ik raad je aan zeker ook de FindBugs GUI eens te proberen. 

pmd logo

PMD controleert je code ook op standaard fouten (mogelijke bugs, dode code, suboptimale code en té gecompliceerde code), en als je wilt (via CPD) op duplicate code - het zou immers vervelend zijn als je mogelijke bugs uit één stuk code haalt, en dat stuk dat je gekopieerd had, vergeet...

Tips voor het gebruik van FindBugs en PMD
  • Gebruik alleen die rulesets die je nodig hebt - maak het niet ingewikkelder dan nodig is (maar uiteraard wel zo ingewikkeld als nodig is...)
  • Integreer de tools met je IDE, zodat je je fouten zo snel mogelijk ziet (op het einde van het project is het misschien zo enorm veel, dat je nooit meer zin hebt om je fouten op te lossen, met alle kwalijke gevolgen van dien!)
  • Integreer de tools in je buildproces - soms worden fouten pas gevonden in combinatie met andere code...
ESC/Java2 checkt je code ook op mogelijke fouten; je kunt regels (via JML) toevoegen aan je code, of in een aparte file (wat wel zo handig is om je code "clean" te houden); dit lijkt enigszins op het "uitzetten" van rules in PMD. Grootste minpunt is dat het alleen draait op Java 1.4. Wat wél heel mooi is, is dat je aan moet geven, dat je over bepaalde zaken hebt nagedacht.
Je kunt bijvoorbeeld een foutmelding krijgen over een "possible null dereference" -- in dat geval geef je een regel (pragma): /*@ non-null */ op dat veld, waarmee je aangeeft dat dat veld geen null kan zijn (en dat die fout dus genegeerd kan worden) - uiteraard ervan uitgaand dat je dan ook gecontroleerd hebt dat dat zo is. 
Ik heb het idee dat als ESC/Java2 naar een nieuwe versie gaat (die Java 1.5 en hoger ondersteund) ESC/Java2 een goede aanvulling op onze standaard toolkit zou kunnen zijn - ik zal het in de gaten houden :)

Enjoy!



Share this | 426 keer bekeken | 0 reacties
Reacties Syndicatie en RSS
Reageer
 
 
Top artikelen
  • J-Spring 2009:Hop on board the Java Troubleshooting Platform
  • Softwaredocumentatie met Sandcastle
  • Agile Springboard
  • Blik op kwaliteit door middel van Six Sigma
  • Developers zijn kikkers
Recente reacties
  • IDC voorspelt dat SaaS mainstream wordt binnen paar ...
  • PrimeFaces is nauwelijks nog bekend terwijl het veel ...
  • Dank!
  • Het bijwerken is met behulp van if(contains()) remove() ...
  • Alleen keuren de bovengenoemde alternatieven duplicate entries af ...
  • Terms of use
  • Legal