[16286] 2021-01-06_DevSecOps建设之白盒篇

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-18
2021-01-06_DevSecOps建设之白盒篇 D e v S e c O p s     F r e e B u f   2 0 2 1 - 0 1 - 0 6 D e v S e c O p s D e v S e c O p s D e v S e c O p s D e v S e c O p s s d l D e v S e c O p s , ( i a s t ) s d l D e v S e c O p s ( ) 线 s d l 1 + 1 > 2 - D e v S e c O p s D e v S e c O p s D e v S e c O p s A p o l l o 0 x 1   ( a p o l l o ) w e b j e n k i n s p i p l i n e s p i p l i n e 线 m a s t e r 0 x 2   a p o l l o a p o l l o r e d i s - s e n t i n e l w o r k e r ( ) m y s q l m a s t e r ( ) w e b 0 x 3  
w e b v u e e l e m e n t U I e c h a r t w h a t e v e r A p o l l o 0 x 4   - 使 ( 绿 ) 0 x 5  
便 d e v s e c o p s 便 ( j i r a ) d e v s e c o p s ( ) : , ( ) 线 0 x 6   1 ( ) 2 3
e c h a r t 使 s e l e n i u m : 0 x 7   1
( s c a , , ) , ( ) , 2 ( s i n k s o u r c e ) 3 0 x 8  
a p o l l o 2 0 0 j a v a 9 8 % j a v a D e v S e c O p s 1 d e v o p s d e v s e c o p s w e b h o o k g i t p u s h p u s h p i p l i n e s a p o l l o j a r a p o l l o a p o l l o j a r j a r a p o l l o j e n k i n s a p o l l o d e v s e c o p s 2 j i r a ( d e v o p s ) 9 5 % i s s u e i s s u e k e y d e v s e c o p s i s s u e D e v S e c O p s ( c p g ) a p o l l o h a d e s h a d e s d e m o ( h t t p s : / / g i t h u b . c o m / z s d l o v e / h a d e s ) g i t r e a d m e F a b i a n   Y a m a g u c h i M o d e l i n g   a n d   D i s c o v e r i n g   V u l n e r a b i l i t i e s   w i t h   C o d e   P r o p e r t y   G r a p h s c / c + + g i t h u b : h t t p s : / / g i t h u b . c o m / S h i f t L e f t S e c u r i t y / j o e r n c p g a s t a s t a s t j a v a 使 j a v a p a r s e r , c / c + + e c l i p s e C D T a s t a s t c f g ( c o n t r o l   f l o w   g r a p h ) e o g ( e v a l u t i o n   o r d e r   g r a p h ) c f g e o g d f g ( d a t a   f l o w   g r a p h ) c f g e o g c f g 线 b l o c k b l o c k e o g e o g c f g b l o c k b l o c k g e t e l e m e n t ( ) h e a d e r h e a d e r s g e t e l e m e n t g e t e l e m e n t f r o n t e n d s h i f t l e f t c p g 2 s c p g a s t c f g d f g s c p g l e v e l c p g s h i f t l e f t e n u m e r a t i o n   h e a d e r s = r e q u e s t . g e t h e a d e r s ( ) ; S t r i n g   h e a d e r = h e a d e r s . g e t e l e m e n t ( ) ;
c p g e o g e o g c p g j a v a c p g j a v a a p o l l o 使 n e o 4 j c p g n e o 4 j   w e b 使 n e o 4 j c y p h e r 1 ( s o u r c e ) ( s i n k ) s o u r c e s i n k s i n k s o u r c e s i n k 使 a p o l l o b e n c h m a r k   j a v a s q l : p a c k a g e   o r g . o w a s p . b e n c h m a r k . t e s t c o d e ; i m p o r t   j a v a . i o . I O E x c e p t i o n ; i m p o r t   o r g . o w a s p . b e n c h m a r k . t e s t c o d e . T e s t ; i m p o r t   j a v a x . s e r v l e t . S e r v l e t E x c e p t i o n ; i m p o r t   j a v a x . s e r v l e t . a n n o t a t i o n . W e b S e r v l e t ; i m p o r t   j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t ; i m p o r t   j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t R e q u e s t ; i m p o r t   j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t R e s p o n s e ; @ W e b S e r v l e t ( v a l u e = " / s q l i - 0 0 / B e n c h m a r k T e s t 0 0 0 0 8 " ) p u b l i c   c l a s s   B e n c h m a r k T e s t 0 0 0 0 8   e x t e n d s   H t t p S e r v l e t   {         p r i v a t e   s t a t i c   f i n a l   l o n g   s e r i a l V e r s i o n U I D   =   1 L ;         @ O v e r r i d e         p u b l i c   v o i d   d o G e t ( H t t p S e r v l e t R e q u e s t   r e q u e s t ,   H t t p S e r v l e t R e s p o n s e   r e s p o n s e )   t h r o w s   S e r v l e t E x c e p t i o n ,   I O E x c e p t i o n   {                 d o P o s t ( r e q u e s t ,   r e s p o n s e ) ;         }         @ O v e r r i d e         p u b l i c   v o i d   d o P o s t ( H t t p S e r v l e t R e q u e s t   r e q u e s t ,   H t t p S e r v l e t R e s p o n s e   r e s p o n s e )   t h r o w s   S e r v l e t E x c e p t i o n ,   I O E x c e p t i o n   {
s i n k s o u r c e s o u c e g e t H e a d e r j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t R e q u e s t . g e t H e a d e r s o u r c e c y p h e r s i n k o k s o u r c e s i n k s o u r c e s i n k 使 c y p h e r p s o u r c e s i n k - [ r : D F G * 1 . . ] - > ( ) < - [ r 2 : A R G U M E N T S ] - 1 ) 1 2 ) s i n k 0 g e t h e a d e r p r e p a r e s q l                 / /   s o m e   c o d e                 r e s p o n s e . s e t C o n t e n t T y p e ( " t e x t / h t m l ; c h a r s e t = U T F - 8 " ) ;                 S t r i n g   p a r a m   =   r e q u e s t . g e t H e a d e r ( " B e n c h m a r k T e s t 0 0 0 0 8 " ) ;                 / /   U R L   D e c o d e   t h e   h e a d e r   v a l u e   s i n c e   r e q . g e t H e a d e r ( )   d o e s n ' t .   U n l i k e   r e q . g e t P a r a m e t e r ( ) .                 p a r a m   =   j a v a . n e t . U R L D e c o d e r . d e c o d e ( p a r a m ,   " U T F - 8 " ) ;                 S t r i n g   s q l   =   " { c a l l   "   +   p a r a m   +   " } " ;                 t r y   {                         j a v a . s q l . C o n n e c t i o n   c o n n e c t i o n   =   o r g . o w a s p . b e n c h m a r k . h e l p e r s . D a t a b a s e H e l p e r . g e t S q l C o n n e c t i o n ( ) ;                         j a v a . s q l . C a l l a b l e S t a t e m e n t   s t a t e m e n t   =   c o n n e c t i o n . p r e p a r e C a l l (   s q l   ) ;                         j a v a . s q l . R e s u l t S e t   r s   =   s t a t e m e n t . e x e c u t e Q u e r y ( ) ;                         o r g . o w a s p . b e n c h m a r k . h e l p e r s . D a t a b a s e H e l p e r . p r i n t R e s u l t s ( r s ,   s q l ,   r e s p o n s e ) ;                 }   c a t c h   ( j a v a . s q l . S Q L E x c e p t i o n   e )   {                         i f   ( o r g . o w a s p . b e n c h m a r k . h e l p e r s . D a t a b a s e H e l p e r . h i d e S Q L E r r o r s )   {                                 r e s p o n s e . g e t W r i t e r ( ) . p r i n t l n ( " E r r o r   p r o c e s s i n g   r e q u e s t . " ) ;                                 r e t u r n ;                         }                         e l s e   t h r o w   n e w   S e r v l e t E x c e p t i o n ( e ) ;                 }         } } M A T C H   s o u r c e n o d e s = ( s o u r c e { n a m e : " g e t H e a d e r " , f q n : " j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t R e q u e s t . g e t H e a d e r " } )   R E T U R N   s o u r c e n o d e s   l i m i t   2 5 M A T C H   s i n k n o d e s = ( s i n k { n a m e : " p r e p a r e C a l l " , a r g u m e n t I n d e x : 0 , f q n : " j a v a . s q l . C o n n e c t i o n . p r e p a r e C a l l " } )   R E T U R N   s i n k n o d e s   l i m i t   2 5 M A T C H   p = ( s o u r c e { n a m e : " g e t H e a d e r " , f q n : " j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t R e q u e s t . g e t H e a d e r " } ) - [ r : D F G * 1 . . ] - > ( ) < - [ r 2 : A R G U M E N T S ] - ( s i n k { n a m e : " p r e p a r e C a l l " , a r g u m e n t I n d e x : 0 , f q n : " j a v a . s q l . C o n n e c t i o n . p r e p a r e C a l l "
2 b e n c h m a r k s o u r c e s i n k B e n c h m a r k T e s t 0 0 0 0 8 . j a v a T e s t . j a v a B e n c h m a r k T e s t 0 0 0 0 8 . j a v a d o p o s t g e t h e a d e r T e s t . r u n e x e c T e s t . r u n e x e c s q l s q l s i n k s o u r c e 使 M A T C H   p = ( s o u r c e { n a m e : s o u r c e _ n a m e , f q n : " s o u r c e _ f q n " } ) - [ : E O G | D F G * ] - > ( ) < - [ r 2 : A R G U M E N T S ] - ( s i n k { n a m e : " s i n k _ n a m e " , a r g u m e n t I n d e x : 0 , f q n : " s i n k _ f q n " } )   R E T U R N   p   l i m i t   1 p a c k a g e   o r g . o w a s p . b e n c h m a r k . t e s t c o d e ; i m p o r t   j a v a . i o . I O E x c e p t i o n ; i m p o r t   o r g . o w a s p . b e n c h m a r k . t e s t c o d e . T e s t ; i m p o r t   j a v a x . s e r v l e t . S e r v l e t E x c e p t i o n ; i m p o r t   j a v a x . s e r v l e t . a n n o t a t i o n . W e b S e r v l e t ; i m p o r t   j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t ; i m p o r t   j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t R e q u e s t ; i m p o r t   j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t R e s p o n s e ; @ W e b S e r v l e t ( v a l u e = " / s q l i - 0 0 / B e n c h m a r k T e s t 0 0 0 0 8 " ) p u b l i c   c l a s s   B e n c h m a r k T e s t 0 0 0 0 8   e x t e n d s   H t t p S e r v l e t   {         p r i v a t e   s t a t i c   f i n a l   l o n g   s e r i a l V e r s i o n U I D   =   1 L ;         @ O v e r r i d e         p u b l i c   v o i d   d o G e t ( H t t p S e r v l e t R e q u e s t   r e q u e s t ,   H t t p S e r v l e t R e s p o n s e   r e s p o n s e )   t h r o w s   S e r v l e t E x c e p t i o n ,   I O E x c e p t i o n   {                 d o P o s t ( r e q u e s t ,   r e s p o n s e ) ;         }         @ O v e r r i d e         p u b l i c   v o i d   d o P o s t ( H t t p S e r v l e t R e q u e s t   r e q u e s t ,   H t t p S e r v l e t R e s p o n s e   r e s p o n s e )   t h r o w s   S e r v l e t E x c e p t i o n ,   I O E x c e p t i o n   {                 / /   s o m e   c o d e                 r e s p o n s e . s e t C o n t e n t T y p e ( " t e x t / h t m l ; c h a r s e t = U T F - 8 " ) ;                 S t r i n g   p a r a m   =   r e q u e s t . g e t H e a d e r ( " B e n c h m a r k T e s t 0 0 0 0 8 " ) ;                 / /   U R L   D e c o d e   t h e   h e a d e r   v a l u e   s i n c e   r e q . g e t H e a d e r ( )   d o e s n ' t .   U n l i k e   r e q . g e t P a r a m e t e r ( ) .                 p a r a m   =   j a v a . n e t . U R L D e c o d e r . d e c o d e ( p a r a m ,   " U T F - 8 " ) ;                 S t r i n g   s q l   =   " { c a l l   "   +   p a r a m   +   " } " ;                 T e s t . r u n e x e c ( s q l ) ;         } } p a c k a g e   o r g . o w a s p . b e n c h m a r k . t e s t c o d e ; i m p o r t   j a v a . i o . I O E x c e p t i o n ; i m p o r t   j a v a x . s e r v l e t . S e r v l e t E x c e p t i o n ; i m p o r t   j a v a x . s e r v l e t . a n n o t a t i o n . W e b S e r v l e t ; i m p o r t   j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t ; i m p o r t   j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t R e q u e s t ; i m p o r t   j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t R e s p o n s e ; p u b l i c   c l a s s   T e s t   {         @ O v e r r i d e         p u b l i c   s t a t i c   v o i d   r u n e x e c ( S t r i n g   s q l ) {                         t r y   {                         j a v a . s q l . C o n n e c t i o n   c o n n e c t i o n   =   o r g . o w a s p . b e n c h m a r k . h e l p e r s . D a t a b a s e H e l p e r . g e t S q l C o n n e c t i o n ( ) ;                         j a v a . s q l . C a l l a b l e S t a t e m e n t   s t a t e m e n t   =   c o n n e c t i o n . p r e p a r e C a l l (   s q l   ) ;                         j a v a . s q l . R e s u l t S e t   r s   =   s t a t e m e n t . e x e c u t e Q u e r y ( ) ;                         o r g . o w a s p . b e n c h m a r k . h e l p e r s . D a t a b a s e H e l p e r . p r i n t R e s u l t s ( r s ,   s q l ,   r e s p o n s e ) ;                 }   c a t c h   ( j a v a . s q l . S Q L E x c e p t i o n   e )   {                         i f   ( o r g . o w a s p . b e n c h m a r k . h e l p e r s . D a t a b a s e H e l p e r . h i d e S Q L E r r o r s )   {                                 r e s p o n s e . g e t W r i t e r ( ) . p r i n t l n ( " E r r o r   p r o c e s s i n g   r e q u e s t . " ) ;                                 r e t u r n ;                         }                         e l s e   t h r o w   n e w   S e r v l e t E x c e p t i o n ( e ) ;                 }         } } M A T C H   p = ( s o u r c e { n a m e : " g e t H e a d e r " , f q n : " j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t R e q u e s t . g e t H e a d e r " } ) - [ r : D F G * 1 . . ] - > ( ) < - [ r 2 : A R G U M E N T S ] - ( s i n k { n a m e : " p r e p a r e C a l l " , a r g u m e n t I n d e x : 0 , f q n : " j a v a . s q l . C o n n e c t i o n . p r e p a r e C a l l "
c p g c o d e q l Q u e r y I n j e c t i o n F l o w C o n f i g s i n k s o u r c e s o u r c e s i n k q u e r y T a i n t e d B y Q u e r y I n j e c t i o n F l o w C o n f i g h a s f l o w p a t h s o u r c e s i n k h a s f l o w p a t h f l o w t o p a t h s u c c p l u s c o d e q l c y p h e r D F G * 1 . . 1 s o u r c e s i n k a p o l l o l o n g   w a y   t o   g o i m p o r t   j a v a i m p o r t   s e m m l e . c o d e . j a v a . d a t a f l o w . F l o w S o u r c e s i m p o r t   S q l I n j e c t i o n L i b i m p o r t   D a t a F l o w : : P a t h G r a p h s t r i n g   g e t S o u r c e L o c a t i o n ( D a t a F l o w : : P a t h N o d e   s i n k ) {         r e s u l t = s i n k . g e t N o d e ( ) . g e t L o c a t i o n ( ) . t o S t r i n g ( ) } s t r i n g   g e t S i n k L o c a t i o n ( D a t a F l o w : : P a t h N o d e   s o u r c e ) {         r e s u l t = s o u r c e . g e t N o d e ( ) . g e t L o c a t i o n ( ) . t o S t r i n g ( ) } f r o m   Q u e r y I n j e c t i o n S i n k   q u e r y ,   D a t a F l o w : : P a t h N o d e   s o u r c e ,   D a t a F l o w : : P a t h N o d e   s i n k w h e r e   q u e r y T a i n t e d B y ( q u e r y ,   s o u r c e ,   s i n k ) s e l e c t   q u e r y ,   s o u r c e ,   s i n k ,   " Q u e r y   m i g h t   i n c l u d e   c o d e   f r o m   $ @ . " ,   s o u r c e . g e t N o d e ( ) ,   " t h i s   u s e r   i n p u t " p r i v a t e   c l a s s   Q u e r y I n j e c t i o n F l o w C o n f i g   e x t e n d s   T a i n t T r a c k i n g : : C o n f i g u r a t i o n   {     Q u e r y I n j e c t i o n F l o w C o n f i g ( )   {   t h i s   =   " S q l I n j e c t i o n L i b : : Q u e r y I n j e c t i o n F l o w C o n f i g "   }     o v e r r i d e   p r e d i c a t e   i s S o u r c e ( D a t a F l o w : : N o d e   s r c )   {   s r c   i n s t a n c e o f   R e m o t e F l o w S o u r c e   }     / / o v e r r i d e   p r e d i c a t e   i s S i n k ( D a t a F l o w : : N o d e   s i n k )   {   s i n k   i n s t a n c e o f   S q l I n j e c t i o n S i n k   }     o v e r r i d e   p r e d i c a t e   i s S i n k ( D a t a F l o w : : N o d e   s i n k )   {   s i n k   i n s t a n c e o f   Q u e r y I n j e c t i o n S i n k   }     o v e r r i d e   p r e d i c a t e   i s S a n i t i z e r ( D a t a F l o w : : N o d e   n o d e )   {         n o d e . g e t T y p e ( )   i n s t a n c e o f   P r i m i t i v e T y p e   o r         n o d e . g e t T y p e ( )   i n s t a n c e o f   B o x e d T y p e   o r         n o d e . g e t T y p e ( )   i n s t a n c e o f   N u m b e r T y p e     } } p r e d i c a t e   q u e r y T a i n t e d B y (     Q u e r y I n j e c t i o n S i n k   q u e r y ,   D a t a F l o w : : P a t h N o d e   s o u r c e ,   D a t a F l o w : : P a t h N o d e   s i n k )   {     e x i s t s ( Q u e r y I n j e c t i o n F l o w C o n f i g   c o n f   |   c o n f . h a s F l o w P a t h ( s o u r c e ,   s i n k )   a n d   s i n k . g e t N o d e ( )   =   q u e r y ) } p r e d i c a t e   h a s F l o w P a t h ( P a t h N o d e   s o u r c e ,   P a t h N o d e   s i n k )   {   f l o w s T o ( s o u r c e ,   s i n k ,   _ ,   _ ,   t h i s )   } p r i v a t e   p r e d i c a t e   f l o w s T o (     P a t h N o d e   f l o w s o u r c e ,   P a t h N o d e S i n k   f l o w s i n k ,   N o d e   s o u r c e ,   N o d e   s i n k ,   C o n f i g u r a t i o n   c o n f i g u r a t i o n )   {     f l o w s o u r c e . i s S o u r c e ( )   a n d     f l o w s o u r c e . g e t C o n f i g u r a t i o n ( )   =   c o n f i g u r a t i o n   a n d     f l o w s o u r c e . g e t N o d e ( )   =   s o u r c e   a n d     ( f l o w s o u r c e   =   f l o w s i n k   o r   p a t h S u c c P l u s ( f l o w s o u r c e ,   f l o w s i n k ) )   a n d     f l o w s i n k . g e t N o d e ( )   =   s i n k } p r i v a t e   p r e d i c a t e   p a t h S u c c P l u s ( P a t h N o d e   n 1 ,   P a t h N o d e   n 2 )   =   f a s t T C ( p a t h S u c c / 2 ) ( n 1 ,   n 2 )
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则